ngx-bootstrap 5.3.2 → 5.6.1
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 +148 -99
- package/README.md +14 -10
- package/accordion/bundles/ngx-bootstrap-accordion.umd.js +71 -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/fesm2015/ngx-bootstrap-accordion.js +79 -0
- package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/fesm5/ngx-bootstrap-accordion.js +80 -1
- package/accordion/fesm5/ngx-bootstrap-accordion.js.map +1 -1
- package/accordion/package.json +2 -2
- package/alert/bundles/ngx-bootstrap-alert.umd.js +224 -2
- package/alert/bundles/ngx-bootstrap-alert.umd.js.map +1 -1
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js +15 -1
- package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +1 -1
- package/alert/fesm2015/ngx-bootstrap-alert.js +71 -0
- package/alert/fesm2015/ngx-bootstrap-alert.js.map +1 -1
- package/alert/fesm5/ngx-bootstrap-alert.js +72 -1
- package/alert/fesm5/ngx-bootstrap-alert.js.map +1 -1
- package/alert/package.json +2 -2
- package/buttons/bundles/ngx-bootstrap-buttons.umd.js +208 -85
- 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-radio-group.directive.d.ts +4 -1
- package/buttons/esm2015/button-radio-group.directive.js +26 -2
- package/buttons/esm5/button-radio-group.directive.js +30 -2
- package/buttons/fesm2015/ngx-bootstrap-buttons.js +194 -65
- package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +1 -1
- package/buttons/fesm5/ngx-bootstrap-buttons.js +216 -83
- 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 +295 -4
- package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +1 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +15 -1
- package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +1 -1
- package/carousel/carousel.component.d.ts +2 -0
- package/carousel/esm2015/carousel.component.js +15 -2
- package/carousel/esm2015/slide.component.js +21 -2
- package/carousel/esm5/carousel.component.js +15 -2
- package/carousel/esm5/slide.component.js +6 -2
- package/carousel/fesm2015/ngx-bootstrap-carousel.js +169 -2
- package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +1 -1
- package/carousel/fesm5/ngx-bootstrap-carousel.js +156 -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/carousel/slide.component.d.ts +1 -0
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js +11172 -10061
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
- package/chronos/esm2015/format/format.js +1 -1
- package/chronos/esm2015/i18n/ka.js +108 -0
- package/chronos/esm2015/i18n/kk.js +89 -0
- package/chronos/esm2015/i18n/sq.js +62 -0
- package/chronos/esm2015/i18n/th-be.js +85 -0
- package/chronos/esm2015/index.js +2 -2
- package/chronos/esm2015/locale/locale.class.js +16 -2
- package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
- package/chronos/esm2015/public_api.js +5 -1
- package/chronos/esm2015/units/year.js +4 -1
- package/chronos/esm5/format/format.js +1 -1
- package/chronos/esm5/i18n/ka.js +108 -0
- package/chronos/esm5/i18n/kk.js +89 -0
- package/chronos/esm5/i18n/sq.js +62 -0
- package/chronos/esm5/i18n/th-be.js +86 -0
- package/chronos/esm5/index.js +2 -2
- package/chronos/esm5/locale/locale.class.js +22 -2
- package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
- package/chronos/esm5/public_api.js +5 -1
- package/chronos/esm5/units/year.js +4 -1
- package/chronos/fesm2015/ngx-bootstrap-chronos.js +1117 -13
- package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/fesm5/ngx-bootstrap-chronos.js +1130 -13
- package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/i18n/ka.d.ts +2 -0
- package/chronos/i18n/kk.d.ts +2 -0
- package/chronos/i18n/sq.d.ts +2 -0
- package/chronos/i18n/th-be.d.ts +2 -0
- package/chronos/locale/locale.class.d.ts +2 -0
- package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
- package/chronos/package.json +2 -2
- package/chronos/public_api.d.ts +4 -0
- package/collapse/bundles/ngx-bootstrap-collapse.umd.js +100 -2
- package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +1 -1
- package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +1 -1
- package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +1 -1
- package/collapse/collapse.directive.d.ts +1 -0
- package/collapse/esm2015/collapse.directive.js +14 -1
- package/collapse/esm5/collapse.directive.js +14 -1
- package/collapse/fesm2015/ngx-bootstrap-collapse.js +108 -0
- package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +1 -1
- package/collapse/fesm5/ngx-bootstrap-collapse.js +109 -1
- package/collapse/fesm5/ngx-bootstrap-collapse.js.map +1 -1
- package/collapse/ngx-bootstrap-collapse.metadata.json +1 -1
- package/collapse/package.json +2 -2
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +169 -2
- 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/fesm2015/ngx-bootstrap-component-loader.js +177 -0
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js +178 -1
- 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 +2 -1
- package/datepicker/bs-datepicker-inline.component.d.ts +4 -0
- package/datepicker/bs-datepicker-input.directive.d.ts +1 -0
- package/datepicker/bs-datepicker.component.d.ts +12 -3
- package/datepicker/bs-datepicker.config.d.ts +31 -1
- package/datepicker/bs-datepicker.css +19 -1
- package/datepicker/bs-datepicker.css.map +3 -3
- package/datepicker/bs-datepicker.scss +0 -1
- package/datepicker/bs-daterangepicker-inline.component.d.ts +8 -0
- package/datepicker/bs-daterangepicker-input.directive.d.ts +1 -0
- package/datepicker/bs-daterangepicker.component.d.ts +16 -3
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2100 -99
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +15 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/engine/flag-days-calendar.d.ts +1 -0
- package/datepicker/esm2015/base/bs-datepicker-container.js +10 -3
- package/datepicker/esm2015/bs-datepicker-inline.component.js +25 -9
- package/datepicker/esm2015/bs-datepicker-input.directive.js +19 -1
- package/datepicker/esm2015/bs-datepicker.component.js +55 -8
- package/datepicker/esm2015/bs-datepicker.config.js +42 -3
- package/datepicker/esm2015/bs-datepicker.module.js +23 -16
- package/datepicker/esm2015/bs-daterangepicker-inline.component.js +37 -7
- package/datepicker/esm2015/bs-daterangepicker-input.directive.js +34 -3
- package/datepicker/esm2015/bs-daterangepicker.component.js +66 -9
- package/datepicker/esm2015/engine/flag-days-calendar.js +6 -3
- package/datepicker/esm2015/reducer/bs-datepicker.actions.js +14 -1
- package/datepicker/esm2015/reducer/bs-datepicker.effects.js +15 -11
- package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +28 -6
- package/datepicker/esm2015/reducer/bs-datepicker.state.js +7 -1
- package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +46 -8
- package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -2
- package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +8 -7
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +21 -3
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
- package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +22 -8
- package/datepicker/esm2015/utils/bs-calendar-utils.js +18 -3
- package/datepicker/esm5/base/bs-datepicker-container.js +14 -3
- package/datepicker/esm5/bs-datepicker-inline.component.js +25 -9
- package/datepicker/esm5/bs-datepicker-input.directive.js +23 -1
- package/datepicker/esm5/bs-datepicker.component.js +59 -8
- package/datepicker/esm5/bs-datepicker.config.js +42 -3
- package/datepicker/esm5/bs-datepicker.module.js +26 -19
- package/datepicker/esm5/bs-daterangepicker-inline.component.js +37 -7
- package/datepicker/esm5/bs-daterangepicker-input.directive.js +38 -3
- package/datepicker/esm5/bs-daterangepicker.component.js +70 -9
- package/datepicker/esm5/engine/flag-days-calendar.js +6 -3
- package/datepicker/esm5/reducer/bs-datepicker.actions.js +18 -1
- package/datepicker/esm5/reducer/bs-datepicker.effects.js +21 -17
- package/datepicker/esm5/reducer/bs-datepicker.reducer.js +28 -6
- package/datepicker/esm5/reducer/bs-datepicker.state.js +7 -1
- package/datepicker/esm5/themes/bs/bs-custom-dates-view.component.js +39 -7
- package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -2
- package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +2 -2
- package/datepicker/esm5/themes/bs/bs-datepicker-navigation-view.component.js +2 -2
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +25 -3
- package/datepicker/esm5/themes/bs/bs-daterangepicker-inline-container.component.js +2 -2
- package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +22 -8
- package/datepicker/esm5/utils/bs-calendar-utils.js +18 -3
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +1953 -91
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +1985 -98
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +2 -2
- package/datepicker/reducer/bs-datepicker.actions.d.ts +2 -0
- package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -2
- package/datepicker/reducer/bs-datepicker.state.d.ts +3 -0
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +6 -1
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -0
- package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
- package/datepicker/utils/scss/mixins.css.map +1 -1
- package/datepicker/utils/scss/mixins.scss +9 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +387 -3
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +15 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/esm2015/bs-dropdown-container.component.js +2 -2
- package/dropdown/esm5/bs-dropdown-container.component.js +2 -2
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +234 -1
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +234 -1
- 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/bundles/ngx-bootstrap-locale.umd.js +36 -2
- package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
- package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
- package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
- package/locale/esm2015/public_api.js +5 -1
- package/locale/esm5/ngx-bootstrap-locale.js +2 -2
- package/locale/esm5/public_api.js +5 -1
- package/locale/fesm2015/ngx-bootstrap-locale.js +11 -1
- package/locale/fesm2015/ngx-bootstrap-locale.js.map +1 -1
- package/locale/fesm5/ngx-bootstrap-locale.js +11 -1
- package/locale/fesm5/ngx-bootstrap-locale.js.map +1 -1
- package/locale/ngx-bootstrap-locale.metadata.json +1 -1
- package/locale/package.json +2 -2
- package/locale/public_api.d.ts +4 -0
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +187 -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 +15 -1
- package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +1 -1
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +32 -0
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +1 -1
- package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js +32 -0
- package/mini-ngrx/fesm5/ngx-bootstrap-mini-ngrx.js.map +1 -1
- package/mini-ngrx/package.json +2 -2
- package/modal/bs-modal.service.d.ts +1 -2
- package/modal/bundles/ngx-bootstrap-modal.umd.js +558 -16
- package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js +15 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
- package/modal/esm2015/bs-modal.service.js +13 -4
- package/modal/esm2015/modal-container.component.js +24 -5
- package/modal/esm2015/modal-options.class.js +16 -1
- package/modal/esm2015/modal.directive.js +21 -4
- package/modal/esm2015/modal.module.js +10 -1
- package/modal/esm5/bs-modal.service.js +28 -8
- package/modal/esm5/modal-container.component.js +28 -5
- package/modal/esm5/modal-options.class.js +16 -1
- package/modal/esm5/modal.directive.js +25 -4
- package/modal/esm5/modal.module.js +13 -1
- package/modal/fesm2015/ngx-bootstrap-modal.js +354 -10
- package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
- package/modal/fesm5/ngx-bootstrap-modal.js +381 -15
- package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
- package/modal/modal-container.component.d.ts +3 -1
- package/modal/modal-options.class.d.ts +13 -0
- package/modal/modal.directive.d.ts +3 -1
- package/modal/modal.module.d.ts +1 -0
- package/modal/ngx-bootstrap-modal.metadata.json +1 -1
- package/modal/package.json +2 -2
- package/package.json +2 -2
- package/pagination/bundles/ngx-bootstrap-pagination.umd.js +276 -4
- 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/models/index.js +49 -4
- package/pagination/esm2015/pager.component.js +2 -2
- package/pagination/esm2015/pagination.component.js +33 -3
- package/pagination/esm2015/public_api.js +1 -1
- package/pagination/esm5/models/index.js +49 -4
- package/pagination/esm5/pager.component.js +2 -2
- package/pagination/esm5/pagination.component.js +33 -3
- package/pagination/esm5/public_api.js +1 -1
- package/pagination/fesm2015/ngx-bootstrap-pagination.js +284 -2
- package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/fesm5/ngx-bootstrap-pagination.js +285 -3
- package/pagination/fesm5/ngx-bootstrap-pagination.js.map +1 -1
- package/pagination/models/index.d.ts +28 -0
- package/pagination/ngx-bootstrap-pagination.metadata.json +1 -1
- package/pagination/package.json +2 -2
- package/pagination/pagination.component.d.ts +12 -2
- package/pagination/public_api.d.ts +1 -0
- package/popover/bundles/ngx-bootstrap-popover.umd.js +215 -20
- 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.config.js +10 -1
- package/popover/esm2015/popover.directive.js +97 -16
- package/popover/esm5/popover.config.js +10 -1
- package/popover/esm5/popover.directive.js +98 -16
- package/popover/fesm2015/ngx-bootstrap-popover.js +221 -16
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
- package/popover/fesm5/ngx-bootstrap-popover.js +222 -16
- 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.config.d.ts +2 -0
- package/popover/popover.directive.d.ts +9 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js +286 -13
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +15 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
- package/positioning/esm2015/modifiers/arrow.js +19 -5
- package/positioning/esm2015/modifiers/initData.js +12 -2
- package/positioning/esm2015/modifiers/shift.js +6 -4
- package/positioning/esm5/modifiers/arrow.js +19 -5
- package/positioning/esm5/modifiers/initData.js +12 -2
- package/positioning/esm5/modifiers/shift.js +8 -6
- package/positioning/fesm2015/ngx-bootstrap-positioning.js +128 -8
- package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/fesm5/ngx-bootstrap-positioning.js +132 -10
- package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/package.json +2 -2
- package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +77 -2
- 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/fesm2015/ngx-bootstrap-progressbar.js +85 -0
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js +85 -0
- package/progressbar/fesm5/ngx-bootstrap-progressbar.js.map +1 -1
- package/progressbar/package.json +2 -2
- package/rating/bundles/ngx-bootstrap-rating.umd.js +92 -7
- 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/ngx-bootstrap-rating.js +2 -2
- package/rating/esm2015/public_api.js +2 -1
- package/rating/esm2015/rating.component.js +14 -5
- package/rating/esm2015/rating.config.js +27 -0
- package/rating/esm2015/rating.module.js +3 -2
- package/rating/esm5/ngx-bootstrap-rating.js +2 -2
- package/rating/esm5/public_api.js +2 -1
- package/rating/esm5/rating.component.js +13 -5
- package/rating/esm5/rating.config.js +29 -0
- package/rating/esm5/rating.module.js +3 -2
- package/rating/fesm2015/ngx-bootstrap-rating.js +101 -7
- package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
- package/rating/fesm5/ngx-bootstrap-rating.js +101 -7
- 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/public_api.d.ts +1 -0
- package/rating/rating.component.d.ts +4 -1
- package/rating/rating.config.d.ts +5 -0
- package/sortable/bundles/ngx-bootstrap-sortable.umd.js +254 -2
- package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +1 -1
- package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +15 -1
- package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +1 -1
- package/sortable/fesm2015/ngx-bootstrap-sortable.js +113 -0
- package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +1 -1
- package/sortable/fesm5/ngx-bootstrap-sortable.js +114 -1
- package/sortable/fesm5/ngx-bootstrap-sortable.js.map +1 -1
- package/sortable/package.json +2 -2
- package/tabs/bundles/ngx-bootstrap-tabs.umd.js +153 -4
- 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 +13 -2
- package/tabs/esm2015/tabset.component.js +7 -2
- package/tabs/esm2015/tabset.config.js +10 -1
- package/tabs/esm5/tab.directive.js +17 -2
- package/tabs/esm5/tabset.component.js +7 -2
- package/tabs/esm5/tabset.config.js +10 -1
- package/tabs/fesm2015/ngx-bootstrap-tabs.js +157 -2
- package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +1 -1
- package/tabs/fesm5/ngx-bootstrap-tabs.js +162 -3
- package/tabs/fesm5/ngx-bootstrap-tabs.js.map +1 -1
- package/tabs/ngx-bootstrap-tabs.metadata.json +1 -1
- package/tabs/package.json +2 -2
- package/tabs/tab.directive.d.ts +2 -0
- package/tabs/tabset.component.d.ts +2 -0
- package/tabs/tabset.config.d.ts +2 -0
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +464 -8
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +15 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
- package/timepicker/esm2015/timepicker.component.js +8 -2
- package/timepicker/esm2015/timepicker.config.js +28 -1
- package/timepicker/esm2015/timepicker.utils.js +9 -6
- package/timepicker/esm5/timepicker.component.js +8 -2
- package/timepicker/esm5/timepicker.config.js +28 -1
- package/timepicker/esm5/timepicker.utils.js +9 -6
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +311 -6
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js +315 -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 -0
- package/timepicker/timepicker.config.d.ts +6 -0
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +356 -8
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +15 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
- package/tooltip/esm2015/tooltip.directive.js +48 -10
- package/tooltip/esm5/tooltip.directive.js +51 -10
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +201 -7
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js +204 -7
- 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.directive.d.ts +3 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +748 -69
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +15 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
- package/typeahead/esm2015/models/index.js +87 -0
- package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm2015/public_api.js +2 -1
- package/typeahead/esm2015/typeahead-container.component.js +82 -37
- package/typeahead/esm2015/typeahead-order.class.js +19 -0
- package/typeahead/esm2015/typeahead.config.js +10 -1
- package/typeahead/esm2015/typeahead.directive.js +133 -30
- package/typeahead/esm5/models/index.js +87 -0
- package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm5/public_api.js +2 -1
- package/typeahead/esm5/typeahead-container.component.js +92 -37
- package/typeahead/esm5/typeahead-order.class.js +23 -0
- package/typeahead/esm5/typeahead.config.js +10 -1
- package/typeahead/esm5/typeahead.directive.js +140 -36
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +574 -61
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js +594 -67
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/models/index.d.ts +41 -0
- package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
- package/typeahead/package.json +2 -2
- package/typeahead/public_api.d.ts +2 -0
- package/typeahead/typeahead-container.component.d.ts +15 -7
- package/typeahead/typeahead-order.class.d.ts +6 -0
- package/typeahead/typeahead.config.d.ts +2 -0
- package/typeahead/typeahead.directive.d.ts +28 -10
- package/utils/bundles/ngx-bootstrap-utils.umd.js +54 -2
- package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js +2 -2
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
- package/utils/fesm2015/ngx-bootstrap-utils.js +62 -0
- package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
- package/utils/fesm5/ngx-bootstrap-utils.js +62 -0
- package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
- package/utils/package.json +2 -2
- package/bundles/ngx-bootstrap.umd.js +0 -1037
- package/bundles/ngx-bootstrap.umd.js.map +0 -1
- package/bundles/ngx-bootstrap.umd.min.js +0 -2
- package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
- package/esm2015/ngx-bootstrap.js +0 -9
- package/esm2015/public_api.js +0 -30
- package/esm5/ngx-bootstrap.js +0 -9
- package/esm5/public_api.js +0 -30
- package/fesm2015/ngx-bootstrap.js +0 -24
- package/fesm2015/ngx-bootstrap.js.map +0 -1
- package/fesm5/ngx-bootstrap.js +0 -24
- package/fesm5/ngx-bootstrap.js.map +0 -1
- package/ngx-bootstrap.d.ts +0 -4
- package/ngx-bootstrap.metadata.json +0 -1
- package/public_api.d.ts +0 -25
@@ -1,4 +1,4 @@
|
|
1
|
-
import { Injectable, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Input, Output,
|
1
|
+
import { Injectable, forwardRef, EventEmitter, Component, ChangeDetectionStrategy, ViewEncapsulation, ChangeDetectorRef, Input, Output, NgModule } from '@angular/core';
|
2
2
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
3
|
import { __extends } from 'tslib';
|
4
4
|
import { BehaviorSubject } from 'rxjs';
|
@@ -107,6 +107,20 @@ var TimepickerActions = /** @class */ (function () {
|
|
107
107
|
];
|
108
108
|
return TimepickerActions;
|
109
109
|
}());
|
110
|
+
if (false) {
|
111
|
+
/** @type {?} */
|
112
|
+
TimepickerActions.WRITE_VALUE;
|
113
|
+
/** @type {?} */
|
114
|
+
TimepickerActions.CHANGE_HOURS;
|
115
|
+
/** @type {?} */
|
116
|
+
TimepickerActions.CHANGE_MINUTES;
|
117
|
+
/** @type {?} */
|
118
|
+
TimepickerActions.CHANGE_SECONDS;
|
119
|
+
/** @type {?} */
|
120
|
+
TimepickerActions.SET_TIME_UNIT;
|
121
|
+
/** @type {?} */
|
122
|
+
TimepickerActions.UPDATE_CONTROLS;
|
123
|
+
}
|
110
124
|
|
111
125
|
/**
|
112
126
|
* @fileoverview added by tsickle
|
@@ -162,6 +176,13 @@ function toNumber(value) {
|
|
162
176
|
}
|
163
177
|
return parseInt(value, dex);
|
164
178
|
}
|
179
|
+
/**
|
180
|
+
* @param {?} value
|
181
|
+
* @return {?}
|
182
|
+
*/
|
183
|
+
function isNumber(value) {
|
184
|
+
return !isNaN(toNumber(value));
|
185
|
+
}
|
165
186
|
/**
|
166
187
|
* @param {?} value
|
167
188
|
* @param {?=} isPM
|
@@ -228,10 +249,7 @@ function changeTime(value, diff) {
|
|
228
249
|
/** @type {?} */
|
229
250
|
var seconds = value.getSeconds();
|
230
251
|
if (diff.hour) {
|
231
|
-
hour =
|
232
|
-
if (hour < 0) {
|
233
|
-
hour += hoursPerDay;
|
234
|
-
}
|
252
|
+
hour = hour + toNumber(diff.hour);
|
235
253
|
}
|
236
254
|
if (diff.minute) {
|
237
255
|
minutes = minutes + toNumber(diff.minute);
|
@@ -275,7 +293,13 @@ function setTime(value, opts) {
|
|
275
293
|
* @return {?}
|
276
294
|
*/
|
277
295
|
function createDate(value, hours, minutes, seconds) {
|
278
|
-
|
296
|
+
/** @type {?} */
|
297
|
+
var newValue = new Date(value.getFullYear(), value.getMonth(), value.getDate(), hours, minutes, seconds, value.getMilliseconds());
|
298
|
+
// #3139 ensure date part remains unchanged
|
299
|
+
newValue.setFullYear(value.getFullYear());
|
300
|
+
newValue.setMonth(value.getMonth());
|
301
|
+
newValue.setDate(value.getDate());
|
302
|
+
return newValue;
|
279
303
|
}
|
280
304
|
/**
|
281
305
|
* @param {?} value
|
@@ -574,17 +598,144 @@ var TimepickerConfig = /** @class */ (function () {
|
|
574
598
|
* placeholder for seconds field in timepicker
|
575
599
|
*/
|
576
600
|
this.secondsPlaceholder = 'SS';
|
601
|
+
/**
|
602
|
+
* hours aria label
|
603
|
+
*/
|
604
|
+
this.ariaLabelHours = 'hours';
|
605
|
+
/**
|
606
|
+
* minutes aria label
|
607
|
+
*/
|
608
|
+
this.ariaLabelMinutes = 'minutes';
|
609
|
+
/**
|
610
|
+
* seconds aria label
|
611
|
+
*/
|
612
|
+
this.ariaLabelSeconds = 'seconds';
|
577
613
|
}
|
578
614
|
TimepickerConfig.decorators = [
|
579
615
|
{ type: Injectable }
|
580
616
|
];
|
581
617
|
return TimepickerConfig;
|
582
618
|
}());
|
619
|
+
if (false) {
|
620
|
+
/**
|
621
|
+
* hours change step
|
622
|
+
* @type {?}
|
623
|
+
*/
|
624
|
+
TimepickerConfig.prototype.hourStep;
|
625
|
+
/**
|
626
|
+
* hours change step
|
627
|
+
* @type {?}
|
628
|
+
*/
|
629
|
+
TimepickerConfig.prototype.minuteStep;
|
630
|
+
/**
|
631
|
+
* seconds changes step
|
632
|
+
* @type {?}
|
633
|
+
*/
|
634
|
+
TimepickerConfig.prototype.secondsStep;
|
635
|
+
/**
|
636
|
+
* if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM
|
637
|
+
* @type {?}
|
638
|
+
*/
|
639
|
+
TimepickerConfig.prototype.showMeridian;
|
640
|
+
/**
|
641
|
+
* meridian labels based on locale
|
642
|
+
* @type {?}
|
643
|
+
*/
|
644
|
+
TimepickerConfig.prototype.meridians;
|
645
|
+
/**
|
646
|
+
* if true hours and minutes fields will be readonly
|
647
|
+
* @type {?}
|
648
|
+
*/
|
649
|
+
TimepickerConfig.prototype.readonlyInput;
|
650
|
+
/**
|
651
|
+
* if true hours and minutes fields will be disabled
|
652
|
+
* @type {?}
|
653
|
+
*/
|
654
|
+
TimepickerConfig.prototype.disabled;
|
655
|
+
/**
|
656
|
+
* if true scroll inside hours and minutes inputs will change time
|
657
|
+
* @type {?}
|
658
|
+
*/
|
659
|
+
TimepickerConfig.prototype.mousewheel;
|
660
|
+
/**
|
661
|
+
* if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard
|
662
|
+
* @type {?}
|
663
|
+
*/
|
664
|
+
TimepickerConfig.prototype.arrowkeys;
|
665
|
+
/**
|
666
|
+
* if true spinner arrows above and below the inputs will be shown
|
667
|
+
* @type {?}
|
668
|
+
*/
|
669
|
+
TimepickerConfig.prototype.showSpinners;
|
670
|
+
/**
|
671
|
+
* show seconds in timepicker
|
672
|
+
* @type {?}
|
673
|
+
*/
|
674
|
+
TimepickerConfig.prototype.showSeconds;
|
675
|
+
/**
|
676
|
+
* show minutes in timepicker
|
677
|
+
* @type {?}
|
678
|
+
*/
|
679
|
+
TimepickerConfig.prototype.showMinutes;
|
680
|
+
/**
|
681
|
+
* minimum time user can select
|
682
|
+
* @type {?}
|
683
|
+
*/
|
684
|
+
TimepickerConfig.prototype.min;
|
685
|
+
/**
|
686
|
+
* maximum time user can select
|
687
|
+
* @type {?}
|
688
|
+
*/
|
689
|
+
TimepickerConfig.prototype.max;
|
690
|
+
/**
|
691
|
+
* placeholder for hours field in timepicker
|
692
|
+
* @type {?}
|
693
|
+
*/
|
694
|
+
TimepickerConfig.prototype.hoursPlaceholder;
|
695
|
+
/**
|
696
|
+
* placeholder for minutes field in timepicker
|
697
|
+
* @type {?}
|
698
|
+
*/
|
699
|
+
TimepickerConfig.prototype.minutesPlaceholder;
|
700
|
+
/**
|
701
|
+
* placeholder for seconds field in timepicker
|
702
|
+
* @type {?}
|
703
|
+
*/
|
704
|
+
TimepickerConfig.prototype.secondsPlaceholder;
|
705
|
+
/**
|
706
|
+
* hours aria label
|
707
|
+
* @type {?}
|
708
|
+
*/
|
709
|
+
TimepickerConfig.prototype.ariaLabelHours;
|
710
|
+
/**
|
711
|
+
* minutes aria label
|
712
|
+
* @type {?}
|
713
|
+
*/
|
714
|
+
TimepickerConfig.prototype.ariaLabelMinutes;
|
715
|
+
/**
|
716
|
+
* seconds aria label
|
717
|
+
* @type {?}
|
718
|
+
*/
|
719
|
+
TimepickerConfig.prototype.ariaLabelSeconds;
|
720
|
+
}
|
583
721
|
|
584
722
|
/**
|
585
723
|
* @fileoverview added by tsickle
|
586
724
|
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
587
725
|
*/
|
726
|
+
var TimepickerState = /** @class */ (function () {
|
727
|
+
function TimepickerState() {
|
728
|
+
}
|
729
|
+
return TimepickerState;
|
730
|
+
}());
|
731
|
+
if (false) {
|
732
|
+
/** @type {?} */
|
733
|
+
TimepickerState.prototype.value;
|
734
|
+
/** @type {?} */
|
735
|
+
TimepickerState.prototype.config;
|
736
|
+
/** @type {?} */
|
737
|
+
TimepickerState.prototype.controls;
|
738
|
+
}
|
588
739
|
/** @type {?} */
|
589
740
|
var initialState = {
|
590
741
|
value: null,
|
@@ -1136,7 +1287,7 @@ var TimepickerComponent = /** @class */ (function () {
|
|
1136
1287
|
selector: 'timepicker',
|
1137
1288
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
1138
1289
|
providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],
|
1139
|
-
template: "<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable\"\n (click)=\"changeHours(hourStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> </td>\n <!-- increment minutes button -->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable\"\n (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> </td>\n <!-- increment seconds button -->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable\"\n (click)=\"changeSeconds(secondsStep)\">\n <span class=\"bs-chevron bs-chevron-up\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input type=\"text\" [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"hoursPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event);changeHours(hourStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep, 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep, 'key')\"\n (change)=\"updateHours($event.target.value)\"></td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> : </td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input type=\"text\" [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"minutesPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event);changeMinutes(minuteStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep, 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep, 'key')\"\n (change)=\"updateMinutes($event.target.value)\">\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> : </td>\n <!-- seconds -->\n <td class=\"form-group\" *ngIf=\"showSeconds\" [class.has-error]=\"invalidSeconds\">\n <input type=\"text\" [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"secondsPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event);changeSeconds(secondsStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep, 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep, 'key')\"\n (change)=\"updateSeconds($event.target.value)\">\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button type=\"button\" class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\n >{{ meridian }}\n </button>\n </td>\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable\"\n (click)=\"changeHours(-hourStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> </td>\n <!-- decrement minutes button-->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable\"\n (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> </td>\n <!-- decrement seconds button-->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable\"\n (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n </tbody>\n</table>\n",
|
1290
|
+
template: "<table>\n <tbody>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- increment hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementHours || !isEditable\"\n (click)=\"changeHours(hourStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> </td>\n <!-- increment minutes button -->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementMinutes || !isEditable\"\n (click)=\"changeMinutes(minuteStep)\"\n ><span class=\"bs-chevron bs-chevron-up\"></span></a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> </td>\n <!-- increment seconds button -->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canIncrementSeconds || !isEditable\"\n (click)=\"changeSeconds(secondsStep)\">\n <span class=\"bs-chevron bs-chevron-up\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n <tr>\n <!-- hours -->\n <td class=\"form-group\" [class.has-error]=\"invalidHours\">\n <input type=\"text\" [class.is-invalid]=\"invalidHours\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"hoursPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"hours\"\n (wheel)=\"prevDef($event);changeHours(hourStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeHours(hourStep, 'key')\"\n (keydown.ArrowDown)=\"changeHours(-hourStep, 'key')\"\n (change)=\"updateHours($event.target.value)\" [attr.aria-label]=\"labelHours\"></td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> : </td>\n <!-- minutes -->\n <td class=\"form-group\" *ngIf=\"showMinutes\" [class.has-error]=\"invalidMinutes\">\n <input type=\"text\" [class.is-invalid]=\"invalidMinutes\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"minutesPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"minutes\"\n (wheel)=\"prevDef($event);changeMinutes(minuteStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeMinutes(minuteStep, 'key')\"\n (keydown.ArrowDown)=\"changeMinutes(-minuteStep, 'key')\"\n (change)=\"updateMinutes($event.target.value)\" [attr.aria-label]=\"labelMinutes\">\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> : </td>\n <!-- seconds -->\n <td class=\"form-group\" *ngIf=\"showSeconds\" [class.has-error]=\"invalidSeconds\">\n <input type=\"text\" [class.is-invalid]=\"invalidSeconds\"\n class=\"form-control text-center bs-timepicker-field\"\n [placeholder]=\"secondsPlaceholder\"\n maxlength=\"2\"\n [readonly]=\"readonlyInput\"\n [disabled]=\"disabled\"\n [value]=\"seconds\"\n (wheel)=\"prevDef($event);changeSeconds(secondsStep * wheelSign($event), 'wheel')\"\n (keydown.ArrowUp)=\"changeSeconds(secondsStep, 'key')\"\n (keydown.ArrowDown)=\"changeSeconds(-secondsStep, 'key')\"\n (change)=\"updateSeconds($event.target.value)\" [attr.aria-label]=\"labelSeconds\">\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian -->\n <td *ngIf=\"showMeridian\">\n <button type=\"button\" class=\"btn btn-default text-center\"\n [disabled]=\"!isEditable || !canToggleMeridian\"\n [class.disabled]=\"!isEditable || !canToggleMeridian\"\n (click)=\"toggleMeridian()\"\n >{{ meridian }}\n </button>\n </td>\n </tr>\n <tr class=\"text-center\" [hidden]=\"!showSpinners\">\n <!-- decrement hours button-->\n <td>\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementHours || !isEditable\"\n (click)=\"changeHours(-hourStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showMinutes\"> </td>\n <!-- decrement minutes button-->\n <td *ngIf=\"showMinutes\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementMinutes || !isEditable\"\n (click)=\"changeMinutes(-minuteStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- divider -->\n <td *ngIf=\"showSeconds\"> </td>\n <!-- decrement seconds button-->\n <td *ngIf=\"showSeconds\">\n <a class=\"btn btn-link\" [class.disabled]=\"!canDecrementSeconds || !isEditable\"\n (click)=\"changeSeconds(-secondsStep)\">\n <span class=\"bs-chevron bs-chevron-down\"></span>\n </a>\n </td>\n <!-- space between -->\n <td *ngIf=\"showMeridian\"> </td>\n <!-- meridian placeholder-->\n <td *ngIf=\"showMeridian\"></td>\n </tr>\n </tbody>\n</table>\n",
|
1140
1291
|
encapsulation: ViewEncapsulation.None,
|
1141
1292
|
styles: ["\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n "]
|
1142
1293
|
}] }
|
@@ -1170,6 +1321,153 @@ var TimepickerComponent = /** @class */ (function () {
|
|
1170
1321
|
};
|
1171
1322
|
return TimepickerComponent;
|
1172
1323
|
}());
|
1324
|
+
if (false) {
|
1325
|
+
/**
|
1326
|
+
* hours change step
|
1327
|
+
* @type {?}
|
1328
|
+
*/
|
1329
|
+
TimepickerComponent.prototype.hourStep;
|
1330
|
+
/**
|
1331
|
+
* hours change step
|
1332
|
+
* @type {?}
|
1333
|
+
*/
|
1334
|
+
TimepickerComponent.prototype.minuteStep;
|
1335
|
+
/**
|
1336
|
+
* seconds change step
|
1337
|
+
* @type {?}
|
1338
|
+
*/
|
1339
|
+
TimepickerComponent.prototype.secondsStep;
|
1340
|
+
/**
|
1341
|
+
* if true hours and minutes fields will be readonly
|
1342
|
+
* @type {?}
|
1343
|
+
*/
|
1344
|
+
TimepickerComponent.prototype.readonlyInput;
|
1345
|
+
/**
|
1346
|
+
* if true hours and minutes fields will be disabled
|
1347
|
+
* @type {?}
|
1348
|
+
*/
|
1349
|
+
TimepickerComponent.prototype.disabled;
|
1350
|
+
/**
|
1351
|
+
* if true scroll inside hours and minutes inputs will change time
|
1352
|
+
* @type {?}
|
1353
|
+
*/
|
1354
|
+
TimepickerComponent.prototype.mousewheel;
|
1355
|
+
/**
|
1356
|
+
* if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard
|
1357
|
+
* @type {?}
|
1358
|
+
*/
|
1359
|
+
TimepickerComponent.prototype.arrowkeys;
|
1360
|
+
/**
|
1361
|
+
* if true spinner arrows above and below the inputs will be shown
|
1362
|
+
* @type {?}
|
1363
|
+
*/
|
1364
|
+
TimepickerComponent.prototype.showSpinners;
|
1365
|
+
/**
|
1366
|
+
* if true meridian button will be shown
|
1367
|
+
* @type {?}
|
1368
|
+
*/
|
1369
|
+
TimepickerComponent.prototype.showMeridian;
|
1370
|
+
/**
|
1371
|
+
* show minutes in timepicker
|
1372
|
+
* @type {?}
|
1373
|
+
*/
|
1374
|
+
TimepickerComponent.prototype.showMinutes;
|
1375
|
+
/**
|
1376
|
+
* show seconds in timepicker
|
1377
|
+
* @type {?}
|
1378
|
+
*/
|
1379
|
+
TimepickerComponent.prototype.showSeconds;
|
1380
|
+
/**
|
1381
|
+
* meridian labels based on locale
|
1382
|
+
* @type {?}
|
1383
|
+
*/
|
1384
|
+
TimepickerComponent.prototype.meridians;
|
1385
|
+
/**
|
1386
|
+
* minimum time user can select
|
1387
|
+
* @type {?}
|
1388
|
+
*/
|
1389
|
+
TimepickerComponent.prototype.min;
|
1390
|
+
/**
|
1391
|
+
* maximum time user can select
|
1392
|
+
* @type {?}
|
1393
|
+
*/
|
1394
|
+
TimepickerComponent.prototype.max;
|
1395
|
+
/**
|
1396
|
+
* placeholder for hours field in timepicker
|
1397
|
+
* @type {?}
|
1398
|
+
*/
|
1399
|
+
TimepickerComponent.prototype.hoursPlaceholder;
|
1400
|
+
/**
|
1401
|
+
* placeholder for minutes field in timepicker
|
1402
|
+
* @type {?}
|
1403
|
+
*/
|
1404
|
+
TimepickerComponent.prototype.minutesPlaceholder;
|
1405
|
+
/**
|
1406
|
+
* placeholder for seconds field in timepicker
|
1407
|
+
* @type {?}
|
1408
|
+
*/
|
1409
|
+
TimepickerComponent.prototype.secondsPlaceholder;
|
1410
|
+
/**
|
1411
|
+
* emits true if value is a valid date
|
1412
|
+
* @type {?}
|
1413
|
+
*/
|
1414
|
+
TimepickerComponent.prototype.isValid;
|
1415
|
+
/** @type {?} */
|
1416
|
+
TimepickerComponent.prototype.hours;
|
1417
|
+
/** @type {?} */
|
1418
|
+
TimepickerComponent.prototype.minutes;
|
1419
|
+
/** @type {?} */
|
1420
|
+
TimepickerComponent.prototype.seconds;
|
1421
|
+
/** @type {?} */
|
1422
|
+
TimepickerComponent.prototype.meridian;
|
1423
|
+
/** @type {?} */
|
1424
|
+
TimepickerComponent.prototype.invalidHours;
|
1425
|
+
/** @type {?} */
|
1426
|
+
TimepickerComponent.prototype.invalidMinutes;
|
1427
|
+
/** @type {?} */
|
1428
|
+
TimepickerComponent.prototype.invalidSeconds;
|
1429
|
+
/** @type {?} */
|
1430
|
+
TimepickerComponent.prototype.labelHours;
|
1431
|
+
/** @type {?} */
|
1432
|
+
TimepickerComponent.prototype.labelMinutes;
|
1433
|
+
/** @type {?} */
|
1434
|
+
TimepickerComponent.prototype.labelSeconds;
|
1435
|
+
/** @type {?} */
|
1436
|
+
TimepickerComponent.prototype.canIncrementHours;
|
1437
|
+
/** @type {?} */
|
1438
|
+
TimepickerComponent.prototype.canIncrementMinutes;
|
1439
|
+
/** @type {?} */
|
1440
|
+
TimepickerComponent.prototype.canIncrementSeconds;
|
1441
|
+
/** @type {?} */
|
1442
|
+
TimepickerComponent.prototype.canDecrementHours;
|
1443
|
+
/** @type {?} */
|
1444
|
+
TimepickerComponent.prototype.canDecrementMinutes;
|
1445
|
+
/** @type {?} */
|
1446
|
+
TimepickerComponent.prototype.canDecrementSeconds;
|
1447
|
+
/** @type {?} */
|
1448
|
+
TimepickerComponent.prototype.canToggleMeridian;
|
1449
|
+
/** @type {?} */
|
1450
|
+
TimepickerComponent.prototype.onChange;
|
1451
|
+
/** @type {?} */
|
1452
|
+
TimepickerComponent.prototype.onTouched;
|
1453
|
+
/** @type {?} */
|
1454
|
+
TimepickerComponent.prototype.timepickerSub;
|
1455
|
+
/**
|
1456
|
+
* @type {?}
|
1457
|
+
* @private
|
1458
|
+
*/
|
1459
|
+
TimepickerComponent.prototype._cd;
|
1460
|
+
/**
|
1461
|
+
* @type {?}
|
1462
|
+
* @private
|
1463
|
+
*/
|
1464
|
+
TimepickerComponent.prototype._store;
|
1465
|
+
/**
|
1466
|
+
* @type {?}
|
1467
|
+
* @private
|
1468
|
+
*/
|
1469
|
+
TimepickerComponent.prototype._timepickerActions;
|
1470
|
+
}
|
1173
1471
|
|
1174
1472
|
/**
|
1175
1473
|
* @fileoverview added by tsickle
|
@@ -1200,5 +1498,15 @@ var TimepickerModule = /** @class */ (function () {
|
|
1200
1498
|
return TimepickerModule;
|
1201
1499
|
}());
|
1202
1500
|
|
1501
|
+
/**
|
1502
|
+
* @fileoverview added by tsickle
|
1503
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
1504
|
+
*/
|
1505
|
+
|
1506
|
+
/**
|
1507
|
+
* @fileoverview added by tsickle
|
1508
|
+
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
1509
|
+
*/
|
1510
|
+
|
1203
1511
|
export { TimepickerActions, TimepickerComponent, TimepickerConfig, TimepickerModule, TimepickerStore, TIMEPICKER_CONTROL_VALUE_ACCESSOR as ɵa };
|
1204
1512
|
//# sourceMappingURL=ngx-bootstrap-timepicker.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-timepicker.js","sources":["ng://ngx-bootstrap/timepicker/reducer/timepicker.actions.ts","ng://ngx-bootstrap/timepicker/timepicker.utils.ts","ng://ngx-bootstrap/timepicker/timepicker-controls.util.ts","ng://ngx-bootstrap/timepicker/timepicker.config.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.reducer.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.store.ts","ng://ngx-bootstrap/timepicker/timepicker.component.ts","ng://ngx-bootstrap/timepicker/timepicker.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n Time\n} from '../timepicker.models';\n\n@Injectable()\nexport class TimepickerActions {\n static readonly WRITE_VALUE = '[timepicker] write value from ng model';\n static readonly CHANGE_HOURS = '[timepicker] change hours';\n static readonly CHANGE_MINUTES = '[timepicker] change minutes';\n static readonly CHANGE_SECONDS = '[timepicker] change seconds';\n static readonly SET_TIME_UNIT = '[timepicker] set time unit';\n static readonly UPDATE_CONTROLS = '[timepicker] update controls';\n\n writeValue(value: Date | string) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n\n changeHours(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n\n changeMinutes(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n\n changeSeconds(event: TimeChangeEvent): Action {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n\n setTime(value: Time): Action {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n\n updateControls(value: TimepickerComponentState): Action {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n}\n","import { Time, TimepickerComponentState } from './timepicker.models';\n\nconst dex = 10;\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimepickerComponentState, newDate: Date): boolean {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n\n if (controls.max && newDate > controls.max) {\n return false;\n }\n\n return true;\n}\n\nexport function toNumber(value: string | number): number {\n if (typeof value === 'number') {\n return value;\n }\n\n return parseInt(value, dex);\n}\n\nexport function isNumber(value: string | number): value is number {\n return !isNaN(toNumber(value));\n}\n\nexport function parseHours(\n value: string | number,\n isPM = false\n): number {\n const hour = toNumber(value);\n if (\n isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)\n ) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = toNumber(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = toNumber(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date): Date {\n if (typeof value === 'string') {\n return new Date(value);\n }\n\n return value;\n}\n\nexport function changeTime(value: Date, diff: Time): Date {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = (hour + toNumber(diff.hour)) % hoursPerDay;\n if (hour < 0) {\n hour += hoursPerDay;\n }\n }\n\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + toNumber(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds);\n}\n\nexport function setTime(value: Date, opts: Time): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds);\n}\n\nexport function createDate(\n value: Date,\n hours: number,\n minutes: number,\n seconds: number\n): Date {\n return new Date(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n hours,\n minutes,\n seconds,\n value.getMilliseconds()\n );\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date): boolean {\n const newDate = setTime(new Date(), diff);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(\n hours: string,\n minutes = '0',\n seconds = '0',\n isPM: boolean\n): boolean {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n","import { changeTime } from './timepicker.utils';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nexport function canChangeValue(\n state: TimepickerComponentState,\n event?: TimeChangeEvent\n): boolean {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !state.arrowkeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(\n state: TimepickerComponentState\n): TimepickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timepickerControls(\n value: Date,\n state: TimepickerComponentState\n): TimepickerControls {\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res: TimepickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds\n ? max > _newMinutes\n : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds\n ? min < _newMinutes\n : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/** Provides default configuration values for timepicker */\n@Injectable()\nexport class TimepickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timepicker */\n showSeconds = false;\n /** show minutes in timepicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timepicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n secondsPlaceholder = 'SS';\n}\n","import { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n canChangeHours,\n canChangeMinutes,\n canChangeSeconds,\n canChangeValue,\n timepickerControls\n} from '../timepicker-controls.util';\nimport { TimepickerConfig } from '../timepicker.config';\nimport {\n TimepickerComponentState,\n TimepickerControls\n} from '../timepicker.models';\nimport { changeTime, setTime, isValidLimit } from '../timepicker.utils';\nimport { TimepickerActions } from './timepicker.actions';\n\nexport class TimepickerState {\n value: Date;\n config: TimepickerComponentState;\n controls: TimepickerControls;\n}\n\nexport const initialState: TimepickerState = {\n value: null,\n config: new TimepickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n// tslint:disable-next-line:cyclomatic-complexity\nexport function timepickerReducer(state = initialState, action: Action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n\n case TimepickerActions.CHANGE_HOURS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_MINUTES: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_SECONDS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, action.payload);\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState: TimepickerState = {\n value: state.value,\n config: action.payload,\n controls: _newControlsState\n };\n\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n\n return Object.assign({}, state, _newState);\n }\n\n default:\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n timepickerReducer,\n TimepickerState,\n initialState\n} from './timepicker.reducer';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\n\n@Injectable()\nexport class TimepickerStore extends MiniStore<TimepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState<TimepickerState>(\n initialState,\n _dispatcher,\n timepickerReducer\n );\n super(_dispatcher, timepickerReducer, state);\n }\n}\n","/* tslint:disable:no-forward-ref max-file-line-count */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges, ViewEncapsulation\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerStore } from './reducer/timepicker.store';\nimport { getControlsValue } from './timepicker-controls.util';\nimport { TimepickerConfig } from './timepicker.config';\n\nimport {\n TimeChangeSource,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nimport {\n isValidDate,\n padNumber,\n parseTime,\n isInputValid,\n isHourInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isInputLimitValid\n} from './timepicker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ControlValueAccessorModel } from './models';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: ControlValueAccessorModel = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],\n templateUrl: './timepicker.component.html',\n styles: [`\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimepickerComponent\n implements ControlValueAccessor,\n TimepickerComponentState,\n TimepickerControls,\n OnChanges,\n OnDestroy {\n /** hours change step */\n @Input() hourStep: number;\n /** hours change step */\n @Input() minuteStep: number;\n /** seconds change step */\n @Input() secondsStep: number;\n /** if true hours and minutes fields will be readonly */\n @Input() readonlyInput: boolean;\n /** if true hours and minutes fields will be disabled */\n @Input() disabled: boolean;\n /** if true scroll inside hours and minutes inputs will change time */\n @Input() mousewheel: boolean;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n @Input() arrowkeys: boolean;\n /** if true spinner arrows above and below the inputs will be shown */\n @Input() showSpinners: boolean;\n /** if true meridian button will be shown */\n @Input() showMeridian: boolean;\n /** show minutes in timepicker */\n @Input() showMinutes: boolean;\n /** show seconds in timepicker */\n @Input() showSeconds: boolean;\n /** meridian labels based on locale */\n @Input() meridians: string[];\n /** minimum time user can select */\n @Input() min: Date;\n /** maximum time user can select */\n @Input() max: Date;\n /** placeholder for hours field in timepicker */\n @Input() hoursPlaceholder: string;\n /** placeholder for minutes field in timepicker */\n @Input() minutesPlaceholder: string;\n /** placeholder for seconds field in timepicker */\n @Input() secondsPlaceholder: string;\n\n /** emits true if value is a valid date */\n @Output() isValid = new EventEmitter<boolean>();\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible(): boolean {\n return this.showSpinners && !this.readonlyInput;\n }\n\n get isEditable(): boolean {\n return !(this.readonlyInput || this.disabled);\n }\n\n // min\\max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n // tslint:disable-next-line:no-any\n onChange = Function.prototype;\n // tslint:disable-next-line:no-any\n onTouched = Function.prototype;\n\n timepickerSub: Subscription;\n\n constructor(\n _config: TimepickerConfig,\n private _cd: ChangeDetectorRef,\n private _store: TimepickerStore,\n private _timepickerActions: TimepickerActions\n ) {\n Object.assign(this, _config);\n\n this.timepickerSub = _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n });\n\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimepickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n });\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n isPM(): boolean {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeMinutes({ step, source })\n );\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeSeconds({ step, source })\n );\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\n }\n\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.dispatch(\n this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n })\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.dispatch(\n this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n })\n );\n }\n\n /**\n * Write a new value to the element.\n */\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue(null));\n }\n }\n\n /**\n * Set the function to be called when the control receives a change event.\n */\n // tslint:disable-next-line:no-any\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timepickerSub.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n\n return;\n }\n\n const _value = parseTime(value);\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimepickerComponent } from './timepicker.component';\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerConfig } from './timepicker.config';\nimport { TimepickerStore } from './reducer/timepicker.store';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent]\n})\nexport class TimepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerConfig, TimepickerActions, TimepickerStore]\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-timepicker.js","sources":["ng://ngx-bootstrap/timepicker/reducer/timepicker.actions.ts","ng://ngx-bootstrap/timepicker/timepicker.utils.ts","ng://ngx-bootstrap/timepicker/timepicker-controls.util.ts","ng://ngx-bootstrap/timepicker/timepicker.config.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.reducer.ts","ng://ngx-bootstrap/timepicker/reducer/timepicker.store.ts","ng://ngx-bootstrap/timepicker/timepicker.component.ts","ng://ngx-bootstrap/timepicker/timepicker.module.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n Time\n} from '../timepicker.models';\n\n@Injectable()\nexport class TimepickerActions {\n static readonly WRITE_VALUE = '[timepicker] write value from ng model';\n static readonly CHANGE_HOURS = '[timepicker] change hours';\n static readonly CHANGE_MINUTES = '[timepicker] change minutes';\n static readonly CHANGE_SECONDS = '[timepicker] change seconds';\n static readonly SET_TIME_UNIT = '[timepicker] set time unit';\n static readonly UPDATE_CONTROLS = '[timepicker] update controls';\n\n writeValue(value: Date | string) {\n return {\n type: TimepickerActions.WRITE_VALUE,\n payload: value\n };\n }\n\n changeHours(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_HOURS,\n payload: event\n };\n }\n\n changeMinutes(event: TimeChangeEvent) {\n return {\n type: TimepickerActions.CHANGE_MINUTES,\n payload: event\n };\n }\n\n changeSeconds(event: TimeChangeEvent): Action {\n return {\n type: TimepickerActions.CHANGE_SECONDS,\n payload: event\n };\n }\n\n setTime(value: Time): Action {\n return {\n type: TimepickerActions.SET_TIME_UNIT,\n payload: value\n };\n }\n\n updateControls(value: TimepickerComponentState): Action {\n return {\n type: TimepickerActions.UPDATE_CONTROLS,\n payload: value\n };\n }\n}\n","import { Time, TimepickerComponentState } from './timepicker.models';\n\nconst dex = 10;\nconst hoursPerDay = 24;\nconst hoursPerDayHalf = 12;\nconst minutesPerHour = 60;\nconst secondsPerMinute = 60;\n\nexport function isValidDate(value?: string | Date): boolean {\n if (!value) {\n return false;\n }\n\n if (value instanceof Date && isNaN(value.getHours())) {\n return false;\n }\n\n if (typeof value === 'string') {\n return isValidDate(new Date(value));\n }\n\n return true;\n}\n\nexport function isValidLimit(controls: TimepickerComponentState, newDate: Date): boolean {\n if (controls.min && newDate < controls.min) {\n return false;\n }\n\n if (controls.max && newDate > controls.max) {\n return false;\n }\n\n return true;\n}\n\nexport function toNumber(value: string | number): number {\n if (typeof value === 'number') {\n return value;\n }\n\n return parseInt(value, dex);\n}\n\nexport function isNumber(value: string | number): value is number {\n return !isNaN(toNumber(value));\n}\n\nexport function parseHours(\n value: string | number,\n isPM = false\n): number {\n const hour = toNumber(value);\n if (\n isNaN(hour) ||\n hour < 0 ||\n hour > (isPM ? hoursPerDayHalf : hoursPerDay)\n ) {\n return NaN;\n }\n\n return hour;\n}\n\nexport function parseMinutes(value: string | number): number {\n const minute = toNumber(value);\n if (isNaN(minute) || minute < 0 || minute > minutesPerHour) {\n return NaN;\n }\n\n return minute;\n}\n\nexport function parseSeconds(value: string | number): number {\n const seconds = toNumber(value);\n if (isNaN(seconds) || seconds < 0 || seconds > secondsPerMinute) {\n return NaN;\n }\n\n return seconds;\n}\n\nexport function parseTime(value: string | Date): Date {\n if (typeof value === 'string') {\n return new Date(value);\n }\n\n return value;\n}\n\nexport function changeTime(value: Date, diff: Time): Date {\n if (!value) {\n return changeTime(createDate(new Date(), 0, 0, 0), diff);\n }\n\n let hour = value.getHours();\n let minutes = value.getMinutes();\n let seconds = value.getSeconds();\n\n if (diff.hour) {\n hour = hour + toNumber(diff.hour);\n }\n\n if (diff.minute) {\n minutes = minutes + toNumber(diff.minute);\n }\n\n if (diff.seconds) {\n seconds = seconds + toNumber(diff.seconds);\n }\n\n return createDate(value, hour, minutes, seconds);\n}\n\nexport function setTime(value: Date, opts: Time): Date {\n let hour = parseHours(opts.hour);\n const minute = parseMinutes(opts.minute);\n const seconds = parseSeconds(opts.seconds) || 0;\n\n if (opts.isPM && hour !== 12) {\n hour += hoursPerDayHalf;\n }\n\n if (!value) {\n if (!isNaN(hour) && !isNaN(minute)) {\n return createDate(new Date(), hour, minute, seconds);\n }\n\n return value;\n }\n\n if (isNaN(hour) || isNaN(minute)) {\n return value;\n }\n\n return createDate(value, hour, minute, seconds);\n}\n\nexport function createDate(\n value: Date,\n hours: number,\n minutes: number,\n seconds: number\n): Date {\n const newValue = new Date(\n value.getFullYear(),\n value.getMonth(),\n value.getDate(),\n hours,\n minutes,\n seconds,\n value.getMilliseconds()\n );\n // #3139 ensure date part remains unchanged\n newValue.setFullYear(value.getFullYear());\n newValue.setMonth(value.getMonth());\n newValue.setDate(value.getDate());\n\n return newValue;\n}\n\nexport function padNumber(value: number): string {\n const _value = value.toString();\n if (_value.length > 1) {\n return _value;\n }\n\n return `0${_value}`;\n}\n\nexport function isHourInputValid(hours: string, isPM: boolean): boolean {\n return !isNaN(parseHours(hours, isPM));\n}\n\nexport function isMinuteInputValid(minutes: string): boolean {\n return !isNaN(parseMinutes(minutes));\n}\n\nexport function isSecondInputValid(seconds: string): boolean {\n return !isNaN(parseSeconds(seconds));\n}\n\nexport function isInputLimitValid(diff: Time, max: Date, min: Date): boolean {\n const newDate = setTime(new Date(), diff);\n\n if (max && newDate > max) {\n return false;\n }\n\n if (min && newDate < min) {\n return false;\n }\n\n return true;\n}\n\nexport function isInputValid(\n hours: string,\n minutes = '0',\n seconds = '0',\n isPM: boolean\n): boolean {\n return isHourInputValid(hours, isPM)\n && isMinuteInputValid(minutes)\n && isSecondInputValid(seconds);\n}\n","import { changeTime } from './timepicker.utils';\nimport {\n TimeChangeEvent,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nexport function canChangeValue(\n state: TimepickerComponentState,\n event?: TimeChangeEvent\n): boolean {\n if (state.readonlyInput || state.disabled) {\n return false;\n }\n\n if (event) {\n if (event.source === 'wheel' && !state.mousewheel) {\n return false;\n }\n\n if (event.source === 'key' && !state.arrowkeys) {\n return false;\n }\n }\n\n return true;\n}\n\nexport function canChangeHours(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n\n if (event.step > 0 && !controls.canIncrementHours) {\n return false;\n }\n\n if (event.step < 0 && !controls.canDecrementHours) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeMinutes(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementMinutes) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementMinutes) {\n return false;\n }\n\n return true;\n}\n\nexport function canChangeSeconds(\n event: TimeChangeEvent,\n controls: TimepickerControls\n): boolean {\n if (!event.step) {\n return false;\n }\n if (event.step > 0 && !controls.canIncrementSeconds) {\n return false;\n }\n if (event.step < 0 && !controls.canDecrementSeconds) {\n return false;\n }\n\n return true;\n}\n\nexport function getControlsValue(\n state: TimepickerComponentState\n): TimepickerComponentState {\n const {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n } = state;\n\n return {\n hourStep,\n minuteStep,\n secondsStep,\n readonlyInput,\n disabled,\n mousewheel,\n arrowkeys,\n showSpinners,\n showMeridian,\n showSeconds,\n meridians,\n min,\n max\n };\n}\n\nexport function timepickerControls(\n value: Date,\n state: TimepickerComponentState\n): TimepickerControls {\n const hoursPerDayHalf = 12;\n const { min, max, hourStep, minuteStep, secondsStep, showSeconds } = state;\n const res: TimepickerControls = {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n };\n\n if (!value) {\n return res;\n }\n\n // compare dates\n if (max) {\n const _newHour = changeTime(value, { hour: hourStep });\n res.canIncrementHours = max > _newHour;\n\n if (!res.canIncrementHours) {\n const _newMinutes = changeTime(value, { minute: minuteStep });\n res.canIncrementMinutes = showSeconds\n ? max > _newMinutes\n : max >= _newMinutes;\n }\n\n if (!res.canIncrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: secondsStep });\n res.canIncrementSeconds = max >= _newSeconds;\n }\n\n if (value.getHours() < hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: hoursPerDayHalf }) < max;\n }\n }\n\n if (min) {\n const _newHour = changeTime(value, { hour: -hourStep });\n res.canDecrementHours = min < _newHour;\n\n if (!res.canDecrementHours) {\n const _newMinutes = changeTime(value, { minute: -minuteStep });\n res.canDecrementMinutes = showSeconds\n ? min < _newMinutes\n : min <= _newMinutes;\n }\n\n if (!res.canDecrementMinutes) {\n const _newSeconds = changeTime(value, { seconds: -secondsStep });\n res.canDecrementSeconds = min <= _newSeconds;\n }\n\n if (value.getHours() >= hoursPerDayHalf) {\n res.canToggleMeridian = changeTime(value, { hour: -hoursPerDayHalf }) > min;\n }\n }\n\n return res;\n}\n","import { Injectable } from '@angular/core';\n\n/** Provides default configuration values for timepicker */\n@Injectable()\nexport class TimepickerConfig {\n /** hours change step */\n hourStep = 1;\n /** hours change step */\n minuteStep = 5;\n /** seconds changes step */\n secondsStep = 10;\n /** if true works in 12H mode and displays AM/PM. If false works in 24H mode and hides AM/PM */\n showMeridian = true;\n /** meridian labels based on locale */\n meridians = ['AM', 'PM'];\n /** if true hours and minutes fields will be readonly */\n readonlyInput = false;\n /** if true hours and minutes fields will be disabled */\n disabled = false;\n /** if true scroll inside hours and minutes inputs will change time */\n mousewheel = true;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n arrowkeys = true;\n /** if true spinner arrows above and below the inputs will be shown */\n showSpinners = true;\n /** show seconds in timepicker */\n showSeconds = false;\n /** show minutes in timepicker */\n showMinutes = true;\n /** minimum time user can select */\n min: Date;\n /** maximum time user can select */\n max: Date;\n /** placeholder for hours field in timepicker */\n hoursPlaceholder = 'HH';\n /** placeholder for minutes field in timepicker */\n minutesPlaceholder = 'MM';\n /** placeholder for seconds field in timepicker */\n secondsPlaceholder = 'SS';\n /** hours aria label */\n ariaLabelHours = 'hours';\n /** minutes aria label */\n ariaLabelMinutes = 'minutes';\n /** seconds aria label */\n ariaLabelSeconds = 'seconds';\n}\n","import { Action } from 'ngx-bootstrap/mini-ngrx';\nimport {\n canChangeHours,\n canChangeMinutes,\n canChangeSeconds,\n canChangeValue,\n timepickerControls\n} from '../timepicker-controls.util';\nimport { TimepickerConfig } from '../timepicker.config';\nimport {\n TimepickerComponentState,\n TimepickerControls\n} from '../timepicker.models';\nimport { changeTime, setTime, isValidLimit } from '../timepicker.utils';\nimport { TimepickerActions } from './timepicker.actions';\n\nexport class TimepickerState {\n value: Date;\n config: TimepickerComponentState;\n controls: TimepickerControls;\n}\n\nexport const initialState: TimepickerState = {\n value: null,\n config: new TimepickerConfig(),\n controls: {\n canIncrementHours: true,\n canIncrementMinutes: true,\n canIncrementSeconds: true,\n\n canDecrementHours: true,\n canDecrementMinutes: true,\n canDecrementSeconds: true,\n\n canToggleMeridian: true\n }\n};\n\n// tslint:disable-next-line:cyclomatic-complexity\nexport function timepickerReducer(state = initialState, action: Action) {\n switch (action.type) {\n case TimepickerActions.WRITE_VALUE: {\n return Object.assign({}, state, { value: action.payload });\n }\n\n case TimepickerActions.CHANGE_HOURS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeHours(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { hour: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_MINUTES: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeMinutes(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, { minute: action.payload.step });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.CHANGE_SECONDS: {\n if (\n !canChangeValue(state.config, action.payload) ||\n !canChangeSeconds(action.payload, state.controls)\n ) {\n return state;\n }\n\n const _newTime = changeTime(state.value, {\n seconds: action.payload.step\n });\n\n if ((state.config.max || state.config.min) && !isValidLimit(state.config, _newTime)) {\n return state;\n }\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.SET_TIME_UNIT: {\n if (!canChangeValue(state.config)) {\n return state;\n }\n\n const _newTime = setTime(state.value, action.payload);\n\n return Object.assign({}, state, { value: _newTime });\n }\n\n case TimepickerActions.UPDATE_CONTROLS: {\n const _newControlsState = timepickerControls(state.value, action.payload);\n const _newState: TimepickerState = {\n value: state.value,\n config: action.payload,\n controls: _newControlsState\n };\n\n if (state.config.showMeridian !== _newState.config.showMeridian) {\n if (state.value) {\n _newState.value = new Date(state.value);\n }\n }\n\n return Object.assign({}, state, _newState);\n }\n\n default:\n return state;\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n timepickerReducer,\n TimepickerState,\n initialState\n} from './timepicker.reducer';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { Action, MiniStore, MiniState } from 'ngx-bootstrap/mini-ngrx';\n\n@Injectable()\nexport class TimepickerStore extends MiniStore<TimepickerState> {\n constructor() {\n const _dispatcher = new BehaviorSubject<Action>({\n type: '[mini-ngrx] dispatcher init'\n });\n const state = new MiniState<TimepickerState>(\n initialState,\n _dispatcher,\n timepickerReducer\n );\n super(_dispatcher, timepickerReducer, state);\n }\n}\n","/* tslint:disable:no-forward-ref max-file-line-count */\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges, ViewEncapsulation\n} from '@angular/core';\n\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerStore } from './reducer/timepicker.store';\nimport { getControlsValue } from './timepicker-controls.util';\nimport { TimepickerConfig } from './timepicker.config';\n\nimport {\n TimeChangeSource,\n TimepickerComponentState,\n TimepickerControls\n} from './timepicker.models';\n\nimport {\n isValidDate,\n padNumber,\n parseTime,\n isInputValid,\n isHourInputValid,\n isMinuteInputValid,\n isSecondInputValid,\n isInputLimitValid\n} from './timepicker.utils';\n\nimport { Subscription } from 'rxjs';\n\nimport { ControlValueAccessorModel } from './models';\n\nexport const TIMEPICKER_CONTROL_VALUE_ACCESSOR: ControlValueAccessorModel = {\n provide: NG_VALUE_ACCESSOR,\n /* tslint:disable-next-line: no-use-before-declare */\n useExisting: forwardRef(() => TimepickerComponent),\n multi: true\n};\n\n@Component({\n selector: 'timepicker',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [TIMEPICKER_CONTROL_VALUE_ACCESSOR, TimepickerStore],\n templateUrl: './timepicker.component.html',\n styles: [`\n .bs-chevron {\n border-style: solid;\n display: block;\n width: 9px;\n height: 9px;\n position: relative;\n border-width: 3px 0px 0 3px;\n }\n\n .bs-chevron-up {\n -webkit-transform: rotate(45deg);\n transform: rotate(45deg);\n top: 2px;\n }\n\n .bs-chevron-down {\n -webkit-transform: rotate(-135deg);\n transform: rotate(-135deg);\n top: -2px;\n }\n\n .bs-timepicker-field {\n width: 50px;\n padding: .375rem .55rem;\n }\n `],\n encapsulation: ViewEncapsulation.None\n})\nexport class TimepickerComponent\n implements ControlValueAccessor,\n TimepickerComponentState,\n TimepickerControls,\n OnChanges,\n OnDestroy {\n /** hours change step */\n @Input() hourStep: number;\n /** hours change step */\n @Input() minuteStep: number;\n /** seconds change step */\n @Input() secondsStep: number;\n /** if true hours and minutes fields will be readonly */\n @Input() readonlyInput: boolean;\n /** if true hours and minutes fields will be disabled */\n @Input() disabled: boolean;\n /** if true scroll inside hours and minutes inputs will change time */\n @Input() mousewheel: boolean;\n /** if true the values of hours and minutes can be changed using the up/down arrow keys on the keyboard */\n @Input() arrowkeys: boolean;\n /** if true spinner arrows above and below the inputs will be shown */\n @Input() showSpinners: boolean;\n /** if true meridian button will be shown */\n @Input() showMeridian: boolean;\n /** show minutes in timepicker */\n @Input() showMinutes: boolean;\n /** show seconds in timepicker */\n @Input() showSeconds: boolean;\n /** meridian labels based on locale */\n @Input() meridians: string[];\n /** minimum time user can select */\n @Input() min: Date;\n /** maximum time user can select */\n @Input() max: Date;\n /** placeholder for hours field in timepicker */\n @Input() hoursPlaceholder: string;\n /** placeholder for minutes field in timepicker */\n @Input() minutesPlaceholder: string;\n /** placeholder for seconds field in timepicker */\n @Input() secondsPlaceholder: string;\n\n /** emits true if value is a valid date */\n @Output() isValid = new EventEmitter<boolean>();\n\n // ui variables\n hours: string;\n minutes: string;\n seconds: string;\n meridian: string;\n\n /** @deprecated - please use `isEditable` instead */\n get isSpinnersVisible(): boolean {\n return this.showSpinners && !this.readonlyInput;\n }\n\n get isEditable(): boolean {\n return !(this.readonlyInput || this.disabled);\n }\n\n // min\\max validation for input fields\n invalidHours = false;\n invalidMinutes = false;\n invalidSeconds = false;\n\n // aria-label variables\n labelHours: string;\n labelMinutes: string;\n labelSeconds: string;\n\n // time picker controls state\n canIncrementHours: boolean;\n canIncrementMinutes: boolean;\n canIncrementSeconds: boolean;\n\n canDecrementHours: boolean;\n canDecrementMinutes: boolean;\n canDecrementSeconds: boolean;\n\n canToggleMeridian: boolean;\n\n // control value accessor methods\n // tslint:disable-next-line:no-any\n onChange = Function.prototype;\n // tslint:disable-next-line:no-any\n onTouched = Function.prototype;\n\n timepickerSub: Subscription;\n\n constructor(\n _config: TimepickerConfig,\n private _cd: ChangeDetectorRef,\n private _store: TimepickerStore,\n private _timepickerActions: TimepickerActions\n ) {\n Object.assign(this, _config);\n\n this.timepickerSub = _store\n .select(state => state.value)\n .subscribe((value: Date) => {\n // update UI values if date changed\n this._renderTime(value);\n this.onChange(value);\n\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n });\n\n _store\n .select(state => state.controls)\n .subscribe((controlsState: TimepickerControls) => {\n this.isValid.emit(isInputValid(this.hours, this.minutes, this.seconds, this.isPM()));\n Object.assign(this, controlsState);\n _cd.markForCheck();\n });\n }\n\n resetValidation(): void {\n this.invalidHours = false;\n this.invalidMinutes = false;\n this.invalidSeconds = false;\n }\n\n isPM(): boolean {\n return this.showMeridian && this.meridian === this.meridians[1];\n }\n\n prevDef($event: Event) {\n $event.preventDefault();\n }\n\n wheelSign($event: WheelEventInit): number {\n return Math.sign($event.deltaY) * -1;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this._store.dispatch(\n this._timepickerActions.updateControls(getControlsValue(this))\n );\n }\n\n changeHours(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(this._timepickerActions.changeHours({ step, source }));\n }\n\n changeMinutes(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeMinutes({ step, source })\n );\n }\n\n changeSeconds(step: number, source: TimeChangeSource = ''): void {\n this.resetValidation();\n this._store.dispatch(\n this._timepickerActions.changeSeconds({ step, source })\n );\n }\n\n updateHours(hours: string): void {\n this.resetValidation();\n this.hours = hours;\n\n const isValid = isHourInputValid(this.hours, this.isPM()) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidHours = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateMinutes(minutes: string) {\n this.resetValidation();\n this.minutes = minutes;\n\n const isValid = isMinuteInputValid(this.minutes) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidMinutes = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n updateSeconds(seconds: string) {\n this.resetValidation();\n this.seconds = seconds;\n\n const isValid = isSecondInputValid(this.seconds) && this.isValidLimit();\n\n if (!isValid) {\n this.invalidSeconds = true;\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._updateTime();\n }\n\n isValidLimit(): boolean {\n return isInputLimitValid({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n }, this.max, this.min);\n }\n\n _updateTime() {\n const _seconds = this.showSeconds ? this.seconds : void 0;\n const _minutes = this.showMinutes ? this.minutes : void 0;\n if (!isInputValid(this.hours, _minutes, _seconds, this.isPM())) {\n this.isValid.emit(false);\n this.onChange(null);\n\n return;\n }\n\n this._store.dispatch(\n this._timepickerActions.setTime({\n hour: this.hours,\n minute: this.minutes,\n seconds: this.seconds,\n isPM: this.isPM()\n })\n );\n }\n\n toggleMeridian(): void {\n if (!this.showMeridian || !this.isEditable) {\n return;\n }\n\n const _hoursPerDayHalf = 12;\n this._store.dispatch(\n this._timepickerActions.changeHours({\n step: _hoursPerDayHalf,\n source: ''\n })\n );\n }\n\n /**\n * Write a new value to the element.\n */\n writeValue(obj: string | null | undefined | Date): void {\n if (isValidDate(obj)) {\n this._store.dispatch(this._timepickerActions.writeValue(parseTime(obj)));\n } else if (obj == null) {\n this._store.dispatch(this._timepickerActions.writeValue(null));\n }\n }\n\n /**\n * Set the function to be called when the control receives a change event.\n */\n // tslint:disable-next-line:no-any\n registerOnChange(fn: (_: any) => {}): void {\n this.onChange = fn;\n }\n\n /**\n * Set the function to be called when the control receives a touch event.\n */\n registerOnTouched(fn: () => {}): void {\n this.onTouched = fn;\n }\n\n /**\n * This function is called when the control status changes to or from \"disabled\".\n * Depending on the value, it will enable or disable the appropriate DOM element.\n *\n * @param isDisabled\n */\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n this._cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.timepickerSub.unsubscribe();\n }\n\n private _renderTime(value: string | Date): void {\n if (!isValidDate(value)) {\n this.hours = '';\n this.minutes = '';\n this.seconds = '';\n this.meridian = this.meridians[0];\n\n return;\n }\n\n const _value = parseTime(value);\n const _hoursPerDayHalf = 12;\n let _hours = _value.getHours();\n\n if (this.showMeridian) {\n this.meridian = this.meridians[_hours >= _hoursPerDayHalf ? 1 : 0];\n _hours = _hours % _hoursPerDayHalf;\n // should be 12 PM, not 00 PM\n if (_hours === 0) {\n _hours = _hoursPerDayHalf;\n }\n }\n\n this.hours = padNumber(_hours);\n this.minutes = padNumber(_value.getMinutes());\n this.seconds = padNumber(_value.getUTCSeconds());\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { TimepickerComponent } from './timepicker.component';\nimport { TimepickerActions } from './reducer/timepicker.actions';\nimport { TimepickerConfig } from './timepicker.config';\nimport { TimepickerStore } from './reducer/timepicker.store';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [TimepickerComponent],\n exports: [TimepickerComponent]\n})\nexport class TimepickerModule {\n static forRoot(): ModuleWithProviders {\n return {\n ngModule: TimepickerModule,\n providers: [TimepickerConfig, TimepickerActions, TimepickerStore]\n };\n }\n}\n"],"names":["tslib_1.__extends"],"mappings":"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"}
|