mis-crystal-design-system 14.0.55-test-v4 → 14.0.55-test-v6
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/datepicker/base/bs-datepicker-container.d.ts +44 -0
- package/datepicker/bs-datepicker-inline.component.d.ts +64 -0
- package/datepicker/bs-datepicker-inline.config.d.ts +6 -0
- package/datepicker/bs-datepicker-input.directive.d.ts +33 -0
- package/datepicker/bs-datepicker.component.d.ts +126 -0
- package/datepicker/bs-datepicker.config.d.ts +143 -0
- package/datepicker/bs-datepicker.module.d.ts +29 -0
- package/datepicker/bs-daterangepicker-inline.component.d.ts +64 -0
- package/datepicker/bs-daterangepicker-inline.config.d.ts +9 -0
- package/datepicker/bs-daterangepicker-input.directive.d.ts +33 -0
- package/datepicker/bs-daterangepicker.component.d.ts +118 -0
- package/datepicker/bs-daterangepicker.config.d.ts +7 -0
- package/datepicker/bs-locale.service.d.ts +13 -0
- package/datepicker/chronos/create/check-overflow.d.ts +2 -0
- package/datepicker/chronos/create/clone.d.ts +1 -0
- package/datepicker/chronos/create/date-from-array.d.ts +2 -0
- package/datepicker/chronos/create/from-anything.d.ts +4 -0
- package/datepicker/chronos/create/from-array.d.ts +2 -0
- package/datepicker/chronos/create/from-object.d.ts +2 -0
- package/datepicker/chronos/create/from-string-and-array.d.ts +2 -0
- package/datepicker/chronos/create/from-string-and-format.d.ts +4 -0
- package/datepicker/chronos/create/from-string.d.ts +4 -0
- package/datepicker/chronos/create/local.d.ts +3 -0
- package/datepicker/chronos/create/parsing-flags.d.ts +2 -0
- package/datepicker/chronos/create/parsing.types.d.ts +64 -0
- package/datepicker/chronos/create/valid.d.ts +6 -0
- package/datepicker/chronos/duration/bubble.d.ts +4 -0
- package/datepicker/chronos/duration/constructor.d.ts +21 -0
- package/datepicker/chronos/duration/create.d.ts +8 -0
- package/datepicker/chronos/duration/humanize.d.ts +5 -0
- package/datepicker/chronos/duration/valid.d.ts +2 -0
- package/datepicker/chronos/format/format.d.ts +11 -0
- package/datepicker/chronos/format.d.ts +5 -0
- package/datepicker/chronos/i18n/ar.d.ts +2 -0
- package/datepicker/chronos/i18n/bg.d.ts +2 -0
- package/datepicker/chronos/i18n/ca.d.ts +2 -0
- package/datepicker/chronos/i18n/cs.d.ts +2 -0
- package/datepicker/chronos/i18n/da.d.ts +2 -0
- package/datepicker/chronos/i18n/de.d.ts +2 -0
- package/datepicker/chronos/i18n/en-gb.d.ts +2 -0
- package/datepicker/chronos/i18n/es-do.d.ts +2 -0
- package/datepicker/chronos/i18n/es-us.d.ts +2 -0
- package/datepicker/chronos/i18n/es.d.ts +2 -0
- package/datepicker/chronos/i18n/et.d.ts +2 -0
- package/datepicker/chronos/i18n/fi.d.ts +2 -0
- package/datepicker/chronos/i18n/fr.d.ts +2 -0
- package/datepicker/chronos/i18n/gl.d.ts +2 -0
- package/datepicker/chronos/i18n/he.d.ts +2 -0
- package/datepicker/chronos/i18n/hi.d.ts +2 -0
- package/datepicker/chronos/i18n/hr.d.ts +2 -0
- package/datepicker/chronos/i18n/hu.d.ts +2 -0
- package/datepicker/chronos/i18n/id.d.ts +2 -0
- package/datepicker/chronos/i18n/it.d.ts +2 -0
- package/datepicker/chronos/i18n/ja.d.ts +2 -0
- package/datepicker/chronos/i18n/ka.d.ts +2 -0
- package/datepicker/chronos/i18n/kk.d.ts +2 -0
- package/datepicker/chronos/i18n/ko.d.ts +2 -0
- package/datepicker/chronos/i18n/lt.d.ts +2 -0
- package/datepicker/chronos/i18n/lv.d.ts +2 -0
- package/datepicker/chronos/i18n/mn.d.ts +2 -0
- package/datepicker/chronos/i18n/nb.d.ts +2 -0
- package/datepicker/chronos/i18n/nl-be.d.ts +2 -0
- package/datepicker/chronos/i18n/nl.d.ts +2 -0
- package/datepicker/chronos/i18n/pl.d.ts +2 -0
- package/datepicker/chronos/i18n/pt-br.d.ts +2 -0
- package/datepicker/chronos/i18n/ro.d.ts +2 -0
- package/datepicker/chronos/i18n/ru.d.ts +2 -0
- package/datepicker/chronos/i18n/sk.d.ts +2 -0
- package/datepicker/chronos/i18n/sl.d.ts +2 -0
- package/datepicker/chronos/i18n/sq.d.ts +2 -0
- package/datepicker/chronos/i18n/sv.d.ts +2 -0
- package/datepicker/chronos/i18n/th-be.d.ts +2 -0
- package/datepicker/chronos/i18n/th.d.ts +2 -0
- package/datepicker/chronos/i18n/tr.d.ts +2 -0
- package/datepicker/chronos/i18n/uk.d.ts +2 -0
- package/datepicker/chronos/i18n/vi.d.ts +2 -0
- package/datepicker/chronos/i18n/zh-cn.d.ts +2 -0
- package/datepicker/chronos/index.d.ts +1 -0
- package/datepicker/chronos/locale/calendar.d.ts +8 -0
- package/datepicker/chronos/locale/locale.class.d.ts +143 -0
- package/datepicker/chronos/locale/locale.defaults.d.ts +11 -0
- package/datepicker/chronos/locale/locales.d.ts +7 -0
- package/datepicker/chronos/moment/add-subtract.d.ts +5 -0
- package/datepicker/chronos/moment/calendar.d.ts +15 -0
- package/datepicker/chronos/moment/diff.d.ts +3 -0
- package/datepicker/chronos/moment/min-max.d.ts +2 -0
- package/datepicker/chronos/parse/regex.d.ts +22 -0
- package/datepicker/chronos/parse/token.d.ts +5 -0
- package/datepicker/chronos/public_api.d.ts +57 -0
- package/datepicker/chronos/test/chain.d.ts +214 -0
- package/datepicker/chronos/types.d.ts +36 -0
- package/datepicker/chronos/units/aliases.d.ts +7 -0
- package/datepicker/chronos/units/constants.d.ts +9 -0
- package/datepicker/chronos/units/day-of-month.d.ts +1 -0
- package/datepicker/chronos/units/day-of-week.d.ts +20 -0
- package/datepicker/chronos/units/day-of-year.d.ts +3 -0
- package/datepicker/chronos/units/hour.d.ts +1 -0
- package/datepicker/chronos/units/index.d.ts +18 -0
- package/datepicker/chronos/units/millisecond.d.ts +1 -0
- package/datepicker/chronos/units/minute.d.ts +1 -0
- package/datepicker/chronos/units/month.d.ts +2 -0
- package/datepicker/chronos/units/offset.d.ts +10 -0
- package/datepicker/chronos/units/priorities.d.ts +1 -0
- package/datepicker/chronos/units/quarter.d.ts +3 -0
- package/datepicker/chronos/units/second.d.ts +1 -0
- package/datepicker/chronos/units/timestamp.d.ts +1 -0
- package/datepicker/chronos/units/timezone.d.ts +3 -0
- package/datepicker/chronos/units/week-calendar-utils.d.ts +9 -0
- package/datepicker/chronos/units/week-year.d.ts +8 -0
- package/datepicker/chronos/units/week.d.ts +6 -0
- package/datepicker/chronos/units/year.d.ts +4 -0
- package/datepicker/chronos/utils/abs-ceil.d.ts +1 -0
- package/datepicker/chronos/utils/abs-round.d.ts +1 -0
- package/datepicker/chronos/utils/compare-arrays.d.ts +1 -0
- package/datepicker/chronos/utils/date-compare.d.ts +9 -0
- package/datepicker/chronos/utils/date-getters.d.ts +18 -0
- package/datepicker/chronos/utils/date-setters.d.ts +12 -0
- package/datepicker/chronos/utils/defaults.d.ts +1 -0
- package/datepicker/chronos/utils/start-end-of.d.ts +3 -0
- package/datepicker/chronos/utils/type-checks.d.ts +12 -0
- package/datepicker/chronos/utils/zero-fill.d.ts +1 -0
- package/datepicker/chronos/utils.d.ts +2 -0
- package/datepicker/component-loader/bs-component-ref.class.d.ts +5 -0
- package/datepicker/component-loader/component-loader.class.d.ts +75 -0
- package/datepicker/component-loader/component-loader.factory.d.ts +21 -0
- package/datepicker/component-loader/content-ref.class.d.ts +7 -0
- package/datepicker/component-loader/index.d.ts +1 -0
- package/datepicker/component-loader/listen-options.model.d.ts +11 -0
- package/datepicker/component-loader/public_api.d.ts +4 -0
- package/datepicker/date-formatter.d.ts +3 -0
- package/datepicker/datepicker-animations.d.ts +3 -0
- package/datepicker/datepicker-inner.component.d.ts +78 -0
- package/datepicker/datepicker.component.d.ts +81 -0
- package/datepicker/datepicker.config.d.ts +22 -0
- package/datepicker/datepicker.module.d.ts +15 -0
- package/datepicker/daypicker.component.d.ts +17 -0
- package/datepicker/engine/calc-days-calendar.d.ts +2 -0
- package/datepicker/engine/flag-days-calendar.d.ts +17 -0
- package/datepicker/engine/flag-months-calendar.d.ts +12 -0
- package/datepicker/engine/flag-years-calendar.d.ts +12 -0
- package/datepicker/engine/format-days-calendar.d.ts +4 -0
- package/datepicker/engine/format-months-calendar.d.ts +2 -0
- package/datepicker/engine/format-years-calendar.d.ts +4 -0
- package/datepicker/engine/view-mode.d.ts +2 -0
- package/datepicker/index.d.ts +1 -0
- package/datepicker/mini-ngrx/index.d.ts +1 -0
- package/datepicker/mini-ngrx/public_api.d.ts +7 -0
- package/datepicker/mini-ngrx/state.class.d.ts +8 -0
- package/datepicker/mini-ngrx/store.class.d.ts +16 -0
- package/datepicker/models/index.d.ts +102 -0
- package/datepicker/monthpicker.component.d.ts +14 -0
- package/datepicker/positioning/index.d.ts +1 -0
- package/datepicker/positioning/models/index.d.ts +41 -0
- package/datepicker/positioning/modifiers/arrow.d.ts +2 -0
- package/datepicker/positioning/modifiers/flip.d.ts +2 -0
- package/datepicker/positioning/modifiers/index.d.ts +5 -0
- package/datepicker/positioning/modifiers/initData.d.ts +2 -0
- package/datepicker/positioning/modifiers/preventOverflow.d.ts +2 -0
- package/datepicker/positioning/modifiers/shift.d.ts +2 -0
- package/datepicker/positioning/ng-positioning.d.ts +8 -0
- package/datepicker/positioning/positioning.service.d.ts +48 -0
- package/datepicker/positioning/public_api.d.ts +2 -0
- package/datepicker/positioning/utils/computeAutoPlacement.d.ts +2 -0
- package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +1 -0
- package/datepicker/positioning/utils/getBordersSize.d.ts +4 -0
- package/datepicker/positioning/utils/getBoundaries.d.ts +1 -0
- package/datepicker/positioning/utils/getBoundingClientRect.d.ts +2 -0
- package/datepicker/positioning/utils/getClientRect.d.ts +5 -0
- package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
- package/datepicker/positioning/utils/getOffsetParent.d.ts +1 -0
- package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
- package/datepicker/positioning/utils/getOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getOppositePlacement.d.ts +4 -0
- package/datepicker/positioning/utils/getOppositeVariation.d.ts +4 -0
- package/datepicker/positioning/utils/getOuterSizes.d.ts +7 -0
- package/datepicker/positioning/utils/getParentNode.d.ts +4 -0
- package/datepicker/positioning/utils/getReferenceOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getRoot.d.ts +4 -0
- package/datepicker/positioning/utils/getScroll.d.ts +4 -0
- package/datepicker/positioning/utils/getScrollParent.d.ts +1 -0
- package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +4 -0
- package/datepicker/positioning/utils/getTargetOffsets.d.ts +2 -0
- package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
- package/datepicker/positioning/utils/getWindowSizes.d.ts +4 -0
- package/datepicker/positioning/utils/includeScroll.d.ts +2 -0
- package/datepicker/positioning/utils/index.d.ts +23 -0
- package/datepicker/positioning/utils/isBrowser.d.ts +1 -0
- package/datepicker/positioning/utils/isFixed.d.ts +1 -0
- package/datepicker/positioning/utils/isIE.d.ts +1 -0
- package/datepicker/positioning/utils/isModifierEnabled.d.ts +4 -0
- package/datepicker/positioning/utils/isNumeric.d.ts +4 -0
- package/datepicker/positioning/utils/isOffsetContainer.d.ts +1 -0
- package/datepicker/positioning/utils/setStyles.d.ts +5 -0
- package/datepicker/positioning/utils/updateContainerClass.d.ts +6 -0
- package/datepicker/public_api.d.ts +25 -0
- package/datepicker/reducer/_defaults.d.ts +2 -0
- package/datepicker/reducer/bs-datepicker.actions.d.ts +46 -0
- package/datepicker/reducer/bs-datepicker.effects.d.ts +41 -0
- package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
- package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
- package/datepicker/reducer/bs-datepicker.store.d.ts +8 -0
- package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +5 -0
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +6 -0
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +17 -0
- package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +36 -0
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +14 -0
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +13 -0
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +12 -0
- package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +40 -0
- package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +13 -0
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +26 -0
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +16 -0
- package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +8 -0
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +16 -0
- package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
- package/datepicker/utils/matrix-utils.d.ts +9 -0
- package/datepicker/utils-v2/decorators.d.ts +1 -0
- package/datepicker/utils-v2/facade/browser.d.ts +23 -0
- package/datepicker/utils-v2/index.d.ts +1 -0
- package/datepicker/utils-v2/linked-list.class.d.ts +26 -0
- package/datepicker/utils-v2/public_api.d.ts +10 -0
- package/datepicker/utils-v2/theme-provider.d.ts +2 -0
- package/datepicker/utils-v2/trigger.class.d.ts +6 -0
- package/datepicker/utils-v2/triggers.d.ts +18 -0
- package/datepicker/utils-v2/utils.class.d.ts +4 -0
- package/datepicker/utils-v2/warn-once.d.ts +1 -0
- package/datepicker/yearpicker.component.d.ts +14 -0
- package/esm2020/datepicker/base/bs-datepicker-container.mjs +47 -0
- package/esm2020/datepicker/bs-datepicker-inline.component.mjs +137 -0
- package/esm2020/datepicker/bs-datepicker-inline.config.mjs +14 -0
- package/esm2020/datepicker/bs-datepicker-input.directive.mjs +160 -0
- package/esm2020/datepicker/bs-datepicker.component.mjs +254 -0
- package/esm2020/datepicker/bs-datepicker.config.mjs +87 -0
- package/esm2020/datepicker/bs-datepicker.module.mjs +126 -0
- package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +134 -0
- package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +21 -0
- package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +192 -0
- package/esm2020/datepicker/bs-daterangepicker.component.mjs +240 -0
- package/esm2020/datepicker/bs-daterangepicker.config.mjs +19 -0
- package/esm2020/datepicker/bs-locale.service.mjs +32 -0
- package/esm2020/datepicker/chronos/create/check-overflow.mjs +30 -0
- package/esm2020/datepicker/chronos/create/clone.mjs +6 -0
- package/esm2020/datepicker/chronos/create/date-from-array.mjs +17 -0
- package/esm2020/datepicker/chronos/create/from-anything.mjs +107 -0
- package/esm2020/datepicker/chronos/create/from-array.mjs +136 -0
- package/esm2020/datepicker/chronos/create/from-object.mjs +17 -0
- package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +38 -0
- package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +106 -0
- package/esm2020/datepicker/chronos/create/from-string.mjs +227 -0
- package/esm2020/datepicker/chronos/create/local.mjs +16 -0
- package/esm2020/datepicker/chronos/create/parsing-flags.mjs +26 -0
- package/esm2020/datepicker/chronos/create/parsing.types.mjs +2 -0
- package/esm2020/datepicker/chronos/create/valid.mjs +42 -0
- package/esm2020/datepicker/chronos/duration/bubble.mjs +47 -0
- package/esm2020/datepicker/chronos/duration/constructor.mjs +130 -0
- package/esm2020/datepicker/chronos/duration/create.mjs +113 -0
- package/esm2020/datepicker/chronos/duration/humanize.mjs +80 -0
- package/esm2020/datepicker/chronos/duration/valid.mjs +43 -0
- package/esm2020/datepicker/chronos/format/format.mjs +51 -0
- package/esm2020/datepicker/chronos/format.mjs +46 -0
- package/esm2020/datepicker/chronos/i18n/ar.mjs +128 -0
- package/esm2020/datepicker/chronos/i18n/bg.mjs +94 -0
- package/esm2020/datepicker/chronos/i18n/ca.mjs +91 -0
- package/esm2020/datepicker/chronos/i18n/cs.mjs +179 -0
- package/esm2020/datepicker/chronos/i18n/da.mjs +50 -0
- package/esm2020/datepicker/chronos/i18n/de.mjs +72 -0
- package/esm2020/datepicker/chronos/i18n/en-gb.mjs +61 -0
- package/esm2020/datepicker/chronos/i18n/es-do.mjs +85 -0
- package/esm2020/datepicker/chronos/i18n/es-us.mjs +79 -0
- package/esm2020/datepicker/chronos/i18n/es.mjs +84 -0
- package/esm2020/datepicker/chronos/i18n/et.mjs +73 -0
- package/esm2020/datepicker/chronos/i18n/fi.mjs +100 -0
- package/esm2020/datepicker/chronos/i18n/fr.mjs +76 -0
- package/esm2020/datepicker/chronos/i18n/gl.mjs +84 -0
- package/esm2020/datepicker/chronos/i18n/he.mjs +98 -0
- package/esm2020/datepicker/chronos/i18n/hi.mjs +124 -0
- package/esm2020/datepicker/chronos/i18n/hr.mjs +62 -0
- package/esm2020/datepicker/chronos/i18n/hu.mjs +104 -0
- package/esm2020/datepicker/chronos/i18n/id.mjs +83 -0
- package/esm2020/datepicker/chronos/i18n/it.mjs +65 -0
- package/esm2020/datepicker/chronos/i18n/ja.mjs +75 -0
- package/esm2020/datepicker/chronos/i18n/ka.mjs +87 -0
- package/esm2020/datepicker/chronos/i18n/kk.mjs +76 -0
- package/esm2020/datepicker/chronos/i18n/ko.mjs +77 -0
- package/esm2020/datepicker/chronos/i18n/lt.mjs +116 -0
- package/esm2020/datepicker/chronos/i18n/lv.mjs +56 -0
- package/esm2020/datepicker/chronos/i18n/mn.mjs +99 -0
- package/esm2020/datepicker/chronos/i18n/nb.mjs +53 -0
- package/esm2020/datepicker/chronos/i18n/nl-be.mjs +81 -0
- package/esm2020/datepicker/chronos/i18n/nl.mjs +80 -0
- package/esm2020/datepicker/chronos/i18n/pl.mjs +126 -0
- package/esm2020/datepicker/chronos/i18n/pt-br.mjs +56 -0
- package/esm2020/datepicker/chronos/i18n/ro.mjs +66 -0
- package/esm2020/datepicker/chronos/i18n/ru.mjs +181 -0
- package/esm2020/datepicker/chronos/i18n/sk.mjs +157 -0
- package/esm2020/datepicker/chronos/i18n/sl.mjs +184 -0
- package/esm2020/datepicker/chronos/i18n/sq.mjs +54 -0
- package/esm2020/datepicker/chronos/i18n/sv.mjs +63 -0
- package/esm2020/datepicker/chronos/i18n/th-be.mjs +74 -0
- package/esm2020/datepicker/chronos/i18n/th.mjs +59 -0
- package/esm2020/datepicker/chronos/i18n/tr.mjs +82 -0
- package/esm2020/datepicker/chronos/i18n/uk.mjs +147 -0
- package/esm2020/datepicker/chronos/i18n/vi.mjs +74 -0
- package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +114 -0
- package/esm2020/datepicker/chronos/index.mjs +2 -0
- package/esm2020/datepicker/chronos/locale/calendar.mjs +9 -0
- package/esm2020/datepicker/chronos/locale/locale.class.mjs +532 -0
- package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +40 -0
- package/esm2020/datepicker/chronos/locale/locales.mjs +229 -0
- package/esm2020/datepicker/chronos/moment/add-subtract.mjs +35 -0
- package/esm2020/datepicker/chronos/moment/calendar.mjs +41 -0
- package/esm2020/datepicker/chronos/moment/diff.mjs +70 -0
- package/esm2020/datepicker/chronos/moment/min-max.mjs +38 -0
- package/esm2020/datepicker/chronos/parse/regex.mjs +49 -0
- package/esm2020/datepicker/chronos/parse/token.mjs +32 -0
- package/esm2020/datepicker/chronos/public_api.mjs +56 -0
- package/esm2020/datepicker/chronos/test/chain.mjs +711 -0
- package/esm2020/datepicker/chronos/types.mjs +2 -0
- package/esm2020/datepicker/chronos/units/aliases.mjs +35 -0
- package/esm2020/datepicker/chronos/units/constants.mjs +11 -0
- package/esm2020/datepicker/chronos/units/day-of-month.mjs +31 -0
- package/esm2020/datepicker/chronos/units/day-of-week.mjs +129 -0
- package/esm2020/datepicker/chronos/units/day-of-year.mjs +37 -0
- package/esm2020/datepicker/chronos/units/hour.mjs +127 -0
- package/esm2020/datepicker/chronos/units/index.mjs +19 -0
- package/esm2020/datepicker/chronos/units/millisecond.mjs +60 -0
- package/esm2020/datepicker/chronos/units/minute.mjs +23 -0
- package/esm2020/datepicker/chronos/units/month.mjs +63 -0
- package/esm2020/datepicker/chronos/units/offset.mjs +210 -0
- package/esm2020/datepicker/chronos/units/priorities.mjs +21 -0
- package/esm2020/datepicker/chronos/units/quarter.mjs +39 -0
- package/esm2020/datepicker/chronos/units/second.mjs +23 -0
- package/esm2020/datepicker/chronos/units/timestamp.mjs +28 -0
- package/esm2020/datepicker/chronos/units/timezone.mjs +19 -0
- package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +70 -0
- package/esm2020/datepicker/chronos/units/week-year.mjs +101 -0
- package/esm2020/datepicker/chronos/units/week.mjs +58 -0
- package/esm2020/datepicker/chronos/units/year.mjs +60 -0
- package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +4 -0
- package/esm2020/datepicker/chronos/utils/abs-round.mjs +4 -0
- package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +16 -0
- package/esm2020/datepicker/chronos/utils/date-compare.mjs +55 -0
- package/esm2020/datepicker/chronos/utils/date-getters.mjs +67 -0
- package/esm2020/datepicker/chronos/utils/date-setters.mjs +75 -0
- package/esm2020/datepicker/chronos/utils/defaults.mjs +11 -0
- package/esm2020/datepicker/chronos/utils/start-end-of.mjs +57 -0
- package/esm2020/datepicker/chronos/utils/type-checks.mjs +56 -0
- package/esm2020/datepicker/chronos/utils/zero-fill.mjs +10 -0
- package/esm2020/datepicker/chronos/utils.mjs +7 -0
- package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +3 -0
- package/esm2020/datepicker/component-loader/component-loader.class.mjs +272 -0
- package/esm2020/datepicker/component-loader/component-loader.factory.mjs +29 -0
- package/esm2020/datepicker/component-loader/content-ref.class.mjs +12 -0
- package/esm2020/datepicker/component-loader/index.mjs +2 -0
- package/esm2020/datepicker/component-loader/listen-options.model.mjs +2 -0
- package/esm2020/datepicker/component-loader/public_api.mjs +5 -0
- package/esm2020/datepicker/date-formatter.mjs +7 -0
- package/esm2020/datepicker/datepicker-animations.mjs +16 -0
- package/esm2020/datepicker/datepicker-inner.component.mjs +323 -0
- package/esm2020/datepicker/datepicker.component.mjs +182 -0
- package/esm2020/datepicker/datepicker.config.mjs +32 -0
- package/esm2020/datepicker/datepicker.module.mjs +49 -0
- package/esm2020/datepicker/daypicker.component.mjs +314 -0
- package/esm2020/datepicker/engine/calc-days-calendar.mjs +19 -0
- package/esm2020/datepicker/engine/flag-days-calendar.mjs +91 -0
- package/esm2020/datepicker/engine/flag-months-calendar.mjs +41 -0
- package/esm2020/datepicker/engine/flag-years-calendar.mjs +39 -0
- package/esm2020/datepicker/engine/format-days-calendar.mjs +29 -0
- package/esm2020/datepicker/engine/format-months-calendar.mjs +19 -0
- package/esm2020/datepicker/engine/format-years-calendar.mjs +35 -0
- package/esm2020/datepicker/engine/view-mode.mjs +4 -0
- package/esm2020/datepicker/index.mjs +2 -0
- package/esm2020/datepicker/mini-ngrx/index.mjs +2 -0
- package/esm2020/datepicker/mini-ngrx/public_api.mjs +3 -0
- package/esm2020/datepicker/mini-ngrx/state.class.mjs +16 -0
- package/esm2020/datepicker/mini-ngrx/store.class.mjs +43 -0
- package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +5 -0
- package/esm2020/datepicker/models/index.mjs +9 -0
- package/esm2020/datepicker/monthpicker.component.mjs +145 -0
- package/esm2020/datepicker/positioning/index.mjs +2 -0
- package/esm2020/datepicker/positioning/models/index.mjs +2 -0
- package/esm2020/datepicker/positioning/modifiers/arrow.mjs +56 -0
- package/esm2020/datepicker/positioning/modifiers/flip.mjs +66 -0
- package/esm2020/datepicker/positioning/modifiers/index.mjs +6 -0
- package/esm2020/datepicker/positioning/modifiers/initData.mjs +42 -0
- package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +59 -0
- package/esm2020/datepicker/positioning/modifiers/shift.mjs +24 -0
- package/esm2020/datepicker/positioning/ng-positioning.mjs +30 -0
- package/esm2020/datepicker/positioning/positioning.service.mjs +75 -0
- package/esm2020/datepicker/positioning/public_api.mjs +3 -0
- package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +57 -0
- package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +40 -0
- package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +56 -0
- package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +55 -0
- package/esm2020/datepicker/positioning/utils/getClientRect.mjs +8 -0
- package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +17 -0
- package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +32 -0
- package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +51 -0
- package/esm2020/datepicker/positioning/utils/getOffsets.mjs +11 -0
- package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +8 -0
- package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +14 -0
- package/esm2020/datepicker/positioning/utils/getParentNode.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getRoot.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/getScroll.mjs +14 -0
- package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +26 -0
- package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +13 -0
- package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +30 -0
- package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +19 -0
- package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +18 -0
- package/esm2020/datepicker/positioning/utils/includeScroll.mjs +15 -0
- package/esm2020/datepicker/positioning/utils/index.mjs +24 -0
- package/esm2020/datepicker/positioning/utils/isBrowser.mjs +2 -0
- package/esm2020/datepicker/positioning/utils/isFixed.mjs +16 -0
- package/esm2020/datepicker/positioning/utils/isIE.mjs +16 -0
- package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +10 -0
- package/esm2020/datepicker/positioning/utils/isNumeric.mjs +7 -0
- package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +9 -0
- package/esm2020/datepicker/positioning/utils/setStyles.mjs +17 -0
- package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +22 -0
- package/esm2020/datepicker/public_api.mjs +25 -0
- package/esm2020/datepicker/reducer/_defaults.mjs +5 -0
- package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +136 -0
- package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +169 -0
- package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +302 -0
- package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +12 -0
- package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +21 -0
- package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +54 -0
- package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +23 -0
- package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +78 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +319 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +52 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +203 -0
- package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +111 -0
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +362 -0
- package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +203 -0
- package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +308 -0
- package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +106 -0
- package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +64 -0
- package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +107 -0
- package/esm2020/datepicker/utils/bs-calendar-utils.mjs +43 -0
- package/esm2020/datepicker/utils/matrix-utils.mjs +14 -0
- package/esm2020/datepicker/utils-v2/decorators.mjs +25 -0
- package/esm2020/datepicker/utils-v2/facade/browser.mjs +24 -0
- package/esm2020/datepicker/utils-v2/index.mjs +2 -0
- package/esm2020/datepicker/utils-v2/linked-list.class.mjs +240 -0
- package/esm2020/datepicker/utils-v2/public_api.mjs +11 -0
- package/esm2020/datepicker/utils-v2/theme-provider.mjs +35 -0
- package/esm2020/datepicker/utils-v2/trigger.class.mjs +10 -0
- package/esm2020/datepicker/utils-v2/triggers.mjs +110 -0
- package/esm2020/datepicker/utils-v2/utils.class.mjs +21 -0
- package/esm2020/datepicker/utils-v2/warn-once.mjs +12 -0
- package/esm2020/datepicker/yearpicker.component.mjs +147 -0
- package/fesm2015/mis-crystal-design-system-datepicker.mjs +14950 -0
- package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +1 -0
- package/fesm2020/mis-crystal-design-system-datepicker.mjs +14572 -0
- package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +1 -0
- package/package.json +9 -1
|
@@ -0,0 +1,63 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2Nocm9ub3MvdW5pdHMvbW9udGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDcEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMvQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDcEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFJMUQscURBQXFEO0FBQ3JELE1BQU0sVUFBVSxXQUFXLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDckQsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQy9CLE9BQU8sR0FBRyxDQUFDO0tBQ1o7SUFDRCxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxF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RixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEZvcm1hdFRva2VuIH0gZnJvbSAnLi4vZm9ybWF0L2Zvcm1hdCc7XG5pbXBvcnQgeyBpc0xlYXBZZWFyIH0gZnJvbSAnLi95ZWFyJztcbmltcG9ydCB7IG1vZCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IGdldE1vbnRoIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcbmltcG9ydCB7IGFkZFJlZ2V4VG9rZW4sIG1hdGNoMXRvMiwgbWF0Y2gyIH0gZnJvbSAnLi4vcGFyc2UvcmVnZXgnO1xuaW1wb3J0IHsgYWRkUGFyc2VUb2tlbiB9IGZyb20gJy4uL3BhcnNlL3Rva2VuJztcbmltcG9ydCB7IE1PTlRIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdG9JbnQgfSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5pbXBvcnQgeyBhZGRVbml0UHJpb3JpdHkgfSBmcm9tICcuL3ByaW9yaXRpZXMnO1xuaW1wb3J0IHsgYWRkVW5pdEFsaWFzIH0gZnJvbSAnLi9hbGlhc2VzJztcbmltcG9ydCB7IGdldFBhcnNpbmdGbGFncyB9IGZyb20gJy4uL2NyZWF0ZS9wYXJzaW5nLWZsYWdzJztcbmltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmcudHlwZXMnO1xuaW1wb3J0IHsgRGF0ZUFycmF5LCBEYXRlRm9ybWF0dGVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzJztcblxuLy8gdG9kbzogdGhpcyBpcyBkdXBsaWNhdGUsIHNvdXJjZSBpbiBkYXRlLWdldHRlcnMudHNcbmV4cG9ydCBmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpOiBudW1iZXIge1xuICBpZiAoaXNOYU4oeWVhcikgfHwgaXNOYU4obW9udGgpKSB7XG4gICAgcmV0dXJuIE5hTjtcbiAgfVxuICBjb25zdCBtb2RNb250aCA9IG1vZChtb250aCwgMTIpO1xuICBjb25zdCBfeWVhciA9IHllYXIgKyAobW9udGggLSBtb2RNb250aCkgLyAxMjtcblxuICByZXR1cm4gbW9kTW9udGggPT09IDFcbiAgICA/IGlzTGVhcFllYXIoX3llYXIpID8gMjkgOiAyOFxuICAgIDogKDMxIC0gbW9kTW9udGggJSA3ICUgMik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0TW9udGgoKSB7XG4vLyBGT1JNQVRUSU5HXG5cbiAgYWRkRm9ybWF0VG9rZW4oJ00nLCBbJ01NJywgMiwgZmFsc2VdLCAnTW8nLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAoZ2V0TW9udGgoZGF0ZSwgb3B0cy5pc1VUQykgKyAxKS50b1N0cmluZygxMCk7XG4gICAgfVxuICApO1xuXG4gIGFkZEZvcm1hdFRva2VuKCdNTU0nLCBudWxsLCBudWxsLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBvcHRzLmxvY2FsZS5tb250aHNTaG9ydChkYXRlLCBvcHRzLmZvcm1hdCwgb3B0cy5pc1VUQyk7XG4gICAgfVxuICApO1xuXG4gIGFkZEZvcm1hdFRva2VuKCdNTU1NJywgbnVsbCwgbnVsbCxcbiAgICBmdW5jdGlvbihkYXRlOiBEYXRlLCBvcHRzOiBEYXRlRm9ybWF0dGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gb3B0cy5sb2NhbGUubW9udGhzKGRhdGUsIG9wdHMuZm9ybWF0LCBvcHRzLmlzVVRDKTtcbiAgICB9XG4gICk7XG5cblxuLy8gQUxJQVNFU1xuXG4gIGFkZFVuaXRBbGlhcygnbW9udGgnLCAnTScpO1xuXG4vLyBQUklPUklUWVxuXG4gIGFkZFVuaXRQcmlvcml0eSgnbW9udGgnLCA4KTtcblxuLy8gUEFSU0lOR1xuXG4gIGFkZFJlZ2V4VG9rZW4oJ00nLCBtYXRjaDF0bzIpO1xuICBhZGRSZWdleFRva2VuKCdNTScsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgYWRkUmVnZXhUb2tlbignTU1NJywgZnVuY3Rpb24oaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgIHJldHVybiBsb2NhbGUubW9udGhzU2hvcnRSZWdleChpc1N0cmljdCk7XG4gIH0pO1xuICBhZGRSZWdleFRva2VuKCdNTU1NJywgZnVuY3Rpb24oaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgIHJldHVybiBsb2NhbGUubW9udGhzUmVnZXgoaXNTdHJpY3QpO1xuICB9KTtcblxuICBhZGRQYXJzZVRva2VuKFsnTScsICdNTSddLCBmdW5jdGlvbihpbnB1dDogc3RyaW5nLCBhcnJheTogRGF0ZUFycmF5LCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICAgIGFycmF5W01PTlRIXSA9IHRvSW50KGlucHV0KSAtIDE7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9KTtcblxuICBhZGRQYXJzZVRva2VuKFxuICAgIFsnTU1NJywgJ01NTU0nXSxcbiAgICBmdW5jdGlvbihpbnB1dDogc3RyaW5nLCBhcnJheTogRGF0ZUFycmF5LCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnLCB0b2tlbjogc3RyaW5nKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICAgICAgY29uc3QgbW9udGggPSBjb25maWcuX2xvY2FsZS5tb250aHNQYXJzZShpbnB1dCwgdG9rZW4sIGNvbmZpZy5fc3RyaWN0KTtcbiAgICAgIC8vIGlmIHdlIGRpZG4ndCBmaW5kIGEgbW9udGggbmFtZSwgbWFyayB0aGUgZGF0ZSBhcyBpbnZhbGlkLlxuICAgICAgaWYgKG1vbnRoICE9IG51bGwpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gbW9udGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkTW9udGggPSAhIWlucHV0O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
// tslint:disable:no-bitwise max-line-length
|
|
2
|
+
// FORMATTING
|
|
3
|
+
import { addFormatToken } from '../format/format';
|
|
4
|
+
import { zeroFill } from '../utils/zero-fill';
|
|
5
|
+
import { isNumber, isString, toInt } from '../utils/type-checks';
|
|
6
|
+
import { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';
|
|
7
|
+
import { add } from '../moment/add-subtract';
|
|
8
|
+
import { addParseToken } from '../parse/token';
|
|
9
|
+
import { cloneDate } from '../create/clone';
|
|
10
|
+
import { setMonth } from '../utils/date-setters';
|
|
11
|
+
function addOffsetFormatToken(token, separator) {
|
|
12
|
+
addFormatToken(token, null, null, function (date, config) {
|
|
13
|
+
let offset = getUTCOffset(date, { _isUTC: config.isUTC, _offset: config.offset });
|
|
14
|
+
let sign = '+';
|
|
15
|
+
if (offset < 0) {
|
|
16
|
+
offset = -offset;
|
|
17
|
+
sign = '-';
|
|
18
|
+
}
|
|
19
|
+
return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
export function initOffset() {
|
|
23
|
+
addOffsetFormatToken('Z', ':');
|
|
24
|
+
addOffsetFormatToken('ZZ', '');
|
|
25
|
+
// PARSING
|
|
26
|
+
addRegexToken('Z', matchShortOffset);
|
|
27
|
+
addRegexToken('ZZ', matchShortOffset);
|
|
28
|
+
addParseToken(['Z', 'ZZ'], function (input, array, config) {
|
|
29
|
+
config._useUTC = true;
|
|
30
|
+
config._tzm = offsetFromString(matchShortOffset, input);
|
|
31
|
+
return config;
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
// HELPERS
|
|
35
|
+
// timezone chunker
|
|
36
|
+
// '+10:00' > ['10', '00']
|
|
37
|
+
// '-1530' > ['-15', '30']
|
|
38
|
+
const chunkOffset = /([\+\-]|\d\d)/gi;
|
|
39
|
+
function offsetFromString(matcher, str) {
|
|
40
|
+
const matches = (str || '').match(matcher);
|
|
41
|
+
if (matches === null) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const chunk = matches[matches.length - 1];
|
|
45
|
+
const parts = chunk.match(chunkOffset) || ['-', '0', '0'];
|
|
46
|
+
const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);
|
|
47
|
+
const _min = parts[0] === '+' ? minutes : -minutes;
|
|
48
|
+
return minutes === 0 ? 0 : _min;
|
|
49
|
+
}
|
|
50
|
+
// Return a moment from input, that is local/utc/zone equivalent to model.
|
|
51
|
+
export function cloneWithOffset(input, date, config = {}) {
|
|
52
|
+
if (!config._isUTC) {
|
|
53
|
+
return input;
|
|
54
|
+
}
|
|
55
|
+
const res = cloneDate(date);
|
|
56
|
+
// todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000
|
|
57
|
+
const offsetDiff = (config._offset || 0) * 60000;
|
|
58
|
+
const diff = input.valueOf() - res.valueOf() + offsetDiff;
|
|
59
|
+
// Use low-level api, because this fn is low-level api.
|
|
60
|
+
res.setTime(res.valueOf() + diff);
|
|
61
|
+
// todo: add timezone handling
|
|
62
|
+
// hooks.updateOffset(res, false);
|
|
63
|
+
return res;
|
|
64
|
+
}
|
|
65
|
+
export function getDateOffset(date) {
|
|
66
|
+
// On Firefox.24 Date#getTimezoneOffset returns a floating point.
|
|
67
|
+
// https://github.com/moment/moment/pull/1871
|
|
68
|
+
return -Math.round(date.getTimezoneOffset() / 15) * 15;
|
|
69
|
+
}
|
|
70
|
+
// HOOKS
|
|
71
|
+
// This function will be called whenever a moment is mutated.
|
|
72
|
+
// It is intended to keep the offset in sync with the timezone.
|
|
73
|
+
// todo: it's from moment timezones
|
|
74
|
+
// hooks.updateOffset = function () {
|
|
75
|
+
// };
|
|
76
|
+
// MOMENTS
|
|
77
|
+
// keepLocalTime = true means only change the timezone, without
|
|
78
|
+
// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->
|
|
79
|
+
// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset
|
|
80
|
+
// +0200, so we adjust the time as needed, to be valid.
|
|
81
|
+
//
|
|
82
|
+
// Keeping the time actually adds/subtracts (one hour)
|
|
83
|
+
// from the actual represented time. That is why we call updateOffset
|
|
84
|
+
// a second time. In case it wants us to change the offset again
|
|
85
|
+
// _changeInProgress == true case, then we have to adjust, because
|
|
86
|
+
// there is no such time in the given timezone.
|
|
87
|
+
export function getUTCOffset(date, config = {}) {
|
|
88
|
+
const _offset = config._offset || 0;
|
|
89
|
+
return config._isUTC ? _offset : getDateOffset(date);
|
|
90
|
+
}
|
|
91
|
+
export function setUTCOffset(date, input, keepLocalTime, keepMinutes, config = {}) {
|
|
92
|
+
const offset = config._offset || 0;
|
|
93
|
+
let localAdjust;
|
|
94
|
+
let _input = input;
|
|
95
|
+
let _date = date;
|
|
96
|
+
if (isString(_input)) {
|
|
97
|
+
_input = offsetFromString(matchShortOffset, _input);
|
|
98
|
+
if (_input === null) {
|
|
99
|
+
return _date;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {
|
|
103
|
+
_input = _input * 60;
|
|
104
|
+
}
|
|
105
|
+
if (!config._isUTC && keepLocalTime) {
|
|
106
|
+
localAdjust = getDateOffset(_date);
|
|
107
|
+
}
|
|
108
|
+
config._offset = _input;
|
|
109
|
+
config._isUTC = true;
|
|
110
|
+
if (localAdjust != null) {
|
|
111
|
+
_date = add(_date, localAdjust, 'minutes');
|
|
112
|
+
}
|
|
113
|
+
if (offset !== _input) {
|
|
114
|
+
if (!keepLocalTime || config._changeInProgress) {
|
|
115
|
+
_date = add(_date, _input - offset, 'minutes', config._isUTC);
|
|
116
|
+
// addSubtract(this, createDuration(_input - offset, 'm'), 1, false);
|
|
117
|
+
}
|
|
118
|
+
else if (!config._changeInProgress) {
|
|
119
|
+
config._changeInProgress = true;
|
|
120
|
+
// todo: add timezone handling
|
|
121
|
+
// hooks.updateOffset(this, true);
|
|
122
|
+
config._changeInProgress = null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return _date;
|
|
126
|
+
}
|
|
127
|
+
/*
|
|
128
|
+
export function getSetZone(input, keepLocalTime) {
|
|
129
|
+
if (input != null) {
|
|
130
|
+
if (typeof input !== 'string') {
|
|
131
|
+
input = -input;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
this.utcOffset(input, keepLocalTime);
|
|
135
|
+
|
|
136
|
+
return this;
|
|
137
|
+
} else {
|
|
138
|
+
return -this.utcOffset();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
*/
|
|
142
|
+
export function setOffsetToUTC(date, keepLocalTime) {
|
|
143
|
+
return setUTCOffset(date, 0, keepLocalTime);
|
|
144
|
+
}
|
|
145
|
+
export function isDaylightSavingTime(date) {
|
|
146
|
+
return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))
|
|
147
|
+
|| getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));
|
|
148
|
+
}
|
|
149
|
+
/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {
|
|
150
|
+
if (this._isUTC) {
|
|
151
|
+
this.utcOffset(0, keepLocalTime);
|
|
152
|
+
this._isUTC = false;
|
|
153
|
+
|
|
154
|
+
if (keepLocalTime) {
|
|
155
|
+
this.subtract(getDateOffset(this), 'm');
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return this;
|
|
159
|
+
}*/
|
|
160
|
+
export function setOffsetToParsedOffset(date, input, config = {}) {
|
|
161
|
+
if (config._tzm != null) {
|
|
162
|
+
return setUTCOffset(date, config._tzm, false, true, config);
|
|
163
|
+
}
|
|
164
|
+
if (isString(input)) {
|
|
165
|
+
const tZone = offsetFromString(matchOffset, input);
|
|
166
|
+
if (tZone != null) {
|
|
167
|
+
return setUTCOffset(date, tZone, false, false, config);
|
|
168
|
+
}
|
|
169
|
+
return setUTCOffset(date, 0, true, false, config);
|
|
170
|
+
}
|
|
171
|
+
return date;
|
|
172
|
+
}
|
|
173
|
+
export function hasAlignedHourOffset(date, input) {
|
|
174
|
+
const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;
|
|
175
|
+
return (getUTCOffset(date) - _input) % 60 === 0;
|
|
176
|
+
}
|
|
177
|
+
// DEPRECATED
|
|
178
|
+
/*export function isDaylightSavingTimeShifted() {
|
|
179
|
+
if (!isUndefined(this._isDSTShifted)) {
|
|
180
|
+
return this._isDSTShifted;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
const c = {};
|
|
184
|
+
|
|
185
|
+
copyConfig(c, this);
|
|
186
|
+
c = prepareConfig(c);
|
|
187
|
+
|
|
188
|
+
if (c._a) {
|
|
189
|
+
const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);
|
|
190
|
+
this._isDSTShifted = this.isValid() &&
|
|
191
|
+
compareArrays(c._a, other.toArray()) > 0;
|
|
192
|
+
} else {
|
|
193
|
+
this._isDSTShifted = false;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return this._isDSTShifted;
|
|
197
|
+
}*/
|
|
198
|
+
// in Khronos
|
|
199
|
+
/*export function isLocal() {
|
|
200
|
+
return this.isValid() ? !this._isUTC : false;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export function isUtcOffset() {
|
|
204
|
+
return this.isValid() ? this._isUTC : false;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
export function isUtc() {
|
|
208
|
+
return this.isValid() ? this._isUTC && this._offset === 0 : false;
|
|
209
|
+
}*/
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2Zmc2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9jaHJvbm9zL3VuaXRzL29mZnNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0Q0FBNEM7QUFDNUMsYUFBYTtBQUViLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakQsU0FBUyxvQkFBb0IsQ0FBQyxLQUFhLEVBQUUsU0FBaUI7SUFDNUQsY0FBYyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsSUFBVSxFQUFFLE1BQU07UUFDNUQsSUFBSSxNQUFNLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxFQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLElBQUksR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDZCxNQUFNLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDakIsSUFBSSxHQUFHLEdB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QUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVsRSxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUdELGFBQWE7QUFDYjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUVILGFBQWE7QUFDYjs7Ozs7Ozs7OztHQVVHIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6bm8tYml0d2lzZSBtYXgtbGluZS1sZW5ndGhcbi8vIEZPUk1BVFRJTkdcblxuaW1wb3J0IHsgYWRkRm9ybWF0VG9rZW4gfSBmcm9tICcuLi9mb3JtYXQvZm9ybWF0JztcbmltcG9ydCB7IHplcm9GaWxsIH0gZnJvbSAnLi4vdXRpbHMvemVyby1maWxsJztcbmltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmcudHlwZXMnO1xuaW1wb3J0IHsgaXNOdW1iZXIsIGlzU3RyaW5nLCB0b0ludCB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcbmltcG9ydCB7IGFkZFJlZ2V4VG9rZW4sIG1hdGNoT2Zmc2V0LCBtYXRjaFNob3J0T2Zmc2V0IH0gZnJvbSAnLi4vcGFyc2UvcmVnZXgnO1xuaW1wb3J0IHsgYWRkIH0gZnJvbSAnLi4vbW9tZW50L2FkZC1zdWJ0cmFjdCc7XG5pbXBvcnQgeyBhZGRQYXJzZVRva2VuIH0gZnJvbSAnLi4vcGFyc2UvdG9rZW4nO1xuaW1wb3J0IHsgRGF0ZUFycmF5IH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgY2xvbmVEYXRlIH0gZnJvbSAnLi4vY3JlYXRlL2Nsb25lJztcbmltcG9ydCB7IHNldE1vbnRoIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1zZXR0ZXJzJztcblxuZnVuY3Rpb24gYWRkT2Zmc2V0Rm9ybWF0VG9rZW4odG9rZW46IHN0cmluZywgc2VwYXJhdG9yOiBzdHJpbmcpOiB2b2lkIHtcbiAgYWRkRm9ybWF0VG9rZW4odG9rZW4sIG51bGwsIG51bGwsIGZ1bmN0aW9uIChkYXRlOiBEYXRlLCBjb25maWcpOiBzdHJpbmcge1xuICAgIGxldCBvZmZzZXQgPSBnZXRVVENPZmZzZXQoZGF0ZSwge19pc1VUQzogY29uZmlnLmlzVVRDLCBfb2Zmc2V0OiBjb25maWcub2Zmc2V0fSk7XG4gICAgbGV0IHNpZ24gPSAnKyc7XG4gICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgIG9mZnNldCA9IC1vZmZzZXQ7XG4gICAgICBzaWduID0gJy0nO1xuICAgIH1cblxuICAgIHJldHVybiBzaWduICsgemVyb0ZpbGwofn4ob2Zmc2V0IC8gNjApLCAyKSArIHNlcGFyYXRvciArIHplcm9GaWxsKH5+KG9mZnNldCkgJSA2MCwgMik7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdE9mZnNldCgpIHtcbiAgYWRkT2Zmc2V0Rm9ybWF0VG9rZW4oJ1onLCAnOicpO1xuICBhZGRPZmZzZXRGb3JtYXRUb2tlbignWlonLCAnJyk7XG5cbi8vIFBBUlNJTkdcblxuICBhZGRSZWdleFRva2VuKCdaJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gIGFkZFJlZ2V4VG9rZW4oJ1paJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gIGFkZFBhcnNlVG9rZW4oWydaJywgJ1paJ10sIGZ1bmN0aW9uKGlucHV0OiBzdHJpbmcsIGFycmF5OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgY29uZmlnLl91c2VVVEMgPSB0cnVlO1xuICAgIGNvbmZpZy5fdHptID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9KTtcbn1cblxuLy8gSEVMUEVSU1xuXG4vLyB0aW1lem9uZSBjaHVua2VyXG4vLyAnKzEwOjAwJyA+IFsnMTAnLCAgJzAwJ11cbi8vICctMTUzMCcgID4gWyctMTUnLCAnMzAnXVxuY29uc3QgY2h1bmtPZmZzZXQgPSAvKFtcXCtcXC1dfFxcZFxcZCkvZ2k7XG5cbmZ1bmN0aW9uIG9mZnNldEZyb21TdHJpbmcobWF0Y2hlcjogUmVnRXhwLCBzdHI6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IG1hdGNoZXMgPSAoc3RyIHx8ICcnKS5tYXRjaChtYXRjaGVyKTtcblxuICBpZiAobWF0Y2hlcyA9PT0gbnVsbCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgY2h1bmsgPSBtYXRjaGVzW21hdGNoZXMubGVuZ3RoIC0gMV07XG4gIGNvbnN0IHBhcnRzID0gY2h1bmsubWF0Y2goY2h1bmtPZmZzZXQpIHx8IFsnLScsICcwJywgJzAnXTtcbiAgY29uc3QgbWludXRlcyA9IHBhcnNlSW50KHBhcnRzWzFdLCAxMCkgKiA2MCArIHRvSW50KHBhcnRzWzJdKTtcbiAgY29uc3QgX21pbiA9IHBhcnRzWzBdID09PSAnKycgPyBtaW51dGVzIDogLW1pbnV0ZXM7XG5cbiAgcmV0dXJuIG1pbnV0ZXMgPT09IDAgPyAwIDogX21pbjtcbn1cblxuLy8gUmV0dXJuIGEgbW9tZW50IGZyb20gaW5wdXQsIHRoYXQgaXMgbG9jYWwvdXRjL3pvbmUgZXF1aXZhbGVudCB0byBtb2RlbC5cbmV4cG9ydCBmdW5jdGlvbiBjbG9uZVdpdGhPZmZzZXQoaW5wdXQ6IERhdGUsIGRhdGU6IERhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcgPSB7fSk6IERhdGUge1xuICBpZiAoIWNvbmZpZy5faXNVVEMpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cblxuICBjb25zdCByZXMgPSBjbG9uZURhdGUoZGF0ZSk7XG4gIC8vIHRvZG86IGlucHV0Ll9kIC0gcmVzLl9kICsgKChyZXMuX29mZnNldCB8fCAwKSAtIChpbnB1dC5fb2Zmc2V0IHx8IDApKSo2MDAwMFxuICBjb25zdCBvZmZzZXREaWZmID0gKGNvbmZpZy5fb2Zmc2V0IHx8IDApICogNjAwMDA7XG4gIGNvbnN0IGRpZmYgPSBpbnB1dC52YWx1ZU9mKCkgLSByZXMudmFsdWVPZigpICsgb2Zmc2V0RGlmZjtcbiAgLy8gVXNlIGxvdy1sZXZlbCBhcGksIGJlY2F1c2UgdGhpcyBmbiBpcyBsb3ctbGV2ZWwgYXBpLlxuICByZXMuc2V0VGltZShyZXMudmFsdWVPZigpICsgZGlmZik7XG4gIC8vIHRvZG86IGFkZCB0aW1lem9uZSBoYW5kbGluZ1xuICAvLyBob29rcy51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7XG5cbiAgcmV0dXJuIHJlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGVPZmZzZXQoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gIC8vIE9uIEZpcmVmb3guMjQgRGF0ZSNnZXRUaW1lem9uZU9mZnNldCByZXR1cm5zIGEgZmxvYXRpbmcgcG9pbnQuXG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L3B1bGwvMTg3MVxuICByZXR1cm4gLU1hdGgucm91bmQoZGF0ZS5nZXRUaW1lem9uZU9mZnNldCgpIC8gMTUpICogMTU7XG59XG5cbi8vIEhPT0tTXG5cbi8vIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgd2hlbmV2ZXIgYSBtb21lbnQgaXMgbXV0YXRlZC5cbi8vIEl0IGlzIGludGVuZGVkIHRvIGtlZXAgdGhlIG9mZnNldCBpbiBzeW5jIHdpdGggdGhlIHRpbWV6b25lLlxuLy8gdG9kbzogaXQncyBmcm9tIG1vbWVudCB0aW1lem9uZXNcbi8vIGhvb2tzLnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uICgpIHtcbi8vIH07XG5cbi8vIE1PTUVOVFNcblxuLy8ga2VlcExvY2FsVGltZSA9IHRydWUgbWVhbnMgb25seSBjaGFuZ2UgdGhlIHRpbWV6b25lLCB3aXRob3V0XG4vLyBhZmZlY3RpbmcgdGhlIGxvY2FsIGhvdXIuIFNvIDU6MzE6MjYgKzAzMDAgLS1bdXRjT2Zmc2V0KDIsIHRydWUpXS0tPlxuLy8gNTozMToyNiArMDIwMCBJdCBpcyBwb3NzaWJsZSB0aGF0IDU6MzE6MjYgZG9lc24ndCBleGlzdCB3aXRoIG9mZnNldFxuLy8gKzAyMDAsIHNvIHdlIGFkanVzdCB0aGUgdGltZSBhcyBuZWVkZWQsIHRvIGJlIHZhbGlkLlxuLy9cbi8vIEtlZXBpbmcgdGhlIHRpbWUgYWN0dWFsbHkgYWRkcy9zdWJ0cmFjdHMgKG9uZSBob3VyKVxuLy8gZnJvbSB0aGUgYWN0dWFsIHJlcHJlc2VudGVkIHRpbWUuIFRoYXQgaXMgd2h5IHdlIGNhbGwgdXBkYXRlT2Zmc2V0XG4vLyBhIHNlY29uZCB0aW1lLiBJbiBjYXNlIGl0IHdhbnRzIHVzIHRvIGNoYW5nZSB0aGUgb2Zmc2V0IGFnYWluXG4vLyBfY2hhbmdlSW5Qcm9ncmVzcyA9PSB0cnVlIGNhc2UsIHRoZW4gd2UgaGF2ZSB0byBhZGp1c3QsIGJlY2F1c2Vcbi8vIHRoZXJlIGlzIG5vIHN1Y2ggdGltZSBpbiB0aGUgZ2l2ZW4gdGltZXpvbmUuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VVRDT2Zmc2V0KGRhdGU6IERhdGUsIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcgPSB7fSk6IG51bWJlciB7XG4gIGNvbnN0IF9vZmZzZXQgPSBjb25maWcuX29mZnNldCB8fCAwO1xuXG4gIHJldHVybiBjb25maWcuX2lzVVRDID8gX29mZnNldCA6IGdldERhdGVPZmZzZXQoZGF0ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRVVENPZmZzZXQoZGF0ZTogRGF0ZSwgaW5wdXQ6IG51bWJlciB8IHN0cmluZywga2VlcExvY2FsVGltZT86IGJvb2xlYW4sIGtlZXBNaW51dGVzPzogYm9vbGVhbiwgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyA9IHt9KTogRGF0ZSB7XG4gIGNvbnN0IG9mZnNldCA9IGNvbmZpZy5fb2Zmc2V0IHx8IDA7XG4gIGxldCBsb2NhbEFkanVzdDtcbiAgbGV0IF9pbnB1dCA9IGlucHV0O1xuICBsZXQgX2RhdGUgPSBkYXRlO1xuXG4gIGlmIChpc1N0cmluZyhfaW5wdXQpKSB7XG4gICAgX2lucHV0ID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBfaW5wdXQpO1xuICAgIGlmIChfaW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBfZGF0ZTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNOdW1iZXIoX2lucHV0KSAmJiBNYXRoLmFicyhfaW5wdXQpIDwgMTYgJiYgIWtlZXBNaW51dGVzKSB7XG4gICAgX2lucHV0ID0gX2lucHV0ICogNjA7XG4gIH1cblxuICBpZiAoIWNvbmZpZy5faXNVVEMgJiYga2VlcExvY2FsVGltZSkge1xuICAgIGxvY2FsQWRqdXN0ID0gZ2V0RGF0ZU9mZnNldChfZGF0ZSk7XG4gIH1cbiAgY29uZmlnLl9vZmZzZXQgPSBfaW5wdXQ7XG4gIGNvbmZpZy5faXNVVEMgPSB0cnVlO1xuICBpZiAobG9jYWxBZGp1c3QgIT0gbnVsbCkge1xuICAgIF9kYXRlID0gYWRkKF9kYXRlLCBsb2NhbEFkanVzdCwgJ21pbnV0ZXMnKTtcbiAgfVxuICBpZiAob2Zmc2V0ICE9PSBfaW5wdXQpIHtcbiAgICBpZiAoIWtlZXBMb2NhbFRpbWUgfHwgY29uZmlnLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICBfZGF0ZSA9IGFkZChfZGF0ZSwgX2lucHV0IC0gb2Zmc2V0LCAnbWludXRlcycsIGNvbmZpZy5faXNVVEMpO1xuICAgICAgLy8gYWRkU3VidHJhY3QodGhpcywgY3JlYXRlRHVyYXRpb24oX2lucHV0IC0gb2Zmc2V0LCAnbScpLCAxLCBmYWxzZSk7XG4gICAgfSBlbHNlIGlmICghY29uZmlnLl9jaGFuZ2VJblByb2dyZXNzKSB7XG4gICAgICBjb25maWcuX2NoYW5nZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgLy8gdG9kbzogYWRkIHRpbWV6b25lIGhhbmRsaW5nXG4gICAgICAvLyBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICBjb25maWcuX2NoYW5nZUluUHJvZ3Jlc3MgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBfZGF0ZTtcbn1cblxuLypcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZXRab25lKGlucHV0LCBrZWVwTG9jYWxUaW1lKSB7XG4gIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgIGlucHV0ID0gLWlucHV0O1xuICAgIH1cblxuICAgIHRoaXMudXRjT2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lKTtcblxuICAgIHJldHVybiB0aGlzO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAtdGhpcy51dGNPZmZzZXQoKTtcbiAgfVxufVxuKi9cblxuZXhwb3J0IGZ1bmN0aW9uIHNldE9mZnNldFRvVVRDKGRhdGU6IERhdGUsIGtlZXBMb2NhbFRpbWU/OiBib29sZWFuKTogRGF0ZSB7XG4gIHJldHVybiBzZXRVVENPZmZzZXQoZGF0ZSwgMCwga2VlcExvY2FsVGltZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZShkYXRlOiBEYXRlKTogYm9vbGVhbiB7XG5cbiAgcmV0dXJuIChnZXRVVENPZmZzZXQoZGF0ZSkgPiBnZXRVVENPZmZzZXQoc2V0TW9udGgoY2xvbmVEYXRlKGRhdGUpLCAwKSlcbiAgICB8fCBnZXRVVENPZmZzZXQoZGF0ZSkgPiBnZXRVVENPZmZzZXQoc2V0TW9udGgoY2xvbmVEYXRlKGRhdGUpLCA1KSkpO1xufVxuXG4vKmV4cG9ydCBmdW5jdGlvbiBzZXRPZmZzZXRUb0xvY2FsKGRhdGU6IERhdGUsIGlzVVRDPzogYm9vbGVhbiwga2VlcExvY2FsVGltZT86IGJvb2xlYW4pIHtcbiAgaWYgKHRoaXMuX2lzVVRDKSB7XG4gICAgdGhpcy51dGNPZmZzZXQoMCwga2VlcExvY2FsVGltZSk7XG4gICAgdGhpcy5faXNVVEMgPSBmYWxzZTtcblxuICAgIGlmIChrZWVwTG9jYWxUaW1lKSB7XG4gICAgICB0aGlzLnN1YnRyYWN0KGdldERhdGVPZmZzZXQodGhpcyksICdtJyk7XG4gICAgfVxuICB9XG4gIHJldHVybiB0aGlzO1xufSovXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRPZmZzZXRUb1BhcnNlZE9mZnNldChkYXRlOiBEYXRlLCBpbnB1dDogc3RyaW5nLCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnID0ge30pOiBEYXRlIHtcbiAgaWYgKGNvbmZpZy5fdHptICE9IG51bGwpIHtcbiAgICByZXR1cm4gc2V0VVRDT2Zmc2V0KGRhdGUsIGNvbmZpZy5fdHptLCBmYWxzZSwgdHJ1ZSwgY29uZmlnKTtcbiAgfVxuXG4gIGlmIChpc1N0cmluZyhpbnB1dCkpIHtcbiAgICBjb25zdCB0Wm9uZSA9IG9mZnNldEZyb21TdHJpbmcobWF0Y2hPZmZzZXQsIGlucHV0KTtcbiAgICBpZiAodFpvbmUgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHNldFVUQ09mZnNldChkYXRlLCB0Wm9uZSwgZmFsc2UsIGZhbHNlLCBjb25maWcpO1xuICAgIH1cblxuICAgIHJldHVybiBzZXRVVENPZmZzZXQoZGF0ZSwgMCwgdHJ1ZSwgZmFsc2UsIGNvbmZpZyk7XG4gIH1cblxuICByZXR1cm4gZGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FsaWduZWRIb3VyT2Zmc2V0KGRhdGU6IERhdGUsIGlucHV0PzogRGF0ZSkge1xuICBjb25zdCBfaW5wdXQgPSBpbnB1dCA/IGdldFVUQ09mZnNldChpbnB1dCwgeyBfaXNVVEM6IGZhbHNlIH0pIDogMDtcblxuICByZXR1cm4gKGdldFVUQ09mZnNldChkYXRlKSAtIF9pbnB1dCkgJSA2MCA9PT0gMDtcbn1cblxuXG4vLyBERVBSRUNBVEVEXG4vKmV4cG9ydCBmdW5jdGlvbiBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQoKSB7XG4gIGlmICghaXNVbmRlZmluZWQodGhpcy5faXNEU1RTaGlmdGVkKSkge1xuICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gIH1cblxuICBjb25zdCBjID0ge307XG5cbiAgY29weUNvbmZpZyhjLCB0aGlzKTtcbiAgYyA9IHByZXBhcmVDb25maWcoYyk7XG5cbiAgaWYgKGMuX2EpIHtcbiAgICBjb25zdCBvdGhlciA9IGMuX2lzVVRDID8gY3JlYXRlVVRDKGMuX2EpIDogY3JlYXRlTG9jYWwoYy5fYSk7XG4gICAgdGhpcy5faXNEU1RTaGlmdGVkID0gdGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgIGNvbXBhcmVBcnJheXMoYy5fYSwgb3RoZXIudG9BcnJheSgpKSA+IDA7XG4gIH0gZWxzZSB7XG4gICAgdGhpcy5faXNEU1RTaGlmdGVkID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gdGhpcy5faXNEU1RTaGlmdGVkO1xufSovXG5cbi8vIGluIEtocm9ub3Ncbi8qZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWwoKSB7XG4gIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/ICF0aGlzLl9pc1VUQyA6IGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVdGNPZmZzZXQoKSB7XG4gIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDIDogZmFsc2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1V0YygpIHtcbiAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgJiYgdGhpcy5fb2Zmc2V0ID09PSAwIDogZmFsc2U7XG59Ki9cbiJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpb3JpdGllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvY2hyb25vcy91bml0cy9wcmlvcml0aWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxHQUE0QixFQUFFLENBQUM7QUFFL0MsTUFBTSxVQUFVLGVBQWUsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7SUFDNUQsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLFFBQVEsQ0FBQztBQUM5QixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7OztFQWVFIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcHJpb3JpdGllczoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7fTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFkZFVuaXRQcmlvcml0eSh1bml0OiBzdHJpbmcsIHByaW9yaXR5OiBudW1iZXIpOiB2b2lkIHtcbiAgcHJpb3JpdGllc1t1bml0XSA9IHByaW9yaXR5O1xufVxuXG4vKlxuZXhwb3J0IGZ1bmN0aW9uIGdldFByaW9yaXRpemVkVW5pdHModW5pdHNPYmopIHtcbiAgY29uc3QgdW5pdHMgPSBbXTtcbiAgbGV0IHVuaXQ7XG4gIGZvciAodW5pdCBpbiB1bml0c09iaikge1xuICAgIGlmICh1bml0c09iai5oYXNPd25Qcm9wZXJ0eSh1bml0KSkge1xuICAgICAgdW5pdHMucHVzaCh7IHVuaXQsIHByaW9yaXR5OiBwcmlvcml0aWVzW3VuaXRdIH0pO1xuICAgIH1cbiAgfVxuICB1bml0cy5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7XG4gICAgcmV0dXJuIGEucHJpb3JpdHkgLSBiLnByaW9yaXR5O1xuICB9KTtcblxuICByZXR1cm4gdW5pdHM7XG59XG4qL1xuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVhcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvY2hyb25vcy91bml0cy9xdWFydGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdqRCxNQUFNLFVBQVUsV0FBVztJQUMzQixhQUFhO0lBRVgsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM1QixVQUFTLElBQVUsRUFBRSxJQUEwQjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNoQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUNGLENBQUM7SUFFSixVQUFVO0lBRVIsWUFBWSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUUvQixXQUFXO0lBRVQsZUFBZSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVoQyxVQUFVO0lBRVIsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzQixhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVMsS0FBYSxFQUFFLEtBQWdCLEVBQUUsTUFBeUI7UUFDcEYsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUV0QyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxVQUFVO0FBRVYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFVLEVBQUUsS0FBSyxHQUFHLEtBQUs7SUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFVLEVBQUUsT0FBZSxFQUFFLEtBQWU7SUFDckUsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5RSxDQUFDO0FBRUQseUNBQXlDO0FBQ3pDLHlCQUF5QjtBQUN6QiwwQ0FBMEM7QUFDMUMsd0RBQXdEO0FBQ3hELElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRGb3JtYXRUb2tlbiB9IGZyb20gJy4uL2Zvcm1hdC9mb3JtYXQnO1xuaW1wb3J0IHsgYWRkUmVnZXhUb2tlbiwgbWF0Y2gxIH0gZnJvbSAnLi4vcGFyc2UvcmVnZXgnO1xuaW1wb3J0IHsgYWRkUGFyc2VUb2tlbiB9IGZyb20gJy4uL3BhcnNlL3Rva2VuJztcbmltcG9ydCB7IE1PTlRIIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgdG9JbnQgfSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5pbXBvcnQgeyBnZXRNb250aCB9IGZyb20gJy4uL3V0aWxzL2RhdGUtZ2V0dGVycyc7XG5pbXBvcnQgeyBEYXRlQXJyYXksIERhdGVGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgYWRkVW5pdFByaW9yaXR5IH0gZnJvbSAnLi9wcmlvcml0aWVzJztcbmltcG9ydCB7IGFkZFVuaXRBbGlhcyB9IGZyb20gJy4vYWxpYXNlcyc7XG5pbXBvcnQgeyBEYXRlUGFyc2luZ0NvbmZpZyB9IGZyb20gJy4uL2NyZWF0ZS9wYXJzaW5nLnR5cGVzJztcbmltcG9ydCB7IHNldE1vbnRoIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1zZXR0ZXJzJztcblxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdFF1YXJ0ZXIoKSB7XG4vLyBGT1JNQVRUSU5HXG5cbiAgYWRkRm9ybWF0VG9rZW4oJ1EnLCBudWxsLCAnUW8nLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBnZXRRdWFydGVyKGRhdGUsIG9wdHMuaXNVVEMpXG4gICAgICAgIC50b1N0cmluZygxMCk7XG4gICAgfVxuICApO1xuXG4vLyBBTElBU0VTXG5cbiAgYWRkVW5pdEFsaWFzKCdxdWFydGVyJywgJ1EnKTtcblxuLy8gUFJJT1JJVFlcblxuICBhZGRVbml0UHJpb3JpdHkoJ3F1YXJ0ZXInLCA3KTtcblxuLy8gUEFSU0lOR1xuXG4gIGFkZFJlZ2V4VG9rZW4oJ1EnLCBtYXRjaDEpO1xuICBhZGRQYXJzZVRva2VuKCdRJywgZnVuY3Rpb24oaW5wdXQ6IHN0cmluZywgYXJyYXk6IERhdGVBcnJheSwgY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgICBhcnJheVtNT05USF0gPSAodG9JbnQoaW5wdXQpIC0gMSkgKiAzO1xuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfSk7XG59XG5cbi8vIE1PTUVOVFNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1YXJ0ZXIoZGF0ZTogRGF0ZSwgaXNVVEMgPSBmYWxzZSk6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLmNlaWwoKGdldE1vbnRoKGRhdGUsIGlzVVRDKSArIDEpIC8gMyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWFydGVyKGRhdGU6IERhdGUsIHF1YXJ0ZXI6IG51bWJlciwgaXNVVEM/OiBib29sZWFuKTogRGF0ZSB7XG4gIHJldHVybiBzZXRNb250aChkYXRlLCAocXVhcnRlciAtIDEpICogMyArIGdldE1vbnRoKGRhdGUsIGlzVVRDKSAlIDMsIGlzVVRDKTtcbn1cblxuLy8gZXhwb3J0IGZ1bmN0aW9uIGdldFNldFF1YXJ0ZXIoaW5wdXQpIHtcbi8vICAgcmV0dXJuIGlucHV0ID09IG51bGxcbi8vICAgICA/IE1hdGguY2VpbCgodGhpcy5tb250aCgpICsgMSkgLyAzKVxuLy8gICAgIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyB0aGlzLm1vbnRoKCkgJSAzKTtcbi8vIH1cbiJdfQ==
|
|
@@ -0,0 +1,23 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vjb25kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9jaHJvbm9zL3VuaXRzL3NlY29uZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUkvQyxNQUFNLFVBQVUsVUFBVTtJQUMxQixhQUFhO0lBRVgsY0FBYyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUN4QyxVQUFTLElBQVUsRUFBRSxJQUEwQjtRQUM3QyxPQUFPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQzthQUNoQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEIsQ0FBQyxDQUNGLENBQUM7SUFFSixVQUFVO0lBRVIsWUFBWSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUU5QixXQUFXO0lBRVQsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVoQyxVQUFVO0lBRVIsYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM5QixhQUFhLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2QyxhQUFhLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFkZEZvcm1hdFRva2VuIH0gZnJvbSAnLi4vZm9ybWF0L2Zvcm1hdCc7XG5pbXBvcnQgeyBnZXRTZWNvbmRzIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcbmltcG9ydCB7IGFkZFJlZ2V4VG9rZW4sIG1hdGNoMXRvMiwgbWF0Y2gyIH0gZnJvbSAnLi4vcGFyc2UvcmVnZXgnO1xuaW1wb3J0IHsgYWRkUGFyc2VUb2tlbiB9IGZyb20gJy4uL3BhcnNlL3Rva2VuJztcbmltcG9ydCB7IFNFQ09ORCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZFVuaXRBbGlhcyB9IGZyb20gJy4vYWxpYXNlcyc7XG5pbXBvcnQgeyBhZGRVbml0UHJpb3JpdHkgfSBmcm9tICcuL3ByaW9yaXRpZXMnO1xuaW1wb3J0IHsgRGF0ZUZvcm1hdHRlck9wdGlvbnMgfSBmcm9tICcuLi90eXBlcyc7XG5cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRTZWNvbmQoKSB7XG4vLyBGT1JNQVRUSU5HXG5cbiAgYWRkRm9ybWF0VG9rZW4oJ3MnLCBbJ3NzJywgMiwgZmFsc2VdLCBudWxsLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBnZXRTZWNvbmRzKGRhdGUsIG9wdHMuaXNVVEMpXG4gICAgICAgIC50b1N0cmluZygxMCk7XG4gICAgfVxuICApO1xuXG4vLyBBTElBU0VTXG5cbiAgYWRkVW5pdEFsaWFzKCdzZWNvbmQnLCAncycpO1xuXG4vLyBQUklPUklUWVxuXG4gIGFkZFVuaXRQcmlvcml0eSgnc2Vjb25kJywgMTUpO1xuXG4vLyBQQVJTSU5HXG5cbiAgYWRkUmVnZXhUb2tlbigncycsIG1hdGNoMXRvMik7XG4gIGFkZFJlZ2V4VG9rZW4oJ3NzJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICBhZGRQYXJzZVRva2VuKFsncycsICdzcyddLCBTRUNPTkQpO1xufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXN0YW1wLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9jaHJvbm9zL3VuaXRzL3RpbWVzdGFtcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxhQUFhLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFLN0MsTUFBTSxVQUFVLGFBQWE7SUFDN0IsYUFBYTtJQUVYLGNBQWMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFTLElBQVU7UUFDakQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO2FBQ2QsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBQ0gsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVMsSUFBVTtRQUNqRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUU7YUFDbEIsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0lBRUwsVUFBVTtJQUVSLGFBQWEsQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDaEMsYUFBYSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVuQyxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVMsS0FBYSxFQUFFLEtBQWdCLEVBQUUsTUFBeUI7UUFDcEYsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFFL0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDSCxhQUFhLENBQUMsR0FBRyxFQUFFLFVBQVMsS0FBYSxFQUFFLEtBQWdCLEVBQUUsTUFBeUI7UUFDcEYsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVuQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGRGb3JtYXRUb2tlbiB9IGZyb20gJy4uL2Zvcm1hdC9mb3JtYXQnO1xuaW1wb3J0IHsgdW5peCB9IGZyb20gJy4uL3V0aWxzL2RhdGUtZ2V0dGVycyc7XG5pbXBvcnQgeyBhZGRSZWdleFRva2VuLCBtYXRjaFNpZ25lZCwgbWF0Y2hUaW1lc3RhbXAgfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGRQYXJzZVRva2VufSBmcm9tICcuLi9wYXJzZS90b2tlbic7XG5pbXBvcnQgeyB0b0ludCB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcbmltcG9ydCB7IERhdGVBcnJheSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi4vY3JlYXRlL3BhcnNpbmcudHlwZXMnO1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0VGltZXN0YW1wKCkge1xuLy8gRk9STUFUVElOR1xuXG4gIGFkZEZvcm1hdFRva2VuKCdYJywgbnVsbCwgbnVsbCwgZnVuY3Rpb24oZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHVuaXgoZGF0ZSlcbiAgICAgIC50b1N0cmluZygxMCk7XG4gIH0pO1xuICBhZGRGb3JtYXRUb2tlbigneCcsIG51bGwsIG51bGwsIGZ1bmN0aW9uKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBkYXRlLnZhbHVlT2YoKVxuICAgICAgLnRvU3RyaW5nKDEwKTtcbiAgfSk7XG5cbi8vIFBBUlNJTkdcblxuICBhZGRSZWdleFRva2VuKCd4JywgbWF0Y2hTaWduZWQpO1xuICBhZGRSZWdleFRva2VuKCdYJywgbWF0Y2hUaW1lc3RhbXApO1xuXG4gIGFkZFBhcnNlVG9rZW4oJ1gnLCBmdW5jdGlvbihpbnB1dDogc3RyaW5nLCBhcnJheTogRGF0ZUFycmF5LCBjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQpICogMTAwMCk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9KTtcbiAgYWRkUGFyc2VUb2tlbigneCcsIGZ1bmN0aW9uKGlucHV0OiBzdHJpbmcsIGFycmF5OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gICAgY29uZmlnLl9kID0gbmV3IERhdGUodG9JbnQoaW5wdXQpKTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,19 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2Nocm9ub3MvdW5pdHMvdGltZXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2xELGtDQUFrQztBQUVsQyxNQUFNLFVBQVUsWUFBWTtJQUMxQixhQUFhO0lBQ2IsY0FBYyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM1QixVQUFTLElBQVUsRUFBRSxJQUEwQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pDLENBQUMsQ0FDRixDQUFDO0lBQ0YsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUM3QixVQUFTLElBQVUsRUFBRSxJQUEwQjtRQUM3QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQyxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsVUFBVTtBQUVWLE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYztJQUN4QyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDNUIsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBYztJQUN4QyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNuRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRkRm9ybWF0VG9rZW4gfSBmcm9tICcuLi9mb3JtYXQvZm9ybWF0JztcbmltcG9ydCB7IERhdGVGb3JtYXR0ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vLyB0b2RvOiBhZGQgc3VwcG9ydCBmb3IgdGltZXpvbmVzXG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0VGltZXpvbmUoKSB7XG4gIC8vIEZPUk1BVFRJTkdcbiAgYWRkRm9ybWF0VG9rZW4oJ3onLCBudWxsLCBudWxsLFxuICAgIGZ1bmN0aW9uKGRhdGU6IERhdGUsIG9wdHM6IERhdGVGb3JtYXR0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBvcHRzLmlzVVRDID8gJ1VUQycgOiAnJztcbiAgICB9XG4gICk7XG4gIGFkZEZvcm1hdFRva2VuKCd6eicsIG51bGwsIG51bGwsXG4gICAgZnVuY3Rpb24oZGF0ZTogRGF0ZSwgb3B0czogRGF0ZUZvcm1hdHRlck9wdGlvbnMpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG9wdHMuaXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG4gICAgfVxuICApO1xufVxuXG4vLyBNT01FTlRTXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRab25lQWJicihpc1VUQzogYm9vbGVhbikge1xuICByZXR1cm4gaXNVVEMgPyAnVVRDJyA6ICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Wm9uZU5hbWUoaXNVVEM6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIGlzVVRDID8gJ0Nvb3JkaW5hdGVkIFVuaXZlcnNhbCBUaW1lJyA6ICcnO1xufVxuIl19
|
|
@@ -0,0 +1,70 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vlay1jYWxlbmRhci11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvY2hyb25vcy91bml0cy93ZWVrLWNhbGVuZGFyLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXBELFNBQVMsZUFBZSxDQUFDLElBQVksRUFBRSxHQUFXLEVBQUUsR0FBVztJQUM3RCx1RkFBdUY7SUFDdkYsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDMUIsNkRBQTZEO0lBQzdELE1BQU0sS0FBSyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEdBQUcsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV0RSxPQUFPLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVELDJHQUEyRztBQUMzRyxNQUFNLFVBQVUsa0JBQWtCLENBQ2hDLElBQVksRUFDWixJQUFZLEVBQ1osT0FBZSxFQUNmLEdBQVcsRUFDWCxHQUFXO0lBRVgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNuRCxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxVQUFVLENBQUM7SUFDakUsSUFBSSxPQUFlLENBQUM7SUFDcEIsSUFBSSxZQUFvQixDQUFDO0lBRXpCLElBQUksU0FBUyxJQUFJLENBQUMsRUFBRTtRQUNsQixPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNuQixZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQztLQUNoRDtTQUFNLElBQUksU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN2QyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNuQixZQUFZLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUM3QztTQUFNO1FBQ0wsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNmLFlBQVksR0FBRyxTQUFTLENBQUM7S0FDMUI7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixTQUFTLEVBQUUsWUFBWTtLQUN4QixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBVSxFQUFFLEdBQVcsRUFBRSxHQUFXLEVBQUUsS0FBZTtJQUM5RSxNQUFNLFVBQVUsR0FBRyxlQUFlLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDdkUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsVUFBVSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5RSxJQUFJLE9BQWUsQ0FBQztJQUNwQixJQUFJLE9BQWUsQ0FBQztJQUVwQixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUU7UUFDWixPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLElBQUksR0FBRyxXQUFXLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUNqRDtTQUFNLElBQUksSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRTtRQUNqRSxPQUFPLEdBQUcsSUFBSSxHQUFHLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNqRSxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEM7U0FBTTtRQUNMLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25DLE9BQU8sR0FBRyxJQUFJLENBQUM7S0FDaEI7SUFFRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLE9BQU87UUFDYixJQUFJLEVBQUUsT0FBTztLQUNkLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFZLEVBQUUsR0FBVyxFQUFFLEdBQVc7SUFDaEUsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDbkQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRTNELE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKlxuICogQHBhcmFtIHtudW1iZXJ9IHllYXJcbiAqIEBwYXJhbSB7bnVtYmVyfSBkb3cgLSBzdGFydC1vZi1maXJzdC13ZWVrXG4gKiBAcGFyYW0ge251bWJlcn0gZG95IC0gc3RhcnQtb2YteWVhclxuICogQHJldHVybnMge251bWJlcn1cbiAqL1xuaW1wb3J0IHsgY3JlYXRlVVRDRGF0ZSB9IGZyb20gJy4uL2NyZWF0ZS9kYXRlLWZyb20tYXJyYXknO1xuaW1wb3J0IHsgZGF5c0luWWVhciB9IGZyb20gJy4veWVhcic7XG5pbXBvcnQgeyBnZXREYXlPZlllYXIgfSBmcm9tICcuL2RheS1vZi15ZWFyJztcbmltcG9ydCB7IGdldEZ1bGxZZWFyIH0gZnJvbSAnLi4vdXRpbHMvZGF0ZS1nZXR0ZXJzJztcblxuZnVuY3Rpb24gZmlyc3RXZWVrT2Zmc2V0KHllYXI6IG51bWJlciwgZG93OiBudW1iZXIsIGRveTogbnVtYmVyKTogbnVtYmVyIHtcbiAgLy8gZmlyc3Qtd2VlayBkYXkgLS0gd2hpY2ggamFudWFyeSBpcyBhbHdheXMgaW4gdGhlIGZpcnN0IHdlZWsgKDQgZm9yIGlzbywgMSBmb3Igb3RoZXIpXG4gIGNvbnN0IGZ3ZCA9IGRvdyAtIGRveSArIDc7XG4gIC8vIGZpcnN0LXdlZWsgZGF5IGxvY2FsIHdlZWtkYXkgLS0gd2hpY2ggbG9jYWwgd2Vla2RheSBpcyBmd2RcbiAgY29uc3QgZndkbHcgPSAoY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCBmd2QpLmdldFVUQ0RheSgpIC0gZG93ICsgNykgJSA3O1xuXG4gIHJldHVybiAtZndkbHcgKyBmd2QgLSAxO1xufVxuXG4vLyBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fd2Vla19kYXRlI0NhbGN1bGF0aW5nX2FfZGF0ZV9naXZlbl90aGVfeWVhci4yQ193ZWVrX251bWJlcl9hbmRfd2Vla2RheVxuZXhwb3J0IGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrcyhcbiAgeWVhcjogbnVtYmVyLFxuICB3ZWVrOiBudW1iZXIsXG4gIHdlZWtkYXk6IG51bWJlcixcbiAgZG93OiBudW1iZXIsXG4gIGRveTogbnVtYmVyXG4pOiB7IHllYXI6IG51bWJlcjsgZGF5T2ZZZWFyOiBudW1iZXIgfSB7XG4gIGNvbnN0IGxvY2FsV2Vla2RheSA9ICg3ICsgd2Vla2RheSAtIGRvdykgJSA3O1xuICBjb25zdCB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KTtcbiAgY29uc3QgZGF5T2ZZZWFyID0gMSArIDcgKiAod2VlayAtIDEpICsgbG9jYWxXZWVrZGF5ICsgd2Vla09mZnNldDtcbiAgbGV0IHJlc1llYXI6IG51bWJlcjtcbiAgbGV0IHJlc0RheU9mWWVhcjogbnVtYmVyO1xuXG4gIGlmIChkYXlPZlllYXIgPD0gMCkge1xuICAgIHJlc1llYXIgPSB5ZWFyIC0gMTtcbiAgICByZXNEYXlPZlllYXIgPSBkYXlzSW5ZZWFyKHJlc1llYXIpICsgZGF5T2ZZZWFyO1xuICB9IGVsc2UgaWYgKGRheU9mWWVhciA+IGRheXNJblllYXIoeWVhcikpIHtcbiAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgcmVzRGF5T2ZZZWFyID0gZGF5T2ZZZWFyIC0gZGF5c0luWWVhcih5ZWFyKTtcbiAgfSBlbHNlIHtcbiAgICByZXNZZWFyID0geWVhcjtcbiAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXI7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHllYXI6IHJlc1llYXIsXG4gICAgZGF5T2ZZZWFyOiByZXNEYXlPZlllYXJcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHdlZWtPZlllYXIoZGF0ZTogRGF0ZSwgZG93OiBudW1iZXIsIGRveTogbnVtYmVyLCBpc1VUQz86IGJvb2xlYW4pOiB7IHdlZWs6IG51bWJlcjsgeWVhcjogbnVtYmVyIH0ge1xuICBjb25zdCB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KGdldEZ1bGxZZWFyKGRhdGUsIGlzVVRDKSwgZG93LCBkb3kpO1xuICBjb25zdCB3ZWVrID0gTWF0aC5mbG9vcigoZ2V0RGF5T2ZZZWFyKGRhdGUsIGlzVVRDKSAtIHdlZWtPZmZzZXQgLSAxKSAvIDcpICsgMTtcbiAgbGV0IHJlc1dlZWs6IG51bWJlcjtcbiAgbGV0IHJlc1llYXI6IG51bWJlcjtcblxuICBpZiAod2VlayA8IDEpIHtcbiAgICByZXNZZWFyID0gZ2V0RnVsbFllYXIoZGF0ZSwgaXNVVEMpIC0gMTtcbiAgICByZXNXZWVrID0gd2VlayArIHdlZWtzSW5ZZWFyKHJlc1llYXIsIGRvdywgZG95KTtcbiAgfSBlbHNlIGlmICh3ZWVrID4gd2Vla3NJblllYXIoZ2V0RnVsbFllYXIoZGF0ZSwgaXNVVEMpLCBkb3csIGRveSkpIHtcbiAgICByZXNXZWVrID0gd2VlayAtIHdlZWtzSW5ZZWFyKGdldEZ1bGxZZWFyKGRhdGUsIGlzVVRDKSwgZG93LCBkb3kpO1xuICAgIHJlc1llYXIgPSBnZXRGdWxsWWVhcihkYXRlLCBpc1VUQykgKyAxO1xuICB9IGVsc2Uge1xuICAgIHJlc1llYXIgPSBnZXRGdWxsWWVhcihkYXRlLCBpc1VUQyk7XG4gICAgcmVzV2VlayA9IHdlZWs7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHdlZWs6IHJlc1dlZWssXG4gICAgeWVhcjogcmVzWWVhclxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhcjogbnVtYmVyLCBkb3c6IG51bWJlciwgZG95OiBudW1iZXIpOiBudW1iZXIge1xuICBjb25zdCB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KTtcbiAgY29uc3Qgd2Vla09mZnNldE5leHQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciArIDEsIGRvdywgZG95KTtcblxuICByZXR1cm4gKGRheXNJblllYXIoeWVhcikgLSB3ZWVrT2Zmc2V0ICsgd2Vla09mZnNldE5leHQpIC8gNztcbn1cbiJdfQ==
|