ngx-bootstrap 18.1.3 → 19.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs +13 -14
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -1
- package/alert/fesm2022/ngx-bootstrap-alert.mjs +10 -10
- package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -1
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs +13 -13
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -1
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs +13 -13
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -1
- package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -1
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs +7 -8
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -1
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs +3 -3
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -1
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs +85 -86
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -1
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs +22 -25
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -1
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs +19 -19
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -1
- package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -1
- package/modal/fesm2022/ngx-bootstrap-modal.mjs +22 -24
- package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -1
- package/package.json +1 -3
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs +13 -13
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -1
- package/popover/fesm2022/ngx-bootstrap-popover.mjs +13 -13
- package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -1
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs +3 -3
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -1
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs +13 -13
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -1
- package/rating/fesm2022/ngx-bootstrap-rating.mjs +10 -10
- package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -1
- package/schematics/ng-add/index.js +2 -3
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/utils/addStyles.js +1 -2
- package/schematics/utils/addStyles.js.map +1 -1
- package/schematics/utils/current_dependency_versions.json +1 -1
- package/schematics/utils/getVersions.js +2 -3
- package/schematics/utils/getVersions.js.map +1 -1
- package/schematics/utils/index.js +6 -7
- package/schematics/utils/index.js.map +1 -1
- package/schematics/utils/ng-module-imports.js +1 -2
- package/schematics/utils/ng-module-imports.js.map +1 -1
- package/schematics/utils/project-main-file.js +1 -2
- package/schematics/utils/project-main-file.js.map +1 -1
- package/schematics/utils/project-targets.js +1 -2
- package/schematics/utils/project-targets.js.map +1 -1
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs +12 -14
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -1
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs +19 -19
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -1
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs +16 -16
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -1
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs +13 -13
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -1
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs +13 -14
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -1
- package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -1
- package/accordion/esm2022/accordion-group.component.mjs +0 -85
- package/accordion/esm2022/accordion.component.mjs +0 -57
- package/accordion/esm2022/accordion.config.mjs +0 -22
- package/accordion/esm2022/accordion.module.mjs +0 -24
- package/accordion/esm2022/index.mjs +0 -2
- package/accordion/esm2022/ngx-bootstrap-accordion.mjs +0 -5
- package/accordion/esm2022/public_api.mjs +0 -5
- package/alert/esm2022/alert.component.mjs +0 -77
- package/alert/esm2022/alert.config.mjs +0 -21
- package/alert/esm2022/alert.module.mjs +0 -23
- package/alert/esm2022/index.mjs +0 -2
- package/alert/esm2022/ngx-bootstrap-alert.mjs +0 -5
- package/alert/esm2022/public_api.mjs +0 -4
- package/buttons/esm2022/button-checkbox.directive.mjs +0 -88
- package/buttons/esm2022/button-radio-group.directive.mjs +0 -158
- package/buttons/esm2022/button-radio.directive.mjs +0 -189
- package/buttons/esm2022/buttons.module.mjs +0 -25
- package/buttons/esm2022/index.mjs +0 -2
- package/buttons/esm2022/ngx-bootstrap-buttons.mjs +0 -5
- package/buttons/esm2022/public_api.mjs +0 -5
- package/carousel/esm2022/carousel.component.mjs +0 -712
- package/carousel/esm2022/carousel.config.mjs +0 -32
- package/carousel/esm2022/carousel.module.mjs +0 -24
- package/carousel/esm2022/index.mjs +0 -2
- package/carousel/esm2022/models/index.mjs +0 -2
- package/carousel/esm2022/ngx-bootstrap-carousel.mjs +0 -5
- package/carousel/esm2022/public_api.mjs +0 -5
- package/carousel/esm2022/slide.component.mjs +0 -65
- package/carousel/esm2022/utils.mjs +0 -32
- package/chronos/esm2022/create/check-overflow.mjs +0 -30
- package/chronos/esm2022/create/clone.mjs +0 -6
- package/chronos/esm2022/create/date-from-array.mjs +0 -19
- package/chronos/esm2022/create/from-anything.mjs +0 -106
- package/chronos/esm2022/create/from-array.mjs +0 -135
- package/chronos/esm2022/create/from-object.mjs +0 -17
- package/chronos/esm2022/create/from-string-and-array.mjs +0 -38
- package/chronos/esm2022/create/from-string-and-format.mjs +0 -106
- package/chronos/esm2022/create/from-string.mjs +0 -222
- package/chronos/esm2022/create/local.mjs +0 -16
- package/chronos/esm2022/create/parsing-flags.mjs +0 -26
- package/chronos/esm2022/create/parsing.types.mjs +0 -2
- package/chronos/esm2022/create/valid.mjs +0 -42
- package/chronos/esm2022/duration/bubble.mjs +0 -47
- package/chronos/esm2022/duration/constructor.mjs +0 -130
- package/chronos/esm2022/duration/create.mjs +0 -112
- package/chronos/esm2022/duration/humanize.mjs +0 -79
- package/chronos/esm2022/duration/valid.mjs +0 -43
- package/chronos/esm2022/format/format.mjs +0 -50
- package/chronos/esm2022/format.mjs +0 -46
- package/chronos/esm2022/i18n/ar.mjs +0 -132
- package/chronos/esm2022/i18n/bg.mjs +0 -90
- package/chronos/esm2022/i18n/ca.mjs +0 -87
- package/chronos/esm2022/i18n/cs.mjs +0 -175
- package/chronos/esm2022/i18n/da.mjs +0 -49
- package/chronos/esm2022/i18n/de.mjs +0 -67
- package/chronos/esm2022/i18n/en-gb.mjs +0 -57
- package/chronos/esm2022/i18n/es-do.mjs +0 -81
- package/chronos/esm2022/i18n/es-pr.mjs +0 -74
- package/chronos/esm2022/i18n/es-us.mjs +0 -75
- package/chronos/esm2022/i18n/es.mjs +0 -80
- package/chronos/esm2022/i18n/et.mjs +0 -69
- package/chronos/esm2022/i18n/fa.mjs +0 -130
- package/chronos/esm2022/i18n/fi.mjs +0 -96
- package/chronos/esm2022/i18n/fr-ca.mjs +0 -69
- package/chronos/esm2022/i18n/fr.mjs +0 -72
- package/chronos/esm2022/i18n/gl.mjs +0 -80
- package/chronos/esm2022/i18n/he.mjs +0 -94
- package/chronos/esm2022/i18n/hi.mjs +0 -119
- package/chronos/esm2022/i18n/hr.mjs +0 -58
- package/chronos/esm2022/i18n/hu.mjs +0 -100
- package/chronos/esm2022/i18n/id.mjs +0 -78
- package/chronos/esm2022/i18n/it.mjs +0 -61
- package/chronos/esm2022/i18n/ja.mjs +0 -71
- package/chronos/esm2022/i18n/ka.mjs +0 -83
- package/chronos/esm2022/i18n/kk.mjs +0 -76
- package/chronos/esm2022/i18n/ko.mjs +0 -72
- package/chronos/esm2022/i18n/lt.mjs +0 -112
- package/chronos/esm2022/i18n/lv.mjs +0 -52
- package/chronos/esm2022/i18n/mn.mjs +0 -94
- package/chronos/esm2022/i18n/nb.mjs +0 -53
- package/chronos/esm2022/i18n/nl-be.mjs +0 -77
- package/chronos/esm2022/i18n/nl.mjs +0 -76
- package/chronos/esm2022/i18n/pl.mjs +0 -122
- package/chronos/esm2022/i18n/pt-br.mjs +0 -52
- package/chronos/esm2022/i18n/ro.mjs +0 -66
- package/chronos/esm2022/i18n/ru.mjs +0 -177
- package/chronos/esm2022/i18n/sk.mjs +0 -153
- package/chronos/esm2022/i18n/sl.mjs +0 -179
- package/chronos/esm2022/i18n/sq.mjs +0 -50
- package/chronos/esm2022/i18n/sv.mjs +0 -59
- package/chronos/esm2022/i18n/th-be.mjs +0 -73
- package/chronos/esm2022/i18n/th.mjs +0 -58
- package/chronos/esm2022/i18n/tr.mjs +0 -78
- package/chronos/esm2022/i18n/uk.mjs +0 -143
- package/chronos/esm2022/i18n/vi.mjs +0 -70
- package/chronos/esm2022/i18n/zh-cn.mjs +0 -109
- package/chronos/esm2022/index.mjs +0 -2
- package/chronos/esm2022/locale/calendar.mjs +0 -9
- package/chronos/esm2022/locale/locale.class.mjs +0 -532
- package/chronos/esm2022/locale/locale.defaults.mjs +0 -40
- package/chronos/esm2022/locale/locales.mjs +0 -228
- package/chronos/esm2022/moment/add-subtract.mjs +0 -35
- package/chronos/esm2022/moment/calendar.mjs +0 -41
- package/chronos/esm2022/moment/diff.mjs +0 -70
- package/chronos/esm2022/moment/min-max.mjs +0 -38
- package/chronos/esm2022/ngx-bootstrap-chronos.mjs +0 -5
- package/chronos/esm2022/parse/regex.mjs +0 -47
- package/chronos/esm2022/parse/token.mjs +0 -31
- package/chronos/esm2022/public_api.mjs +0 -59
- package/chronos/esm2022/testing/chain.mjs +0 -708
- package/chronos/esm2022/types.mjs +0 -2
- package/chronos/esm2022/units/aliases.mjs +0 -35
- package/chronos/esm2022/units/constants.mjs +0 -11
- package/chronos/esm2022/units/day-of-month.mjs +0 -31
- package/chronos/esm2022/units/day-of-week.mjs +0 -129
- package/chronos/esm2022/units/day-of-year.mjs +0 -37
- package/chronos/esm2022/units/hour.mjs +0 -127
- package/chronos/esm2022/units/index.mjs +0 -19
- package/chronos/esm2022/units/millisecond.mjs +0 -59
- package/chronos/esm2022/units/minute.mjs +0 -23
- package/chronos/esm2022/units/month.mjs +0 -63
- package/chronos/esm2022/units/offset.mjs +0 -209
- package/chronos/esm2022/units/priorities.mjs +0 -21
- package/chronos/esm2022/units/quarter.mjs +0 -39
- package/chronos/esm2022/units/second.mjs +0 -23
- package/chronos/esm2022/units/timestamp.mjs +0 -28
- package/chronos/esm2022/units/timezone.mjs +0 -19
- package/chronos/esm2022/units/week-calendar-utils.mjs +0 -70
- package/chronos/esm2022/units/week-year.mjs +0 -101
- package/chronos/esm2022/units/week.mjs +0 -58
- package/chronos/esm2022/units/year.mjs +0 -60
- package/chronos/esm2022/utils/abs-ceil.mjs +0 -4
- package/chronos/esm2022/utils/abs-round.mjs +0 -4
- package/chronos/esm2022/utils/compare-arrays.mjs +0 -16
- package/chronos/esm2022/utils/date-compare.mjs +0 -55
- package/chronos/esm2022/utils/date-getters.mjs +0 -67
- package/chronos/esm2022/utils/date-setters.mjs +0 -75
- package/chronos/esm2022/utils/defaults.mjs +0 -11
- package/chronos/esm2022/utils/start-end-of.mjs +0 -57
- package/chronos/esm2022/utils/type-checks.mjs +0 -58
- package/chronos/esm2022/utils/zero-fill.mjs +0 -10
- package/chronos/esm2022/utils.mjs +0 -7
- package/collapse/esm2022/collapse-animations.mjs +0 -11
- package/collapse/esm2022/collapse.directive.mjs +0 -169
- package/collapse/esm2022/collapse.module.mjs +0 -23
- package/collapse/esm2022/index.mjs +0 -2
- package/collapse/esm2022/ngx-bootstrap-collapse.mjs +0 -5
- package/collapse/esm2022/public_api.mjs +0 -3
- package/component-loader/esm2022/bs-component-ref.class.mjs +0 -3
- package/component-loader/esm2022/component-loader.class.mjs +0 -292
- package/component-loader/esm2022/component-loader.factory.mjs +0 -35
- package/component-loader/esm2022/content-ref.class.mjs +0 -16
- package/component-loader/esm2022/index.mjs +0 -2
- package/component-loader/esm2022/listen-options.model.mjs +0 -2
- package/component-loader/esm2022/ngx-bootstrap-component-loader.mjs +0 -5
- package/component-loader/esm2022/public_api.mjs +0 -5
- package/datepicker/esm2022/base/bs-datepicker-container.mjs +0 -76
- package/datepicker/esm2022/bs-datepicker-inline.component.mjs +0 -163
- package/datepicker/esm2022/bs-datepicker-inline.config.mjs +0 -14
- package/datepicker/esm2022/bs-datepicker-input.directive.mjs +0 -172
- package/datepicker/esm2022/bs-datepicker.component.mjs +0 -307
- package/datepicker/esm2022/bs-datepicker.config.mjs +0 -101
- package/datepicker/esm2022/bs-datepicker.module.mjs +0 -105
- package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +0 -169
- package/datepicker/esm2022/bs-daterangepicker-inline.config.mjs +0 -21
- package/datepicker/esm2022/bs-daterangepicker-input.directive.mjs +0 -215
- package/datepicker/esm2022/bs-daterangepicker.component.mjs +0 -302
- package/datepicker/esm2022/bs-daterangepicker.config.mjs +0 -19
- package/datepicker/esm2022/bs-locale.service.mjs +0 -32
- package/datepicker/esm2022/datepicker-animations.mjs +0 -16
- package/datepicker/esm2022/engine/calc-days-calendar.mjs +0 -21
- package/datepicker/esm2022/engine/flag-days-calendar.mjs +0 -93
- package/datepicker/esm2022/engine/flag-months-calendar.mjs +0 -45
- package/datepicker/esm2022/engine/flag-years-calendar.mjs +0 -42
- package/datepicker/esm2022/engine/format-days-calendar.mjs +0 -33
- package/datepicker/esm2022/engine/format-months-calendar.mjs +0 -23
- package/datepicker/esm2022/engine/format-years-calendar.mjs +0 -39
- package/datepicker/esm2022/engine/view-mode.mjs +0 -4
- package/datepicker/esm2022/index.mjs +0 -2
- package/datepicker/esm2022/models/index.mjs +0 -9
- package/datepicker/esm2022/ngx-bootstrap-datepicker.mjs +0 -5
- package/datepicker/esm2022/public_api.mjs +0 -17
- package/datepicker/esm2022/reducer/_defaults.mjs +0 -6
- package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +0 -143
- package/datepicker/esm2022/reducer/bs-datepicker.effects.mjs +0 -182
- package/datepicker/esm2022/reducer/bs-datepicker.reducer.mjs +0 -378
- package/datepicker/esm2022/reducer/bs-datepicker.state.mjs +0 -18
- package/datepicker/esm2022/reducer/bs-datepicker.store.mjs +0 -22
- package/datepicker/esm2022/themes/bs/bs-calendar-layout.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-current-date-view.component.mjs +0 -17
- package/datepicker/esm2022/themes/bs/bs-custom-dates-view.component.mjs +0 -55
- package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +0 -199
- package/datepicker/esm2022/themes/bs/bs-datepicker-day-decorator.directive.mjs +0 -48
- package/datepicker/esm2022/themes/bs/bs-datepicker-inline-container.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-datepicker-navigation-view.component.mjs +0 -125
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +0 -275
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-inline-container.component.mjs +0 -49
- package/datepicker/esm2022/themes/bs/bs-days-calendar-view.component.mjs +0 -233
- package/datepicker/esm2022/themes/bs/bs-months-calendar-view.component.mjs +0 -95
- package/datepicker/esm2022/themes/bs/bs-timepicker-view.component.mjs +0 -56
- package/datepicker/esm2022/themes/bs/bs-years-calendar-view.component.mjs +0 -96
- package/datepicker/esm2022/utils/bs-calendar-utils.mjs +0 -117
- package/datepicker/esm2022/utils/copy-time-utils.mjs +0 -10
- package/datepicker/esm2022/utils/matrix-utils.mjs +0 -14
- package/dropdown/esm2022/bs-dropdown-container.component.mjs +0 -81
- package/dropdown/esm2022/bs-dropdown-menu.directive.mjs +0 -23
- package/dropdown/esm2022/bs-dropdown-toggle.directive.mjs +0 -88
- package/dropdown/esm2022/bs-dropdown.config.mjs +0 -24
- package/dropdown/esm2022/bs-dropdown.directive.mjs +0 -343
- package/dropdown/esm2022/bs-dropdown.module.mjs +0 -40
- package/dropdown/esm2022/bs-dropdown.state.mjs +0 -25
- package/dropdown/esm2022/dropdown-animations.mjs +0 -7
- package/dropdown/esm2022/index.mjs +0 -2
- package/dropdown/esm2022/ngx-bootstrap-dropdown.mjs +0 -5
- package/dropdown/esm2022/public_api.mjs +0 -8
- package/esm2022/index.mjs +0 -2
- package/esm2022/ngx-bootstrap.mjs +0 -5
- package/focus-trap/esm2022/boolean-property.mjs +0 -12
- package/focus-trap/esm2022/focus-trap-manager.mjs +0 -54
- package/focus-trap/esm2022/focus-trap.mjs +0 -411
- package/focus-trap/esm2022/focus-trap.module.mjs +0 -24
- package/focus-trap/esm2022/index.mjs +0 -2
- package/focus-trap/esm2022/interactivity-checker.mjs +0 -241
- package/focus-trap/esm2022/ngx-bootstrap-focus-trap.mjs +0 -5
- package/focus-trap/esm2022/platform.mjs +0 -80
- package/focus-trap/esm2022/public_api.mjs +0 -4
- package/locale/esm2022/index.mjs +0 -2
- package/locale/esm2022/ngx-bootstrap-locale.mjs +0 -5
- package/locale/esm2022/public_api.mjs +0 -47
- package/mini-ngrx/esm2022/index.mjs +0 -2
- package/mini-ngrx/esm2022/ngx-bootstrap-mini-ngrx.mjs +0 -5
- package/mini-ngrx/esm2022/public_api.mjs +0 -3
- package/mini-ngrx/esm2022/state.class.mjs +0 -16
- package/mini-ngrx/esm2022/store.class.mjs +0 -42
- package/modal/esm2022/bs-modal-ref.service.mjs +0 -22
- package/modal/esm2022/bs-modal.service.mjs +0 -231
- package/modal/esm2022/index.mjs +0 -2
- package/modal/esm2022/modal-backdrop.component.mjs +0 -51
- package/modal/esm2022/modal-backdrop.options.mjs +0 -7
- package/modal/esm2022/modal-container.component.mjs +0 -156
- package/modal/esm2022/modal-options.class.mjs +0 -46
- package/modal/esm2022/modal.directive.mjs +0 -365
- package/modal/esm2022/modal.module.mjs +0 -44
- package/modal/esm2022/models/index.mjs +0 -2
- package/modal/esm2022/ngx-bootstrap-modal.mjs +0 -5
- package/modal/esm2022/public_api.mjs +0 -9
- package/pagination/esm2022/index.mjs +0 -2
- package/pagination/esm2022/models/index.mjs +0 -2
- package/pagination/esm2022/ngx-bootstrap-pagination.mjs +0 -5
- package/pagination/esm2022/pager.component.mjs +0 -256
- package/pagination/esm2022/pagination.component.mjs +0 -257
- package/pagination/esm2022/pagination.config.mjs +0 -35
- package/pagination/esm2022/pagination.module.mjs +0 -25
- package/pagination/esm2022/public_api.mjs +0 -5
- package/popover/esm2022/index.mjs +0 -2
- package/popover/esm2022/ngx-bootstrap-popover.mjs +0 -5
- package/popover/esm2022/popover-container.component.mjs +0 -45
- package/popover/esm2022/popover.config.mjs +0 -35
- package/popover/esm2022/popover.directive.mjs +0 -241
- package/popover/esm2022/popover.module.mjs +0 -25
- package/popover/esm2022/public_api.mjs +0 -5
- package/positioning/esm2022/index.mjs +0 -2
- package/positioning/esm2022/models/index.mjs +0 -53
- package/positioning/esm2022/modifiers/arrow.mjs +0 -56
- package/positioning/esm2022/modifiers/flip.mjs +0 -65
- package/positioning/esm2022/modifiers/index.mjs +0 -6
- package/positioning/esm2022/modifiers/initData.mjs +0 -44
- package/positioning/esm2022/modifiers/preventOverflow.mjs +0 -54
- package/positioning/esm2022/modifiers/shift.mjs +0 -24
- package/positioning/esm2022/ng-positioning.mjs +0 -39
- package/positioning/esm2022/ngx-bootstrap-positioning.mjs +0 -5
- package/positioning/esm2022/positioning.service.mjs +0 -71
- package/positioning/esm2022/public_api.mjs +0 -5
- package/positioning/esm2022/utils/checkMargin.mjs +0 -32
- package/positioning/esm2022/utils/computeAutoPlacement.mjs +0 -55
- package/positioning/esm2022/utils/findCommonOffsetParent.mjs +0 -40
- package/positioning/esm2022/utils/getBordersSize.mjs +0 -10
- package/positioning/esm2022/utils/getBoundaries.mjs +0 -70
- package/positioning/esm2022/utils/getBoundingClientRect.mjs +0 -56
- package/positioning/esm2022/utils/getClientRect.mjs +0 -8
- package/positioning/esm2022/utils/getFixedPositionOffsetParent.mjs +0 -16
- package/positioning/esm2022/utils/getOffsetParent.mjs +0 -33
- package/positioning/esm2022/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -50
- package/positioning/esm2022/utils/getOffsets.mjs +0 -11
- package/positioning/esm2022/utils/getOppositePlacement.mjs +0 -8
- package/positioning/esm2022/utils/getOppositeVariation.mjs +0 -13
- package/positioning/esm2022/utils/getOuterSizes.mjs +0 -12
- package/positioning/esm2022/utils/getParentNode.mjs +0 -12
- package/positioning/esm2022/utils/getReferenceOffsets.mjs +0 -13
- package/positioning/esm2022/utils/getRoot.mjs +0 -10
- package/positioning/esm2022/utils/getScroll.mjs +0 -14
- package/positioning/esm2022/utils/getScrollParent.mjs +0 -28
- package/positioning/esm2022/utils/getStyleComputedProperty.mjs +0 -12
- package/positioning/esm2022/utils/getTargetOffsets.mjs +0 -30
- package/positioning/esm2022/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -19
- package/positioning/esm2022/utils/getWindowSizes.mjs +0 -14
- package/positioning/esm2022/utils/index.mjs +0 -24
- package/positioning/esm2022/utils/isFixed.mjs +0 -16
- package/positioning/esm2022/utils/isModifierEnabled.mjs +0 -4
- package/positioning/esm2022/utils/isNumeric.mjs +0 -10
- package/positioning/esm2022/utils/isOffsetContainer.mjs +0 -11
- package/positioning/esm2022/utils/setStyles.mjs +0 -21
- package/positioning/esm2022/utils/updateContainerClass.mjs +0 -32
- package/progressbar/esm2022/bar.component.mjs +0 -72
- package/progressbar/esm2022/index.mjs +0 -2
- package/progressbar/esm2022/ngx-bootstrap-progressbar.mjs +0 -5
- package/progressbar/esm2022/progressbar-type.interface.mjs +0 -2
- package/progressbar/esm2022/progressbar.component.mjs +0 -53
- package/progressbar/esm2022/progressbar.config.mjs +0 -19
- package/progressbar/esm2022/progressbar.module.mjs +0 -24
- package/progressbar/esm2022/public_api.mjs +0 -5
- package/rating/esm2022/index.mjs +0 -2
- package/rating/esm2022/models/index.mjs +0 -2
- package/rating/esm2022/ngx-bootstrap-rating.mjs +0 -5
- package/rating/esm2022/public_api.mjs +0 -4
- package/rating/esm2022/rating.component.mjs +0 -121
- package/rating/esm2022/rating.config.mjs +0 -18
- package/rating/esm2022/rating.module.mjs +0 -23
- package/sortable/esm2022/draggable-item.mjs +0 -2
- package/sortable/esm2022/draggable-item.service.mjs +0 -36
- package/sortable/esm2022/index.mjs +0 -2
- package/sortable/esm2022/ngx-bootstrap-sortable.mjs +0 -5
- package/sortable/esm2022/public_api.mjs +0 -4
- package/sortable/esm2022/sortable.component.mjs +0 -270
- package/sortable/esm2022/sortable.module.mjs +0 -23
- package/tabs/esm2022/index.mjs +0 -2
- package/tabs/esm2022/ng-transclude.directive.mjs +0 -29
- package/tabs/esm2022/ngx-bootstrap-tabs.mjs +0 -5
- package/tabs/esm2022/public_api.mjs +0 -7
- package/tabs/esm2022/tab-heading.directive.mjs +0 -21
- package/tabs/esm2022/tab.directive.mjs +0 -118
- package/tabs/esm2022/tabs.module.mjs +0 -41
- package/tabs/esm2022/tabset.component.mjs +0 -216
- package/tabs/esm2022/tabset.config.mjs +0 -21
- package/timepicker/esm2022/index.mjs +0 -2
- package/timepicker/esm2022/models/index.mjs +0 -2
- package/timepicker/esm2022/ngx-bootstrap-timepicker.mjs +0 -5
- package/timepicker/esm2022/public_api.mjs +0 -6
- package/timepicker/esm2022/reducer/timepicker.actions.mjs +0 -53
- package/timepicker/esm2022/reducer/timepicker.reducer.mjs +0 -83
- package/timepicker/esm2022/reducer/timepicker.store.mjs +0 -21
- package/timepicker/esm2022/timepicker-controls.util.mjs +0 -123
- package/timepicker/esm2022/timepicker.component.mjs +0 -334
- package/timepicker/esm2022/timepicker.config.mjs +0 -54
- package/timepicker/esm2022/timepicker.models.mjs +0 -2
- package/timepicker/esm2022/timepicker.module.mjs +0 -23
- package/timepicker/esm2022/timepicker.utils.mjs +0 -152
- package/tooltip/esm2022/index.mjs +0 -2
- package/tooltip/esm2022/ngx-bootstrap-tooltip.mjs +0 -5
- package/tooltip/esm2022/public_api.mjs +0 -5
- package/tooltip/esm2022/tooltip-container.component.mjs +0 -48
- package/tooltip/esm2022/tooltip.config.mjs +0 -22
- package/tooltip/esm2022/tooltip.directive.mjs +0 -344
- package/tooltip/esm2022/tooltip.module.mjs +0 -25
- package/typeahead/esm2022/index.mjs +0 -2
- package/typeahead/esm2022/latin-map.mjs +0 -827
- package/typeahead/esm2022/models/index.mjs +0 -2
- package/typeahead/esm2022/ngx-bootstrap-typeahead.mjs +0 -5
- package/typeahead/esm2022/public_api.mjs +0 -9
- package/typeahead/esm2022/typeahead-animations.mjs +0 -16
- package/typeahead/esm2022/typeahead-container.component.mjs +0 -310
- package/typeahead/esm2022/typeahead-match.class.mjs +0 -15
- package/typeahead/esm2022/typeahead-options.class.mjs +0 -8
- package/typeahead/esm2022/typeahead-order.class.mjs +0 -2
- package/typeahead/esm2022/typeahead-utils.mjs +0 -77
- package/typeahead/esm2022/typeahead.config.mjs +0 -34
- package/typeahead/esm2022/typeahead.directive.mjs +0 -573
- package/typeahead/esm2022/typeahead.module.mjs +0 -25
- package/utils/esm2022/decorators.mjs +0 -23
- package/utils/esm2022/facade/browser.mjs +0 -26
- package/utils/esm2022/index.mjs +0 -2
- package/utils/esm2022/linked-list.class.mjs +0 -247
- package/utils/esm2022/ngx-bootstrap-utils.mjs +0 -5
- package/utils/esm2022/public_api.mjs +0 -10
- package/utils/esm2022/theme-provider.mjs +0 -48
- package/utils/esm2022/trigger.class.mjs +0 -14
- package/utils/esm2022/triggers.mjs +0 -120
- package/utils/esm2022/utils.class.mjs +0 -30
- package/utils/esm2022/warn-once.mjs +0 -11
@@ -1,63 +0,0 @@
|
|
1
|
-
import { addFormatToken } from '../format/format';
|
2
|
-
import { isLeapYear } from './year';
|
3
|
-
import { mod } from '../utils';
|
4
|
-
import { getMonth } from '../utils/date-getters';
|
5
|
-
import { addRegexToken, match1to2, match2 } from '../parse/regex';
|
6
|
-
import { addParseToken } from '../parse/token';
|
7
|
-
import { MONTH } from './constants';
|
8
|
-
import { toInt } from '../utils/type-checks';
|
9
|
-
import { addUnitPriority } from './priorities';
|
10
|
-
import { addUnitAlias } from './aliases';
|
11
|
-
import { getParsingFlags } from '../create/parsing-flags';
|
12
|
-
// todo: this is duplicate, source in date-getters.ts
|
13
|
-
export function daysInMonth(year, month) {
|
14
|
-
if (isNaN(year) || isNaN(month)) {
|
15
|
-
return NaN;
|
16
|
-
}
|
17
|
-
const modMonth = mod(month, 12);
|
18
|
-
const _year = year + (month - modMonth) / 12;
|
19
|
-
return modMonth === 1
|
20
|
-
? isLeapYear(_year) ? 29 : 28
|
21
|
-
: (31 - modMonth % 7 % 2);
|
22
|
-
}
|
23
|
-
export function initMonth() {
|
24
|
-
// FORMATTING
|
25
|
-
addFormatToken('M', ['MM', 2, false], 'Mo', function (date, opts) {
|
26
|
-
return (getMonth(date, opts.isUTC) + 1).toString(10);
|
27
|
-
});
|
28
|
-
addFormatToken('MMM', null, null, function (date, opts) {
|
29
|
-
return opts.locale.monthsShort(date, opts.format, opts.isUTC);
|
30
|
-
});
|
31
|
-
addFormatToken('MMMM', null, null, function (date, opts) {
|
32
|
-
return opts.locale.months(date, opts.format, opts.isUTC);
|
33
|
-
});
|
34
|
-
// ALIASES
|
35
|
-
addUnitAlias('month', 'M');
|
36
|
-
// PRIORITY
|
37
|
-
addUnitPriority('month', 8);
|
38
|
-
// PARSING
|
39
|
-
addRegexToken('M', match1to2);
|
40
|
-
addRegexToken('MM', match1to2, match2);
|
41
|
-
addRegexToken('MMM', function (isStrict, locale) {
|
42
|
-
return locale.monthsShortRegex(isStrict);
|
43
|
-
});
|
44
|
-
addRegexToken('MMMM', function (isStrict, locale) {
|
45
|
-
return locale.monthsRegex(isStrict);
|
46
|
-
});
|
47
|
-
addParseToken(['M', 'MM'], function (input, array, config) {
|
48
|
-
array[MONTH] = toInt(input) - 1;
|
49
|
-
return config;
|
50
|
-
});
|
51
|
-
addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {
|
52
|
-
const month = config._locale.monthsParse(input, token, config._strict);
|
53
|
-
// if we didn't find a month name, mark the date as invalid.
|
54
|
-
if (month != null) {
|
55
|
-
array[MONTH] = month;
|
56
|
-
}
|
57
|
-
else {
|
58
|
-
getParsingFlags(config).invalidMonth = !!input;
|
59
|
-
}
|
60
|
-
return config;
|
61
|
-
});
|
62
|
-
}
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hyb25vcy91bml0cy9tb250aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNwQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUkxRCxxREFBcUQ7QUFDckQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFZLEVBQUUsS0FBYTtJQUNyRCxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNoQyxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7SUFDRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7SUFFN0MsT0FBTyxRQUFR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QUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRm9ybWF0VG9rZW4gfSBmcm9tICcuLi9mb3JtYXQvZm9ybWF0JztcbmltcG9ydCB7IGlzTGVhcFllYXIgfSBmcm9tICcuL3llYXInO1xuaW1wb3J0IHsgbW9kIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0TW9udGggfSBmcm9tICcuLi91dGlscy9kYXRlLWdldHRlcnMnO1xuaW1wb3J0IHsgYWRkUmVnZXhUb2tlbiwgbWF0Y2gxdG8yLCBtYXRjaDIgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGRQYXJzZVRva2VuIH0gZnJvbSAnLi4vcGFyc2UvdG9rZW4nO1xuaW1wb3J0IHsgTU9OVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0b0ludCB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcbmltcG9ydCB7IGFkZFVuaXRQcmlvcml0eSB9IGZyb20gJy4vcHJpb3JpdGllcyc7XG5pbXBvcnQgeyBhZGRVbml0QWxpYXMgfSBmcm9tICcuL2FsaWFzZXMnO1xuaW1wb3J0IHsgZ2V0UGFyc2luZ0ZsYWdzIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmctZmxhZ3MnO1xuaW1wb3J0IHsgRGF0ZVBhcnNpbmdDb25maWcgfSBmcm9tICcuLi9jcmVhdGUvcGFyc2luZy50eXBlcyc7XG5pbXBvcnQgeyBEYXRlQXJyYXksIERhdGVGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyB0b2RvOiB0aGlzIGlzIGR1cGxpY2F0ZSwgc291cmNlIGluIGRhdGUtZ2V0dGVycy50c1xuZXhwb3J0IGZ1bmN0aW9uIGRheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcik6IG51bWJlciB7XG4gIGlmIChpc05hTih5ZWFyKSB8fCBpc05hTihtb250aCkpIHtcbiAgICByZXR1cm4gTmFOO1xuICB9XG4gIGNvbnN0IG1vZE1vbnRoID0gbW9kKG1vbnRoLCAxMik7XG4gIGNvbnN0IF95ZWFyID0geWVhciArIChtb250aCAtIG1vZE1vbnRoKSAvIDEyO1xuXG4gIHJldHVybiBtb2RNb250aCA9PT0gMVxuICAgID8gaXNMZWFwWWVhcihfeWVhcikgPyAyOSA6IDI4XG4gICAgOiAoMzEgLSBtb2RNb250aCAlIDcgJSAyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRNb250aCgpIHtcbi8vIEZPUk1BVFRJTkdcblxuICBhZGRGb3JtYXRUb2tlbignTScsIFsnTU0nLCAyLCBmYWxzZV0sICdNbycsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIChnZXRNb250aChkYXRlLCBvcHRzLmlzVVRDKSArIDEpLnRvU3RyaW5nKDEwKTtcbiAgICB9XG4gICk7XG5cbiAgYWRkRm9ybWF0VG9rZW4oJ01NTScsIG51bGwsIG51bGwsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG9wdHMubG9jYWxlLm1vbnRoc1Nob3J0KGRhdGUsIG9wdHMuZm9ybWF0LCBvcHRzLmlzVVRDKTtcbiAgICB9XG4gICk7XG5cbiAgYWRkRm9ybWF0VG9rZW4oJ01NTU0nLCBudWxsLCBudWxsLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBvcHRzLmxvY2FsZS5tb250aHMoZGF0ZSwgb3B0cy5mb3JtYXQsIG9wdHMuaXNVVEMpO1xuICAgIH1cbiAgKTtcblxuXG4vLyBBTElBU0VTXG5cbiAgYWRkVW5pdEFsaWFzKCdtb250aCcsICdNJyk7XG5cbi8vIFBSSU9SSVRZXG5cbiAgYWRkVW5pdFByaW9yaXR5KCdtb250aCcsIDgpO1xuXG4vLyBQQVJTSU5HXG5cbiAgYWRkUmVnZXhUb2tlbignTScsIG1hdGNoMXRvMik7XG4gIGFkZFJlZ2V4VG9rZW4oJ01NJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICBhZGRSZWdleFRva2VuKCdNTU0nLCBmdW5jdGlvbihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5tb250aHNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgfSk7XG4gIGFkZFJlZ2V4VG9rZW4oJ01NTU0nLCBmdW5jdGlvbihpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5tb250aHNSZWdleChpc1N0cmljdCk7XG4gIH0pO1xuXG4gIGFkZFBhcnNlVG9rZW4oWydNJywgJ01NJ10sIGZ1bmN0aW9uKGlucHV0OiBzdHJpbmcsIGFycmF5OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgYXJyYXlbTU9OVEhdID0gdG9JbnQoaW5wdXQpIC0gMTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xuXG4gIGFkZFBhcnNlVG9rZW4oXG4gICAgWydNTU0nLCAnTU1NTSddLFxuICAgIGZ1bmN0aW9uKGlucHV0OiBzdHJpbmcsIGFycmF5OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcsIHRva2VuOiBzdHJpbmcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgICBjb25zdCBtb250aCA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgLy8gaWYgd2UgZGlkbid0IGZpbmQgYSBtb250aCBuYW1lLCBtYXJrIHRoZSBkYXRlIGFzIGludmFsaWQuXG4gICAgICBpZiAobW9udGggIT0gbnVsbCkge1xuICAgICAgICBhcnJheVtNT05USF0gPSBtb250aDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRNb250aCA9ICEhaW5wdXQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuICApO1xufVxuIl19
|
@@ -1,209 +0,0 @@
|
|
1
|
-
// FORMATTING
|
2
|
-
import { addFormatToken } from '../format/format';
|
3
|
-
import { zeroFill } from '../utils/zero-fill';
|
4
|
-
import { isNumber, isString, toInt } from '../utils/type-checks';
|
5
|
-
import { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';
|
6
|
-
import { add } from '../moment/add-subtract';
|
7
|
-
import { addParseToken } from '../parse/token';
|
8
|
-
import { cloneDate } from '../create/clone';
|
9
|
-
import { setMonth } from '../utils/date-setters';
|
10
|
-
function addOffsetFormatToken(token, separator) {
|
11
|
-
addFormatToken(token, null, null, function (date, config) {
|
12
|
-
let offset = getUTCOffset(date, { _isUTC: config.isUTC, _offset: config.offset });
|
13
|
-
let sign = '+';
|
14
|
-
if (offset < 0) {
|
15
|
-
offset = -offset;
|
16
|
-
sign = '-';
|
17
|
-
}
|
18
|
-
return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
|
19
|
-
});
|
20
|
-
}
|
21
|
-
export function initOffset() {
|
22
|
-
addOffsetFormatToken('Z', ':');
|
23
|
-
addOffsetFormatToken('ZZ', '');
|
24
|
-
// PARSING
|
25
|
-
addRegexToken('Z', matchShortOffset);
|
26
|
-
addRegexToken('ZZ', matchShortOffset);
|
27
|
-
addParseToken(['Z', 'ZZ'], function (input, array, config) {
|
28
|
-
config._useUTC = true;
|
29
|
-
config._tzm = offsetFromString(matchShortOffset, input);
|
30
|
-
return config;
|
31
|
-
});
|
32
|
-
}
|
33
|
-
// HELPERS
|
34
|
-
// timezone chunker
|
35
|
-
// '+10:00' > ['10', '00']
|
36
|
-
// '-1530' > ['-15', '30']
|
37
|
-
const chunkOffset = /([\+\-]|\d\d)/gi;
|
38
|
-
function offsetFromString(matcher, str) {
|
39
|
-
const matches = (str || '').match(matcher);
|
40
|
-
if (matches === null) {
|
41
|
-
return null;
|
42
|
-
}
|
43
|
-
const chunk = matches[matches.length - 1];
|
44
|
-
const parts = chunk.match(chunkOffset) || ['-', '0', '0'];
|
45
|
-
const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);
|
46
|
-
const _min = parts[0] === '+' ? minutes : -minutes;
|
47
|
-
return minutes === 0 ? 0 : _min;
|
48
|
-
}
|
49
|
-
// Return a moment from input, that is local/utc/zone equivalent to model.
|
50
|
-
export function cloneWithOffset(input, date, config = {}) {
|
51
|
-
if (!config._isUTC) {
|
52
|
-
return input;
|
53
|
-
}
|
54
|
-
const res = cloneDate(date);
|
55
|
-
// todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000
|
56
|
-
const offsetDiff = (config._offset || 0) * 60000;
|
57
|
-
const diff = input.valueOf() - res.valueOf() + offsetDiff;
|
58
|
-
// Use low-level api, because this fn is low-level api.
|
59
|
-
res.setTime(res.valueOf() + diff);
|
60
|
-
// todo: add timezone handling
|
61
|
-
// hooks.updateOffset(res, false);
|
62
|
-
return res;
|
63
|
-
}
|
64
|
-
export function getDateOffset(date) {
|
65
|
-
// On Firefox.24 Date#getTimezoneOffset returns a floating point.
|
66
|
-
// https://github.com/moment/moment/pull/1871
|
67
|
-
return -Math.round(date.getTimezoneOffset() / 15) * 15;
|
68
|
-
}
|
69
|
-
// HOOKS
|
70
|
-
// This function will be called whenever a moment is mutated.
|
71
|
-
// It is intended to keep the offset in sync with the timezone.
|
72
|
-
// todo: it's from moment timezones
|
73
|
-
// hooks.updateOffset = function () {
|
74
|
-
// };
|
75
|
-
// MOMENTS
|
76
|
-
// keepLocalTime = true means only change the timezone, without
|
77
|
-
// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
|
78
|
-
// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
|
79
|
-
// +0200, so we adjust the time as needed, to be valid.
|
80
|
-
//
|
81
|
-
// Keeping the time actually adds/subtracts (one hour)
|
82
|
-
// from the actual represented time. That is why we call updateOffset
|
83
|
-
// a second time. In case it wants us to change the offset again
|
84
|
-
// _changeInProgress == true case, then we have to adjust, because
|
85
|
-
// there is no such time in the given timezone.
|
86
|
-
export function getUTCOffset(date, config = {}) {
|
87
|
-
const _offset = config._offset || 0;
|
88
|
-
return config._isUTC ? _offset : getDateOffset(date);
|
89
|
-
}
|
90
|
-
export function setUTCOffset(date, input, keepLocalTime, keepMinutes, config = {}) {
|
91
|
-
const offset = config._offset || 0;
|
92
|
-
let localAdjust;
|
93
|
-
let _input = input;
|
94
|
-
let _date = date;
|
95
|
-
if (isString(_input)) {
|
96
|
-
_input = offsetFromString(matchShortOffset, _input);
|
97
|
-
if (_input === null) {
|
98
|
-
return _date;
|
99
|
-
}
|
100
|
-
}
|
101
|
-
else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {
|
102
|
-
_input = _input * 60;
|
103
|
-
}
|
104
|
-
if (!config._isUTC && keepLocalTime) {
|
105
|
-
localAdjust = getDateOffset(_date);
|
106
|
-
}
|
107
|
-
config._offset = _input;
|
108
|
-
config._isUTC = true;
|
109
|
-
if (localAdjust != null) {
|
110
|
-
_date = add(_date, localAdjust, 'minutes');
|
111
|
-
}
|
112
|
-
if (offset !== _input) {
|
113
|
-
if (!keepLocalTime || config._changeInProgress) {
|
114
|
-
_date = add(_date, _input - offset, 'minutes', config._isUTC);
|
115
|
-
// addSubtract(this, createDuration(_input - offset, 'm'), 1, false);
|
116
|
-
}
|
117
|
-
else if (!config._changeInProgress) {
|
118
|
-
config._changeInProgress = true;
|
119
|
-
// todo: add timezone handling
|
120
|
-
// hooks.updateOffset(this, true);
|
121
|
-
config._changeInProgress = null;
|
122
|
-
}
|
123
|
-
}
|
124
|
-
return _date;
|
125
|
-
}
|
126
|
-
/*
|
127
|
-
export function getSetZone(input, keepLocalTime) {
|
128
|
-
if (input != null) {
|
129
|
-
if (typeof input !== 'string') {
|
130
|
-
input = -input;
|
131
|
-
}
|
132
|
-
|
133
|
-
this.utcOffset(input, keepLocalTime);
|
134
|
-
|
135
|
-
return this;
|
136
|
-
} else {
|
137
|
-
return -this.utcOffset();
|
138
|
-
}
|
139
|
-
}
|
140
|
-
*/
|
141
|
-
export function setOffsetToUTC(date, keepLocalTime) {
|
142
|
-
return setUTCOffset(date, 0, keepLocalTime);
|
143
|
-
}
|
144
|
-
export function isDaylightSavingTime(date) {
|
145
|
-
return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))
|
146
|
-
|| getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));
|
147
|
-
}
|
148
|
-
/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {
|
149
|
-
if (this._isUTC) {
|
150
|
-
this.utcOffset(0, keepLocalTime);
|
151
|
-
this._isUTC = false;
|
152
|
-
|
153
|
-
if (keepLocalTime) {
|
154
|
-
this.subtract(getDateOffset(this), 'm');
|
155
|
-
}
|
156
|
-
}
|
157
|
-
return this;
|
158
|
-
}*/
|
159
|
-
export function setOffsetToParsedOffset(date, input, config = {}) {
|
160
|
-
if (config._tzm != null) {
|
161
|
-
return setUTCOffset(date, config._tzm, false, true, config);
|
162
|
-
}
|
163
|
-
if (isString(input)) {
|
164
|
-
const tZone = offsetFromString(matchOffset, input);
|
165
|
-
if (tZone != null) {
|
166
|
-
return setUTCOffset(date, tZone, false, false, config);
|
167
|
-
}
|
168
|
-
return setUTCOffset(date, 0, true, false, config);
|
169
|
-
}
|
170
|
-
return date;
|
171
|
-
}
|
172
|
-
export function hasAlignedHourOffset(date, input) {
|
173
|
-
const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;
|
174
|
-
return (getUTCOffset(date) - _input) % 60 === 0;
|
175
|
-
}
|
176
|
-
// DEPRECATED
|
177
|
-
/*export function isDaylightSavingTimeShifted() {
|
178
|
-
if (!isUndefined(this._isDSTShifted)) {
|
179
|
-
return this._isDSTShifted;
|
180
|
-
}
|
181
|
-
|
182
|
-
const c = {};
|
183
|
-
|
184
|
-
copyConfig(c, this);
|
185
|
-
c = prepareConfig(c);
|
186
|
-
|
187
|
-
if (c._a) {
|
188
|
-
const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
|
189
|
-
this._isDSTShifted = this.isValid() &&
|
190
|
-
compareArrays(c._a, other.toArray()) > 0;
|
191
|
-
} else {
|
192
|
-
this._isDSTShifted = false;
|
193
|
-
}
|
194
|
-
|
195
|
-
return this._isDSTShifted;
|
196
|
-
}*/
|
197
|
-
// in Khronos
|
198
|
-
/*export function isLocal() {
|
199
|
-
return this.isValid() ? !this._isUTC : false;
|
200
|
-
}
|
201
|
-
|
202
|
-
export function isUtcOffset() {
|
203
|
-
return this.isValid() ? this._isUTC : false;
|
204
|
-
}
|
205
|
-
|
206
|
-
export function isUtc() {
|
207
|
-
return this.isValid() ? this._isUTC && this._offset === 0 : false;
|
208
|
-
}*/
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Zmc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nocm9ub3MvdW5pdHMvb2Zmc2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGFBQWE7QUFFYixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRWpELFNBQVMsb0JBQW9CLENBQUMsS0FBYSxFQUFFLFNBQWlCO0lBQzVELGNBQWMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLElBQVUsRUFBRSxNQUFNO1FBQzVELElBQUksTUFBTSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDO1FBQ2YsSUFBSSxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUNiLENBQUM7UUFFRCxPQUFPLElBQUksR0FBRyxRQUFR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QUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsSUFBVSxFQUFFLEtBQVk7SUFDM0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUdELGFBQWE7QUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILGFBQWE7QUFDYjs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLy8gRk9STUFUVElOR1xuXG5pbXBvcnQgeyBhZGRGb3JtYXRUb2tlbiB9IGZyb20gJy4uL2Zvcm1hdC9mb3JtYXQnO1xuaW1wb3J0IHsgemVyb0ZpbGwgfSBmcm9tICcuLi91dGlscy96ZXJvLWZpbGwnO1xuaW1wb3J0IHsgRGF0ZVBhcnNpbmdDb25maWcgfSBmcm9tICcuLi9jcmVhdGUvcGFyc2luZy50eXBlcyc7XG5pbXBvcnQgeyBpc051bWJlciwgaXNTdHJpbmcsIHRvSW50IH0gZnJvbSAnLi4vdXRpbHMvdHlwZS1jaGVja3MnO1xuaW1wb3J0IHsgYWRkUmVnZXhUb2tlbiwgbWF0Y2hPZmZzZXQsIG1hdGNoU2hvcnRPZmZzZXQgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGQgfSBmcm9tICcuLi9tb21lbnQvYWRkLXN1YnRyYWN0JztcbmltcG9ydCB7IGFkZFBhcnNlVG9rZW4gfSBmcm9tICcuLi9wYXJzZS90b2tlbic7XG5pbXBvcnQgeyBEYXRlQXJyYXkgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjbG9uZURhdGUgfSBmcm9tICcuLi9jcmVhdGUvY2xvbmUnO1xuaW1wb3J0IHsgc2V0TW9udGggfSBmcm9tICcuLi91dGlscy9kYXRlLXNldHRlcnMnO1xuXG5mdW5jdGlvbiBhZGRPZmZzZXRGb3JtYXRUb2tlbih0b2tlbjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyk6IHZvaWQge1xuICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgbnVsbCwgbnVsbCwgZnVuY3Rpb24gKGRhdGU6IERhdGUsIGNvbmZpZyk6IHN0cmluZyB7XG4gICAgbGV0IG9mZnNldCA9IGdldFVUQ09mZnNldChkYXRlLCB7X2lzVVRDOiBjb25maWcuaXNVVEMsIF9vZmZzZXQ6IGNvbmZpZy5vZmZzZXR9KTtcbiAgICBsZXQgc2lnbiA9ICcrJztcbiAgICBpZiAob2Zmc2V0IDwgMCkge1xuICAgICAgb2Zmc2V0ID0gLW9mZnNldDtcbiAgICAgIHNpZ24gPSAnLSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNpZ24gKyB6ZXJvRmlsbCh+fihvZmZzZXQgLyA2MCksIDIpICsgc2VwYXJhdG9yICsgemVyb0ZpbGwofn4ob2Zmc2V0KSAlIDYwLCAyKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0T2Zmc2V0KCkge1xuICBhZGRPZmZzZXRGb3JtYXRUb2tlbignWicsICc6Jyk7XG4gIGFkZE9mZnNldEZvcm1hdFRva2VuKCdaWicsICcnKTtcblxuLy8gUEFSU0lOR1xuXG4gIGFkZFJlZ2V4VG9rZW4oJ1onLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgYWRkUmVnZXhUb2tlbignWlonLCBtYXRjaFNob3J0T2Zmc2V0KTtcbiAgYWRkUGFyc2VUb2tlbihbJ1onLCAnWlonXSwgZnVuY3Rpb24oaW5wdXQ6IHN0cmluZywgYXJyYXk6IERhdGVBcnJheSwgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgICBjb25maWcuX3VzZVVUQyA9IHRydWU7XG4gICAgY29uZmlnLl90em0gPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xufVxuXG4vLyBIRUxQRVJTXG5cbi8vIHRpbWV6b25lIGNodW5rZXJcbi8vICcrMTA6MDAnID4gWycxMCcsICAnMDAnXVxuLy8gJy0xNTMwJyAgPiBbJy0xNScsICczMCddXG5jb25zdCBjaHVua09mZnNldCA9IC8oW1xcK1xcLV18XFxkXFxkKS9naTtcblxuZnVuY3Rpb24gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaGVyOiBSZWdFeHAsIHN0cjogc3RyaW5nKTogbnVtYmVyIHtcbiAgY29uc3QgbWF0Y2hlcyA9IChzdHIgfHwgJycpLm1hdGNoKG1hdGNoZXIpO1xuXG4gIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBjaHVuayA9IG1hdGNoZXNbbWF0Y2hlcy5sZW5ndGggLSAxXTtcbiAgY29uc3QgcGFydHMgPSBjaHVuay5tYXRjaChjaHVua09mZnNldCkgfHwgWyctJywgJzAnLCAnMCddO1xuICBjb25zdCBtaW51dGVzID0gcGFyc2VJbnQocGFydHNbMV0sIDEwKSAqIDYwICsgdG9JbnQocGFydHNbMl0pO1xuICBjb25zdCBfbWluID0gcGFydHNbMF0gPT09ICcrJyA/IG1pbnV0ZXMgOiAtbWludXRlcztcblxuICByZXR1cm4gbWludXRlcyA9PT0gMCA/IDAgOiBfbWluO1xufVxuXG4vLyBSZXR1cm4gYSBtb21lbnQgZnJvbSBpbnB1dCwgdGhhdCBpcyBsb2NhbC91dGMvem9uZSBlcXVpdmFsZW50IHRvIG1vZGVsLlxuZXhwb3J0IGZ1bmN0aW9uIGNsb25lV2l0aE9mZnNldChpbnB1dDogRGF0ZSwgZGF0ZTogRGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyA9IHt9KTogRGF0ZSB7XG4gIGlmICghY29uZmlnLl9pc1VUQykge1xuICAgIHJldHVybiBpbnB1dDtcbiAgfVxuXG4gIGNvbnN0IHJlcyA9IGNsb25lRGF0ZShkYXRlKTtcbiAgLy8gdG9kbzogaW5wdXQuX2QgLSByZXMuX2QgKyAoKHJlcy5fb2Zmc2V0IHx8IDApIC0gKGlucHV0Ll9vZmZzZXQgfHwgMCkpKjYwMDAwXG4gIGNvbnN0IG9mZnNldERpZmYgPSAoY29uZmlnLl9vZmZzZXQgfHwgMCkgKiA2MDAwMDtcbiAgY29uc3QgZGlmZiA9IGlucHV0LnZhbHVlT2YoKSAtIHJlcy52YWx1ZU9mKCkgKyBvZmZzZXREaWZmO1xuICAvLyBVc2UgbG93LWxldmVsIGFwaSwgYmVjYXVzZSB0aGlzIGZuIGlzIGxvdy1sZXZlbCBhcGkuXG4gIHJlcy5zZXRUaW1lKHJlcy52YWx1ZU9mKCkgKyBkaWZmKTtcbiAgLy8gdG9kbzogYWRkIHRpbWV6b25lIGhhbmRsaW5nXG4gIC8vIGhvb2tzLnVwZGF0ZU9mZnNldChyZXMsIGZhbHNlKTtcblxuICByZXR1cm4gcmVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0ZU9mZnNldChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgLy8gT24gRmlyZWZveC4yNCBEYXRlI2dldFRpbWV6b25lT2Zmc2V0IHJldHVybnMgYSBmbG9hdGluZyBwb2ludC5cbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL21vbWVudC9tb21lbnQvcHVsbC8xODcxXG4gIHJldHVybiAtTWF0aC5yb3VuZChkYXRlLmdldFRpbWV6b25lT2Zmc2V0KCkgLyAxNSkgKiAxNTtcbn1cblxuLy8gSE9PS1NcblxuLy8gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZCB3aGVuZXZlciBhIG1vbWVudCBpcyBtdXRhdGVkLlxuLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuXG4vLyB0b2RvOiBpdCdzIGZyb20gbW9tZW50IHRpbWV6b25lc1xuLy8gaG9va3MudXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gKCkge1xuLy8gfTtcblxuLy8gTU9NRU5UU1xuXG4vLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXRcbi8vIGFmZmVjdGluZyB0aGUgbG9jYWwgaG91ci4gU28gNTozMToyNiArMDMwMCAtLVt1dGNPZmZzZXQoMiwgdHJ1ZSldLS0+XG4vLyA1OjMxOjI2ICswMjAwIEl0IGlzIHBvc3NpYmxlIHRoYXQgNTozMToyNiBkb2Vzbid0IGV4aXN0IHdpdGggb2Zmc2V0XG4vLyArMDIwMCwgc28gd2UgYWRqdXN0IHRoZSB0aW1lIGFzIG5lZWRlZCwgdG8gYmUgdmFsaWQuXG4vL1xuLy8gS2VlcGluZyB0aGUgdGltZSBhY3R1YWxseSBhZGRzL3N1YnRyYWN0cyAob25lIGhvdXIpXG4vLyBmcm9tIHRoZSBhY3R1YWwgcmVwcmVzZW50ZWQgdGltZS4gVGhhdCBpcyB3aHkgd2UgY2FsbCB1cGRhdGVPZmZzZXRcbi8vIGEgc2Vjb25kIHRpbWUuIEluIGNhc2UgaXQgd2FudHMgdXMgdG8gY2hhbmdlIHRoZSBvZmZzZXQgYWdhaW5cbi8vIF9jaGFuZ2VJblByb2dyZXNzID09IHRydWUgY2FzZSwgdGhlbiB3ZSBoYXZlIHRvIGFkanVzdCwgYmVjYXVzZVxuLy8gdGhlcmUgaXMgbm8gc3VjaCB0aW1lIGluIHRoZSBnaXZlbiB0aW1lem9uZS5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVVENPZmZzZXQoZGF0ZTogRGF0ZSwgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyA9IHt9KTogbnVtYmVyIHtcbiAgY29uc3QgX29mZnNldCA9IGNvbmZpZy5fb2Zmc2V0IHx8IDA7XG5cbiAgcmV0dXJuIGNvbmZpZy5faXNVVEMgPyBfb2Zmc2V0IDogZ2V0RGF0ZU9mZnNldChkYXRlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFVUQ09mZnNldChkYXRlOiBEYXRlLCBpbnB1dDogbnVtYmVyIHwgc3RyaW5nLCBrZWVwTG9jYWxUaW1lPzogYm9vbGVhbiwga2VlcE1pbnV0ZXM/OiBib29sZWFuLCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnID0ge30pOiBEYXRlIHtcbiAgY29uc3Qgb2Zmc2V0ID0gY29uZmlnLl9vZmZzZXQgfHwgMDtcbiAgbGV0IGxvY2FsQWRqdXN0O1xuICBsZXQgX2lucHV0ID0gaW5wdXQ7XG4gIGxldCBfZGF0ZSA9IGRhdGU7XG5cbiAgaWYgKGlzU3RyaW5nKF9pbnB1dCkpIHtcbiAgICBfaW5wdXQgPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIF9pbnB1dCk7XG4gICAgaWYgKF9pbnB1dCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIF9kYXRlO1xuICAgIH1cbiAgfSBlbHNlIGlmIChpc051bWJlcihfaW5wdXQpICYmIE1hdGguYWJzKF9pbnB1dCkgPCAxNiAmJiAha2VlcE1pbnV0ZXMpIHtcbiAgICBfaW5wdXQgPSBfaW5wdXQgKiA2MDtcbiAgfVxuXG4gIGlmICghY29uZmlnLl9pc1VUQyAmJiBrZWVwTG9jYWxUaW1lKSB7XG4gICAgbG9jYWxBZGp1c3QgPSBnZXREYXRlT2Zmc2V0KF9kYXRlKTtcbiAgfVxuICBjb25maWcuX29mZnNldCA9IF9pbnB1dDtcbiAgY29uZmlnLl9pc1VUQyA9IHRydWU7XG4gIGlmIChsb2NhbEFkanVzdCAhPSBudWxsKSB7XG4gICAgX2RhdGUgPSBhZGQoX2RhdGUsIGxvY2FsQWRqdXN0LCAnbWludXRlcycpO1xuICB9XG4gIGlmIChvZmZzZXQgIT09IF9pbnB1dCkge1xuICAgIGlmICgha2VlcExvY2FsVGltZSB8fCBjb25maWcuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgIF9kYXRlID0gYWRkKF9kYXRlLCBfaW5wdXQgLSBvZmZzZXQsICdtaW51dGVzJywgY29uZmlnLl9pc1VUQyk7XG4gICAgICAvLyBhZGRTdWJ0cmFjdCh0aGlzLCBjcmVhdGVEdXJhdGlvbihfaW5wdXQgLSBvZmZzZXQsICdtJyksIDEsIGZhbHNlKTtcbiAgICB9IGVsc2UgaWYgKCFjb25maWcuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgIGNvbmZpZy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAvLyB0b2RvOiBhZGQgdGltZXpvbmUgaGFuZGxpbmdcbiAgICAgIC8vIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgIGNvbmZpZy5fY2hhbmdlSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIF9kYXRlO1xufVxuXG4vKlxuZXhwb3J0IGZ1bmN0aW9uIGdldFNldFpvbmUoaW5wdXQsIGtlZXBMb2NhbFRpbWUpIHtcbiAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgICAgaW5wdXQgPSAtaW5wdXQ7XG4gICAgfVxuXG4gICAgdGhpcy51dGNPZmZzZXQoaW5wdXQsIGtlZXBMb2NhbFRpbWUpO1xuXG4gICAgcmV0dXJuIHRoaXM7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIC10aGlzLnV0Y09mZnNldCgpO1xuICB9XG59XG4qL1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0T2Zmc2V0VG9VVEMoZGF0ZTogRGF0ZSwga2VlcExvY2FsVGltZT86IGJvb2xlYW4pOiBEYXRlIHtcbiAgcmV0dXJuIHNldFVUQ09mZnNldChkYXRlLCAwLCBrZWVwTG9jYWxUaW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lKGRhdGU6IERhdGUpOiBib29sZWFuIHtcblxuICByZXR1cm4gKGdldFVUQ09mZnNldChkYXRlKSA+IGdldFVUQ09mZnNldChzZXRNb250aChjbG9uZURhdGUoZGF0ZSksIDApKVxuICAgIHx8IGdldFVUQ09mZnNldChkYXRlKSA+IGdldFVUQ09mZnNldChzZXRNb250aChjbG9uZURhdGUoZGF0ZSksIDUpKSk7XG59XG5cbi8qZXhwb3J0IGZ1bmN0aW9uIHNldE9mZnNldFRvTG9jYWwoZGF0ZTogRGF0ZSwgaXNVVEM/OiBib29sZWFuLCBrZWVwTG9jYWxUaW1lPzogYm9vbGVhbikge1xuICBpZiAodGhpcy5faXNVVEMpIHtcbiAgICB0aGlzLnV0Y09mZnNldCgwLCBrZWVwTG9jYWxUaW1lKTtcbiAgICB0aGlzLl9pc1VUQyA9IGZhbHNlO1xuXG4gICAgaWYgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgIHRoaXMuc3VidHJhY3QoZ2V0RGF0ZU9mZnNldCh0aGlzKSwgJ20nKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHRoaXM7XG59Ki9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9mZnNldFRvUGFyc2VkT2Zmc2V0KGRhdGU6IERhdGUsIGlucHV0OiBzdHJpbmcsIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcgPSB7fSk6IERhdGUge1xuICBpZiAoY29uZmlnLl90em0gIT0gbnVsbCkge1xuICAgIHJldHVybiBzZXRVVENPZmZzZXQoZGF0ZSwgY29uZmlnLl90em0sIGZhbHNlLCB0cnVlLCBjb25maWcpO1xuICB9XG5cbiAgaWYgKGlzU3RyaW5nKGlucHV0KSkge1xuICAgIGNvbnN0IHRab25lID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaE9mZnNldCwgaW5wdXQpO1xuICAgIGlmICh0Wm9uZSAhPSBudWxsKSB7XG4gICAgICByZXR1cm4gc2V0VVRDT2Zmc2V0KGRhdGUsIHRab25lLCBmYWxzZSwgZmFsc2UsIGNvbmZpZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNldFVUQ09mZnNldChkYXRlLCAwLCB0cnVlLCBmYWxzZSwgY29uZmlnKTtcbiAgfVxuXG4gIHJldHVybiBkYXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzQWxpZ25lZEhvdXJPZmZzZXQoZGF0ZTogRGF0ZSwgaW5wdXQ/OiBEYXRlKSB7XG4gIGNvbnN0IF9pbnB1dCA9IGlucHV0ID8gZ2V0VVRDT2Zmc2V0KGlucHV0LCB7IF9pc1VUQzogZmFsc2UgfSkgOiAwO1xuXG4gIHJldHVybiAoZ2V0VVRDT2Zmc2V0KGRhdGUpIC0gX2lucHV0KSAlIDYwID09PSAwO1xufVxuXG5cbi8vIERFUFJFQ0FURURcbi8qZXhwb3J0IGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZCgpIHtcbiAgaWYgKCFpc1VuZGVmaW5lZCh0aGlzLl9pc0RTVFNoaWZ0ZWQpKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgfVxuXG4gIGNvbnN0IGMgPSB7fTtcblxuICBjb3B5Q29uZmlnKGMsIHRoaXMpO1xuICBjID0gcHJlcGFyZUNvbmZpZyhjKTtcblxuICBpZiAoYy5fYSkge1xuICAgIGNvbnN0IG90aGVyID0gYy5faXNVVEMgPyBjcmVhdGVVVEMoYy5fYSkgOiBjcmVhdGVMb2NhbChjLl9hKTtcbiAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgY29tcGFyZUFycmF5cyhjLl9hLCBvdGhlci50b0FycmF5KCkpID4gMDtcbiAgfSBlbHNlIHtcbiAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG59Ki9cblxuLy8gaW4gS2hyb25vc1xuLypleHBvcnQgZnVuY3Rpb24gaXNMb2NhbCgpIHtcbiAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gIXRoaXMuX2lzVVRDIDogZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1V0Y09mZnNldCgpIHtcbiAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgOiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVXRjKCkge1xuICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzLl9pc1VUQyAmJiB0aGlzLl9vZmZzZXQgPT09IDAgOiBmYWxzZTtcbn0qL1xuIl19
|
@@ -1,21 +0,0 @@
|
|
1
|
-
const priorities = {};
|
2
|
-
export function addUnitPriority(unit, priority) {
|
3
|
-
priorities[unit] = priority;
|
4
|
-
}
|
5
|
-
/*
|
6
|
-
export function getPrioritizedUnits(unitsObj) {
|
7
|
-
const units = [];
|
8
|
-
let unit;
|
9
|
-
for (unit in unitsObj) {
|
10
|
-
if (unitsObj.hasOwnProperty(unit)) {
|
11
|
-
units.push({ unit, priority: priorities[unit] });
|
12
|
-
}
|
13
|
-
}
|
14
|
-
units.sort(function (a, b) {
|
15
|
-
return a.priority - b.priority;
|
16
|
-
});
|
17
|
-
|
18
|
-
return units;
|
19
|
-
}
|
20
|
-
*/
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaHJvbm9zL3VuaXRzL3ByaW9yaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLEdBQTRCLEVBQUUsQ0FBQztBQUUvQyxNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxRQUFnQjtJQUM1RCxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7O0VBZUUiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBwcmlvcml0aWVzOiB7W2tleTogc3RyaW5nXTogbnVtYmVyfSA9IHt9O1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkVW5pdFByaW9yaXR5KHVuaXQ6IHN0cmluZywgcHJpb3JpdHk6IG51bWJlcik6IHZvaWQge1xuICBwcmlvcml0aWVzW3VuaXRdID0gcHJpb3JpdHk7XG59XG5cbi8qXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0c09iaikge1xuICBjb25zdCB1bml0cyA9IFtdO1xuICBsZXQgdW5pdDtcbiAgZm9yICh1bml0IGluIHVuaXRzT2JqKSB7XG4gICAgaWYgKHVuaXRzT2JqLmhhc093blByb3BlcnR5KHVuaXQpKSB7XG4gICAgICB1bml0cy5wdXNoKHsgdW5pdCwgcHJpb3JpdHk6IHByaW9yaXRpZXNbdW5pdF0gfSk7XG4gICAgfVxuICB9XG4gIHVuaXRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gIH0pO1xuXG4gIHJldHVybiB1bml0cztcbn1cbiovXG4iXX0=
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import { addFormatToken } from '../format/format';
|
2
|
-
import { addRegexToken, match1 } from '../parse/regex';
|
3
|
-
import { addParseToken } from '../parse/token';
|
4
|
-
import { MONTH } from './constants';
|
5
|
-
import { toInt } from '../utils/type-checks';
|
6
|
-
import { getMonth } from '../utils/date-getters';
|
7
|
-
import { addUnitPriority } from './priorities';
|
8
|
-
import { addUnitAlias } from './aliases';
|
9
|
-
import { setMonth } from '../utils/date-setters';
|
10
|
-
export function initQuarter() {
|
11
|
-
// FORMATTING
|
12
|
-
addFormatToken('Q', null, 'Qo', function (date, opts) {
|
13
|
-
return getQuarter(date, opts.isUTC)
|
14
|
-
.toString(10);
|
15
|
-
});
|
16
|
-
// ALIASES
|
17
|
-
addUnitAlias('quarter', 'Q');
|
18
|
-
// PRIORITY
|
19
|
-
addUnitPriority('quarter', 7);
|
20
|
-
// PARSING
|
21
|
-
addRegexToken('Q', match1);
|
22
|
-
addParseToken('Q', function (input, array, config) {
|
23
|
-
array[MONTH] = (toInt(input) - 1) * 3;
|
24
|
-
return config;
|
25
|
-
});
|
26
|
-
}
|
27
|
-
// MOMENTS
|
28
|
-
export function getQuarter(date, isUTC = false) {
|
29
|
-
return Math.ceil((getMonth(date, isUTC) + 1) / 3);
|
30
|
-
}
|
31
|
-
export function setQuarter(date, quarter, isUTC) {
|
32
|
-
return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);
|
33
|
-
}
|
34
|
-
// export function getSetQuarter(input) {
|
35
|
-
// return input == null
|
36
|
-
// ? Math.ceil((this.month() + 1) / 3)
|
37
|
-
// : this.month((input - 1) * 3 + this.month() % 3);
|
38
|
-
// }
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaHJvbm9zL3VuaXRzL3F1YXJ0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2pELE1BQU0sVUFBVSxXQUFXO0lBQzNCLGFBQWE7SUFFWCxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzVCLFVBQVMsSUFBVSxFQUFFLElBQTBCO1FBQzdDLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2hDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQ0YsQ0FBQztJQUVKLFVBQVU7SUFFUixZQUFZLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRS9CLFdBQVc7SUFFVCxlQUFlLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRWhDLFVBQVU7SUFFUixhQUFhLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBUyxLQUFhLEVBQUUsS0FBZ0IsRUFBRSxNQUF5QjtRQUNwRixLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXRDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFVBQVU7QUFFVixNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVUsRUFBRSxLQUFLLEdBQUcsS0FBSztJQUNsRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVUsRUFBRSxPQUFlLEVBQUUsS0FBZTtJQUNyRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFFRCx5Q0FBeUM7QUFDekMseUJBQXlCO0FBQ3pCLDBDQUEwQztBQUMxQyx3REFBd0Q7QUFDeEQsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEZvcm1hdFRva2VuIH0gZnJvbSAnLi4vZm9ybWF0L2Zvcm1hdCc7XG5pbXBvcnQgeyBhZGRSZWdleFRva2VuLCBtYXRjaDEgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGRQYXJzZVRva2VuIH0gZnJvbSAnLi4vcGFyc2UvdG9rZW4nO1xuaW1wb3J0IHsgTU9OVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyB0b0ludCB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcbmltcG9ydCB7IGdldE1vbnRoIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcbmltcG9ydCB7IERhdGVBcnJheSwgRGF0ZUZvcm1hdHRlck9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBhZGRVbml0UHJpb3JpdHkgfSBmcm9tICcuL3ByaW9yaXRpZXMnO1xuaW1wb3J0IHsgYWRkVW5pdEFsaWFzIH0gZnJvbSAnLi9hbGlhc2VzJztcbmltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmcudHlwZXMnO1xuaW1wb3J0IHsgc2V0TW9udGggfSBmcm9tICcuLi91dGlscy9kYXRlLXNldHRlcnMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0UXVhcnRlcigpIHtcbi8vIEZPUk1BVFRJTkdcblxuICBhZGRGb3JtYXRUb2tlbignUScsIG51bGwsICdRbycsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGdldFF1YXJ0ZXIoZGF0ZSwgb3B0cy5pc1VUQylcbiAgICAgICAgLnRvU3RyaW5nKDEwKTtcbiAgICB9XG4gICk7XG5cbi8vIEFMSUFTRVNcblxuICBhZGRVbml0QWxpYXMoJ3F1YXJ0ZXInLCAnUScpO1xuXG4vLyBQUklPUklUWVxuXG4gIGFkZFVuaXRQcmlvcml0eSgncXVhcnRlcicsIDcpO1xuXG4vLyBQQVJTSU5HXG5cbiAgYWRkUmVnZXhUb2tlbignUScsIG1hdGNoMSk7XG4gIGFkZFBhcnNlVG9rZW4oJ1EnLCBmdW5jdGlvbihpbnB1dDogc3RyaW5nLCBhcnJheTogRGF0ZUFycmF5LCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICAgIGFycmF5W01PTlRIXSA9ICh0b0ludChpbnB1dCkgLSAxKSAqIDM7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9KTtcbn1cblxuLy8gTU9NRU5UU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UXVhcnRlcihkYXRlOiBEYXRlLCBpc1VUQyA9IGZhbHNlKTogbnVtYmVyIHtcbiAgcmV0dXJuIE1hdGguY2VpbCgoZ2V0TW9udGgoZGF0ZSwgaXNVVEMpICsgMSkgLyAzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFF1YXJ0ZXIoZGF0ZTogRGF0ZSwgcXVhcnRlcjogbnVtYmVyLCBpc1VUQz86IGJvb2xlYW4pOiBEYXRlIHtcbiAgcmV0dXJuIHNldE1vbnRoKGRhdGUsIChxdWFydGVyIC0gMSkgKiAzICsgZ2V0TW9udGgoZGF0ZSwgaXNVVEMpICUgMywgaXNVVEMpO1xufVxuXG4vLyBleHBvcnQgZnVuY3Rpb24gZ2V0U2V0UXVhcnRlcihpbnB1dCkge1xuLy8gICByZXR1cm4gaW5wdXQgPT0gbnVsbFxuLy8gICAgID8gTWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkgKyAxKSAvIDMpXG4vLyAgICAgOiB0aGlzLm1vbnRoKChpbnB1dCAtIDEpICogMyArIHRoaXMubW9udGgoKSAlIDMpO1xuLy8gfVxuIl19
|
@@ -1,23 +0,0 @@
|
|
1
|
-
import { addFormatToken } from '../format/format';
|
2
|
-
import { getSeconds } from '../utils/date-getters';
|
3
|
-
import { addRegexToken, match1to2, match2 } from '../parse/regex';
|
4
|
-
import { addParseToken } from '../parse/token';
|
5
|
-
import { SECOND } from './constants';
|
6
|
-
import { addUnitAlias } from './aliases';
|
7
|
-
import { addUnitPriority } from './priorities';
|
8
|
-
export function initSecond() {
|
9
|
-
// FORMATTING
|
10
|
-
addFormatToken('s', ['ss', 2, false], null, function (date, opts) {
|
11
|
-
return getSeconds(date, opts.isUTC)
|
12
|
-
.toString(10);
|
13
|
-
});
|
14
|
-
// ALIASES
|
15
|
-
addUnitAlias('second', 's');
|
16
|
-
// PRIORITY
|
17
|
-
addUnitPriority('second', 15);
|
18
|
-
// PARSING
|
19
|
-
addRegexToken('s', match1to2);
|
20
|
-
addRegexToken('ss', match1to2, match2);
|
21
|
-
addParseToken(['s', 'ss'], SECOND);
|
22
|
-
}
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nocm9ub3MvdW5pdHMvc2Vjb25kLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSS9DLE1BQU0sVUFBVSxVQUFVO0lBQzFCLGFBQWE7SUFFWCxjQUFjLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxJQUFJLEVBQ3hDLFVBQVMsSUFBVSxFQUFFLElBQTBCO1FBQzdDLE9BQU8sVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO2FBQ2hDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsQixDQUFDLENBQ0YsQ0FBQztJQUVKLFVBQVU7SUFFUixZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTlCLFdBQVc7SUFFVCxlQUFlLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWhDLFVBQVU7SUFFUixhQUFhLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3ZDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRm9ybWF0VG9rZW4gfSBmcm9tICcuLi9mb3JtYXQvZm9ybWF0JztcbmltcG9ydCB7IGdldFNlY29uZHMgfSBmcm9tICcuLi91dGlscy9kYXRlLWdldHRlcnMnO1xuaW1wb3J0IHsgYWRkUmVnZXhUb2tlbiwgbWF0Y2gxdG8yLCBtYXRjaDIgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGRQYXJzZVRva2VuIH0gZnJvbSAnLi4vcGFyc2UvdG9rZW4nO1xuaW1wb3J0IHsgU0VDT05EIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkVW5pdEFsaWFzIH0gZnJvbSAnLi9hbGlhc2VzJztcbmltcG9ydCB7IGFkZFVuaXRQcmlvcml0eSB9IGZyb20gJy4vcHJpb3JpdGllcyc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcblxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdFNlY29uZCgpIHtcbi8vIEZPUk1BVFRJTkdcblxuICBhZGRGb3JtYXRUb2tlbigncycsIFsnc3MnLCAyLCBmYWxzZV0sIG51bGwsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGdldFNlY29uZHMoZGF0ZSwgb3B0cy5pc1VUQylcbiAgICAgICAgLnRvU3RyaW5nKDEwKTtcbiAgICB9XG4gICk7XG5cbi8vIEFMSUFTRVNcblxuICBhZGRVbml0QWxpYXMoJ3NlY29uZCcsICdzJyk7XG5cbi8vIFBSSU9SSVRZXG5cbiAgYWRkVW5pdFByaW9yaXR5KCdzZWNvbmQnLCAxNSk7XG5cbi8vIFBBUlNJTkdcblxuICBhZGRSZWdleFRva2VuKCdzJywgbWF0Y2gxdG8yKTtcbiAgYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gIGFkZFBhcnNlVG9rZW4oWydzJywgJ3NzJ10sIFNFQ09ORCk7XG59XG4iXX0=
|
@@ -1,28 +0,0 @@
|
|
1
|
-
import { addFormatToken } from '../format/format';
|
2
|
-
import { unix } from '../utils/date-getters';
|
3
|
-
import { addRegexToken, matchSigned, matchTimestamp } from '../parse/regex';
|
4
|
-
import { addParseToken } from '../parse/token';
|
5
|
-
import { toInt } from '../utils/type-checks';
|
6
|
-
export function initTimestamp() {
|
7
|
-
// FORMATTING
|
8
|
-
addFormatToken('X', null, null, function (date) {
|
9
|
-
return unix(date)
|
10
|
-
.toString(10);
|
11
|
-
});
|
12
|
-
addFormatToken('x', null, null, function (date) {
|
13
|
-
return date.valueOf()
|
14
|
-
.toString(10);
|
15
|
-
});
|
16
|
-
// PARSING
|
17
|
-
addRegexToken('x', matchSigned);
|
18
|
-
addRegexToken('X', matchTimestamp);
|
19
|
-
addParseToken('X', function (input, array, config) {
|
20
|
-
config._d = new Date(parseFloat(input) * 1000);
|
21
|
-
return config;
|
22
|
-
});
|
23
|
-
addParseToken('x', function (input, array, config) {
|
24
|
-
config._d = new Date(toInt(input));
|
25
|
-
return config;
|
26
|
-
});
|
27
|
-
}
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXN0YW1wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nocm9ub3MvdW5pdHMvdGltZXN0YW1wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUs3QyxNQUFNLFVBQVUsYUFBYTtJQUM3QixhQUFhO0lBRVgsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVMsSUFBVTtRQUNqRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7YUFDZCxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsVUFBUyxJQUFVO1FBQ2pELE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRTthQUNsQixRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFTCxVQUFVO0lBRVIsYUFBYSxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNoQyxhQUFhLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRW5DLGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBUyxLQUFhLEVBQUUsS0FBZ0IsRUFBRSxNQUF5QjtRQUNwRixNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUUvQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztJQUNILGFBQWEsQ0FBQyxHQUFHLEVBQUUsVUFBUyxLQUFhLEVBQUUsS0FBZ0IsRUFBRSxNQUF5QjtRQUNwRixNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRW5DLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEZvcm1hdFRva2VuIH0gZnJvbSAnLi4vZm9ybWF0L2Zvcm1hdCc7XG5pbXBvcnQgeyB1bml4IH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcbmltcG9ydCB7IGFkZFJlZ2V4VG9rZW4sIG1hdGNoU2lnbmVkLCBtYXRjaFRpbWVzdGFtcCB9IGZyb20gJy4uL3BhcnNlL3JlZ2V4JztcbmltcG9ydCB7IGFkZFBhcnNlVG9rZW59IGZyb20gJy4uL3BhcnNlL3Rva2VuJztcbmltcG9ydCB7IHRvSW50IH0gZnJvbSAnLi4vdXRpbHMvdHlwZS1jaGVja3MnO1xuaW1wb3J0IHsgRGF0ZUFycmF5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgRGF0ZVBhcnNpbmdDb25maWcgfSBmcm9tICcuLi9jcmVhdGUvcGFyc2luZy50eXBlcyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUaW1lc3RhbXAoKSB7XG4vLyBGT1JNQVRUSU5HXG5cbiAgYWRkRm9ybWF0VG9rZW4oJ1gnLCBudWxsLCBudWxsLCBmdW5jdGlvbihkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdW5peChkYXRlKVxuICAgICAgLnRvU3RyaW5nKDEwKTtcbiAgfSk7XG4gIGFkZEZvcm1hdFRva2VuKCd4JywgbnVsbCwgbnVsbCwgZnVuY3Rpb24oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRhdGUudmFsdWVPZigpXG4gICAgICAudG9TdHJpbmcoMTApO1xuICB9KTtcblxuLy8gUEFSU0lOR1xuXG4gIGFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG4gIGFkZFJlZ2V4VG9rZW4oJ1gnLCBtYXRjaFRpbWVzdGFtcCk7XG5cbiAgYWRkUGFyc2VUb2tlbignWCcsIGZ1bmN0aW9uKGlucHV0OiBzdHJpbmcsIGFycmF5OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgY29uZmlnLl9kID0gbmV3IERhdGUocGFyc2VGbG9hdChpbnB1dCkgKiAxMDAwKTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xuICBhZGRQYXJzZVRva2VuKCd4JywgZnVuY3Rpb24oaW5wdXQ6IHN0cmluZywgYXJyYXk6IERhdGVBcnJheSwgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSh0b0ludChpbnB1dCkpO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfSk7XG59XG4iXX0=
|
@@ -1,19 +0,0 @@
|
|
1
|
-
import { addFormatToken } from '../format/format';
|
2
|
-
// todo: add support for timezones
|
3
|
-
export function initTimezone() {
|
4
|
-
// FORMATTING
|
5
|
-
addFormatToken('z', null, null, function (date, opts) {
|
6
|
-
return opts.isUTC ? 'UTC' : '';
|
7
|
-
});
|
8
|
-
addFormatToken('zz', null, null, function (date, opts) {
|
9
|
-
return opts.isUTC ? 'Coordinated Universal Time' : '';
|
10
|
-
});
|
11
|
-
}
|
12
|
-
// MOMENTS
|
13
|
-
export function getZoneAbbr(isUTC) {
|
14
|
-
return isUTC ? 'UTC' : '';
|
15
|
-
}
|
16
|
-
export function getZoneName(isUTC) {
|
17
|
-
return isUTC ? 'Coordinated Universal Time' : '';
|
18
|
-
}
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2hyb25vcy91bml0cy90aW1lem9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHbEQsa0NBQWtDO0FBRWxDLE1BQU0sVUFBVSxZQUFZO0lBQzFCLGFBQWE7SUFDYixjQUFjLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzVCLFVBQVMsSUFBVSxFQUFFLElBQTBCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakMsQ0FBQyxDQUNGLENBQUM7SUFDRixjQUFjLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQzdCLFVBQVMsSUFBVSxFQUFFLElBQTBCO1FBQzdDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUN4RCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCxVQUFVO0FBRVYsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUM1QixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxLQUFjO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ25ELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRGb3JtYXRUb2tlbiB9IGZyb20gJy4uL2Zvcm1hdC9mb3JtYXQnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlck9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8vIHRvZG86IGFkZCBzdXBwb3J0IGZvciB0aW1lem9uZXNcblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRUaW1lem9uZSgpIHtcbiAgLy8gRk9STUFUVElOR1xuICBhZGRGb3JtYXRUb2tlbigneicsIG51bGwsIG51bGwsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG9wdHMuaXNVVEMgPyAnVVRDJyA6ICcnO1xuICAgIH1cbiAgKTtcbiAgYWRkRm9ybWF0VG9rZW4oJ3p6JywgbnVsbCwgbnVsbCxcbiAgICBmdW5jdGlvbihkYXRlOiBEYXRlLCBvcHRzOiBEYXRlRm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gb3B0cy5pc1VUQyA/ICdDb29yZGluYXRlZCBVbml2ZXJzYWwgVGltZScgOiAnJztcbiAgICB9XG4gICk7XG59XG5cbi8vIE1PTUVOVFNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFpvbmVBYmJyKGlzVVRDOiBib29sZWFuKSB7XG4gIHJldHVybiBpc1VUQyA/ICdVVEMnIDogJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRab25lTmFtZShpc1VUQzogYm9vbGVhbikge1xuICByZXR1cm4gaXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG59XG4iXX0=
|
@@ -1,70 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
*
|
3
|
-
* @param {number} year
|
4
|
-
* @param {number} dow - start-of-first-week
|
5
|
-
* @param {number} doy - start-of-year
|
6
|
-
* @returns {number}
|
7
|
-
*/
|
8
|
-
import { createUTCDate } from '../create/date-from-array';
|
9
|
-
import { daysInYear } from './year';
|
10
|
-
import { getDayOfYear } from './day-of-year';
|
11
|
-
import { getFullYear } from '../utils/date-getters';
|
12
|
-
function firstWeekOffset(year, dow, doy) {
|
13
|
-
// first-week day -- which january is always in the first week (4 for iso, 1 for other)
|
14
|
-
const fwd = dow - doy + 7;
|
15
|
-
// first-week day local weekday -- which local weekday is fwd
|
16
|
-
const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;
|
17
|
-
return -fwdlw + fwd - 1;
|
18
|
-
}
|
19
|
-
// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
|
20
|
-
export function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
|
21
|
-
const localWeekday = (7 + weekday - dow) % 7;
|
22
|
-
const weekOffset = firstWeekOffset(year, dow, doy);
|
23
|
-
const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;
|
24
|
-
let resYear;
|
25
|
-
let resDayOfYear;
|
26
|
-
if (dayOfYear <= 0) {
|
27
|
-
resYear = year - 1;
|
28
|
-
resDayOfYear = daysInYear(resYear) + dayOfYear;
|
29
|
-
}
|
30
|
-
else if (dayOfYear > daysInYear(year)) {
|
31
|
-
resYear = year + 1;
|
32
|
-
resDayOfYear = dayOfYear - daysInYear(year);
|
33
|
-
}
|
34
|
-
else {
|
35
|
-
resYear = year;
|
36
|
-
resDayOfYear = dayOfYear;
|
37
|
-
}
|
38
|
-
return {
|
39
|
-
year: resYear,
|
40
|
-
dayOfYear: resDayOfYear
|
41
|
-
};
|
42
|
-
}
|
43
|
-
export function weekOfYear(date, dow, doy, isUTC) {
|
44
|
-
const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);
|
45
|
-
const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;
|
46
|
-
let resWeek;
|
47
|
-
let resYear;
|
48
|
-
if (week < 1) {
|
49
|
-
resYear = getFullYear(date, isUTC) - 1;
|
50
|
-
resWeek = week + weeksInYear(resYear, dow, doy);
|
51
|
-
}
|
52
|
-
else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {
|
53
|
-
resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);
|
54
|
-
resYear = getFullYear(date, isUTC) + 1;
|
55
|
-
}
|
56
|
-
else {
|
57
|
-
resYear = getFullYear(date, isUTC);
|
58
|
-
resWeek = week;
|
59
|
-
}
|
60
|
-
return {
|
61
|
-
week: resWeek,
|
62
|
-
year: resYear
|
63
|
-
};
|
64
|
-
}
|
65
|
-
export function weeksInYear(year, dow, doy) {
|
66
|
-
const weekOffset = firstWeekOffset(year, dow, doy);
|
67
|
-
const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
|
68
|
-
return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
|
69
|
-
}
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay1jYWxlbmRhci11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jaHJvbm9zL3VuaXRzL3dlZWstY2FsZW5kYXItdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzFELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsU0FBUyxlQUFlLENBQUMsSUFBWSxFQUFFLEdBQVcsRUFBRSxHQUFXO0lBQzdELHVGQUF1RjtJQUN2RixNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztJQUMxQiw2REFBNkQ7SUFDN0QsTUFBTSxLQUFLLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXRFLE9BQU8sQ0FBQyxLQUFLLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRUQsMkdBQTJHO0FBQzNHLE1BQU0sVUFBVSxrQkFBa0IsQ0FDaEMsSUFBWSxFQUNaLElBQVksRUFDWixPQUFlLEVBQ2YsR0FBVyxFQUNYLEdBQVc7SUFFWCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzdDLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsWUFBWSxHQUFHLFVBQVUsQ0FBQztJQUNqRSxJQUFJLE9BQWUsQ0FBQztJQUNwQixJQUFJLFlBQW9CLENBQUM7SUFFekIsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7UUFDbkIsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxTQUFTLENBQUM7SUFDakQsQ0FBQztTQUFNLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLFlBQVksR0FBRyxTQUFTLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLFlBQVksR0FBRyxTQUFTLENBQUM7SUFDM0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFVLEVBQUUsR0FBVyxFQUFFLEdBQVcsRUFBRSxLQUFlO0lBQzlFLE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN2RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlFLElBQUksT0FBZSxDQUFDO0lBQ3BCLElBQUksT0FBZSxDQUFDO0lBRXBCLElBQUksSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2IsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbEQsQ0FBQztTQUFNLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2xFLE9BQU8sR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO1NBQU0sQ0FBQztRQUNOLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxJQUFJLENBQUM7SUFDakIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxPQUFPO0tBQ2QsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsR0FBVztJQUNoRSxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuRCxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFM0QsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLEdBQUcsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBAcGFyYW0ge251bWJlcn0geWVhclxuICogQHBhcmFtIHtudW1iZXJ9IGRvdyAtIHN0YXJ0LW9mLWZpcnN0LXdlZWtcbiAqIEBwYXJhbSB7bnVtYmVyfSBkb3kgLSBzdGFydC1vZi15ZWFyXG4gKiBAcmV0dXJucyB7bnVtYmVyfVxuICovXG5pbXBvcnQgeyBjcmVhdGVVVENEYXRlIH0gZnJvbSAnLi4vY3JlYXRlL2RhdGUtZnJvbS1hcnJheSc7XG5pbXBvcnQgeyBkYXlzSW5ZZWFyIH0gZnJvbSAnLi95ZWFyJztcbmltcG9ydCB7IGdldERheU9mWWVhciB9IGZyb20gJy4vZGF5LW9mLXllYXInO1xuaW1wb3J0IHsgZ2V0RnVsbFllYXIgfSBmcm9tICcuLi91dGlscy9kYXRlLWdldHRlcnMnO1xuXG5mdW5jdGlvbiBmaXJzdFdlZWtPZmZzZXQoeWVhcjogbnVtYmVyLCBkb3c6IG51bWJlciwgZG95OiBudW1iZXIpOiBudW1iZXIge1xuICAvLyBmaXJzdC13ZWVrIGRheSAtLSB3aGljaCBqYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayAoNCBmb3IgaXNvLCAxIGZvciBvdGhlcilcbiAgY29uc3QgZndkID0gZG93IC0gZG95ICsgNztcbiAgLy8gZmlyc3Qtd2VlayBkYXkgbG9jYWwgd2Vla2RheSAtLSB3aGljaCBsb2NhbCB3ZWVrZGF5IGlzIGZ3ZFxuICBjb25zdCBmd2RsdyA9IChjcmVhdGVVVENEYXRlKHllYXIsIDAsIGZ3ZCkuZ2V0VVRDRGF5KCkgLSBkb3cgKyA3KSAlIDc7XG5cbiAgcmV0dXJuIC1md2RsdyArIGZ3ZCAtIDE7XG59XG5cbi8vIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0lTT193ZWVrX2RhdGUjQ2FsY3VsYXRpbmdfYV9kYXRlX2dpdmVuX3RoZV95ZWFyLjJDX3dlZWtfbnVtYmVyX2FuZF93ZWVrZGF5XG5leHBvcnQgZnVuY3Rpb24gZGF5T2ZZZWFyRnJvbVdlZWtzKFxuICB5ZWFyOiBudW1iZXIsXG4gIHdlZWs6IG51bWJlcixcbiAgd2Vla2RheTogbnVtYmVyLFxuICBkb3c6IG51bWJlcixcbiAgZG95OiBudW1iZXJcbik6IHsgeWVhcjogbnVtYmVyOyBkYXlPZlllYXI6IG51bWJlciB9IHtcbiAgY29uc3QgbG9jYWxXZWVrZGF5ID0gKDcgKyB3ZWVrZGF5IC0gZG93KSAlIDc7XG4gIGNvbnN0IHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpO1xuICBjb25zdCBkYXlPZlllYXIgPSAxICsgNyAqICh3ZWVrIC0gMSkgKyBsb2NhbFdlZWtkYXkgKyB3ZWVrT2Zmc2V0O1xuICBsZXQgcmVzWWVhcjogbnVtYmVyO1xuICBsZXQgcmVzRGF5T2ZZZWFyOiBudW1iZXI7XG5cbiAgaWYgKGRheU9mWWVhciA8PSAwKSB7XG4gICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgIHJlc0RheU9mWWVhciA9IGRheXNJblllYXIocmVzWWVhcikgKyBkYXlPZlllYXI7XG4gIH0gZWxzZSBpZiAoZGF5T2ZZZWFyID4gZGF5c0luWWVhcih5ZWFyKSkge1xuICAgIHJlc1llYXIgPSB5ZWFyICsgMTtcbiAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXIgLSBkYXlzSW5ZZWFyKHllYXIpO1xuICB9IGVsc2Uge1xuICAgIHJlc1llYXIgPSB5ZWFyO1xuICAgIHJlc0RheU9mWWVhciA9IGRheU9mWWVhcjtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgeWVhcjogcmVzWWVhcixcbiAgICBkYXlPZlllYXI6IHJlc0RheU9mWWVhclxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla09mWWVhcihkYXRlOiBEYXRlLCBkb3c6IG51bWJlciwgZG95OiBudW1iZXIsIGlzVVRDPzogYm9vbGVhbik6IHsgd2VlazogbnVtYmVyOyB5ZWFyOiBudW1iZXIgfSB7XG4gIGNvbnN0IHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoZ2V0RnVsbFllYXIoZGF0ZSwgaXNVVEMpLCBkb3csIGRveSk7XG4gIGNvbnN0IHdlZWsgPSBNYXRoLmZsb29yKChnZXREYXlPZlllYXIoZGF0ZSwgaXNVVEMpIC0gd2Vla09mZnNldCAtIDEpIC8gNykgKyAxO1xuICBsZXQgcmVzV2VlazogbnVtYmVyO1xuICBsZXQgcmVzWWVhcjogbnVtYmVyO1xuXG4gIGlmICh3ZWVrIDwgMSkge1xuICAgIHJlc1llYXIgPSBnZXRGdWxsWWVhcihkYXRlLCBpc1VUQykgLSAxO1xuICAgIHJlc1dlZWsgPSB3ZWVrICsgd2Vla3NJblllYXIocmVzWWVhciwgZG93LCBkb3kpO1xuICB9IGVsc2UgaWYgKHdlZWsgPiB3ZWVrc0luWWVhcihnZXRGdWxsWWVhcihkYXRlLCBpc1VUQyksIGRvdywgZG95KSkge1xuICAgIHJlc1dlZWsgPSB3ZWVrIC0gd2Vla3NJblllYXIoZ2V0RnVsbFllYXIoZGF0ZSwgaXNVVEMpLCBkb3csIGRveSk7XG4gICAgcmVzWWVhciA9IGdldEZ1bGxZZWFyKGRhdGUsIGlzVVRDKSArIDE7XG4gIH0gZWxzZSB7XG4gICAgcmVzWWVhciA9IGdldEZ1bGxZZWFyKGRhdGUsIGlzVVRDKTtcbiAgICByZXNXZWVrID0gd2VlaztcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgd2VlazogcmVzV2VlayxcbiAgICB5ZWFyOiByZXNZZWFyXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB3ZWVrc0luWWVhcih5ZWFyOiBudW1iZXIsIGRvdzogbnVtYmVyLCBkb3k6IG51bWJlcik6IG51bWJlciB7XG4gIGNvbnN0IHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpO1xuICBjb25zdCB3ZWVrT2Zmc2V0TmV4dCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyICsgMSwgZG93LCBkb3kpO1xuXG4gIHJldHVybiAoZGF5c0luWWVhcih5ZWFyKSAtIHdlZWtPZmZzZXQgKyB3ZWVrT2Zmc2V0TmV4dCkgLyA3O1xufVxuIl19
|