ngx-bootstrap 3.1.2 → 3.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +236 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +8 -5
- package/accordion/package.json +1 -1
- package/alert/package.json +1 -1
- package/bundles/ngx-bootstrap.es2015.js +13985 -11505
- package/bundles/ngx-bootstrap.es2015.js.map +1 -1
- package/bundles/ngx-bootstrap.umd.js +2 -1
- package/bundles/ngx-bootstrap.umd.js.map +1 -1
- package/bundles/ngx-bootstrap.umd.min.js +1 -1
- package/buttons/package.json +1 -1
- package/carousel/package.json +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js +217 -63
- package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +1 -1
- package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +1 -1
- package/chronos/esm2015/i18n/ca.js +128 -0
- package/chronos/esm2015/i18n/lt.js +1 -1
- package/chronos/esm2015/i18n/pl.js +7 -1
- package/chronos/esm2015/index.js +2 -2
- package/chronos/esm2015/ngx-bootstrap-chronos.js +2 -2
- package/chronos/esm2015/public_api.js +3 -2
- package/chronos/esm2015/utils/date-compare.js +20 -1
- package/chronos/esm5/i18n/ca.js +128 -0
- package/chronos/esm5/i18n/lt.js +1 -1
- package/chronos/esm5/i18n/pl.js +7 -1
- package/chronos/esm5/index.js +2 -2
- package/chronos/esm5/ngx-bootstrap-chronos.js +2 -2
- package/chronos/esm5/public_api.js +3 -2
- package/chronos/esm5/utils/date-compare.js +20 -1
- package/chronos/fesm2015/ngx-bootstrap-chronos.js +223 -67
- package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/fesm5/ngx-bootstrap-chronos.js +224 -67
- package/chronos/fesm5/ngx-bootstrap-chronos.js.map +1 -1
- package/chronos/i18n/ca.d.ts +2 -0
- package/chronos/ngx-bootstrap-chronos.metadata.json +1 -1
- package/chronos/package.json +1 -1
- package/chronos/public_api.d.ts +2 -1
- package/chronos/utils/date-compare.d.ts +2 -0
- package/collapse/package.json +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +11 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +1 -1
- package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +1 -1
- package/component-loader/component-loader.class.d.ts +1 -1
- package/component-loader/esm2015/component-loader.class.js +12 -2
- package/component-loader/esm2015/listen-options.model.js +3 -1
- package/component-loader/esm5/component-loader.class.js +12 -2
- package/component-loader/esm5/listen-options.model.js +3 -1
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +12 -2
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js +12 -2
- package/component-loader/fesm5/ngx-bootstrap-component-loader.js.map +1 -1
- package/component-loader/listen-options.model.d.ts +1 -0
- package/component-loader/ngx-bootstrap-component-loader.metadata.json +1 -1
- package/component-loader/package.json +1 -1
- package/datepicker/base/bs-datepicker-container.d.ts +5 -1
- package/datepicker/bs-datepicker-inline.component.d.ts +48 -0
- package/datepicker/bs-datepicker-inline.config.d.ts +3 -0
- package/datepicker/bs-datepicker.component.d.ts +14 -0
- package/datepicker/bs-datepicker.config.d.ts +22 -1
- package/datepicker/bs-datepicker.css +56 -5
- package/datepicker/bs-datepicker.css.map +3 -3
- package/datepicker/bs-datepicker.module.d.ts +0 -1
- package/datepicker/bs-datepicker.scss +21 -8
- package/datepicker/bs-daterangepicker.component.d.ts +5 -0
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +2967 -2546
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +1 -1
- package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +1 -1
- package/datepicker/engine/flag-days-calendar.d.ts +2 -0
- package/datepicker/engine/view-mode.d.ts +1 -1
- package/datepicker/esm2015/base/bs-datepicker-container.js +22 -1
- package/datepicker/esm2015/bs-datepicker-inline.component.js +179 -0
- package/datepicker/esm2015/bs-datepicker-inline.config.js +22 -0
- package/datepicker/esm2015/bs-datepicker-input.directive.js +2 -1
- package/datepicker/esm2015/bs-datepicker.component.js +34 -2
- package/datepicker/esm2015/bs-datepicker.config.js +28 -1
- package/datepicker/esm2015/bs-datepicker.module.js +10 -11
- package/datepicker/esm2015/bs-daterangepicker-input.directive.js +9 -4
- package/datepicker/esm2015/bs-daterangepicker.component.js +17 -2
- package/datepicker/esm2015/engine/flag-days-calendar.js +16 -6
- package/datepicker/esm2015/engine/view-mode.js +4 -3
- package/datepicker/esm2015/models/index.js +7 -1
- package/datepicker/esm2015/ngx-bootstrap-datepicker.js +19 -18
- package/datepicker/esm2015/public_api.js +11 -9
- package/datepicker/esm2015/reducer/bs-datepicker.actions.js +27 -1
- package/datepicker/esm2015/reducer/bs-datepicker.effects.js +25 -11
- package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +15 -5
- package/datepicker/esm2015/reducer/bs-datepicker.state.js +9 -1
- package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +5 -3
- package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +33 -2
- package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +50 -0
- package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +5 -3
- package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +71 -4
- package/datepicker/esm2015/utils/bs-calendar-utils.js +13 -2
- package/datepicker/esm5/base/bs-datepicker-container.js +34 -1
- package/datepicker/esm5/bs-datepicker-inline.component.js +196 -0
- package/datepicker/esm5/bs-datepicker-inline.config.js +29 -0
- package/datepicker/esm5/bs-datepicker-input.directive.js +2 -1
- package/datepicker/esm5/bs-datepicker.component.js +34 -2
- package/datepicker/esm5/bs-datepicker.config.js +28 -1
- package/datepicker/esm5/bs-datepicker.module.js +10 -7
- package/datepicker/esm5/bs-daterangepicker-input.directive.js +9 -4
- package/datepicker/esm5/bs-daterangepicker.component.js +17 -2
- package/datepicker/esm5/engine/flag-days-calendar.js +16 -6
- package/datepicker/esm5/engine/view-mode.js +4 -3
- package/datepicker/esm5/models/index.js +7 -1
- package/datepicker/esm5/ngx-bootstrap-datepicker.js +19 -18
- package/datepicker/esm5/public_api.js +11 -9
- package/datepicker/esm5/reducer/bs-datepicker.actions.js +35 -1
- package/datepicker/esm5/reducer/bs-datepicker.effects.js +33 -11
- package/datepicker/esm5/reducer/bs-datepicker.reducer.js +15 -5
- package/datepicker/esm5/reducer/bs-datepicker.state.js +9 -1
- package/datepicker/esm5/themes/bs/bs-datepicker-container.component.js +5 -3
- package/datepicker/esm5/themes/bs/bs-datepicker-day-decorator.directive.js +30 -3
- package/datepicker/esm5/themes/bs/bs-datepicker-inline-container.component.js +48 -0
- package/datepicker/esm5/themes/bs/bs-daterangepicker-container.component.js +5 -3
- package/datepicker/esm5/themes/bs/bs-days-calendar-view.component.js +75 -3
- package/datepicker/esm5/utils/bs-calendar-utils.js +13 -2
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +3192 -2829
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js +3407 -2994
- package/datepicker/fesm5/ngx-bootstrap-datepicker.js.map +1 -1
- package/datepicker/models/index.d.ts +3 -0
- package/datepicker/ngx-bootstrap-datepicker.d.ts +17 -16
- package/datepicker/ngx-bootstrap-datepicker.metadata.json +1 -1
- package/datepicker/package.json +1 -1
- package/datepicker/public_api.d.ts +11 -8
- package/datepicker/reducer/bs-datepicker.actions.d.ts +4 -0
- package/datepicker/reducer/bs-datepicker.effects.d.ts +4 -2
- package/datepicker/reducer/bs-datepicker.state.d.ts +4 -0
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +8 -1
- package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +9 -0
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +8 -1
- package/datepicker/utils/bs-calendar-utils.d.ts +1 -0
- package/datepicker/utils/scss/mixins.css.map +4 -2
- package/datepicker/utils/scss/mixins.scss +10 -0
- package/dropdown/bs-dropdown-container.component.d.ts +3 -0
- package/dropdown/bs-dropdown-toggle.directive.d.ts +3 -1
- package/dropdown/bs-dropdown.config.d.ts +2 -0
- package/dropdown/bs-dropdown.directive.d.ts +8 -2
- package/dropdown/bs-dropdown.state.d.ts +1 -0
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +62 -5
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +1 -1
- package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +1 -1
- package/dropdown/esm2015/bs-dropdown-container.component.js +13 -2
- package/dropdown/esm2015/bs-dropdown-toggle.directive.js +10 -3
- package/dropdown/esm2015/bs-dropdown.config.js +10 -1
- package/dropdown/esm2015/bs-dropdown.directive.js +30 -3
- package/dropdown/esm2015/bs-dropdown.module.js +2 -2
- package/dropdown/esm2015/bs-dropdown.state.js +3 -1
- package/dropdown/esm5/bs-dropdown-container.component.js +19 -2
- package/dropdown/esm5/bs-dropdown-toggle.directive.js +9 -3
- package/dropdown/esm5/bs-dropdown.config.js +10 -1
- package/dropdown/esm5/bs-dropdown.directive.js +40 -3
- package/dropdown/esm5/bs-dropdown.module.js +2 -2
- package/dropdown/esm5/bs-dropdown.state.js +3 -1
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +49 -5
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js +64 -5
- package/dropdown/fesm5/ngx-bootstrap-dropdown.js.map +1 -1
- package/dropdown/ngx-bootstrap-dropdown.metadata.json +1 -1
- package/dropdown/package.json +1 -1
- package/esm2015/ngx-bootstrap.js +2 -2
- package/esm2015/public_api.js +2 -2
- package/esm5/ngx-bootstrap.js +2 -2
- package/esm5/public_api.js +2 -2
- package/fesm2015/ngx-bootstrap.js +1 -1
- package/fesm5/ngx-bootstrap.js +1 -1
- package/locale/bundles/ngx-bootstrap-locale.umd.js +2 -1
- package/locale/bundles/ngx-bootstrap-locale.umd.js.map +1 -1
- package/locale/bundles/ngx-bootstrap-locale.umd.min.js +1 -1
- package/locale/esm2015/ngx-bootstrap-locale.js +2 -2
- package/locale/esm2015/public_api.js +2 -1
- package/locale/esm5/ngx-bootstrap-locale.js +2 -2
- package/locale/esm5/public_api.js +2 -1
- package/locale/fesm2015/ngx-bootstrap-locale.js +1 -1
- package/locale/fesm5/ngx-bootstrap-locale.js +1 -1
- package/locale/ngx-bootstrap-locale.metadata.json +1 -1
- package/locale/package.json +1 -1
- package/locale/public_api.d.ts +1 -0
- package/mini-ngrx/package.json +1 -1
- package/modal/bs-modal-ref.service.d.ts +4 -0
- package/modal/bundles/ngx-bootstrap-modal.umd.js +8 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.js.map +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js +1 -1
- package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +1 -1
- package/modal/esm2015/bs-modal-ref.service.js +10 -1
- package/modal/esm2015/bs-modal.service.js +4 -1
- package/modal/esm5/bs-modal-ref.service.js +10 -1
- package/modal/esm5/bs-modal.service.js +4 -1
- package/modal/fesm2015/ngx-bootstrap-modal.js +8 -1
- package/modal/fesm2015/ngx-bootstrap-modal.js.map +1 -1
- package/modal/fesm5/ngx-bootstrap-modal.js +8 -1
- package/modal/fesm5/ngx-bootstrap-modal.js.map +1 -1
- package/modal/package.json +1 -1
- package/package.json +2 -2
- package/pagination/esm2015/models/index.js +1 -4
- package/pagination/esm5/models/index.js +1 -4
- package/pagination/models/index.d.ts +0 -1
- package/pagination/package.json +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.js +3 -2
- package/popover/bundles/ngx-bootstrap-popover.umd.js.map +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js +1 -1
- package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +1 -1
- package/popover/esm2015/popover-container.component.js +19 -8
- package/popover/esm5/popover-container.component.js +3 -2
- package/popover/fesm2015/ngx-bootstrap-popover.js +19 -8
- package/popover/fesm2015/ngx-bootstrap-popover.js.map +1 -1
- package/popover/fesm5/ngx-bootstrap-popover.js +3 -2
- package/popover/fesm5/ngx-bootstrap-popover.js.map +1 -1
- package/popover/ngx-bootstrap-popover.metadata.json +1 -1
- package/popover/package.json +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js +1192 -252
- package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +1 -1
- package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +1 -1
- package/positioning/esm2015/models/index.js +44 -0
- package/positioning/esm2015/modifiers/arrow.js +54 -0
- package/positioning/esm2015/modifiers/flip.js +65 -0
- package/positioning/esm2015/modifiers/index.js +11 -0
- package/positioning/esm2015/modifiers/initData.js +34 -0
- package/positioning/esm2015/modifiers/preventOverflow.js +70 -0
- package/positioning/esm2015/modifiers/shift.js +29 -0
- package/positioning/esm2015/ng-positioning.js +19 -220
- package/positioning/esm2015/positioning.service.js +44 -4
- package/positioning/esm2015/utils/computeAutoPlacement.js +64 -0
- package/positioning/esm2015/utils/findCommonOffsetParent.js +47 -0
- package/positioning/esm2015/utils/getBordersSize.js +20 -0
- package/positioning/esm2015/utils/getBoundaries.js +66 -0
- package/positioning/esm2015/utils/getBoundingClientRect.js +61 -0
- package/positioning/esm2015/utils/getClientRect.js +13 -0
- package/positioning/esm2015/utils/getFixedPositionOffsetParent.js +26 -0
- package/positioning/esm2015/utils/getOffsetParent.js +37 -0
- package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.js +62 -0
- package/positioning/esm2015/utils/getOffsets.js +20 -0
- package/positioning/esm2015/utils/getOppositePlacement.js +15 -0
- package/positioning/esm2015/utils/getOppositeVariation.js +20 -0
- package/positioning/esm2015/utils/getOuterSizes.js +21 -0
- package/positioning/esm2015/utils/getParentNode.js +17 -0
- package/positioning/esm2015/utils/getReferenceOffsets.js +21 -0
- package/positioning/esm2015/utils/getRoot.js +17 -0
- package/positioning/esm2015/utils/getScroll.js +22 -0
- package/positioning/esm2015/utils/getScrollParent.js +32 -0
- package/positioning/esm2015/utils/getStyleComputedProperty.js +21 -0
- package/positioning/esm2015/utils/getTargetOffsets.js +38 -0
- package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +29 -0
- package/positioning/esm2015/utils/getWindowSizes.js +34 -0
- package/positioning/esm2015/utils/includeScroll.js +23 -0
- package/positioning/esm2015/utils/index.js +28 -0
- package/positioning/esm2015/utils/isBrowser.js +7 -0
- package/positioning/esm2015/utils/isFixed.js +22 -0
- package/positioning/esm2015/utils/isIE.js +22 -0
- package/positioning/esm2015/utils/isNumeric.js +14 -0
- package/positioning/esm2015/utils/isOffsetContainer.js +18 -0
- package/positioning/esm2015/utils/setAllStyles.js +55 -0
- package/positioning/esm2015/utils/setStyles.js +28 -0
- package/positioning/esm5/models/index.js +44 -0
- package/positioning/esm5/modifiers/arrow.js +56 -0
- package/positioning/esm5/modifiers/flip.js +66 -0
- package/positioning/esm5/modifiers/index.js +11 -0
- package/positioning/esm5/modifiers/initData.js +34 -0
- package/positioning/esm5/modifiers/preventOverflow.js +73 -0
- package/positioning/esm5/modifiers/shift.js +31 -0
- package/positioning/esm5/ng-positioning.js +24 -247
- package/positioning/esm5/positioning.service.js +49 -5
- package/positioning/esm5/utils/computeAutoPlacement.js +72 -0
- package/positioning/esm5/utils/findCommonOffsetParent.js +47 -0
- package/positioning/esm5/utils/getBordersSize.js +20 -0
- package/positioning/esm5/utils/getBoundaries.js +68 -0
- package/positioning/esm5/utils/getBoundingClientRect.js +61 -0
- package/positioning/esm5/utils/getClientRect.js +14 -0
- package/positioning/esm5/utils/getFixedPositionOffsetParent.js +26 -0
- package/positioning/esm5/utils/getOffsetParent.js +37 -0
- package/positioning/esm5/utils/getOffsetRectRelativeToArbitraryNode.js +63 -0
- package/positioning/esm5/utils/getOffsets.js +20 -0
- package/positioning/esm5/utils/getOppositePlacement.js +15 -0
- package/positioning/esm5/utils/getOppositeVariation.js +20 -0
- package/positioning/esm5/utils/getOuterSizes.js +21 -0
- package/positioning/esm5/utils/getParentNode.js +17 -0
- package/positioning/esm5/utils/getReferenceOffsets.js +22 -0
- package/positioning/esm5/utils/getRoot.js +17 -0
- package/positioning/esm5/utils/getScroll.js +23 -0
- package/positioning/esm5/utils/getScrollParent.js +32 -0
- package/positioning/esm5/utils/getStyleComputedProperty.js +21 -0
- package/positioning/esm5/utils/getTargetOffsets.js +38 -0
- package/positioning/esm5/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +30 -0
- package/positioning/esm5/utils/getWindowSizes.js +34 -0
- package/positioning/esm5/utils/includeScroll.js +24 -0
- package/positioning/esm5/utils/index.js +28 -0
- package/positioning/esm5/utils/isBrowser.js +7 -0
- package/positioning/esm5/utils/isFixed.js +22 -0
- package/positioning/esm5/utils/isIE.js +22 -0
- package/positioning/esm5/utils/isNumeric.js +14 -0
- package/positioning/esm5/utils/isOffsetContainer.js +18 -0
- package/positioning/esm5/utils/setAllStyles.js +55 -0
- package/positioning/esm5/utils/setStyles.js +28 -0
- package/positioning/fesm2015/ngx-bootstrap-positioning.js +1108 -211
- package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/fesm5/ngx-bootstrap-positioning.js +1148 -249
- package/positioning/fesm5/ngx-bootstrap-positioning.js.map +1 -1
- package/positioning/models/index.d.ts +27 -0
- package/positioning/modifiers/arrow.d.ts +2 -0
- package/positioning/modifiers/flip.d.ts +2 -0
- package/positioning/modifiers/index.d.ts +5 -0
- package/positioning/modifiers/initData.d.ts +2 -0
- package/positioning/modifiers/preventOverflow.d.ts +2 -0
- package/positioning/modifiers/shift.d.ts +2 -0
- package/positioning/ng-positioning.d.ts +7 -10
- package/positioning/ngx-bootstrap-positioning.metadata.json +1 -1
- package/positioning/package.json +1 -1
- package/positioning/positioning.service.d.ts +7 -1
- package/positioning/utils/computeAutoPlacement.d.ts +2 -0
- package/positioning/utils/findCommonOffsetParent.d.ts +1 -0
- package/positioning/utils/getBordersSize.d.ts +4 -0
- package/positioning/utils/getBoundaries.d.ts +1 -0
- package/positioning/utils/getBoundingClientRect.d.ts +2 -0
- package/positioning/utils/getClientRect.d.ts +5 -0
- package/positioning/utils/getFixedPositionOffsetParent.d.ts +1 -0
- package/positioning/utils/getOffsetParent.d.ts +1 -0
- package/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
- package/positioning/utils/getOffsets.d.ts +2 -0
- package/positioning/utils/getOppositePlacement.d.ts +4 -0
- package/positioning/utils/getOppositeVariation.d.ts +4 -0
- package/positioning/utils/getOuterSizes.d.ts +7 -0
- package/positioning/utils/getParentNode.d.ts +4 -0
- package/positioning/utils/getReferenceOffsets.d.ts +2 -0
- package/positioning/utils/getRoot.d.ts +4 -0
- package/positioning/utils/getScroll.d.ts +4 -0
- package/positioning/utils/getScrollParent.d.ts +1 -0
- package/positioning/utils/getStyleComputedProperty.d.ts +4 -0
- package/positioning/utils/getTargetOffsets.d.ts +2 -0
- package/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
- package/positioning/utils/getWindowSizes.d.ts +4 -0
- package/positioning/utils/includeScroll.d.ts +2 -0
- package/positioning/utils/index.d.ts +22 -0
- package/positioning/utils/isBrowser.d.ts +1 -0
- package/positioning/utils/isFixed.d.ts +1 -0
- package/positioning/utils/isIE.d.ts +1 -0
- package/positioning/utils/isNumeric.d.ts +4 -0
- package/positioning/utils/isOffsetContainer.d.ts +1 -0
- package/positioning/utils/setAllStyles.d.ts +6 -0
- package/positioning/utils/setStyles.d.ts +5 -0
- package/progressbar/package.json +1 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.js +3 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.js.map +1 -1
- package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +1 -1
- package/rating/esm2015/rating.component.js +3 -1
- package/rating/esm5/rating.component.js +3 -1
- package/rating/fesm2015/ngx-bootstrap-rating.js +3 -1
- package/rating/fesm2015/ngx-bootstrap-rating.js.map +1 -1
- package/rating/fesm5/ngx-bootstrap-rating.js +3 -1
- package/rating/fesm5/ngx-bootstrap-rating.js.map +1 -1
- package/rating/package.json +1 -1
- package/schematics/ng-add/index.js +17 -9
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/index.spec.js +2 -3
- package/schematics/ng-add/index.spec.js.map +1 -1
- package/sortable/package.json +1 -1
- package/tabs/package.json +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +3 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +1 -1
- package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +1 -1
- package/timepicker/esm2015/timepicker.component.js +5 -1
- package/timepicker/esm5/timepicker.component.js +5 -1
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +3 -1
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js +3 -1
- package/timepicker/fesm5/ngx-bootstrap-timepicker.js.map +1 -1
- package/timepicker/ngx-bootstrap-timepicker.metadata.json +1 -1
- package/timepicker/package.json +1 -1
- package/timepicker/timepicker.component.d.ts +1 -0
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +15 -4
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +1 -1
- package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +1 -1
- package/tooltip/esm2015/tooltip-container.component.js +15 -7
- package/tooltip/esm2015/tooltip.config.js +10 -1
- package/tooltip/esm2015/tooltip.directive.js +13 -4
- package/tooltip/esm5/tooltip-container.component.js +6 -2
- package/tooltip/esm5/tooltip.config.js +10 -1
- package/tooltip/esm5/tooltip.directive.js +13 -4
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +25 -10
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js +16 -5
- package/tooltip/fesm5/ngx-bootstrap-tooltip.js.map +1 -1
- package/tooltip/ngx-bootstrap-tooltip.metadata.json +1 -1
- package/tooltip/package.json +1 -1
- package/tooltip/tooltip-container.component.d.ts +1 -0
- package/tooltip/tooltip.config.d.ts +2 -0
- package/tooltip/tooltip.directive.d.ts +2 -0
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +93 -35
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +1 -1
- package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +1 -1
- package/typeahead/esm2015/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm2015/public_api.js +2 -1
- package/typeahead/esm2015/typeahead-container.component.js +15 -4
- package/typeahead/esm2015/typeahead.config.js +55 -0
- package/typeahead/esm2015/typeahead.directive.js +68 -32
- package/typeahead/esm2015/typeahead.module.js +3 -2
- package/typeahead/esm5/ngx-bootstrap-typeahead.js +2 -2
- package/typeahead/esm5/public_api.js +2 -1
- package/typeahead/esm5/typeahead-container.component.js +12 -4
- package/typeahead/esm5/typeahead.config.js +57 -0
- package/typeahead/esm5/typeahead.directive.js +69 -34
- package/typeahead/esm5/typeahead.module.js +3 -2
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +96 -36
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js +95 -38
- package/typeahead/fesm5/ngx-bootstrap-typeahead.js.map +1 -1
- package/typeahead/ngx-bootstrap-typeahead.metadata.json +1 -1
- package/typeahead/package.json +1 -1
- package/typeahead/public_api.d.ts +1 -0
- package/typeahead/typeahead-container.component.d.ts +1 -1
- package/typeahead/typeahead.config.d.ts +11 -0
- package/typeahead/typeahead.directive.d.ts +14 -5
- package/utils/bundles/ngx-bootstrap-utils.umd.js +31 -11
- package/utils/bundles/ngx-bootstrap-utils.umd.js.map +1 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js +1 -1
- package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +1 -1
- package/utils/esm2015/facade/browser.js +13 -14
- package/utils/esm2015/ngx-bootstrap-utils.js +2 -2
- package/utils/esm2015/public_api.js +2 -2
- package/utils/esm2015/triggers.js +23 -1
- package/utils/esm5/facade/browser.js +10 -11
- package/utils/esm5/ngx-bootstrap-utils.js +2 -2
- package/utils/esm5/public_api.js +2 -2
- package/utils/esm5/triggers.js +23 -1
- package/utils/facade/browser.d.ts +5 -5
- package/utils/fesm2015/ngx-bootstrap-utils.js +34 -15
- package/utils/fesm2015/ngx-bootstrap-utils.js.map +1 -1
- package/utils/fesm5/ngx-bootstrap-utils.js +31 -12
- package/utils/fesm5/ngx-bootstrap-utils.js.map +1 -1
- package/utils/ngx-bootstrap-utils.metadata.json +1 -1
- package/utils/package.json +1 -1
- package/utils/public_api.d.ts +1 -1
- package/utils/triggers.d.ts +2 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-bootstrap-chronos.js.map","sources":["ng://ngx-bootstrap/chronos/utils.ts","ng://ngx-bootstrap/chronos/utils/type-checks.ts","ng://ngx-bootstrap/chronos/units/aliases.ts","ng://ngx-bootstrap/chronos/units/constants.ts","ng://ngx-bootstrap/chronos/utils/zero-fill.ts","ng://ngx-bootstrap/chronos/format/format.ts","ng://ngx-bootstrap/chronos/create/date-from-array.ts","ng://ngx-bootstrap/chronos/utils/date-getters.ts","ng://ngx-bootstrap/chronos/parse/regex.ts","ng://ngx-bootstrap/chronos/parse/token.ts","ng://ngx-bootstrap/chronos/units/priorities.ts","ng://ngx-bootstrap/chronos/units/day-of-month.ts","ng://ngx-bootstrap/chronos/create/parsing-flags.ts","ng://ngx-bootstrap/chronos/units/year.ts","ng://ngx-bootstrap/chronos/units/month.ts","ng://ngx-bootstrap/chronos/utils/date-setters.ts","ng://ngx-bootstrap/chronos/create/clone.ts","ng://ngx-bootstrap/chronos/utils/start-end-of.ts","ng://ngx-bootstrap/chronos/units/day-of-year.ts","ng://ngx-bootstrap/chronos/units/week-calendar-utils.ts","ng://ngx-bootstrap/chronos/locale/locale.class.ts","ng://ngx-bootstrap/chronos/locale/calendar.ts","ng://ngx-bootstrap/chronos/locale/locale.defaults.ts","ng://ngx-bootstrap/chronos/utils/compare-arrays.ts","ng://ngx-bootstrap/chronos/units/week.ts","ng://ngx-bootstrap/chronos/units/week-year.ts","ng://ngx-bootstrap/chronos/units/timezone.ts","ng://ngx-bootstrap/chronos/units/timestamp.ts","ng://ngx-bootstrap/chronos/units/second.ts","ng://ngx-bootstrap/chronos/units/quarter.ts","ng://ngx-bootstrap/chronos/units/offset.ts","ng://ngx-bootstrap/chronos/units/minute.ts","ng://ngx-bootstrap/chronos/units/millisecond.ts","ng://ngx-bootstrap/chronos/units/hour.ts","ng://ngx-bootstrap/chronos/locale/locales.ts","ng://ngx-bootstrap/chronos/duration/valid.ts","ng://ngx-bootstrap/chronos/utils/abs-ceil.ts","ng://ngx-bootstrap/chronos/duration/bubble.ts","ng://ngx-bootstrap/chronos/duration/humanize.ts","ng://ngx-bootstrap/chronos/duration/constructor.ts","ng://ngx-bootstrap/chronos/create/valid.ts","ng://ngx-bootstrap/chronos/create/from-string.ts","ng://ngx-bootstrap/chronos/format.ts","ng://ngx-bootstrap/chronos/utils/defaults.ts","ng://ngx-bootstrap/chronos/create/from-array.ts","ng://ngx-bootstrap/chronos/create/check-overflow.ts","ng://ngx-bootstrap/chronos/create/from-string-and-format.ts","ng://ngx-bootstrap/chronos/create/from-string-and-array.ts","ng://ngx-bootstrap/chronos/create/from-object.ts","ng://ngx-bootstrap/chronos/create/from-anything.ts","ng://ngx-bootstrap/chronos/create/local.ts","ng://ngx-bootstrap/chronos/utils/abs-round.ts","ng://ngx-bootstrap/chronos/utils/date-compare.ts","ng://ngx-bootstrap/chronos/duration/create.ts","ng://ngx-bootstrap/chronos/moment/add-subtract.ts","ng://ngx-bootstrap/chronos/units/day-of-week.ts","ng://ngx-bootstrap/chronos/i18n/ar.ts","ng://ngx-bootstrap/chronos/i18n/bg.ts","ng://ngx-bootstrap/chronos/i18n/cs.ts","ng://ngx-bootstrap/chronos/i18n/da.ts","ng://ngx-bootstrap/chronos/i18n/de.ts","ng://ngx-bootstrap/chronos/i18n/en-gb.ts","ng://ngx-bootstrap/chronos/i18n/es-do.ts","ng://ngx-bootstrap/chronos/i18n/es.ts","ng://ngx-bootstrap/chronos/i18n/es-us.ts","ng://ngx-bootstrap/chronos/i18n/fi.ts","ng://ngx-bootstrap/chronos/i18n/fr.ts","ng://ngx-bootstrap/chronos/i18n/gl.ts","ng://ngx-bootstrap/chronos/i18n/he.ts","ng://ngx-bootstrap/chronos/i18n/hi.ts","ng://ngx-bootstrap/chronos/i18n/hu.ts","ng://ngx-bootstrap/chronos/i18n/id.ts","ng://ngx-bootstrap/chronos/i18n/it.ts","ng://ngx-bootstrap/chronos/i18n/ja.ts","ng://ngx-bootstrap/chronos/i18n/ko.ts","ng://ngx-bootstrap/chronos/i18n/lt.ts","ng://ngx-bootstrap/chronos/i18n/mn.ts","ng://ngx-bootstrap/chronos/i18n/nb.ts","ng://ngx-bootstrap/chronos/i18n/nl-be.ts","ng://ngx-bootstrap/chronos/i18n/nl.ts","ng://ngx-bootstrap/chronos/i18n/pl.ts","ng://ngx-bootstrap/chronos/i18n/pt-br.ts","ng://ngx-bootstrap/chronos/i18n/ro.ts","ng://ngx-bootstrap/chronos/i18n/ru.ts","ng://ngx-bootstrap/chronos/i18n/sk.ts","ng://ngx-bootstrap/chronos/i18n/sl.ts","ng://ngx-bootstrap/chronos/i18n/sv.ts","ng://ngx-bootstrap/chronos/i18n/th.ts","ng://ngx-bootstrap/chronos/i18n/tr.ts","ng://ngx-bootstrap/chronos/i18n/zh-cn.ts"],"sourcesContent":["\n\nexport function mod(n: number, x: number): number {\n return (n % x + x) % x;\n}\n\nexport function absFloor(num: number): number {\n return num < 0 ? Math.ceil(num) || 0 : Math.floor(num);\n}\n\n","import { absFloor } from '../utils';\n\nexport function isString(str: any): str is string {\n return typeof str === 'string';\n}\n\nexport function isDate(value: any): value is Date {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false;\n}\n\nexport function isDateValid(date: Date): boolean {\n return date && date.getTime && !isNaN(date.getTime());\n}\n\nexport function isFunction(fn: any): fn is Function {\n return (\n fn instanceof Function ||\n Object.prototype.toString.call(fn) === '[object Function]'\n );\n}\n\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\nexport function isArray<T>(input?: any): input is T[] {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\n// TODO: returned type should be changed to \"b is Extract<keyof T, string>\"\n// after update to typescript 3.1.1 (issue 4728)\nexport function hasOwnProp<T>(a: T /*object*/, b: string): boolean {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nexport function isObject<T>(input: any /*object*/): input is T {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null && Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nexport function isObjectEmpty(obj: any): boolean {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n }\n let k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n\n return true;\n}\n\n\nexport function isUndefined(input: any): boolean {\n return input === void 0;\n}\n\nexport function toInt<T>(argumentForCoercion: string | number | T): number {\n const coercedNumber = +argumentForCoercion;\n let value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n","import { hasOwnProp, isString } from '../utils/type-checks';\nimport { DateObject, UnitOfTime } from '../types';\n\nconst aliases: { [key: string]: string } = {};\n\nexport type ExtendedUnitOfTime = UnitOfTime | 'date' | 'week' | 'isoWeek' | 'dayOfYear' |\n 'weekday' | 'isoWeekday' | 'second' | 'millisecond' | 'minute' | 'hour' | 'quarter' | 'weekYear' | 'isoWeekYear';\n\nconst _mapUnits: { [key: string]: UnitOfTime } = {\n date: 'day',\n hour: 'hours',\n minute: 'minutes',\n second: 'seconds',\n millisecond: 'milliseconds'\n};\n\nexport function addUnitAlias(unit: ExtendedUnitOfTime, shorthand: string): void {\n const lowerCase = unit.toLowerCase();\n let _unit = unit;\n if (lowerCase in _mapUnits) {\n _unit = _mapUnits[lowerCase];\n }\n aliases[lowerCase] = aliases[`${lowerCase}s`] = aliases[shorthand] = _unit;\n}\n\nexport function normalizeUnits(units: string | string[]): string {\n return isString(units) ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\n\nexport function normalizeObjectUnits(inputObject: { [key: string]: number }): DateObject {\n const normalizedInput: { [key: string]: number } = {};\n let normalizedProp;\n let prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput as any;\n}\n","// place in new Date([array])\nexport const YEAR = 0;\nexport const MONTH = 1;\nexport const DATE = 2;\nexport const HOUR = 3;\nexport const MINUTE = 4;\nexport const SECOND = 5;\nexport const MILLISECOND = 6;\nexport const WEEK = 7;\nexport const WEEKDAY = 8;\n","export function zeroFill(num: number,\n targetLength: number,\n forceSign?: boolean): string {\n const absNumber = `${Math.abs(num)}`;\n const zerosToFill = targetLength - absNumber.length;\n const sign = num >= 0;\n const _sign = sign ? (forceSign ? '+' : '') : '-';\n // todo: this is crazy slow\n const _zeros = Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1);\n\n return (_sign + _zeros + absNumber);\n}\n","import { Locale } from '../locale/locale.class';\nimport { zeroFill } from '../utils/zero-fill';\nimport { isFunction } from '../utils/type-checks';\nimport { DateFormatterOptions, DateFormatterFn } from '../types';\n\nexport let formatFunctions: {\n [key: string]: (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string;\n} = {};\nexport let formatTokenFunctions: { [key: string]: DateFormatterFn } = {};\n\n// tslint:disable-next-line\nexport const formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nexport function addFormatToken(token: string,\n padded: [string, number, boolean],\n ordinal: string,\n callback: DateFormatterFn): void {\n\n if (token) {\n formatTokenFunctions[token] = callback;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function (): string {\n return zeroFill(callback.apply(null, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.ordinal(callback.apply(null, arguments), token);\n };\n }\n}\n\nexport function makeFormatFunction(format: string):\n (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string {\n\n const array: string[] = format.match(formattingTokens);\n const length = array.length;\n\n const formatArr: string[] | DateFormatterFn[] = new Array(length);\n\n for (let i = 0; i < length; i++) {\n formatArr[i] = formatTokenFunctions[array[i]]\n ? formatTokenFunctions[array[i]]\n : removeFormattingTokens(array[i]);\n }\n\n return function (date: Date, locale: Locale, isUTC: boolean, offset = 0): string {\n let output = '';\n for (let j = 0; j < length; j++) {\n output += isFunction(formatArr[j])\n ? (formatArr[j] as DateFormatterFn).call(null, date, {format, locale, isUTC, offset})\n : formatArr[j];\n }\n\n return output;\n };\n}\n\nfunction removeFormattingTokens(input: string): string {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n}\n","export function createUTCDate(y?: number,\n m?: number,\n d?: number): Date {\n const date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n\n return date;\n}\n\nexport function createDate(y?: number,\n m = 0,\n d = 1,\n h = 0,\n M = 0,\n s = 0,\n ms = 0): Date {\n const date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n\n return date;\n}\n","import { createDate } from '../create/date-from-array';\n\nexport function getHours(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCHours() : date.getHours();\n}\n\nexport function getMinutes(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMinutes() : date.getMinutes();\n}\n\nexport function getSeconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCSeconds() : date.getSeconds();\n}\n\nexport function getMilliseconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMilliseconds() : date.getMilliseconds();\n}\nexport function getTime(date: Date): number {\n return date.getTime();\n}\n\nexport function getDay(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDay() : date.getDay();\n}\n\nexport function getDate(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDate() : date.getDate();\n}\n\nexport function getMonth(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMonth() : date.getMonth();\n}\n\nexport function getFullYear(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCFullYear() : date.getFullYear();\n}\n\nexport function getUnixTime(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function unix(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function getFirstDayOfMonth(date: Date): Date {\n return createDate(\n date.getFullYear(),\n date.getMonth(),\n 1,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n );\n}\n\nexport function daysInMonth(date: Date): number {\n return _daysInMonth(date.getFullYear(), date.getMonth());\n}\n\nexport function _daysInMonth(year: number, month: number): number {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\n\nexport function isFirstDayOfWeek(date: Date, firstDayOfWeek: number): boolean {\n return date.getDay() === firstDayOfWeek;\n}\n\nexport function isSameMonth(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2);\n}\n\nexport function isSameYear(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return getFullYear(date1) === getFullYear(date2);\n}\n\nexport function isSameDay(date1: Date, date2: Date): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return (\n isSameYear(date1, date2) &&\n isSameMonth(date1, date2) &&\n getDate(date1) === getDate(date2)\n );\n}\n","import { hasOwnProp, isFunction } from '../utils/type-checks';\nimport { Locale } from '../locale/locale.class';\n\nexport const match1 = /\\d/; // 0 - 9\nexport const match2 = /\\d\\d/; // 00 - 99\nexport const match3 = /\\d{3}/; // 000 - 999\nexport const match4 = /\\d{4}/; // 0000 - 9999\nexport const match6 = /[+-]?\\d{6}/; // -999999 - 999999\nexport const match1to2 = /\\d\\d?/; // 0 - 99\nexport const match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nexport const match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nexport const match1to3 = /\\d{1,3}/; // 0 - 999\nexport const match1to4 = /\\d{1,4}/; // 0 - 9999\nexport const match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\nexport const matchUnsigned = /\\d+/; // 0 - inf\nexport const matchSigned = /[+-]?\\d+/; // -inf - inf\n\nexport const matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nexport const matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\nexport const matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\n// tslint:disable-next-line\nexport const matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\nexport type RegExpTokenFn = (isStrict: boolean, locale: Locale) => RegExp;\nconst regexes: {[key: string]: RegExpTokenFn} = {};\n\n\nexport function addRegexToken(token: string, regex: RegExp | RegExpTokenFn, strictRegex?: RegExp): void {\n if (isFunction(regex)) {\n regexes[token] = regex;\n\n return;\n }\n\n regexes[token] = function (isStrict: boolean, locale: Locale) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n}\n\nexport function getParseRegexForToken(token: string, locale: Locale): RegExp {\n const _strict = false;\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](_strict, locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(str: string): string {\n // tslint:disable-next-line\n return regexEscape(str\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, (matched, p1, p2, p3, p4) => p1 || p2 || p3 || p4)\n );\n}\n\nexport function regexEscape(str: string): string {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","// tslint:disable:max-line-length\nimport { hasOwnProp, isArray, isFunction, isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateParseTokenFn } from '../types';\n\nconst tokens: {[key: string]: DateParseTokenFn} = {};\n\nexport function addParseToken(token: string | string[], callback: DateParseTokenFn | number) {\n const _token = isString(token) ? [token] : token;\n let func = callback;\n\n if (isNumber(callback)) {\n func = function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[callback] = toInt(input);\n\n return config;\n };\n }\n\n if (isArray<string>(_token) && isFunction(func)) {\n let i;\n for (i = 0; i < _token.length; i++) {\n tokens[_token[i]] = func;\n }\n }\n}\n\nexport function addWeekParseToken(token: string[], callback: DateParseTokenFn): void {\n addParseToken(token, function (input: string, array: DateArray, config: DateParsingConfig, _token: string): DateParsingConfig {\n config._w = config._w || {};\n\n return callback(input, config._w, config, _token);\n });\n}\n\n\nexport function addTimeToArrayFromToken(token: string, input: string, config: DateParsingConfig): DateParsingConfig {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n\n return config;\n}\n","const priorities: {[key: string]: number} = {};\n\nexport function addUnitPriority(unit: string, priority: number): void {\n priorities[unit] = priority;\n}\n\n/*\nexport function getPrioritizedUnits(unitsObj) {\n const units = [];\n let unit;\n for (unit in unitsObj) {\n if (unitsObj.hasOwnProperty(unit)) {\n units.push({ unit, priority: priorities[unit] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n return units;\n}\n*/\n","import { addFormatToken } from '../format/format';\nimport { getDate } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { DATE } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n\nexport function initDayOfMonth() {\n// FORMATTING\n\n addFormatToken('D', ['DD', 2, false], 'Do',\n function(date: Date, opts: DateFormatterOptions): string {\n return getDate(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('date', 'D');\n\n// PRIOROITY\n addUnitPriority('date', 9);\n\n// PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function(isStrict, locale) {\n return locale._dayOfMonthOrdinalParse || locale._ordinalParse;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken(\n 'Do',\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[DATE] = toInt(input.match(match1to2)[0]);\n\n return config;\n }\n );\n}\n","import { DateParsingConfig, DateParsingFlags } from './parsing.types';\n\nfunction defaultParsingFlags(): DateParsingFlags {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n}\n\nexport function getParsingFlags(config: DateParsingConfig): DateParsingFlags {\n if (config._pf == null) {\n config._pf = defaultParsingFlags();\n }\n\n return config._pf;\n}\n","import { addFormatToken } from '../format/format';\nimport { getFullYear } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { YEAR } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n// FORMATTING\n\nfunction getYear(date: Date, opts: DateFormatterOptions): string {\n return getFullYear(date, opts.isUTC).toString();\n}\n\nexport function initYear() {\n addFormatToken('Y', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const y = getFullYear(date, opts.isUTC);\n\n return y <= 9999 ? y.toString(10) : `+${y}`;\n });\n\n addFormatToken(null, ['YY', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getFullYear(date, opts.isUTC) % 100).toString(10);\n });\n\n addFormatToken(null, ['YYYY', 4, false], null, getYear);\n addFormatToken(null, ['YYYYY', 5, false], null, getYear);\n addFormatToken(null, ['YYYYYY', 6, true], null, getYear);\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array, config) {\n array[YEAR] = input.length === 2 ? parseTwoDigitYear(input) : toInt(input);\n\n return config;\n });\n addParseToken('YY', function (input, array, config) {\n array[YEAR] = parseTwoDigitYear(input);\n\n return config;\n });\n addParseToken('Y', function (input, array, config) {\n array[YEAR] = parseInt(input, 10);\n\n return config;\n });\n}\n\nexport function parseTwoDigitYear(input: string): number {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n}\n\nexport function daysInYear(year: number): number {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n","import { addFormatToken } from '../format/format';\nimport { isLeapYear } from './year';\nimport { mod } from '../utils';\nimport { getMonth } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateFormatterOptions } from '../types';\n\n// todo: this is duplicate, source in date-getters.ts\nexport function daysInMonth(year: number, month: number): number {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n const modMonth = mod(month, 12);\n const _year = year + (month - modMonth) / 12;\n\n return modMonth === 1\n ? isLeapYear(_year) ? 29 : 28\n : (31 - modMonth % 7 % 2);\n}\n\nexport function initMonth() {\n// FORMATTING\n\n addFormatToken('M', ['MM', 2, false], 'Mo',\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMonth(date, opts.isUTC) + 1).toString(10);\n }\n );\n\n addFormatToken('MMM', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.monthsShort(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('MMMM', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.months(date, opts.format, opts.isUTC);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('month', 'M');\n\n// PRIORITY\n\n addUnitPriority('month', 8);\n\n// PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function(isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function(isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = toInt(input) - 1;\n\n return config;\n });\n\n addParseToken(\n ['MMM', 'MMMM'],\n function(input: string, array: DateArray, config: DateParsingConfig, token: string): DateParsingConfig {\n const month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = !!input;\n }\n\n return config;\n }\n );\n}\n","import { TimeUnit } from '../types';\nimport { daysInMonth } from '../units/month';\nimport { isNumber } from './type-checks';\nimport { getDate, getFullYear, getMonth } from './date-getters';\nimport { isLeapYear } from '../units/year';\nimport { createDate } from '../create/date-from-array';\n\nconst defaultTimeUnit: TimeUnit = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n seconds: 0\n};\n\nexport function shiftDate(date: Date, unit: TimeUnit): Date {\n const _unit = Object.assign({}, defaultTimeUnit, unit);\n const year = date.getFullYear() + (_unit.year || 0);\n const month = date.getMonth() + (_unit.month || 0);\n let day = date.getDate() + (_unit.day || 0);\n if (_unit.month && !_unit.day) {\n day = Math.min(day, daysInMonth(year, month));\n }\n\n return createDate(\n year,\n month,\n day,\n date.getHours() + (_unit.hour || 0),\n date.getMinutes() + (_unit.minute || 0),\n date.getSeconds() + (_unit.seconds || 0)\n );\n}\n\nexport function setFullDate(date: Date, unit: TimeUnit): Date {\n return createDate(\n getNum(date.getFullYear(), unit.year),\n getNum(date.getMonth(), unit.month),\n getNum(date.getDate(), unit.day),\n getNum(date.getHours(), unit.hour),\n getNum(date.getMinutes(), unit.minute),\n getNum(date.getSeconds(), unit.seconds),\n getNum(date.getMilliseconds(), unit.milliseconds)\n );\n}\n\nfunction getNum(def: number, num?: number): number {\n return isNumber(num) ? num : def;\n}\n\nexport function setFullYear(date: Date, value: number, isUTC?: boolean): Date {\n const _month = getMonth(date, isUTC);\n const _date = getDate(date, isUTC);\n const _year = getFullYear(date, isUTC);\n if (isLeapYear(_year) && _month === 1 && _date === 29) {\n const _daysInMonth = daysInMonth(value, _month);\n isUTC ? date.setUTCFullYear(value, _month, _daysInMonth) : date.setFullYear(value, _month, _daysInMonth);\n }\n\n isUTC ? date.setUTCFullYear(value) : date.setFullYear(value);\n\n return date;\n}\n\nexport function setMonth(date: Date, value: number, isUTC?: boolean): Date {\n const dayOfMonth = Math.min(getDate(date), daysInMonth(getFullYear(date), value));\n isUTC ? date.setUTCMonth(value, dayOfMonth) : date.setMonth(value, dayOfMonth);\n\n return date;\n}\n\nexport function setDay(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setHours(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCHours(value) : date.setHours(value);\n\n return date;\n}\n\nexport function setMinutes(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMinutes(value) : date.setMinutes(value);\n\n return date;\n}\n\nexport function setSeconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCSeconds(value) : date.setSeconds(value);\n\n return date;\n}\n\nexport function setMilliseconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMilliseconds(value) : date.setMilliseconds(value);\n\n return date;\n}\n\nexport function setDate(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setTime(date: Date, value: number): Date {\n date.setTime(value);\n\n return date;\n}\n","// fastest way to clone date\n// https://jsperf.com/clone-date-object2\nexport function cloneDate(date: Date): Date {\n return new Date(date.getTime());\n}\n","// tslint:disable: switch-default\nimport { TimeUnit, UnitOfTime } from '../types';\nimport {\n setDate, setFullDate, setHours, setMilliseconds, setMinutes, setMonth, setSeconds,\n shiftDate\n} from './date-setters';\nimport { cloneDate } from '../create/clone';\nimport { setISODayOfWeek, setLocaleDayOfWeek } from '../units/day-of-week';\nimport { getMonth } from './date-getters';\nimport { add, subtract } from '../moment/add-subtract';\n\nexport function startOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n const _date = cloneDate(date);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (unit) {\n case 'year':\n setMonth(_date, 0, isUTC);\n /* falls through */\n case 'quarter':\n case 'month':\n setDate(_date, 1, isUTC);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n setHours(_date, 0, isUTC);\n /* falls through */\n case 'hours':\n setMinutes(_date, 0, isUTC);\n /* falls through */\n case 'minutes':\n setSeconds(_date, 0, isUTC);\n /* falls through */\n case 'seconds':\n setMilliseconds(_date, 0, isUTC);\n }\n\n // weeks are a special case\n if (unit === 'week') {\n setLocaleDayOfWeek(_date, 0, {isUTC});\n }\n if (unit === 'isoWeek') {\n setISODayOfWeek(_date, 1);\n }\n\n // quarters are also special\n if (unit === 'quarter') {\n setMonth(_date, Math.floor(getMonth(_date, isUTC) / 3) * 3, isUTC);\n }\n\n return _date;\n}\n\nexport function endOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n let _unit = unit;\n // 'date' is an alias for 'day', so it should be considered as such.\n if (_unit === 'date') {\n _unit = 'day';\n }\n\n const start = startOf(date, _unit, isUTC);\n const _step = add(start, 1, _unit === 'isoWeek' ? 'week' : _unit, isUTC);\n const res = subtract(_step, 1, 'milliseconds', isUTC);\n\n return res;\n}\n","import { addFormatToken } from '../format/format';\nimport { startOf } from '../utils/start-end-of';\nimport { addRegexToken, match1to3, match3 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { toInt } from '../utils/type-checks';\nimport { add } from '../moment/add-subtract';\n\n\nexport function initDayOfYear() {\n// FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3, false], 'DDDo',\n function(date: Date): string {\n return getDayOfYear(date)\n .toString(10);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\n\n addUnitPriority('dayOfYear', 4);\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(\n ['DDD', 'DDDD'],\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._dayOfYear = toInt(input);\n\n return config;\n }\n );\n}\n\nexport function getDayOfYear(date: Date, isUTC?: boolean): number {\n const date1 = +startOf(date, 'day', isUTC);\n const date2 = +startOf(date, 'year', isUTC);\n const someDate = date1 - date2;\n const oneDay = 1000 * 60 * 60 * 24;\n\n return Math.round(someDate / oneDay) + 1;\n}\n\nexport function setDayOfYear(date: Date, input: number): Date {\n const dayOfYear = getDayOfYear(date);\n\n return add(date, (input - dayOfYear), 'day');\n}\n","/**\n *\n * @param {number} year\n * @param {number} dow - start-of-first-week\n * @param {number} doy - start-of-year\n * @returns {number}\n */\nimport { createUTCDate } from '../create/date-from-array';\nimport { daysInYear } from './year';\nimport { getDayOfYear } from './day-of-year';\nimport { getFullYear } from '../utils/date-getters';\n\nfunction firstWeekOffset(year: number, dow: number, doy: number): number {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n const fwd = dow - doy + 7;\n // first-week day local weekday -- which local weekday is fwd\n const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nexport function dayOfYearFromWeeks(\n year: number,\n week: number,\n weekday: number,\n dow: number,\n doy: number\n): { year: number; dayOfYear: number } {\n const localWeekday = (7 + weekday - dow) % 7;\n const weekOffset = firstWeekOffset(year, dow, doy);\n const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;\n let resYear: number;\n let resDayOfYear: number;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\n\nexport function weekOfYear(date: Date, dow: number, doy: number, isUTC?: boolean): { week: number; year: number } {\n const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);\n const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;\n let resWeek: number;\n let resYear: number;\n\n if (week < 1) {\n resYear = getFullYear(date, isUTC) - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {\n resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);\n resYear = getFullYear(date, isUTC) + 1;\n } else {\n resYear = getFullYear(date, isUTC);\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n}\n\nexport function weeksInYear(year: number, dow: number, doy: number): number {\n const weekOffset = firstWeekOffset(year, dow, doy);\n const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n","// tslint:disable:max-file-line-count max-line-length cyclomatic-complexity\n\nimport { weekOfYear } from '../units/week-calendar-utils';\nimport { hasOwnProp, isArray, isFunction } from '../utils/type-checks';\nimport { getDay, getMonth } from '../utils/date-getters';\nimport { matchWord, regexEscape } from '../parse/regex';\nimport { setDayOfWeek } from '../units/day-of-week';\n\nexport interface LocaleOptionsFormat {\n format: string[];\n standalone: string[];\n isFormat?: RegExp;\n}\n\nexport type LocaleOptions = string[] | LocaleOptionsFormat;\n\nconst MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nexport const defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n);\nexport const defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n);\nexport const defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nexport const defaultLongDateFormat: { [index: string]: string } = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n};\n\nexport const defaultOrdinal = '%d';\nexport const defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nconst defaultMonthsShortRegex = matchWord;\nconst defaultMonthsRegex = matchWord;\n\nexport type OrdinalDateFn = (num: number, token?: string) => string;\nexport type PluralizeDateFn = (num: number, withoutSuffix: boolean,\n key?: string, isFuture?: boolean) => string;\n\nexport interface LocaleData {\n abbr?: string;\n parentLocale?: string;\n\n months?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsShort?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsParseExact?: boolean;\n\n weekdays?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysShort?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysMin?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysParseExact?: boolean;\n\n longDateFormat?: { [index: string]: string };\n calendar?: {\n [key: string]: (string\n | ((date: Date, now?: Date) => string)\n // tslint:disable-next-line\n | ((dayOfWeek: number, isNextWeek: boolean) => string))\n };\n relativeTime?: { [key: string]: string | PluralizeDateFn };\n dayOfMonthOrdinalParse?: RegExp;\n ordinal?: string | OrdinalDateFn;\n\n week?: { dow?: number; doy?: number };\n\n invalidDate?: string;\n\n monthsRegex?: RegExp;\n monthsParse?: RegExp[];\n monthsShortRegex?: RegExp;\n monthsStrictRegex?: RegExp;\n monthsShortStrictRegex?: RegExp;\n longMonthsParse?: RegExp[];\n shortMonthsParse?: RegExp[];\n\n meridiemParse?: RegExp;\n\n meridiemHour?(hour: number, meridiem: string): number;\n\n preparse?(str: string): string;\n\n postformat?(str: string | number): string;\n\n meridiem?(hour: number, minute?: number, isLower?: boolean): string;\n\n isPM?(input: string): boolean;\n}\n\nexport class Locale {\n parentLocale?: Locale;\n _abbr: string;\n _config: LocaleData;\n meridiemHour: (hour: number, meridiem: string) => number;\n\n _invalidDate: string;\n _week: { dow: number; doy: number };\n _dayOfMonthOrdinalParse: RegExp;\n _ordinalParse: RegExp;\n _meridiemParse: RegExp;\n\n private _calendar: { [key: string]: string };\n private _relativeTime: { future: string; past: string };\n private _months: LocaleOptions;\n private _monthsShort: LocaleOptions;\n private _monthsRegex: RegExp;\n private _monthsShortRegex: RegExp;\n private _monthsStrictRegex: RegExp;\n private _monthsShortStrictRegex: RegExp;\n private _monthsParse: RegExp[];\n private _longMonthsParse: string[] | RegExp[];\n private _shortMonthsParse: string[] | RegExp[];\n private _monthsParseExact: RegExp;\n private _weekdaysParseExact: boolean;\n private _weekdaysRegex: RegExp;\n private _weekdaysShortRegex: RegExp;\n private _weekdaysMinRegex: RegExp;\n\n private _weekdaysStrictRegex: RegExp;\n private _weekdaysShortStrictRegex: RegExp;\n private _weekdaysMinStrictRegex: RegExp;\n\n private _weekdays: LocaleOptions;\n private _weekdaysShort: string[];\n private _weekdaysMin: string[];\n private _weekdaysParse: string[] | RegExp[];\n private _minWeekdaysParse: string[] | RegExp[];\n private _shortWeekdaysParse: string[] | RegExp[];\n private _fullWeekdaysParse: RegExp[];\n private _longDateFormat: { [key: string]: string };\n\n private _ordinal: string;\n\n constructor(config: LocaleData) {\n if (!!config) {\n this.set(config);\n }\n }\n\n set(config: LocaleData): void {\n let confKey;\n for (confKey in config) {\n if (!config.hasOwnProperty(confKey)) {\n continue;\n }\n const prop = config[confKey as keyof LocaleData];\n const key = (isFunction(prop) ? confKey : `_${confKey}`) as keyof Locale;\n\n this[key] = prop as any;\n }\n\n this._config = config;\n }\n\n calendar(key: string, date: Date, now: Date): string {\n const output = this._calendar[key] || this._calendar.sameElse;\n\n return isFunction(output) ? output.call(null, date, now) : output;\n }\n\n longDateFormat(key: string) {\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val: string) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n get invalidDate(): string {\n return this._invalidDate;\n }\n\n set invalidDate(val: string) {\n this._invalidDate = val;\n }\n\n ordinal(num: number, token?: string): string {\n return this._ordinal.replace('%d', num.toString(10));\n }\n\n preparse(str: string) {\n return str;\n }\n\n postformat(str: string) {\n return str;\n }\n\n relativeTime(num: number, withoutSuffix: boolean, str: 'future' | 'past', isFuture: boolean): string {\n const output = this._relativeTime[str];\n\n return (isFunction(output)) ?\n output(num, withoutSuffix, str, isFuture) :\n output.replace(/%d/i, num.toString(10));\n }\n\n pastFuture(diff: number, output: string): string {\n const format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n /** Months */\n months(): string[];\n months(date: Date, format?: string, isUTC?: boolean): string;\n months(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._months)\n ? this._months\n : this._months.standalone;\n }\n\n if (isArray<string>(this._months)) {\n return this._months[getMonth(date, isUTC)];\n }\n\n const key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone';\n\n return this._months[key][getMonth(date, isUTC)];\n }\n\n monthsShort(): string[];\n monthsShort(date?: Date, format?: string, isUTC?: boolean): string;\n monthsShort(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort.standalone;\n }\n\n if (isArray<string>(this._monthsShort)) {\n return this._monthsShort[getMonth(date, isUTC)];\n }\n const key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';\n\n return this._monthsShort[key][getMonth(date, isUTC)];\n }\n\n monthsParse(monthName: string, format?: string, strict?: boolean): number {\n let date;\n let regex;\n\n if (this._monthsParseExact) {\n return this.handleMonthStrictParse(monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(Date.UTC(2000, i));\n if (strict && !this._longMonthsParse[i]) {\n const _months = this.months(date, '', true).replace('.', '');\n const _shortMonths = this.monthsShort(date, '', true).replace('.', '');\n this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');\n this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && (this._longMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (strict && format === 'MMM' && (this._shortMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n monthsRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n }\n\n return this._monthsRegex;\n }\n\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n\n monthsShortRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n }\n\n return this._monthsShortRegex;\n }\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n\n /** Week */\n week(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;\n }\n\n firstDayOfWeek(): number {\n return this._week.dow;\n }\n\n firstDayOfYear(): number {\n return this._week.doy;\n }\n\n /** Day of Week */\n weekdays(): string[];\n weekdays(date: Date, format?: string, isUTC?: boolean): string;\n weekdays(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return isArray<string>(this._weekdays)\n ? this._weekdays\n : this._weekdays.standalone;\n }\n\n if (isArray<string>(this._weekdays)) {\n return this._weekdays[getDay(date, isUTC)];\n }\n\n const _key = this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone';\n\n return this._weekdays[_key][getDay(date, isUTC)];\n }\n\n weekdaysMin(): string[];\n weekdaysMin(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysMin(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;\n }\n\n weekdaysShort(): string[];\n weekdaysShort(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysShort(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;\n }\n\n\n // proto.weekdaysParse = localeWeekdaysParse;\n weekdaysParse(weekdayName?: string, format?: string, strict?: boolean): number {\n let i;\n let regex;\n\n if (this._weekdaysParseExact) {\n return this.handleWeekStrictParse(weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // fix: here is the issue\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\\.?')}$`, 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n\n if (!isArray<RegExp>(this._fullWeekdaysParse)\n || !isArray<RegExp>(this._shortWeekdaysParse)\n || !isArray<RegExp>(this._minWeekdaysParse)\n || !isArray<RegExp>(this._weekdaysParse)) {\n return;\n }\n\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // proto.weekdaysRegex = weekdaysRegex;\n weekdaysRegex(isStrict: boolean) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = matchWord;\n }\n\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n // proto.weekdaysShortRegex = weekdaysShortRegex;\n // proto.weekdaysMinRegex = weekdaysMinRegex;\n\n\n weekdaysShortRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = matchWord;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n weekdaysMinRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = matchWord;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n isPM(input: string): boolean {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return input.toLowerCase().charAt(0) === 'p';\n }\n\n meridiem(hours: number, minutes: number, isLower: boolean): string {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n }\n\n return isLower ? 'am' : 'AM';\n }\n\n formatLongDate(key: string) {\n this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[\n key\n ] = formatUpper.replace(/MMMM|MM|DD|dddd/g, (val: string) => {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n private handleMonthStrictParse(monthName: string, format: string, strict?: boolean) {\n const llc = monthName.toLocaleLowerCase();\n let i;\n let ii;\n let mom;\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = new Date(2000, i);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n private handleWeekStrictParse(weekdayName: string, format: string, strict: boolean): number {\n let ii;\n const llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n let i;\n for (i = 0; i < 7; ++i) {\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();\n }\n }\n\n if (!isArray<string>(this._weekdaysParse)\n || !isArray<string>(this._shortWeekdaysParse)\n || !isArray<string>(this._minWeekdaysParse)) {\n return;\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n private computeMonthsParse() {\n const shortPieces: string[] = [];\n const longPieces: string[] = [];\n const mixedPieces: string[] = [];\n let date;\n\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(2000, i);\n shortPieces.push(this.monthsShort(date, ''));\n longPieces.push(this.months(date, ''));\n mixedPieces.push(this.months(date, ''));\n mixedPieces.push(this.monthsShort(date, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n }\n\n private computeWeekdaysParse() {\n const minPieces = [];\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n\n let i;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // let mom = createUTC([2000, 1]).day(i);\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n const minp = this.weekdaysMin(date);\n const shortp = this.weekdaysShort(date);\n const longp = this.weekdays(date);\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');\n }\n}\n\nfunction cmpLenRev(a: string, b: string): number {\n return b.length - a.length;\n}\n","export const defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n};\n","import {\n defaultDayOfMonthOrdinalParse,\n defaultLocaleMonths,\n defaultLocaleMonthsShort,\n defaultLocaleWeekdays,\n defaultLocaleWeekdaysMin,\n defaultLocaleWeekdaysShort, defaultLongDateFormat, defaultOrdinal,\n LocaleData\n} from './locale.class';\nimport { defaultCalendar } from './calendar';\n\nexport const defaultInvalidDate = 'Invalid date';\n\nexport const defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n};\n\nexport const defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n\nexport const defaultRelativeTime: {[key: string]: string} = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n};\n\nexport const baseConfig: LocaleData = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n};\n","// compare two arrays, return the number of differences\nimport { toInt } from './type-checks';\n\nexport function compareArrays<T>(array1: T[], array2: T[], dontConvert: boolean) {\n const len = Math.min(array1.length, array2.length);\n const lengthDiff = Math.abs(array1.length - array2.length);\n let diffs = 0;\n let i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i])\n || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n}\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { weekOfYear } from './week-calendar-utils';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { add } from '../moment/add-subtract';\n\n// FORMATTING\n\nexport function initWeek() {\n addFormatToken('w', ['ww', 2, false], 'wo',\n function(date: Date, opts: DateFormatterOptions): string {\n return getWeek(date, opts.locale)\n .toString(10);\n }\n );\n\n addFormatToken('W', ['WW', 2, false], 'Wo',\n function(date: Date): string {\n return getISOWeek(date)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n// PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token.substr(0, 1)] = toInt(input);\n\n return config;\n }\n );\n\n// export function getSetWeek (input) {\n// var week = this.localeData().week(this);\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n}\n\nexport function setWeek(date: Date, input: number, locale = getLocale()): Date {\n const week = getWeek(date, locale);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return locale.week(date, isUTC);\n}\n\n// export function getSetISOWeek (input) {\n// var week = weekOfYear(this, 1, 4).week;\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n\nexport function setISOWeek(date: Date, input: number): Date {\n const week = getISOWeek(date);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getISOWeek(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).week;\n}\n\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { parseTwoDigitYear } from './year';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from './week-calendar-utils';\nimport { createUTCDate } from '../create/date-from-array';\nimport { getISOWeek, getWeek } from './week';\nimport { getISODayOfWeek, getLocaleDayOfWeek } from './day-of-week';\nimport { getLocale } from '../locale/locales';\nimport { setDate, setFullYear, setMonth } from '../utils/date-setters';\nimport { getDate, getFullYear, getMonth } from '../utils/date-getters';\nimport { Locale } from '../locale/locale.class';\nimport { DateFormatterFn, DateFormatterOptions, WeekParsing } from '../types';\n\n// FORMATTING\n\nexport function initWeekYear() {\n addFormatToken(null, ['gg', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n // return this.weekYear() % 100;\n return (getWeekYear(date, opts.locale) % 100).toString();\n }\n );\n\n addFormatToken(null, ['GG', 2, false], null,\n function (date: Date): string {\n // return this.isoWeekYear() % 100;\n return (getISOWeekYear(date) % 100).toString();\n }\n );\n\n addWeekYearFormatToken('gggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('ggggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('GGGG', _getISOWeekYearFormatCb);\n addWeekYearFormatToken('GGGGG', _getISOWeekYearFormatCb);\n\n// ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week: WeekParsing, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n\n return config;\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week: WeekParsing, config, token) {\n week[token] = parseTwoDigitYear(input);\n\n return config;\n });\n}\n\nfunction addWeekYearFormatToken(token: string, getter: DateFormatterFn): void {\n addFormatToken(null, [token, token.length, false], null, getter);\n}\n\nfunction _getWeekYearFormatCb(date: Date, opts: DateFormatterOptions): string {\n return getWeekYear(date, opts.locale).toString();\n}\n\nfunction _getISOWeekYearFormatCb(date: Date): string {\n return getISOWeekYear(date).toString();\n}\n\n// MOMENTS\n\nexport function getSetWeekYear(date: Date, input: number, locale = getLocale(), isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date,\n input,\n // this.week(),\n getWeek(date, locale, isUTC),\n // this.weekday(),\n getLocaleDayOfWeek(date, locale, isUTC),\n locale.firstDayOfWeek(),\n locale.firstDayOfYear(),\n isUTC);\n}\n\nexport function getWeekYear(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return weekOfYear(date, locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC).year;\n}\n\nexport function getSetISOWeekYear(date: Date, input: number, isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date, input, getISOWeek(date, isUTC), getISODayOfWeek(date, isUTC), 1, 4);\n}\n\nexport function getISOWeekYear(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).year;\n}\n\nexport function getISOWeeksInYear(date: Date, isUTC?: boolean) {\n return weeksInYear(getFullYear(date, isUTC), 1, 4);\n}\n\nexport function getWeeksInYear(date: Date, isUTC?: boolean, locale: Locale = getLocale()): number {\n return weeksInYear(getFullYear(date, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear());\n}\n\nfunction getSetWeekYearHelper(date: Date, input: number, week: number,\n weekday: number, dow: number, doy: number, isUTC?: boolean): number | Date {\n if (!input) {\n return getWeekYear(date, void 0, isUTC);\n }\n\n const weeksTarget = weeksInYear(input, dow, doy);\n const _week = week > weeksTarget ? weeksTarget : week;\n\n return setWeekAll(date, input, _week, weekday, dow, doy);\n}\n\nfunction setWeekAll(date: Date, weekYear: number, week: number,\n weekday: number, dow: number, doy: number): Date {\n const dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n const _date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n setFullYear(date, getFullYear(_date, true), true);\n setMonth(date, getMonth(_date, true), true);\n setDate(date, getDate(_date, true), true);\n\n return date;\n}\n","import { addFormatToken } from '../format/format';\nimport { DateFormatterOptions } from '../types';\n\n// todo: add support for timezones\n\nexport function initTimezone() {\n // FORMATTING\n addFormatToken('z', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.isUTC ? 'UTC' : '';\n }\n );\n addFormatToken('zz', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.isUTC ? 'Coordinated Universal Time' : '';\n }\n );\n}\n\n// MOMENTS\n\nexport function getZoneAbbr(isUTC: boolean) {\n return isUTC ? 'UTC' : '';\n}\n\nexport function getZoneName(isUTC: boolean) {\n return isUTC ? 'Coordinated Universal Time' : '';\n}\n","import { addFormatToken } from '../format/format';\nimport { unix } from '../utils/date-getters';\nimport { addRegexToken, matchSigned, matchTimestamp } from '../parse/regex';\nimport { addParseToken} from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n\nexport function initTimestamp() {\n// FORMATTING\n\n addFormatToken('X', null, null, function(date: Date): string {\n return unix(date)\n .toString(10);\n });\n addFormatToken('x', null, null, function(date: Date): string {\n return date.valueOf()\n .toString(10);\n });\n\n// PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n\n addParseToken('X', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(parseFloat(input) * 1000);\n\n return config;\n });\n addParseToken('x', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(toInt(input));\n\n return config;\n });\n}\n","import { addFormatToken } from '../format/format';\nimport { getSeconds } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { SECOND } from './constants';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateFormatterOptions } from '../types';\n\n\nexport function initSecond() {\n// FORMATTING\n\n addFormatToken('s', ['ss', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getSeconds(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('second', 's');\n\n// PRIORITY\n\n addUnitPriority('second', 15);\n\n// PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n}\n","import { addFormatToken } from '../format/format';\nimport { addRegexToken, match1 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { getMonth } from '../utils/date-getters';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { setMonth } from '../utils/date-setters';\n\n\nexport function initQuarter() {\n// FORMATTING\n\n addFormatToken('Q', null, 'Qo',\n function(date: Date, opts: DateFormatterOptions): string {\n return getQuarter(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\n addUnitPriority('quarter', 7);\n\n// PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = (toInt(input) - 1) * 3;\n\n return config;\n });\n}\n\n// MOMENTS\n\nexport function getQuarter(date: Date, isUTC = false): number {\n return Math.ceil((getMonth(date, isUTC) + 1) / 3);\n}\n\nexport function setQuarter(date: Date, quarter: number, isUTC?: boolean): Date {\n return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);\n}\n\n// export function getSetQuarter(input) {\n// return input == null\n// ? Math.ceil((this.month() + 1) / 3)\n// : this.month((input - 1) * 3 + this.month() % 3);\n// }\n","// tslint:disable:no-bitwise max-line-length\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';\nimport { add } from '../moment/add-subtract';\nimport { addParseToken } from '../parse/token';\nimport { DateArray } from '../types';\nimport { cloneDate } from '../create/clone';\nimport { setMonth } from '../utils/date-setters';\n\nfunction addOffsetFormatToken(token: string, separator: string): void {\n addFormatToken(token, null, null, function (date: Date, config): string {\n let offset = getUTCOffset(date, {_isUTC: config.isUTC, _offset: config.offset});\n let sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n}\n\nexport function initOffset() {\n addOffsetFormatToken('Z', ':');\n addOffsetFormatToken('ZZ', '');\n\n// PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n\n return config;\n });\n}\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nconst chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher: RegExp, str: string): number {\n const matches = (str || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n const chunk = matches[matches.length - 1];\n const parts = chunk.match(chunkOffset) || ['-', '0', '0'];\n const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);\n const _min = parts[0] === '+' ? minutes : -minutes;\n\n return minutes === 0 ? 0 : _min;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nexport function cloneWithOffset(input: Date, date: Date,\n config: DateParsingConfig = {}): Date {\n if (!config._isUTC) {\n return input;\n }\n\n const res = cloneDate(date);\n // todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000\n const offsetDiff = (config._offset || 0) * 60000;\n const diff = input.valueOf() - res.valueOf() + offsetDiff;\n // Use low-level api, because this fn is low-level api.\n res.setTime(res.valueOf() + diff);\n // todo: add timezone handling\n // hooks.updateOffset(res, false);\n\n return res;\n}\n\nexport function getDateOffset(date: Date): number {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n// todo: it's from moment timezones\n// hooks.updateOffset = function () {\n// };\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nexport function getUTCOffset(date: Date, config: DateParsingConfig = {}): number {\n const _offset = config._offset || 0;\n\n return config._isUTC ? _offset : getDateOffset(date);\n}\n\nexport function setUTCOffset(date: Date, input: number | string, keepLocalTime?: boolean, keepMinutes?: boolean, config: DateParsingConfig = {}): Date {\n const offset = config._offset || 0;\n let localAdjust;\n let _input = input;\n let _date = date;\n\n if (isString(_input)) {\n _input = offsetFromString(matchShortOffset, _input);\n if (_input === null) {\n return _date;\n }\n } else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {\n _input = _input * 60;\n }\n\n if (!config._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(_date);\n }\n config._offset = _input;\n config._isUTC = true;\n if (localAdjust != null) {\n _date = add(_date, localAdjust, 'minutes');\n }\n if (offset !== _input) {\n if (!keepLocalTime || config._changeInProgress) {\n _date = add(_date, _input - offset, 'minutes', config._isUTC);\n // addSubtract(this, createDuration(_input - offset, 'm'), 1, false);\n } else if (!config._changeInProgress) {\n config._changeInProgress = true;\n // todo: add timezone handling\n // hooks.updateOffset(this, true);\n config._changeInProgress = null;\n }\n }\n\n return _date;\n}\n\n/*\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n*/\n\nexport function setOffsetToUTC(date: Date, keepLocalTime?: boolean): Date {\n return setUTCOffset(date, 0, keepLocalTime);\n}\n\nexport function isDaylightSavingTime(date: Date): boolean {\n\n return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))\n || getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));\n}\n\n/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}*/\n\nexport function setOffsetToParsedOffset(date: Date, input: string, config: DateParsingConfig = {}): Date {\n if (config._tzm != null) {\n return setUTCOffset(date, config._tzm, false, true, config);\n }\n\n if (isString(input)) {\n const tZone = offsetFromString(matchOffset, input);\n if (tZone != null) {\n return setUTCOffset(date, tZone, false, false, config);\n }\n\n return setUTCOffset(date, 0, true, false, config);\n }\n\n return date;\n}\n\nexport function hasAlignedHourOffset(date: Date, input?: Date) {\n const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;\n\n return (getUTCOffset(date) - _input) % 60 === 0;\n}\n\n\n// DEPRECATED\n/*export function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n const c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}*/\n\n// in Khronos\n/*export function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}*/\n","import { addFormatToken } from '../format/format';\nimport { getMinutes } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MINUTE } from './constants';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n\nexport function initMinute() {\n// FORMATTING\n\n addFormatToken('m', ['mm', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getMinutes(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('minute', 'm');\n\n// PRIORITY\n\n addUnitPriority('minute', 14);\n\n// PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n}\n","// tslint:disable:no-bitwise\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { addRegexToken, match1, match1to3, match2, match3, matchUnsigned } from '../parse/regex';\nimport { MILLISECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addParseToken } from '../parse/token';\nimport { DateArray, DateFormatterOptions, WeekParsing } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getMilliseconds } from '../utils/date-getters';\n\n\nexport function initMillisecond() {\n addFormatToken('S', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 100)).toString(10);\n }\n );\n\n addFormatToken(null, ['SS', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 10)).toString(10);\n }\n );\n\n addFormatToken(null, ['SSS', 3, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC)).toString(10);\n }\n );\n addFormatToken(null, ['SSSS', 4, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10).toString(10);\n }\n );\n addFormatToken(null, ['SSSSS', 5, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSS', 6, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSS', 7, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSSS', 8, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSSSS', 9, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000000).toString(10);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n// PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n let token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MILLISECOND] = toInt(parseFloat(`0.${input}`) * 1000);\n\n return config;\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n// MOMENTS\n}\n","import { getHours, getMinutes, getSeconds } from '../utils/date-getters';\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { Locale } from '../locale/locale.class';\nimport { addRegexToken, match1to2, match2, match3to4, match5to6 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { HOUR, MINUTE, SECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\n\n\nexport function initHour() {\n// FORMATTING\n\n function hFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) % 12 || 12;\n }\n\n function kFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) || 24;\n }\n\n addFormatToken('H', ['HH', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getHours(date, opts.isUTC)\n .toString(10);\n }\n );\n addFormatToken('h', ['hh', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return hFormat(date, opts.isUTC)\n .toString(10);\n }\n );\n addFormatToken('k', ['kk', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return kFormat(date, opts.isUTC)\n .toString(10);\n }\n );\n\n addFormatToken('hmm', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_h}${_mm}`;\n }\n );\n\n addFormatToken('hmmss', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_h}${_mm}${_ss}`;\n }\n );\n\n addFormatToken('Hmm', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_H}${_mm}`;\n }\n );\n\n addFormatToken('Hmmss', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_H}${_mm}${_ss}`;\n }\n );\n\n function meridiem(token: string, lowercase: boolean): void {\n addFormatToken(token, null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.meridiem(getHours(date, opts.isUTC), getMinutes(date, opts.isUTC), lowercase);\n }\n );\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n// ALIASES\n\n addUnitAlias('hour', 'h');\n\n// PRIORITY\n addUnitPriority('hour', 13);\n\n\n// PARSING\n\n function matchMeridiem(isStrict: boolean, locale: Locale): RegExp {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(\n ['k', 'kk'],\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n\n return config;\n }\n );\n addParseToken(['a', 'A'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n\n return config;\n });\n addParseToken(['h', 'hh'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('hmm', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('hmmss', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('Hmm', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n\n return config;\n });\n addParseToken('Hmmss', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n\n return config;\n });\n\n}\n","// internal storage for locale config files\nimport { Locale, LocaleData } from './locale.class';\nimport { baseConfig } from './locale.defaults';\nimport { hasOwnProp, isArray, isObject, isString, isUndefined, toInt } from '../utils/type-checks';\nimport { compareArrays } from '../utils/compare-arrays';\n\nimport { initWeek } from '../units/week';\nimport { initWeekYear } from '../units/week-year';\nimport { initYear } from '../units/year';\nimport { initTimezone } from '../units/timezone';\nimport { initTimestamp } from '../units/timestamp';\nimport { initSecond } from '../units/second';\nimport { initQuarter } from '../units/quarter';\nimport { initOffset } from '../units/offset';\nimport { initMinute } from '../units/minute';\nimport { initMillisecond } from '../units/millisecond';\nimport { initMonth } from '../units/month';\nimport { initHour } from '../units/hour';\nimport { initDayOfYear } from '../units/day-of-year';\nimport { initDayOfWeek } from '../units/day-of-week';\nimport { initDayOfMonth } from '../units/day-of-month';\n\nconst locales: { [key: string]: Locale } = {};\nconst localeFamilies: { [key: string]: {name: string; config: LocaleData}[] } = {};\nlet globalLocale: Locale;\n\nfunction normalizeLocale(key: string): string {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least,\n// but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names: string[]): Locale {\n let next;\n let locale;\n let i = 0;\n\n while (i < names.length) {\n const split = normalizeLocale(names[i]).split('-');\n let j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n // the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n\n return null;\n}\n\nexport function mergeConfigs(parentConfig: LocaleData,\n childConfig: LocaleData) {\n const res: LocaleData = Object.assign({}, parentConfig);\n\n for (const childProp in childConfig) {\n if (!hasOwnProp(childConfig, childProp)) {\n continue;\n }\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n } else if (childConfig[childProp] != null) {\n res[childProp] = childConfig[childProp];\n } else {\n delete res[childProp];\n }\n }\n let parentProp;\n for (parentProp in parentConfig) {\n if (\n hasOwnProp(parentConfig, parentProp) &&\n !hasOwnProp(childConfig, parentProp) &&\n isObject(parentConfig[parentProp as keyof LocaleData])\n ) {\n // make sure changes to properties don't modify parent config\n res[parentProp as keyof LocaleData] = Object.assign({}, res[parentProp as keyof LocaleData]);\n }\n }\n\n return res;\n}\n\n\nfunction loadLocale(name: string): Locale {\n // no way!\n /* var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }*/\n if (!locales[name]) {\n // tslint:disable-next-line\n console.error(`Khronos locale error: please load locale \"${name}\" before using it`);\n // throw new Error(`Khronos locale error: please load locale \"${name}\" before using it`);\n }\n\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nexport function getSetGlobalLocale(key?: string | string[], values?: LocaleData): string {\n let data: Locale;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else if (isString(key)) {\n data = defineLocale(key, values);\n }\n\n if (data) {\n globalLocale = data;\n }\n }\n\n return globalLocale && globalLocale._abbr;\n}\n\nexport function defineLocale(name: string, config?: LocaleData): Locale {\n if (config === null) {\n // useful for testing\n delete locales[name];\n globalLocale = getLocale('en');\n\n return null;\n }\n\n if (!config) {\n return;\n }\n\n let parentConfig = baseConfig;\n config.abbr = name;\n if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({ name, config });\n\n return null;\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n}\n\nexport function updateLocale(name: string, config?: LocaleData): Locale {\n let _config = config;\n\n if (_config != null) {\n let parentConfig = baseConfig;\n // MERGE\n const tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n _config = mergeConfigs(parentConfig, _config);\n const locale = new Locale(_config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n}\n\n// returns locale data\nexport function getLocale(key?: string | string[]): Locale {\n setDefaultLocale();\n\n if (!key) {\n return globalLocale;\n }\n // let locale;\n const _key = isArray(key) ? key : [key];\n\n return chooseLocale(_key);\n}\n\nexport function listLocales(): string[] {\n return Object.keys(locales);\n}\n\nfunction setDefaultLocale(): void {\n if (locales[`en`]) {\n\n return undefined;\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal(num: number): string {\n const b = num % 10;\n const output =\n toInt((num % 100) / 10) === 1\n ? 'th'\n : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n\n return num + output;\n }\n });\n\n initWeek();\n initWeekYear();\n initYear();\n initTimezone();\n initTimestamp();\n initSecond();\n initQuarter();\n initOffset();\n initMonth();\n initMinute();\n initMillisecond();\n initHour();\n initDayOfYear();\n initDayOfWeek();\n initDayOfMonth();\n}\n","import { toInt } from '../utils/type-checks';\nimport { createDuration } from './create';\nimport { Duration } from './constructor';\nimport { DateObject } from '../types';\n\nconst ordering: (keyof DateObject)[] = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes', 'seconds', 'milliseconds'];\nconst orderingHash = ordering.reduce((mem: { [key: string]: boolean }, order) => {\n mem[order] = true;\n\n return mem;\n}, {});\n\nexport function isDurationValid(duration: Partial<DateObject>): boolean {\n const durationKeys = Object.keys(duration);\n if (durationKeys\n .some((key: keyof DateObject) => {\n return (key in orderingHash)\n && duration[key] === null\n || isNaN(duration[key]);\n })) {\n return false;\n }\n // for (let key in duration) {\n // if (!(indexOf.call(ordering, key) !== -1 && (duration[key] == null || !isNaN(duration[key])))) {\n // return false;\n // }\n // }\n\n let unitHasDecimal = false;\n for (let i = 0; i < ordering.length; ++i) {\n if (duration[ordering[i]]) {\n // only allow non-integers for smallest unit\n if (unitHasDecimal) {\n return false;\n }\n if (duration[ordering[i]] !== toInt(duration[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\n// export function isValid() {\n// return this._isValid;\n// }\n//\n// export function createInvalid(): Duration {\n// return createDuration(NaN);\n// }\n","export function absCeil (number: number): number {\n return number < 0 ? Math.floor(number) : Math.ceil(number);\n}\n","import { Duration } from './constructor';\nimport { absFloor } from '../utils';\nimport { absCeil } from '../utils/abs-ceil';\n\nexport function bubble(dur: Duration): Duration {\n let milliseconds = dur._milliseconds;\n let days = dur._days;\n let months = dur._months;\n const data = dur._data;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n const seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n const minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n const hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n const monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n const years = absFloor(months / 12);\n months %= 12;\n\n data.day = days;\n data.month = months;\n data.year = years;\n\n return dur;\n}\n\nexport function daysToMonths(day: number): number {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return day * 4800 / 146097;\n}\n\nexport function monthsToDays(month: number): number {\n // the reverse of daysToMonths\n return month * 146097 / 4800;\n}\n","// tslint:disable:cyclomatic-complexity\nimport { createDuration } from './create';\nimport { Locale } from '../locale/locale.class';\nimport { Duration } from './constructor';\n\nlet round = Math.round;\nconst thresholds: { [key: string]: number } = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n};\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(str: 'future' | 'past', num: number,\n withoutSuffix: boolean, isFuture: boolean,\n locale: Locale): string {\n return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture);\n}\n\nexport function relativeTime(posNegDuration: Duration, withoutSuffix: boolean, locale: Locale): string {\n const duration = createDuration(posNegDuration).abs();\n const seconds = round(duration.as('s'));\n const minutes = round(duration.as('m'));\n const hours = round(duration.as('h'));\n const days = round(duration.as('d'));\n const months = round(duration.as('M'));\n const years = round(duration.as('y'));\n\n const a: [string] | [string, number] =\n seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n const b: [string, number | string, boolean, boolean, Locale] =\n [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale];\n // a[2] = withoutSuffix;\n // a[3] = +posNegDuration > 0;\n // a[4] = locale;\n\n return substituteTimeAgo.apply(null, b);\n}\n\n// This function allows you to set the rounding function for relative time strings\nexport function getSetRelativeTimeRounding(roundingFunction: any): boolean | Function {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n\n return true;\n }\n\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nexport function getSetRelativeTimeThreshold(threshold: string, limit: number): boolean | number {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n}\n\n// export function humanize(withSuffix) {\n// if (!this.isValid()) {\n// return this.localeData().invalidDate();\n// }\n//\n// const locale = this.localeData();\n// let output = relativeTime(this, !withSuffix, locale);\n//\n// if (withSuffix) {\n// output = locale.pastFuture(+this, output);\n// }\n//\n// return locale.postformat(output);\n// }\n","import { getLocale } from '../locale/locales';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isDurationValid } from './valid';\nimport { bubble, daysToMonths, monthsToDays } from './bubble';\nimport { DateObject } from '../types';\nimport { Locale } from '../locale/locale.class';\nimport { normalizeUnits } from '../units/aliases';\nimport { relativeTime } from './humanize';\nimport { toInt } from '../utils/type-checks';\n\nexport class Duration {\n _milliseconds: number;\n _days: number;\n _months: number;\n _data: Partial<DateObject> = {};\n _locale: Locale = getLocale();\n _isValid: boolean;\n\n constructor(duration: Partial<DateObject>, config: DateParsingConfig = {}) {\n this._locale = config && config._locale || getLocale();\n // const normalizedInput = normalizeObjectUnits(duration);\n const normalizedInput = duration;\n const years = normalizedInput.year || 0;\n const quarters = normalizedInput.quarter || 0;\n const months = normalizedInput.month || 0;\n const weeks = normalizedInput.week || 0;\n const days = normalizedInput.day || 0;\n const hours = normalizedInput.hours || 0;\n const minutes = normalizedInput.minutes || 0;\n const seconds = normalizedInput.seconds || 0;\n const milliseconds = normalizedInput.milliseconds || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1000 +\n minutes * 60 * 1000 + // 1000 * 60\n hours * 1000 * 60 * 60; // using 1000 * 60 * 60\n // instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n // this._data = {};\n\n // this._locale = getLocale();\n\n // this._bubble();\n return bubble(this);\n }\n\n isValid(): boolean {\n return this._isValid;\n }\n\n humanize(withSuffix?: boolean): string {\n // throw new Error(`TODO: implement`);\n\n if (!this.isValid()) {\n return this.localeData().invalidDate;\n }\n\n const locale = this.localeData();\n let output = relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n localeData(): Locale {\n return this._locale;\n }\n\n locale(): string;\n locale(localeKey: string): Duration;\n locale(localeKey?: string): Duration | string {\n if (!localeKey) {\n return this._locale._abbr;\n }\n\n this._locale = getLocale(localeKey) || this._locale;\n\n return this;\n }\n\n\n abs(): Duration {\n const mathAbs = Math.abs;\n\n const data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.month = mathAbs(data.month);\n data.year = mathAbs(data.year);\n\n return this;\n }\n\n as(_units: string): number {\n if (!this.isValid()) {\n return NaN;\n }\n let days;\n let months;\n const milliseconds = this._milliseconds;\n\n const units = normalizeUnits(_units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n return units === 'month' ? months : months / 12;\n }\n\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' :\n return days / 7 + milliseconds / 6048e5;\n case 'day' :\n return days + milliseconds / 864e5;\n case 'hours' :\n return days * 24 + milliseconds / 36e5;\n case 'minutes' :\n return days * 1440 + milliseconds / 6e4;\n case 'seconds' :\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'milliseconds':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error(`Unknown unit ${units}`);\n }\n }\n\n valueOf () {\n if (!this.isValid()) {\n return NaN;\n }\n\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n}\n\nexport function isDuration(obj: any): obj is Duration {\n return obj instanceof Duration;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { getParsingFlags } from './parsing-flags';\n\nexport function isValid(config: DateParsingConfig): boolean {\n if (config._isValid == null) {\n const flags = getParsingFlags(config);\n const parsedParts = Array.prototype.some.call(flags.parsedDateParts, function (i: number) {\n return i != null;\n });\n let isNowValid = !isNaN(config._d && config._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (config._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(config)) {\n config._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return config._isValid;\n}\n\nexport function createInvalid(config: DateParsingConfig, flags?: { nullInput: boolean }): DateParsingConfig {\n config._d = new Date(NaN);\n Object.assign(getParsingFlags(config), flags || { userInvalidated: true });\n\n return config;\n}\n\nexport function markInvalid(config: DateParsingConfig): DateParsingConfig {\n config._isValid = false;\n\n return config;\n}\n","// tslint:disable-next-line\nimport { defaultLocaleMonthsShort, defaultLocaleWeekdaysShort } from '../locale/locale.class';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from './parsing.types';\nimport { isString } from '../utils/type-checks';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { createUTCDate } from './date-from-array';\nimport { createInvalid, markInvalid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n// tslint:disable-next-line\nconst extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n// tslint:disable-next-line\nconst basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\nconst tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\nconst isoDates: [string, RegExp, boolean][] = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/, true],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/, true],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/, true],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/, true],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/, true],\n ['YYYYMMDD', /\\d{8}/, true],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/, true],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/, true]\n];\n\n// iso time formats and regexes\nconst isoTimes: [string, RegExp][] = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n];\n\nconst aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\nconst obsOffsets: { [key: string]: number } = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n// tslint:disable-next-line\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n// date from iso format\nexport function configFromISO(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const input = config._i;\n const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);\n\n\n let allowTime;\n let dateFormat;\n let timeFormat;\n let tzFormat;\n\n if (!match) {\n config._isValid = false;\n\n return config;\n }\n\n // getParsingFlags(config).iso = true;\n let i;\n let l;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n\n return config;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n\n return configFromStringAndFormat(config);\n}\n\n// tslint:disable-next-line\nfunction extractFromRFC2822Strings(yearStr: string, monthStr: string, dayStr: string, hourStr: string, minuteStr: string, secondStr: string): DateArray {\n const result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr: string): number {\n const year = parseInt(yearStr, 10);\n\n return year <= 49 ? year + 2000 : year;\n}\n\nfunction preprocessRFC2822(str: string): string {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return str\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ').trim();\n}\n\nfunction checkWeekday(weekdayStr: string, parsedInput: DateArray, config: DateParsingConfig): boolean {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);\n const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction calculateOffset(obsOffset: string, militaryOffset: string, numOffset: string) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n const hm = parseInt(numOffset, 10);\n const m = hm % 100;\n const h = (hm - m) / 100;\n\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nexport function configFromRFC2822(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const match = rfc2822.exec(preprocessRFC2822(config._i));\n\n if (!match) {\n return markInvalid(config);\n }\n\n const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return config;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n\n return config;\n}\n\n// date from iso format or fallback\nexport function configFromString(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n\n return config;\n }\n\n // todo: update logic processing\n // isISO -> configFromISO\n // isRFC -> configFromRFC\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n // Final attempt, use Input Fallback\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n}\n\n// hooks.createFromInputFallback = deprecate(\n// 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n// 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n// 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n// 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n// function (config) {\n// config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n// }\n// );\n","// moment.js\n// version : 2.18.1\n// authors : Tim Wood, Iskren Chernev, Moment.js contributors\n// license : MIT\n// momentjs.com\n\nimport './units/index';\nimport { formatFunctions, makeFormatFunction } from './format/format';\nimport { Locale } from './locale/locale.class';\nimport { getLocale } from './locale/locales';\nimport { isDateValid } from './utils/type-checks';\n\nexport function formatDate(date: Date, format: string, locale?: string, isUTC?: boolean, offset = 0): string {\n const _locale = getLocale(locale || 'en');\n if (!_locale) {\n throw new Error(\n `Locale \"${locale}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n const _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');\n\n const output = formatMoment(date, _format, _locale, isUTC, offset);\n\n if (!output) {\n return output;\n }\n\n return _locale.postformat(output);\n}\n\n// format date using native date object\nexport function formatMoment(date: Date, _format: string, locale: Locale, isUTC?: boolean, offset = 0): string {\n if (!isDateValid(date)) {\n return locale.invalidDate;\n }\n\n const format = expandFormat(_format, locale);\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](date, locale, isUTC, offset);\n}\n\nexport function expandFormat(_format: string, locale: Locale): string {\n let format = _format;\n let i = 5;\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n const replaceLongDateFormatTokens = (input: any) => {\n return locale.formatLongDate(input) || input;\n };\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n","// Pick the first defined of two or three arguments.\nexport function defaults<T>(a?: T, b?: T, c?: T): T {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n\n return c;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { DateArray } from '../types';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, YEAR } from '../units/constants';\nimport { daysInYear } from '../units/year';\nimport { getParsingFlags } from './parsing-flags';\nimport { createUTCDate } from './date-from-array';\nimport { createDate } from './date-from-array';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from '../units/week-calendar-utils';\nimport { defaults } from '../utils/defaults';\n\nfunction currentDateArray(config: DateParsingConfig): DateArray {\n const nowValue = new Date();\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nexport function configFromArray(config: DateParsingConfig): DateParsingConfig {\n const input = [];\n let i;\n let date;\n let currentDate;\n let expectedWeekday;\n let yearToUse;\n\n if (config._d) {\n return config;\n }\n\n currentDate = currentDateArray(config);\n\n // compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n // if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n\n return config;\n}\n\nfunction dayOfYearFromWeekInfo(config: DateParsingConfig): DateParsingConfig {\n let w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(new Date(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n const curWeek = weekOfYear(new Date(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n\n return config;\n}\n","import { getParsingFlags } from './parsing-flags';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, WEEK, WEEKDAY, YEAR } from '../units/constants';\nimport { daysInMonth } from '../units/month';\nimport { DateParsingConfig } from './parsing.types';\n\nexport function checkOverflow(config: DateParsingConfig): DateParsingConfig {\n let overflow;\n const a = config._a;\n\n if (a && getParsingFlags(config).overflow === -2) {\n // todo: fix this sh*t\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(config)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(config)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(config)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(config).overflow = overflow;\n }\n\n return config;\n}\n\n","import { DateParsingConfig } from './parsing.types';\nimport { configFromISO, configFromRFC2822 } from './from-string';\nimport { expandFormat } from '../format';\nimport { formattingTokens, formatTokenFunctions } from '../format/format';\nimport { isArray, isString } from '../utils/type-checks';\nimport { getParseRegexForToken } from '../parse/regex';\nimport { addTimeToArrayFromToken } from '../parse/token';\nimport { HOUR } from '../units/constants';\nimport { configFromArray } from './from-array';\nimport { getParsingFlags } from './parsing-flags';\nimport { checkOverflow } from './check-overflow';\nimport { Locale } from '../locale/locale.class';\n\n// constant that refers to the ISO standard\n// hooks.ISO_8601 = function () {};\nexport const ISO_8601 = 'ISO_8601';\n\n// constant that refers to the RFC 2822 form\n// hooks.RFC_2822 = function () {};\nexport const RFC_2822 = 'RFC_2822';\n\n// date from string and format string\nexport function configFromStringAndFormat(config: DateParsingConfig): DateParsingConfig {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === ISO_8601) {\n return configFromISO(config);\n }\n if (config._f === RFC_2822) {\n return configFromRFC2822(config);\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n if (isArray(config._f) || (!config._i && config._i !== 0)) {\n return config;\n }\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n let input = config._i.toString();\n let totalParsedInputLength = 0;\n const inputLength = input.length;\n const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n let i;\n let token;\n let parsedInput;\n let skipped;\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];\n if (parsedInput) {\n skipped = input.substr(0, input.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n input = input.slice(input.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;\n if (input.length > 0) {\n getParsingFlags(config).unusedInput.push(input);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = void 0;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n\n return checkOverflow(config);\n}\n\n\nfunction meridiemFixWrap(locale: Locale, _hour: number, meridiem: string): number {\n let hour = _hour;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n }\n\n if (locale.isPM == null) {\n // this is not supposed to happen\n return hour;\n }\n // Fallback\n const isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { createInvalid, isValid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\nimport { configFromStringAndFormat } from './from-string-and-format';\n\n// date from string and array of format strings\nexport function configFromStringAndArray(config: DateParsingConfig): DateParsingConfig {\n let tempConfig;\n let bestMoment;\n let scoreToBeat;\n let currentScore;\n\n if (!config._f || config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n\n return createInvalid(config);\n }\n\n let i;\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = Object.assign({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n // or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n return Object.assign(config, bestMoment || tempConfig);\n}\n","import { normalizeObjectUnits } from '../units/aliases';\nimport { configFromArray } from './from-array';\nimport { DateParsingConfig } from './parsing.types';\nimport { isObject, isString } from '../utils/type-checks';\n\nexport function configFromObject(config: DateParsingConfig): DateParsingConfig {\n if (config._d) {\n return config;\n }\n\n const input = config._i;\n if (isObject(input)) {\n const i = normalizeObjectUnits(input as any);\n config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]\n // todo: obsolete -> remove it\n .map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n }\n\n return configFromArray(config);\n}\n","// tslint:disable:max-line-length\nimport { isArray, isDate, isNumber, isObject, isObjectEmpty, isString, isUndefined } from '../utils/type-checks';\nimport { DateParsingConfig } from './parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { createInvalid, isValid } from './valid';\nimport { configFromStringAndArray } from './from-string-and-array';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { cloneDate } from './clone';\nimport { configFromString } from './from-string';\nimport { configFromArray } from './from-array';\nimport { configFromObject } from './from-object';\nimport { checkOverflow } from './check-overflow';\nimport { DateInput } from '../test/chain';\n\nfunction createFromConfig(config: DateParsingConfig): DateParsingConfig {\n const res = checkOverflow(prepareConfig(config));\n // todo: remove, in moment.js it's never called cuz of moment constructor\n res._d = new Date(res._d != null ? res._d.getTime() : NaN);\n if (!isValid(Object.assign({}, res, {_isValid: null}))) {\n res._d = new Date(NaN);\n }\n // todo: update offset\n /*if (res._nextDay) {\n // Adding is smart enough around DST\n res._d = add(res._d, 1, 'day');\n res._nextDay = undefined;\n }*/\n\n return res;\n}\n\nexport function prepareConfig(config: DateParsingConfig): DateParsingConfig {\n let input = config._i;\n const format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid(config, { nullInput: true });\n }\n\n if (isString(input)) {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isDate(input)) {\n config._d = cloneDate(input);\n\n return config;\n }\n\n // todo: add check for recursion\n\n if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config: DateParsingConfig): DateParsingConfig {\n const input = config._i;\n if (isUndefined(input)) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = cloneDate(input);\n } else if (isString(input)) {\n configFromString(config);\n } else if (isArray<string | number>(input) && input.length) {\n const _arr: (string | number)[] = input.slice(0);\n config._a = _arr.map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n }\n\n return config;\n}\n\nexport function createLocalOrUTC(input: DateInput, format?: string | string[], localeKey?: string, strict?: boolean, isUTC?: boolean): DateParsingConfig {\n const config: DateParsingConfig = {};\n let _input = input;\n\n // params switch -> skip; test it well\n // if (localeKey === true || localeKey === false) {\n // strict = localeKey;\n // localeKey = undefined;\n // }\n\n // todo: fail fast and return not valid date\n if ((isObject(_input) && isObjectEmpty(_input)) || (isArray(_input) && _input.length === 0)) {\n _input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n // config._isAMomentObject = true;\n config._useUTC = config._isUTC = isUTC;\n config._l = localeKey;\n config._i = _input;\n config._f = format;\n config._strict = strict;\n\n return createFromConfig(config);\n}\n","import { createLocalOrUTC } from './from-anything';\nimport { DateArray, DateObject } from '../types';\nimport { DateInput } from '../test/chain';\nimport { isDate } from '../utils/type-checks';\n\nexport function parseDate(input: DateInput, format?: string | string[],\n localeKey?: string, strict?: boolean, isUTC?: boolean): Date {\n if (isDate(input)) {\n return input;\n }\n\n const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);\n\n return config._d;\n}\n","export function absRound(num: number): number {\n return num < 0 ? Math.round(num * -1) * -1 : Math.round(num);\n}\n","import { UnitOfTime } from '../types';\nimport { endOf, startOf } from './start-end-of';\n\nexport function isAfter(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() > date2.valueOf();\n }\n\n return date2.valueOf() < startOf(date1, units).valueOf();\n}\n\nexport function isBefore(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() < date2.valueOf();\n }\n\n return endOf(date1, units).valueOf() < date2.valueOf();\n}\n\nexport function isBetween(\n date: Date,\n from: Date,\n to: Date,\n units: UnitOfTime,\n inclusivity = '()'\n): boolean {\n const leftBound =\n inclusivity[0] === '('\n ? isAfter(date, from, units)\n : !isBefore(date, from, units);\n const rightBound =\n inclusivity[1] === ')'\n ? isBefore(date, to, units)\n : !isAfter(date, to, units);\n\n return leftBound && rightBound;\n}\n\nexport function isSame(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() === date2.valueOf();\n }\n\n const inputMs = date2.valueOf();\n\n return (\n startOf(date1, units).valueOf() <= inputMs &&\n inputMs <= endOf(date1, units).valueOf()\n );\n}\n\nexport function isSameOrAfter(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isAfter(date1, date2, units);\n}\n\nexport function isSameOrBefore(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isBefore(date1, date2, units);\n}\n","// ASP.NET json date format regex\nimport { Duration, isDuration } from './constructor';\nimport { isDateValid, isNumber, isObject, isString, toInt } from '../utils/type-checks';\nimport { DATE, HOUR, MILLISECOND, MINUTE, SECOND } from '../units/constants';\nimport { parseDate } from '../create/local';\nimport { absRound } from '../utils/abs-round';\nimport { DateObject } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { cloneWithOffset } from '../units/offset';\nimport { isAfter, isBefore } from '../utils/date-compare';\nimport { getFullYear, getMonth } from '../utils/date-getters';\nimport { add } from '../moment/add-subtract';\nimport { cloneDate } from '../create/clone';\n\nconst aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\n// tslint:disable-next-line\nconst isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nexport type DurationInput = string | number | Duration | Partial<DateObject> | { from: Date; to: Date };\n\nexport function createDuration(input?: DurationInput, key?: string, config: DateParsingConfig = {}) {\n const duration = convertDuration(input, key);\n // matching against regexp is expensive, do it on demand\n\n return new Duration(duration, config);\n}\n\nfunction convertDuration(input: any, key: string): Partial<DateObject> {\n // checks for null or undefined\n if (input == null) {\n return {};\n }\n\n if (isDuration(input)) {\n return {\n milliseconds: input._milliseconds,\n day: input._days,\n month: input._months\n };\n }\n if (isNumber(input)) {\n // duration = {};\n return key ? { [key]: input } : { milliseconds: input };\n }\n\n if (isString(input)) {\n let match = aspNetRegex.exec(input);\n\n if (match) {\n const sign = (match[1] === '-') ? -1 : 1;\n\n return {\n year: 0,\n day: toInt(match[DATE]) * sign,\n hours: toInt(match[HOUR]) * sign,\n minutes: toInt(match[MINUTE]) * sign,\n seconds: toInt(match[SECOND]) * sign,\n // the millisecond decimal point is included in the match\n milliseconds: toInt(absRound(toInt(match[MILLISECOND]) * 1000)) * sign\n };\n }\n\n match = isoRegex.exec(input);\n if (match) {\n const sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n\n return {\n year: parseIso(match[2], sign),\n month: parseIso(match[3], sign),\n week: parseIso(match[4], sign),\n day: parseIso(match[5], sign),\n hours: parseIso(match[6], sign),\n minutes: parseIso(match[7], sign),\n seconds: parseIso(match[8], sign)\n };\n }\n\n }\n\n if (isObject<{from: any; to: any}>(input) && ('from' in input || 'to' in input)) {\n const diffRes = momentsDifference(parseDate(input.from), parseDate(input.to));\n\n return {\n milliseconds: diffRes.milliseconds,\n month: diffRes.months\n };\n }\n\n return input;\n}\n\n// createDuration.fn = Duration.prototype;\n// createDuration.invalid = invalid;\n\nfunction parseIso(inp: string, sign: number): number {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n const res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n const res = { milliseconds: 0, months: 0 };\n\n res.months = getMonth(other) - getMonth(base) +\n (getFullYear(other) - getFullYear(base)) * 12;\n const _basePlus = add(cloneDate(base), res.months, 'month');\n if (isAfter(_basePlus, other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(add(cloneDate(base), res.months, 'month'));\n\n return res;\n}\n\nfunction momentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n if (!(isDateValid(base) && isDateValid(other))) {\n return { milliseconds: 0, months: 0 };\n }\n\n let res;\n const _other = cloneWithOffset(other, base, {_offset: base.getTimezoneOffset()});\n if (isBefore(base, _other)) {\n res = positiveMomentsDifference(base, _other);\n } else {\n res = positiveMomentsDifference(_other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n","import { createDuration } from '../duration/create';\nimport { absRound } from '../utils/abs-round';\nimport { Duration } from '../duration/constructor';\nimport { getDate, getMonth, getTime } from '../utils/date-getters';\nimport { setDate, setMonth, setTime } from '../utils/date-setters';\nimport { cloneDate } from '../create/clone';\nimport { UnitOfTime } from '../types';\n\nexport function add(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, 1, isUTC);\n}\n\nexport function subtract(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, -1, isUTC);\n}\n\nexport function addSubtract(date: Date, duration: Duration, isAdding: number, isUTC?: boolean): Date {\n const milliseconds = duration._milliseconds;\n const days = absRound(duration._days);\n const months = absRound(duration._months);\n\n // todo: add timezones support\n // const _updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(date, getMonth(date, isUTC) + months * isAdding, isUTC);\n }\n if (days) {\n setDate(date, getDate(date, isUTC) + days * isAdding, isUTC);\n }\n if (milliseconds) {\n setTime(date, getTime(date) + milliseconds * isAdding);\n }\n\n return cloneDate(date);\n // todo: add timezones support\n // if (_updateOffset) {\n // hooks.updateOffset(date, days || months);\n // }\n}\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { getDay } from '../utils/date-getters';\nimport { addRegexToken, match1to2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { add } from '../moment/add-subtract';\nimport { getLocale } from '../locale/locales';\n\n\nexport function initDayOfWeek() {\n// FORMATTING\n\n addFormatToken('d', null, 'do',\n function(date: Date, opts: DateFormatterOptions): string {\n return getDay(date, opts.isUTC)\n .toString(10);\n }\n );\n\n addFormatToken('dd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysMin(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('ddd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysShort(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('dddd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdays(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('e', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getLocaleDayOfWeek(date, opts.locale, opts.isUTC)\n .toString(10);\n // return getDay(date, opts.isUTC).toString(10);\n }\n );\n addFormatToken('E', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getISODayOfWeek(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n// PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n\n addRegexToken('dd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysMinRegex(isStrict);\n });\n\n addRegexToken('ddd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(\n ['dd', 'ddd', 'dddd'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token) {\n const weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = !!input;\n }\n\n return config;\n }\n );\n\n addWeekParseToken(\n ['d', 'e', 'E'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token] = toInt(input);\n\n return config;\n }\n );\n}\n\n// HELPERS\n\nexport function parseWeekday(input: string | number, locale: Locale): number {\n if (!isString(input)) {\n return input;\n }\n\n const _num = parseInt(input, 10);\n if (!isNaN(_num)) {\n return _num;\n }\n\n const _weekDay = locale.weekdaysParse(input);\n if (isNumber(_weekDay)) {\n return _weekDay;\n }\n\n return null;\n}\n\nexport function parseIsoWeekday(input: string | number, locale: Locale = getLocale()): number {\n if (isString(input)) {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNumber(input) && isNaN(input) ? null : input;\n}\n\n// MOMENTS\n\nexport function getSetDayOfWeek(date: Date, input: number, opts: { isUTC?: boolean; locale: Locale }): Date | number {\n if (!input) {\n return getDayOfWeek(date, opts.isUTC);\n }\n\n return setDayOfWeek(date, input, opts.locale, opts.isUTC);\n}\n\nexport function setDayOfWeek(date: Date, input: number, locale = getLocale(), isUTC?: boolean): Date {\n const day = getDay(date, isUTC);\n const _input = parseWeekday(input, locale);\n\n return add(date, _input - day, 'day');\n}\n\nexport function getDayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC);\n}\n\n/********************************************/\n\n// todo: utc\n// getSetLocaleDayOfWeek\nexport function getLocaleDayOfWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return (getDay(date, isUTC) + 7 - locale.firstDayOfWeek()) % 7;\n}\n\nexport function setLocaleDayOfWeek(date: Date, input: number, opts: { locale?: Locale; isUTC?: boolean } = {}): Date {\n const weekday = getLocaleDayOfWeek(date, opts.locale, opts.isUTC);\n\n return add(date, input - weekday, 'day');\n}\n\n\n// getSetISODayOfWeek\nexport function getISODayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC) || 7;\n}\n\nexport function setISODayOfWeek(date: Date, input: number | string, opts: { locale?: Locale } = {}): Date {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n const weekday = parseIsoWeekday(input, opts.locale);\n\n return setDayOfWeek(date, getDayOfWeek(date) % 7 ? weekday : weekday - 7);\n}\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\nimport { LocaleData } from '../locale/locale.class';\n\nconst symbolMap: {[key: string]: string} = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n};\nconst numberMap: {[key: string]: string} = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n};\nconst pluralForm = function (num: number): number {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nconst plurals: {[key: string]: [string, string, [string, string], string, string, string]} = {\n s: ['Ø£ÙÙ Ù
٠ثاÙÙØ©', 'ثاÙÙØ© ÙØ§ØØ¯Ø©', ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], '%d Ø«ÙØ§Ù', '%d ثاÙÙØ©', '%d ثاÙÙØ©'],\n m: ['Ø£ÙÙ Ù
٠دÙÙÙØ©', 'دÙÙÙØ© ÙØ§ØØ¯Ø©', ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], '%d Ø¯ÙØ§Ø¦Ù', '%d دÙÙÙØ©', '%d دÙÙÙØ©'],\n h: ['Ø£ÙÙ Ù
٠ساعة', 'ساعة ÙØ§ØØ¯Ø©', ['ساعتاÙ', 'ساعتÙÙ'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['Ø£ÙÙ Ù
Ù ÙÙÙ
', 'ÙÙÙ
ÙØ§ØØ¯', ['ÙÙÙ
اÙ', 'ÙÙÙ
ÙÙ'], '%d Ø£ÙØ§Ù
', '%d ÙÙÙ
ÙØ§', '%d ÙÙÙ
'],\n M: ['Ø£ÙÙ Ù
Ù Ø´ÙØ±', 'Ø´ÙØ± ÙØ§ØØ¯', ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], '%d Ø£Ø´ÙØ±', '%d Ø´ÙØ±Ø§', '%d Ø´ÙØ±'],\n y: ['Ø£ÙÙ Ù
٠عاÙ
', 'عاÙ
ÙØ§ØØ¯', ['عاÙ
اÙ', 'عاÙ
ÙÙ'], '%d Ø£Ø¹ÙØ§Ù
', '%d عاÙ
ÙØ§', '%d عاÙ
']\n};\nconst pluralize = function (u: string) {\n return function (num: number, withoutSuffix: boolean): string {\n const f = pluralForm(num);\n let str = plurals[u][pluralForm(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return (str as string).replace(/%d/i, num.toString());\n };\n};\nconst months: string[] = [\n 'ÙÙØ§Ùر',\n 'ÙØ¨Ø±Ø§Ùر',\n 'Ù
ارس',\n 'أبرÙÙ',\n 'Ù
اÙÙ',\n 'ÙÙÙÙÙ',\n 'ÙÙÙÙÙ',\n 'أغسطس',\n 'سبتÙ
بر',\n 'Ø£ÙØªÙبر',\n 'ÙÙÙÙ
بر',\n 'Ø¯ÙØ³Ù
بر'\n];\n\nexport const arLocale: LocaleData = {\n abbr: 'ar',\n months,\n monthsShort: months,\n weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù
ÙØ³_Ø§ÙØ¬Ù
عة_Ø§ÙØ³Ø¨Øª'.split('_'),\n weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù
ÙØ³_جÙ
عة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù
/,\n isPM(input) {\n return 'Ù
' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù
';\n }\n },\n calendar: {\n sameDay: '[اÙÙÙÙ
Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n lastDay: '[Ø£Ù
س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'Ù
ÙØ° %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse(str: string): string {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/Ø/g, ',');\n },\n postformat(str: string) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'Ø');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { Khronos } from '../test/chain';\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Iskren Ivov Chernev : https://github.com/ichernev\n//! author : Kunal Marwaha : https://github.com/marwahaha\n//! author : Matt Grande : https://github.com/mattgrande\n//! author : Isaac Cambron : https://github.com/icambron\n//! author : Venelin Manchev : https://github.com/vmanchev\n\nexport const bgLocale: LocaleData = {\n abbr: 'bg',\n months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split('_'),\n monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split('_'),\n weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'),\n weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[ÐÐ½ÐµÑ Ð²] LT',\n nextDay: '[УÑÑе в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[ÐÑеÑа в] LT',\n lastWeek: function (d: any) {\n\n switch (d) {\n case 0:\n case 3:\n case 6:\n return '[РизминалаÑа] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[РизминалиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'пÑеди %s',\n s: 'нÑколко ÑекÑнди',\n ss: '%d ÑекÑнди',\n m: 'минÑÑа',\n mm: '%d минÑÑи',\n h: 'ÑаÑ',\n hh: '%d ÑаÑа',\n d: 'ден',\n dd: '%d дни',\n M: 'меÑеÑ',\n MM: '%d меÑеÑа',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/,\n ordinal: function (_num: number): string {\n\n const number = Number(_num);\n\n let lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-Ñи';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-Ñи';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-Ñи';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\nconst months: string[] = 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.split('_');\nconst monthsShort: string[] = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_');\n\nfunction plural(num: number): boolean {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const result = num + ' ';\n\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n // break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n // break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n // break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n // break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mÄsÃc' : 'mÄsÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'mÄsÃce' : 'mÄsÃců');\n } else {\n return result + 'mÄsÃci';\n }\n // break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n // break;\n }\n}\n\nexport const csLocale: LocaleData = {\n abbr: 'cs',\n months,\n monthsShort,\n monthsParse: (function (months, monthsShort) {\n let i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (Äervenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months, monthsShort)),\n shortMonthsParse: (function (monthsShort) {\n let i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse: (function (months) {\n let i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months)),\n weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedÄli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅedu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulou nedÄli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅedu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Danish (Denmark) [da]\n//! author : Per Hansen : https://github.com/perhp\n\nexport const daLocale: LocaleData = {\n abbr: 'da',\n months : 'Januar_Februar_Marts_April_Maj_Juni_Juli_August_September_Oktober_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Maj_Jun_Jul_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays : 'Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag'.split('_'),\n weekdaysShort : 'Søn_Man_Tir_Ons_Tor_Fre_Lør'.split('_'),\n weekdaysMin : 'Sø_Ma_Ti_On_To_Fr_Lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'pÃ¥ dddd [kl.] LT',\n lastDay : '[i gÃ¥r kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'fÃ¥ sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'et Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\nfunction processRelativeTime(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const format: { [key: string]: [string, string] } = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [num + ' Tage', num + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [num + ' Monate', num + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [num + ' Jahre', num + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n}\n\nexport const deLocale: LocaleData = {\n abbr: 'de',\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\nexport const enGbLocale: LocaleData = {\n abbr: 'en-gb',\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n const b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return num + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esDoLocale: LocaleData = {\n abbr: 'es-do',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esLocale: LocaleData = {\n abbr: 'es',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nexport const esUsLocale: LocaleData = {\n abbr: 'es-us',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM [de] D [de] YYYY',\n LLL: 'MMMM [de] D [de] YYYY h:mm A',\n LLLL: 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n// https://github.com/moment/moment/blob/develop/locale/fi.js\n\nvar numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(num, isFuture) + ' ' + result;\n return result;\n}\n\nfunction verbalNumber(num: number, isFuture: boolean) {\n return num < 10 ? (isFuture ? numbersFuture[num] : numbersPast[num]) : num;\n}\n\nexport const fiLocale: LocaleData = {\n abbr: 'fi',\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\nexport const frLocale: LocaleData = {\n abbr: 'fr',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourdâhui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return num + (num === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : DarÃo Beiró : https://github.com/quinobravo\n\nlet monthsShortDot = 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsShort = 'xan_feb_mar_abr_mai_xuñ_xul_ago_set_out_nov_dec'.split('_');\n\nlet monthsParse = [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xuñ/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro|xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i;\n\nexport const glLocale: LocaleData = {\n abbr: 'gl',\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n monthsShortStrictRegex: /^(xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoxe á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañan á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[onte á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[o] dddd [pasado á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\nexport const heLocale: LocaleData = {\n abbr: 'he',\n months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split('_'),\n monthsShort: '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split('_'),\n weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'),\n weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'),\n weekdaysMin: '×_×_×_×_×_×_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [×]MMMM YYYY',\n LLL: 'D [×]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [×]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[×××× ×Ö¾]LT',\n nextDay: '[××ר ×Ö¾]LT',\n nextWeek: 'dddd [×שע×] LT',\n lastDay: '[×ת××× ×Ö¾]LT',\n lastWeek: '[××××] dddd [×××ר×× ×שע×] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '××¢×× %s',\n past: '××¤× × %s',\n s: '×ספר ×©× ××ת',\n ss: '%d ×©× ××ת',\n m: '××§×',\n mm: '%d ××§×ת',\n h: 'שע×',\n hh(num: number): string {\n if (num === 2) {\n return 'שעת×××';\n }\n return num + ' שע×ת';\n },\n d: '×××',\n dd(num: number): string {\n if (num === 2) {\n return '××××××';\n }\n return num + ' ××××';\n },\n M: '×××ש',\n MM(num: number): string {\n if (num === 2) {\n return '×××ש×××';\n }\n return num + ' ×××ש××';\n },\n y: '×©× ×',\n yy(num: number): string {\n if (num === 2) {\n return '×©× ×ª×××';\n } else if (num % 10 === 0 && num !== 10) {\n return num + ' ×©× ×';\n }\n return num + ' ×©× ××';\n }\n },\n meridiemParse: /×××\"צ|××¤× ×\"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i,\n isPM(input) {\n return /^(×××\"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return '××¤× ×ת ××קר';\n } else if (hour < 10) {\n return '×××קר';\n } else if (hour < 12) {\n return isLower ? '××¤× ×\"צ' : '××¤× × ×צ×ר×××';\n } else if (hour < 18) {\n return isLower ? '×××\"צ' : '×××¨× ×צ×ר×××';\n } else {\n return '×ער×';\n }\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\nlet symbolMap: {[key: string]: string} = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap: {[key: string]: string} = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\nexport const hiLocale: LocaleData = {\n abbr: 'hi',\n months: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_à¤
पà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_à¤
à¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_à¤
à¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n monthsShort: 'à¤à¤¨._फ़र._मारà¥à¤_à¤
पà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._à¤
à¤._सित._à¤
à¤à¥à¤à¥._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बà¤à¥',\n LTS: 'A h:mm:ss बà¤à¥',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बà¤à¥',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥'\n },\n calendar: {\n sameDay: '[à¤à¤] LT',\n nextDay: '[à¤à¤²] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[à¤à¤²] LT',\n lastWeek: '[पिà¤à¤²à¥] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s मà¥à¤',\n past: '%s पहलà¥',\n s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£',\n ss: '%d सà¥à¤à¤à¤¡',\n m: 'à¤à¤ मिनà¤',\n mm: '%d मिनà¤',\n h: 'à¤à¤ à¤à¤à¤à¤¾',\n hh: '%d à¤à¤à¤à¥',\n d: 'à¤à¤ दिन',\n dd: '%d दिन',\n M: 'à¤à¤ महà¥à¤¨à¥',\n MM: '%d महà¥à¤¨à¥',\n y: 'à¤à¤ वरà¥à¤·',\n yy: '%d वरà¥à¤·'\n },\n preparse(str: string): string {\n return str.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat(str: string): string {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¹à¤°';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\nlet weekEndings = 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + ((isFuture || withoutSuffix) ? ' másodperc' : ' másodperce');\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n}\nfunction week(date: Date, isFuture: boolean) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[getDayOfWeek(date)] + '] LT[-kor]';\n}\n\nexport const huLocale: LocaleData = {\n abbr: 'hu',\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek (date: Date) {\n return week(date, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek (date: Date) {\n return week(date, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Indonesia [id]\n//! author : Romy Kusuma : https://github.com/rkusuma\n//! reference: https://github.com/moment/moment/blob/develop/locale/id.js\n\nexport const idLocale: LocaleData = {\n abbr: 'id',\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n\nexport const itLocale: LocaleData = {\n abbr: 'it',\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future(num: number): string {\n return ((/^[0-9].+$/).test(num.toString(10)) ? 'tra' : 'in') + ' ' + num;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\nexport const jaLocale: LocaleData = {\n abbr: 'ja',\n months : '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n monthsShort : '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n weekdays : 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'),\n weekdaysShort : 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'),\n weekdaysMin : 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´MæDæ¥',\n LLL : 'YYYYå¹´MæDæ¥ HH:mm',\n LLLL : 'YYYYå¹´MæDæ¥ HH:mm dddd',\n l : 'YYYY/MM/DD',\n ll : 'YYYYå¹´MæDæ¥',\n lll : 'YYYYå¹´MæDæ¥ HH:mm',\n llll : 'YYYYå¹´MæDæ¥ HH:mm dddd'\n },\n meridiemParse: /åå|åå¾/i,\n isPM (input) {\n return input === 'åå¾';\n },\n meridiem (hour, minute, isLower) {\n if (hour < 12) {\n return 'åå';\n } else {\n return 'åå¾';\n }\n },\n calendar : {\n sameDay : '[仿¥] LT',\n nextDay : '[ææ¥] LT',\n nextWeek : '[æ¥é±]dddd LT',\n lastDay : '[æ¨æ¥] LT',\n lastWeek : '[åé±]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}æ¥/,\n ordinal (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'æ¥';\n default:\n return num.toString(10);\n }\n },\n relativeTime : {\n future : '%så¾',\n past : '%så',\n s : 'æ°ç§',\n ss : '%dç§',\n m : '1å',\n mm : '%då',\n h : '1æé',\n hh : '%dæé',\n d : '1æ¥',\n dd : '%dæ¥',\n M : '1ã¶æ',\n MM : '%dã¶æ',\n y : '1å¹´',\n yy : '%då¹´'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\nexport const koLocale: LocaleData = {\n abbr: 'ko',\n months : '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'),\n monthsShort : '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'),\n weekdays : 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'),\n weekdaysShort : 'ì¼_ì_í_ì_목_ê¸_í '.split('_'),\n weekdaysMin : 'ì¼_ì_í_ì_목_ê¸_í '.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD',\n LL : 'YYYYë
MMMM Dì¼',\n LLL : 'YYYYë
MMMM Dì¼ A h:mm',\n LLLL : 'YYYYë
MMMM Dì¼ dddd A h:mm',\n l : 'YYYY.MM.DD',\n ll : 'YYYYë
MMMM Dì¼',\n lll : 'YYYYë
MMMM Dì¼ A h:mm',\n llll : 'YYYYë
MMMM Dì¼ dddd A h:mm'\n },\n calendar : {\n sameDay : 'ì¤ë LT',\n nextDay : 'ë´ì¼ LT',\n nextWeek : 'dddd LT',\n lastDay : 'ì´ì LT',\n lastWeek : 'ì§ë주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s í',\n past : '%s ì ',\n s : 'ëª ì´',\n ss : '%dì´',\n m : '1ë¶',\n mm : '%dë¶',\n h : 'í ìê°',\n hh : '%dìê°',\n d : 'í루',\n dd : '%dì¼',\n M : 'í ë¬',\n MM : '%dë¬',\n y : 'ì¼ ë
',\n yy : '%dë
'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(ì¼|ì|주)/,\n ordinal : function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'ì¼';\n case 'M':\n return num + 'ì';\n case 'w':\n case 'W':\n return num + '주';\n default:\n return num.toString(10);\n }\n },\n meridiemParse : /ì¤ì |ì¤í/,\n isPM : function (token) {\n return token === 'ì¤í';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? 'ì¤ì ' : 'ì¤í';\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Stanislavas Guk : https://github.com/ixoster\n\nconst units = {\n ss : 'sekundÄ_sekundžių_sekundes',\n m : 'minutÄ_minutÄs_minutÄ',\n mm: 'minutÄs_minuÄių_minutes',\n h : 'valanda_valandos_valandÄ
',\n hh: 'valandos_valandų_valandas',\n d : 'diena_dienos_dienÄ
',\n dd: 'dienos_dienų_dienas',\n M : 'mÄnuo_mÄnesio_mÄnesį',\n MM: 'mÄnesiai_mÄnesių_mÄnesius',\n y : 'metai_metų_metus',\n yy: 'metai_metų_metus'\n};\nfunction translateSeconds(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n if (withoutSuffix) {\n return 'kelios sekundÄs';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n}\nfunction translateSingular(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n}\nfunction special(num: number) {\n return num % 10 === 0 || (num > 10 && num < 20);\n}\nfunction forms(key: string) {\n return units[key].split('_');\n}\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n let result = num + ' ';\n if (num === 1) {\n return result + translateSingular(num, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(num) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(num) ? forms(key)[1] : forms(key)[2]);\n }\n }\n}\n\nexport const ltLocale: LocaleData = {\n abbr: 'lt',\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Å iandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[PraÄjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieÅ¡ %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal(num) {\n return num + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ
ÑдÑ
Ñн ÑекÑнд' : 'Ñ
ÑдÑ
Ñн ÑекÑндÑн';\n case 'ss':\n return num + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн');\n case 'm':\n case 'mm':\n return num + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн');\n case 'h':\n case 'hh':\n return num + (withoutSuffix ? ' Ñаг' : ' Ñагийн');\n case 'd':\n case 'dd':\n return num + (withoutSuffix ? ' өдөÑ' : ' өдÑийн');\n case 'M':\n case 'MM':\n return num + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн');\n case 'y':\n case 'yy':\n return num + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return num.toString(10);\n }\n}\n\nexport const mnLocale: LocaleData = {\n abbr: 'mn',\n months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ
оÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split('_'),\n monthsShort: '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split('_'),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ
агва_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ
а_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ
_ÐÒ¯_Ðа_ÐÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D',\n LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm',\n LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[ӨнөөдөÑ] LT',\n nextDay: '[ÐаÑгааÑ] LT',\n nextWeek: '[ÐÑÑÑ
] dddd LT',\n lastDay: '[Ó¨ÑигдөÑ] LT',\n lastWeek: '[ӨнгөÑÑөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s даÑаа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөÑ/,\n ordinal: function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + ' өдөÑ';\n default:\n return num.toString(10);\n }\n }\n};\n","// tslint:disable:comment-format\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n\nexport const nbLocale: LocaleData = {\n abbr: 'nb',\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');\nlet monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlBeLocale: LocaleData = {\n abbr: 'nl-be',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlLocale: LocaleData = {\n abbr: 'nl',\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort (date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal (_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\nlet monthsNominative = 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split('_');\nlet monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split('_');\n\nfunction plural(num: number): boolean {\n return (num % 10 < 5) && (num % 10 > 1) && ((~~(num / 10) % 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string): string {\n let result = num + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(num) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ';\n case 'mm':\n return result + (plural(num) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ';\n case 'hh':\n return result + (plural(num) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(num) ? 'miesiÄ
ce' : 'miesiÄcy');\n case 'yy':\n return result + (plural(num) ? 'lata' : 'lat');\n }\n}\n\nexport const plLocale: LocaleData = {\n abbr: 'pl',\n months(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[getMonth(date, isUTC)] + '|' + monthsNominative[getMonth(date, isUTC)] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[getMonth(date, isUTC)];\n } else {\n return monthsNominative[getMonth(date, isUTC)];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ
tek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DziÅ o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W niedzielÄ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W ÅrodÄ o] LT';\n\n case 6:\n return '[W sobotÄ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W zeszÅÄ
niedzielÄ o] LT';\n case 3:\n return '[W zeszÅÄ
ÅrodÄ o] LT';\n case 6:\n return '[W zeszÅÄ
sobotÄ o] LT';\n default:\n return '[W zeszÅy] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ',\n dd: '%d dni',\n M: 'miesiÄ
c',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\nexport const ptBrLocale: LocaleData = {\n abbr: 'pt-br',\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek(date: Date) {\n return (getDayOfWeek(date) === 0 || getDayOfWeek(date) === 6) ?\n '[Ãltimo] dddd [à s] LT' : // Saturday + Sunday\n '[Ãltima] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: '%s atrás',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\nimport { LocaleData } from '../locale/locale.class';\n\n// ! moment.js locale configuration\n// ! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n// ! author : Earle white: https://github.com/5earle\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key:string]: string} = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani'\n };\n\n let separator = ' ';\n if (num % 100 >= 20 || (num >= 100 && num % 100 === 0)) {\n separator = ' de ';\n }\n return num + separator + format[key];\n}\n\n\nexport const roLocale: LocaleData = {\n abbr: 'ro',\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmÄ',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o orÄ',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lunÄ',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getWeek } from '../units/week';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair\n\nfunction plural(word: string, num: number): string {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n}\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key: string]: string} = {\n ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд',\n mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ',\n hh: 'ÑаÑ_ÑаÑа_ÑаÑов',\n dd: 'денÑ_днÑ_дней',\n MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев',\n yy: 'год_года_леÑ'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ';\n }\n return num + ' ' + plural(format[key], +num);\n}\n\nlet monthsParse = [/^Ñнв/i, /^Ñев/i, /^маÑ/i, /^апÑ/i, /^ма[йÑ]/i, /^иÑн/i, /^иÑл/i, /^авг/i, /^Ñен/i, /^окÑ/i, /^ноÑ/i, /^дек/i];\n\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nexport const ruLocale: LocaleData = {\n abbr: 'ru',\n months: {\n format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_'),\n standalone: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"иÑл.\" и \"иÑн.\", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑÐºÑ ?\n format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split('_'),\n format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split('_'),\n isFormat: /\\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?\\] ?dddd/\n },\n weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
, по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки\n monthsRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\\.?|ÑевÑал[ÑÑ]|ÑевÑ?\\.?|маÑÑа?|маÑ\\.?|апÑел[ÑÑ]|апÑ\\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\\.?|иÑл[ÑÑ]|иÑл\\.?|авгÑÑÑа?|авг\\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\\.?|окÑÑбÑ[ÑÑ]|окÑ\\.?|ноÑбÑ[ÑÑ]|ноÑб?\\.?|декабÑ[ÑÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего\n monthsShortRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\\.?|ÑевÑал[ÑÑ]|ÑевÑ?\\.?|маÑÑа?|маÑ\\.?|апÑел[ÑÑ]|апÑ\\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\\.?|иÑл[ÑÑ]|иÑл\\.?|авгÑÑÑа?|авг\\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\\.?|окÑÑбÑ[ÑÑ]|окÑ\\.?|ноÑбÑ[ÑÑ]|ноÑб?\\.?|декабÑ[ÑÑ]|дек\\.?)/i,\n\n // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i,\n\n // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам\n monthsShortStrictRegex: /^(Ñнв\\.|ÑевÑ?\\.|маÑ[Ñ.]|апÑ\\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\\.|ÑенÑ?\\.|окÑ\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð²] LT',\n nextDay: '[ÐавÑÑа в] LT',\n lastDay: '[ÐÑеÑа в] LT',\n nextWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[Ð ÑледÑÑÑее] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð ÑледÑÑÑий] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð ÑледÑÑÑÑÑ] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Ðо] dddd [в] LT';\n } else {\n return '[Ð] dddd [в] LT';\n }\n }\n },\n lastWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[РпÑоÑлое] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[РпÑоÑлÑй] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[РпÑоÑлÑÑ] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Ðо] dddd [в] LT';\n } else {\n return '[Ð] dddd [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÑеÑез %s',\n past: '%s назад',\n s: 'неÑколÑко ÑекÑнд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'ÑаÑ',\n hh: relativeTimeWithPlural,\n d: 'денÑ',\n dd: relativeTimeWithPlural,\n M: 'меÑÑÑ',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i,\n isPM(input) {\n return /^(днÑ|веÑеÑа)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ноÑи';\n } else if (hour < 12) {\n return 'ÑÑÑа';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'веÑеÑа';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return num + '-й';\n case 'D':\n return num + '-го';\n case 'w':\n case 'W':\n return num + '-Ñ';\n default:\n return num.toString(10);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Jozef Pažin : https://github.com/atiris\n\nconst months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_');\nconst monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\nfunction plural(num: number): boolean {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const result = num + ' ';\n\n switch (key) {\n case 's':// a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss':// 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'sekundy' : 'sekúnd');\n }\n else {\n return result + 'sekundami';\n }\n // break;\n case 'm':// a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm':// 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'minúty' : 'minút');\n }\n else {\n return result + 'minútami';\n }\n // break;\n case 'h':// an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh':// 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'hodiny' : 'hodÃn');\n }\n else {\n return result + 'hodinami';\n }\n // break;\n case 'd':// a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deÅ' : 'dÅom';\n case 'dd':// 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'dni' : 'dnÃ');\n }\n else {\n return result + 'dÅami';\n }\n // break;\n case 'M':// a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM':// 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'mesiace' : 'mesiacov');\n }\n else {\n return result + 'mesiacmi';\n }\n // break;\n case 'y':// a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy':// 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'roky' : 'rokov');\n }\n else {\n return result + 'rokmi';\n }\n // break;\n }\n}\n\nexport const skLocale: LocaleData = {\n abbr: 'sk',\n months,\n monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'o %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : mihan : https://github.com/mihan\n\nfunction processRelativeTime(number: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n}\n\nexport const slLocale: LocaleData = {\n abbr: 'sl',\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\nexport const svLocale: LocaleData = {\n abbr: 'sv',\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n let b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return num + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\n// moment.js locale configuration\n// locale : Thai [th]\n// author : Watcharapol Sanitwong : https://github.com/tumit\n\nimport { LocaleData } from '../locale/locale.class';\n\nexport const thLocale: LocaleData = {\n abbr: 'th',\n months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split('_'),\n monthsShort: 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split('_'),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'),\n weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), // yes, three characters difference\n weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm',\n LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm'\n },\n meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/,\n isPM(input) {\n return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸';\n } else {\n return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸';\n }\n },\n calendar: {\n sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT',\n lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§',\n s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ',\n ss: '%d วิà¸à¸²à¸à¸µ',\n m: '1 à¸à¸²à¸à¸µ',\n mm: '%d à¸à¸²à¸à¸µ',\n h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸',\n hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸',\n d: '1 วัà¸',\n dd: '%d วัà¸',\n M: '1 à¹à¸à¸·à¸à¸',\n MM: '%d à¹à¸à¸·à¸à¸',\n y: '1 à¸à¸µ',\n yy: '%d à¸à¸µ'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄit Kaya: https://github.com/BYK\n\nlet suffixes: { [key: string]: string } = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n};\n\nexport const trLocale: LocaleData = {\n abbr: 'tr',\n months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Ãar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n if (num === 0) { // special case for zero\n return num + '\\'ıncı';\n }\n let a = num % 10,\n b = num % 100 - a,\n c = num >= 100 ? 100 : null;\n return num + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n\nexport const zhCnLocale: LocaleData = {\n abbr: 'zh-cn',\n months: '䏿_äºæ_䏿_åæ_äºæ_å
æ_䏿_å
«æ_乿_åæ_å䏿_åäºæ'.split('_'),\n monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå
'.split('_'),\n weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å
'.split('_'),\n weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å
'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´MæDæ¥',\n LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå',\n LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´MæDæ¥',\n lll: 'YYYYå¹´MæDæ¥ HH:mm',\n llll: 'YYYYå¹´MæDæ¥dddd HH:mm'\n },\n meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '忍' || meridiem === 'æ©ä¸' ||\n meridiem === 'ä¸å') {\n return hour;\n } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') {\n return hour + 12;\n } else {\n // 'ä¸å'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n let hm = hour * 100 + minute;\n if (hm < 600) {\n return '忍';\n } else if (hm < 900) {\n return 'æ©ä¸';\n } else if (hm < 1130) {\n return 'ä¸å';\n } else if (hm < 1230) {\n return 'ä¸å';\n } else if (hm < 1800) {\n return 'ä¸å';\n } else {\n return 'æä¸';\n }\n },\n calendar: {\n sameDay: '[ä»å¤©]LT',\n nextDay: '[æå¤©]LT',\n nextWeek: '[ä¸]ddddLT',\n lastDay: '[æ¨å¤©]LT',\n lastWeek: '[ä¸]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ¥|æ|å¨)/,\n ordinal(_num: number, period) {\n const num = Number(_num);\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'æ¥';\n case 'M':\n return num + 'æ';\n case 'w':\n case 'W':\n return num + 'å¨';\n default:\n return num.toString();\n }\n },\n relativeTime: {\n future: '%så
',\n past: '%så',\n s: 'å ç§',\n ss: '%d ç§',\n m: '1 åé',\n mm: '%d åé',\n h: '1 å°æ¶',\n hh: '%d å°æ¶',\n d: '1 天',\n dd: '%d 天',\n M: '1 个æ',\n MM: '%d 个æ',\n y: '1 å¹´',\n yy: '%d å¹´'\n },\n week: {\n // GB/T 7408-1994ãæ°æ®å
åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n"],"names":["daysInMonth","months","monthsShort","monthsShortDot","monthsParse","monthsRegex","translate","symbolMap","numberMap","monthsShortWithDots","monthsShortWithoutDots","plural","relativeTimeWithPlural","processRelativeTime"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-bootstrap-chronos.js.map","sources":["ng://ngx-bootstrap/chronos/utils.ts","ng://ngx-bootstrap/chronos/utils/type-checks.ts","ng://ngx-bootstrap/chronos/units/aliases.ts","ng://ngx-bootstrap/chronos/units/constants.ts","ng://ngx-bootstrap/chronos/utils/zero-fill.ts","ng://ngx-bootstrap/chronos/format/format.ts","ng://ngx-bootstrap/chronos/create/date-from-array.ts","ng://ngx-bootstrap/chronos/utils/date-getters.ts","ng://ngx-bootstrap/chronos/parse/regex.ts","ng://ngx-bootstrap/chronos/parse/token.ts","ng://ngx-bootstrap/chronos/units/priorities.ts","ng://ngx-bootstrap/chronos/units/day-of-month.ts","ng://ngx-bootstrap/chronos/create/parsing-flags.ts","ng://ngx-bootstrap/chronos/units/year.ts","ng://ngx-bootstrap/chronos/units/month.ts","ng://ngx-bootstrap/chronos/utils/date-setters.ts","ng://ngx-bootstrap/chronos/create/clone.ts","ng://ngx-bootstrap/chronos/utils/start-end-of.ts","ng://ngx-bootstrap/chronos/units/day-of-year.ts","ng://ngx-bootstrap/chronos/units/week-calendar-utils.ts","ng://ngx-bootstrap/chronos/locale/locale.class.ts","ng://ngx-bootstrap/chronos/locale/calendar.ts","ng://ngx-bootstrap/chronos/locale/locale.defaults.ts","ng://ngx-bootstrap/chronos/utils/compare-arrays.ts","ng://ngx-bootstrap/chronos/units/week.ts","ng://ngx-bootstrap/chronos/units/week-year.ts","ng://ngx-bootstrap/chronos/units/timezone.ts","ng://ngx-bootstrap/chronos/units/timestamp.ts","ng://ngx-bootstrap/chronos/units/second.ts","ng://ngx-bootstrap/chronos/units/quarter.ts","ng://ngx-bootstrap/chronos/units/offset.ts","ng://ngx-bootstrap/chronos/units/minute.ts","ng://ngx-bootstrap/chronos/units/millisecond.ts","ng://ngx-bootstrap/chronos/units/hour.ts","ng://ngx-bootstrap/chronos/locale/locales.ts","ng://ngx-bootstrap/chronos/duration/valid.ts","ng://ngx-bootstrap/chronos/utils/abs-ceil.ts","ng://ngx-bootstrap/chronos/duration/bubble.ts","ng://ngx-bootstrap/chronos/duration/humanize.ts","ng://ngx-bootstrap/chronos/duration/constructor.ts","ng://ngx-bootstrap/chronos/create/valid.ts","ng://ngx-bootstrap/chronos/create/from-string.ts","ng://ngx-bootstrap/chronos/format.ts","ng://ngx-bootstrap/chronos/utils/defaults.ts","ng://ngx-bootstrap/chronos/create/from-array.ts","ng://ngx-bootstrap/chronos/create/check-overflow.ts","ng://ngx-bootstrap/chronos/create/from-string-and-format.ts","ng://ngx-bootstrap/chronos/create/from-string-and-array.ts","ng://ngx-bootstrap/chronos/create/from-object.ts","ng://ngx-bootstrap/chronos/create/from-anything.ts","ng://ngx-bootstrap/chronos/create/local.ts","ng://ngx-bootstrap/chronos/utils/abs-round.ts","ng://ngx-bootstrap/chronos/utils/date-compare.ts","ng://ngx-bootstrap/chronos/duration/create.ts","ng://ngx-bootstrap/chronos/moment/add-subtract.ts","ng://ngx-bootstrap/chronos/units/day-of-week.ts","ng://ngx-bootstrap/chronos/i18n/ar.ts","ng://ngx-bootstrap/chronos/i18n/bg.ts","ng://ngx-bootstrap/chronos/i18n/ca.ts","ng://ngx-bootstrap/chronos/i18n/cs.ts","ng://ngx-bootstrap/chronos/i18n/da.ts","ng://ngx-bootstrap/chronos/i18n/de.ts","ng://ngx-bootstrap/chronos/i18n/en-gb.ts","ng://ngx-bootstrap/chronos/i18n/es-do.ts","ng://ngx-bootstrap/chronos/i18n/es.ts","ng://ngx-bootstrap/chronos/i18n/es-us.ts","ng://ngx-bootstrap/chronos/i18n/fi.ts","ng://ngx-bootstrap/chronos/i18n/fr.ts","ng://ngx-bootstrap/chronos/i18n/gl.ts","ng://ngx-bootstrap/chronos/i18n/he.ts","ng://ngx-bootstrap/chronos/i18n/hi.ts","ng://ngx-bootstrap/chronos/i18n/hu.ts","ng://ngx-bootstrap/chronos/i18n/id.ts","ng://ngx-bootstrap/chronos/i18n/it.ts","ng://ngx-bootstrap/chronos/i18n/ja.ts","ng://ngx-bootstrap/chronos/i18n/ko.ts","ng://ngx-bootstrap/chronos/i18n/lt.ts","ng://ngx-bootstrap/chronos/i18n/mn.ts","ng://ngx-bootstrap/chronos/i18n/nb.ts","ng://ngx-bootstrap/chronos/i18n/nl-be.ts","ng://ngx-bootstrap/chronos/i18n/nl.ts","ng://ngx-bootstrap/chronos/i18n/pl.ts","ng://ngx-bootstrap/chronos/i18n/pt-br.ts","ng://ngx-bootstrap/chronos/i18n/ro.ts","ng://ngx-bootstrap/chronos/i18n/ru.ts","ng://ngx-bootstrap/chronos/i18n/sk.ts","ng://ngx-bootstrap/chronos/i18n/sl.ts","ng://ngx-bootstrap/chronos/i18n/sv.ts","ng://ngx-bootstrap/chronos/i18n/th.ts","ng://ngx-bootstrap/chronos/i18n/tr.ts","ng://ngx-bootstrap/chronos/i18n/zh-cn.ts"],"sourcesContent":["\n\nexport function mod(n: number, x: number): number {\n return (n % x + x) % x;\n}\n\nexport function absFloor(num: number): number {\n return num < 0 ? Math.ceil(num) || 0 : Math.floor(num);\n}\n\n","import { absFloor } from '../utils';\n\nexport function isString(str: any): str is string {\n return typeof str === 'string';\n}\n\nexport function isDate(value: any): value is Date {\n return value instanceof Date || Object.prototype.toString.call(value) === '[object Date]';\n}\n\nexport function isBoolean(value: any): value is boolean {\n return value === true || value === false;\n}\n\nexport function isDateValid(date: Date): boolean {\n return date && date.getTime && !isNaN(date.getTime());\n}\n\nexport function isFunction(fn: any): fn is Function {\n return (\n fn instanceof Function ||\n Object.prototype.toString.call(fn) === '[object Function]'\n );\n}\n\nexport function isNumber(value?: any): value is number {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\nexport function isArray<T>(input?: any): input is T[] {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n}\n\n// TODO: returned type should be changed to \"b is Extract<keyof T, string>\"\n// after update to typescript 3.1.1 (issue 4728)\nexport function hasOwnProp<T>(a: T /*object*/, b: string): boolean {\n return Object.prototype.hasOwnProperty.call(a, b);\n}\n\nexport function isObject<T>(input: any /*object*/): input is T {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null && Object.prototype.toString.call(input) === '[object Object]'\n );\n}\n\nexport function isObjectEmpty(obj: any): boolean {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n }\n let k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n\n return true;\n}\n\n\nexport function isUndefined(input: any): boolean {\n return input === void 0;\n}\n\nexport function toInt<T>(argumentForCoercion: string | number | T): number {\n const coercedNumber = +argumentForCoercion;\n let value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n","import { hasOwnProp, isString } from '../utils/type-checks';\nimport { DateObject, UnitOfTime } from '../types';\n\nconst aliases: { [key: string]: string } = {};\n\nexport type ExtendedUnitOfTime = UnitOfTime | 'date' | 'week' | 'isoWeek' | 'dayOfYear' |\n 'weekday' | 'isoWeekday' | 'second' | 'millisecond' | 'minute' | 'hour' | 'quarter' | 'weekYear' | 'isoWeekYear';\n\nconst _mapUnits: { [key: string]: UnitOfTime } = {\n date: 'day',\n hour: 'hours',\n minute: 'minutes',\n second: 'seconds',\n millisecond: 'milliseconds'\n};\n\nexport function addUnitAlias(unit: ExtendedUnitOfTime, shorthand: string): void {\n const lowerCase = unit.toLowerCase();\n let _unit = unit;\n if (lowerCase in _mapUnits) {\n _unit = _mapUnits[lowerCase];\n }\n aliases[lowerCase] = aliases[`${lowerCase}s`] = aliases[shorthand] = _unit;\n}\n\nexport function normalizeUnits(units: string | string[]): string {\n return isString(units) ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n}\n\nexport function normalizeObjectUnits(inputObject: { [key: string]: number }): DateObject {\n const normalizedInput: { [key: string]: number } = {};\n let normalizedProp;\n let prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput as any;\n}\n","// place in new Date([array])\nexport const YEAR = 0;\nexport const MONTH = 1;\nexport const DATE = 2;\nexport const HOUR = 3;\nexport const MINUTE = 4;\nexport const SECOND = 5;\nexport const MILLISECOND = 6;\nexport const WEEK = 7;\nexport const WEEKDAY = 8;\n","export function zeroFill(num: number,\n targetLength: number,\n forceSign?: boolean): string {\n const absNumber = `${Math.abs(num)}`;\n const zerosToFill = targetLength - absNumber.length;\n const sign = num >= 0;\n const _sign = sign ? (forceSign ? '+' : '') : '-';\n // todo: this is crazy slow\n const _zeros = Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1);\n\n return (_sign + _zeros + absNumber);\n}\n","import { Locale } from '../locale/locale.class';\nimport { zeroFill } from '../utils/zero-fill';\nimport { isFunction } from '../utils/type-checks';\nimport { DateFormatterOptions, DateFormatterFn } from '../types';\n\nexport let formatFunctions: {\n [key: string]: (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string;\n} = {};\nexport let formatTokenFunctions: { [key: string]: DateFormatterFn } = {};\n\n// tslint:disable-next-line\nexport const formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nexport function addFormatToken(token: string,\n padded: [string, number, boolean],\n ordinal: string,\n callback: DateFormatterFn): void {\n\n if (token) {\n formatTokenFunctions[token] = callback;\n }\n\n if (padded) {\n formatTokenFunctions[padded[0]] = function (): string {\n return zeroFill(callback.apply(null, arguments), padded[1], padded[2]);\n };\n }\n\n if (ordinal) {\n formatTokenFunctions[ordinal] = function (date: Date, opts: DateFormatterOptions): string {\n return opts.locale.ordinal(callback.apply(null, arguments), token);\n };\n }\n}\n\nexport function makeFormatFunction(format: string):\n (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string {\n\n const array: string[] = format.match(formattingTokens);\n const length = array.length;\n\n const formatArr: string[] | DateFormatterFn[] = new Array(length);\n\n for (let i = 0; i < length; i++) {\n formatArr[i] = formatTokenFunctions[array[i]]\n ? formatTokenFunctions[array[i]]\n : removeFormattingTokens(array[i]);\n }\n\n return function (date: Date, locale: Locale, isUTC: boolean, offset = 0): string {\n let output = '';\n for (let j = 0; j < length; j++) {\n output += isFunction(formatArr[j])\n ? (formatArr[j] as DateFormatterFn).call(null, date, {format, locale, isUTC, offset})\n : formatArr[j];\n }\n\n return output;\n };\n}\n\nfunction removeFormattingTokens(input: string): string {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n\n return input.replace(/\\\\/g, '');\n}\n","export function createUTCDate(y?: number,\n m?: number,\n d?: number): Date {\n const date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n\n return date;\n}\n\nexport function createDate(y?: number,\n m = 0,\n d = 1,\n h = 0,\n M = 0,\n s = 0,\n ms = 0): Date {\n const date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n\n return date;\n}\n","import { createDate } from '../create/date-from-array';\n\nexport function getHours(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCHours() : date.getHours();\n}\n\nexport function getMinutes(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMinutes() : date.getMinutes();\n}\n\nexport function getSeconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCSeconds() : date.getSeconds();\n}\n\nexport function getMilliseconds(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMilliseconds() : date.getMilliseconds();\n}\nexport function getTime(date: Date): number {\n return date.getTime();\n}\n\nexport function getDay(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDay() : date.getDay();\n}\n\nexport function getDate(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCDate() : date.getDate();\n}\n\nexport function getMonth(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCMonth() : date.getMonth();\n}\n\nexport function getFullYear(date: Date, isUTC = false): number {\n return isUTC ? date.getUTCFullYear() : date.getFullYear();\n}\n\nexport function getUnixTime(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function unix(date: Date): number {\n return Math.floor(date.valueOf() / 1000);\n}\n\nexport function getFirstDayOfMonth(date: Date): Date {\n return createDate(\n date.getFullYear(),\n date.getMonth(),\n 1,\n date.getHours(),\n date.getMinutes(),\n date.getSeconds()\n );\n}\n\nexport function daysInMonth(date: Date): number {\n return _daysInMonth(date.getFullYear(), date.getMonth());\n}\n\nexport function _daysInMonth(year: number, month: number): number {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n}\n\nexport function isFirstDayOfWeek(date: Date, firstDayOfWeek: number): boolean {\n return date.getDay() === firstDayOfWeek;\n}\n\nexport function isSameMonth(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return isSameYear(date1, date2) && getMonth(date1) === getMonth(date2);\n}\n\nexport function isSameYear(date1: Date, date2: Date) {\n if (!date1 || !date2) {\n return false;\n }\n\n return getFullYear(date1) === getFullYear(date2);\n}\n\nexport function isSameDay(date1: Date, date2: Date): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n return (\n isSameYear(date1, date2) &&\n isSameMonth(date1, date2) &&\n getDate(date1) === getDate(date2)\n );\n}\n","import { hasOwnProp, isFunction } from '../utils/type-checks';\nimport { Locale } from '../locale/locale.class';\n\nexport const match1 = /\\d/; // 0 - 9\nexport const match2 = /\\d\\d/; // 00 - 99\nexport const match3 = /\\d{3}/; // 000 - 999\nexport const match4 = /\\d{4}/; // 0000 - 9999\nexport const match6 = /[+-]?\\d{6}/; // -999999 - 999999\nexport const match1to2 = /\\d\\d?/; // 0 - 99\nexport const match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\nexport const match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\nexport const match1to3 = /\\d{1,3}/; // 0 - 999\nexport const match1to4 = /\\d{1,4}/; // 0 - 9999\nexport const match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\nexport const matchUnsigned = /\\d+/; // 0 - inf\nexport const matchSigned = /[+-]?\\d+/; // -inf - inf\n\nexport const matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\nexport const matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\nexport const matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n// any word (or two) characters or numbers including two/three word month in arabic.\n// includes scottish gaelic two word and hyphenated months\n// tslint:disable-next-line\nexport const matchWord = /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i;\n\nexport type RegExpTokenFn = (isStrict: boolean, locale: Locale) => RegExp;\nconst regexes: {[key: string]: RegExpTokenFn} = {};\n\n\nexport function addRegexToken(token: string, regex: RegExp | RegExpTokenFn, strictRegex?: RegExp): void {\n if (isFunction(regex)) {\n regexes[token] = regex;\n\n return;\n }\n\n regexes[token] = function (isStrict: boolean, locale: Locale) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n}\n\nexport function getParseRegexForToken(token: string, locale: Locale): RegExp {\n const _strict = false;\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](_strict, locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(str: string): string {\n // tslint:disable-next-line\n return regexEscape(str\n .replace('\\\\', '')\n .replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, (matched, p1, p2, p3, p4) => p1 || p2 || p3 || p4)\n );\n}\n\nexport function regexEscape(str: string): string {\n return str.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n","// tslint:disable:max-line-length\nimport { hasOwnProp, isArray, isFunction, isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateParseTokenFn } from '../types';\n\nconst tokens: {[key: string]: DateParseTokenFn} = {};\n\nexport function addParseToken(token: string | string[], callback: DateParseTokenFn | number) {\n const _token = isString(token) ? [token] : token;\n let func = callback;\n\n if (isNumber(callback)) {\n func = function (input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[callback] = toInt(input);\n\n return config;\n };\n }\n\n if (isArray<string>(_token) && isFunction(func)) {\n let i;\n for (i = 0; i < _token.length; i++) {\n tokens[_token[i]] = func;\n }\n }\n}\n\nexport function addWeekParseToken(token: string[], callback: DateParseTokenFn): void {\n addParseToken(token, function (input: string, array: DateArray, config: DateParsingConfig, _token: string): DateParsingConfig {\n config._w = config._w || {};\n\n return callback(input, config._w, config, _token);\n });\n}\n\n\nexport function addTimeToArrayFromToken(token: string, input: string, config: DateParsingConfig): DateParsingConfig {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n\n return config;\n}\n","const priorities: {[key: string]: number} = {};\n\nexport function addUnitPriority(unit: string, priority: number): void {\n priorities[unit] = priority;\n}\n\n/*\nexport function getPrioritizedUnits(unitsObj) {\n const units = [];\n let unit;\n for (unit in unitsObj) {\n if (unitsObj.hasOwnProperty(unit)) {\n units.push({ unit, priority: priorities[unit] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n\n return units;\n}\n*/\n","import { addFormatToken } from '../format/format';\nimport { getDate } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { DATE } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n\nexport function initDayOfMonth() {\n// FORMATTING\n\n addFormatToken('D', ['DD', 2, false], 'Do',\n function(date: Date, opts: DateFormatterOptions): string {\n return getDate(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('date', 'D');\n\n// PRIOROITY\n addUnitPriority('date', 9);\n\n// PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function(isStrict, locale) {\n return locale._dayOfMonthOrdinalParse || locale._ordinalParse;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken(\n 'Do',\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[DATE] = toInt(input.match(match1to2)[0]);\n\n return config;\n }\n );\n}\n","import { DateParsingConfig, DateParsingFlags } from './parsing.types';\n\nfunction defaultParsingFlags(): DateParsingFlags {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false\n };\n}\n\nexport function getParsingFlags(config: DateParsingConfig): DateParsingFlags {\n if (config._pf == null) {\n config._pf = defaultParsingFlags();\n }\n\n return config._pf;\n}\n","import { addFormatToken } from '../format/format';\nimport { getFullYear } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { YEAR } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n// FORMATTING\n\nfunction getYear(date: Date, opts: DateFormatterOptions): string {\n return getFullYear(date, opts.isUTC).toString();\n}\n\nexport function initYear() {\n addFormatToken('Y', null, null,\n function (date: Date, opts: DateFormatterOptions): string {\n const y = getFullYear(date, opts.isUTC);\n\n return y <= 9999 ? y.toString(10) : `+${y}`;\n });\n\n addFormatToken(null, ['YY', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n return (getFullYear(date, opts.isUTC) % 100).toString(10);\n });\n\n addFormatToken(null, ['YYYY', 4, false], null, getYear);\n addFormatToken(null, ['YYYYY', 5, false], null, getYear);\n addFormatToken(null, ['YYYYYY', 6, true], null, getYear);\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array, config) {\n array[YEAR] = input.length === 2 ? parseTwoDigitYear(input) : toInt(input);\n\n return config;\n });\n addParseToken('YY', function (input, array, config) {\n array[YEAR] = parseTwoDigitYear(input);\n\n return config;\n });\n addParseToken('Y', function (input, array, config) {\n array[YEAR] = parseInt(input, 10);\n\n return config;\n });\n}\n\nexport function parseTwoDigitYear(input: string): number {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n}\n\nexport function daysInYear(year: number): number {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function isLeapYear(year: number): boolean {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n","import { addFormatToken } from '../format/format';\nimport { isLeapYear } from './year';\nimport { mod } from '../utils';\nimport { getMonth } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { DateArray, DateFormatterOptions } from '../types';\n\n// todo: this is duplicate, source in date-getters.ts\nexport function daysInMonth(year: number, month: number): number {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n const modMonth = mod(month, 12);\n const _year = year + (month - modMonth) / 12;\n\n return modMonth === 1\n ? isLeapYear(_year) ? 29 : 28\n : (31 - modMonth % 7 % 2);\n}\n\nexport function initMonth() {\n// FORMATTING\n\n addFormatToken('M', ['MM', 2, false], 'Mo',\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMonth(date, opts.isUTC) + 1).toString(10);\n }\n );\n\n addFormatToken('MMM', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.monthsShort(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('MMMM', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.months(date, opts.format, opts.isUTC);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('month', 'M');\n\n// PRIORITY\n\n addUnitPriority('month', 8);\n\n// PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function(isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function(isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = toInt(input) - 1;\n\n return config;\n });\n\n addParseToken(\n ['MMM', 'MMMM'],\n function(input: string, array: DateArray, config: DateParsingConfig, token: string): DateParsingConfig {\n const month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = !!input;\n }\n\n return config;\n }\n );\n}\n","import { TimeUnit } from '../types';\nimport { daysInMonth } from '../units/month';\nimport { isNumber } from './type-checks';\nimport { getDate, getFullYear, getMonth } from './date-getters';\nimport { isLeapYear } from '../units/year';\nimport { createDate } from '../create/date-from-array';\n\nconst defaultTimeUnit: TimeUnit = {\n year: 0,\n month: 0,\n day: 0,\n hour: 0,\n minute: 0,\n seconds: 0\n};\n\nexport function shiftDate(date: Date, unit: TimeUnit): Date {\n const _unit = Object.assign({}, defaultTimeUnit, unit);\n const year = date.getFullYear() + (_unit.year || 0);\n const month = date.getMonth() + (_unit.month || 0);\n let day = date.getDate() + (_unit.day || 0);\n if (_unit.month && !_unit.day) {\n day = Math.min(day, daysInMonth(year, month));\n }\n\n return createDate(\n year,\n month,\n day,\n date.getHours() + (_unit.hour || 0),\n date.getMinutes() + (_unit.minute || 0),\n date.getSeconds() + (_unit.seconds || 0)\n );\n}\n\nexport function setFullDate(date: Date, unit: TimeUnit): Date {\n return createDate(\n getNum(date.getFullYear(), unit.year),\n getNum(date.getMonth(), unit.month),\n getNum(date.getDate(), unit.day),\n getNum(date.getHours(), unit.hour),\n getNum(date.getMinutes(), unit.minute),\n getNum(date.getSeconds(), unit.seconds),\n getNum(date.getMilliseconds(), unit.milliseconds)\n );\n}\n\nfunction getNum(def: number, num?: number): number {\n return isNumber(num) ? num : def;\n}\n\nexport function setFullYear(date: Date, value: number, isUTC?: boolean): Date {\n const _month = getMonth(date, isUTC);\n const _date = getDate(date, isUTC);\n const _year = getFullYear(date, isUTC);\n if (isLeapYear(_year) && _month === 1 && _date === 29) {\n const _daysInMonth = daysInMonth(value, _month);\n isUTC ? date.setUTCFullYear(value, _month, _daysInMonth) : date.setFullYear(value, _month, _daysInMonth);\n }\n\n isUTC ? date.setUTCFullYear(value) : date.setFullYear(value);\n\n return date;\n}\n\nexport function setMonth(date: Date, value: number, isUTC?: boolean): Date {\n const dayOfMonth = Math.min(getDate(date), daysInMonth(getFullYear(date), value));\n isUTC ? date.setUTCMonth(value, dayOfMonth) : date.setMonth(value, dayOfMonth);\n\n return date;\n}\n\nexport function setDay(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setHours(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCHours(value) : date.setHours(value);\n\n return date;\n}\n\nexport function setMinutes(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMinutes(value) : date.setMinutes(value);\n\n return date;\n}\n\nexport function setSeconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCSeconds(value) : date.setSeconds(value);\n\n return date;\n}\n\nexport function setMilliseconds(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCMilliseconds(value) : date.setMilliseconds(value);\n\n return date;\n}\n\nexport function setDate(date: Date, value: number, isUTC?: boolean): Date {\n isUTC ? date.setUTCDate(value) : date.setDate(value);\n\n return date;\n}\n\nexport function setTime(date: Date, value: number): Date {\n date.setTime(value);\n\n return date;\n}\n","// fastest way to clone date\n// https://jsperf.com/clone-date-object2\nexport function cloneDate(date: Date): Date {\n return new Date(date.getTime());\n}\n","// tslint:disable: switch-default\nimport { TimeUnit, UnitOfTime } from '../types';\nimport {\n setDate, setFullDate, setHours, setMilliseconds, setMinutes, setMonth, setSeconds,\n shiftDate\n} from './date-setters';\nimport { cloneDate } from '../create/clone';\nimport { setISODayOfWeek, setLocaleDayOfWeek } from '../units/day-of-week';\nimport { getMonth } from './date-getters';\nimport { add, subtract } from '../moment/add-subtract';\n\nexport function startOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n const _date = cloneDate(date);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (unit) {\n case 'year':\n setMonth(_date, 0, isUTC);\n /* falls through */\n case 'quarter':\n case 'month':\n setDate(_date, 1, isUTC);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n setHours(_date, 0, isUTC);\n /* falls through */\n case 'hours':\n setMinutes(_date, 0, isUTC);\n /* falls through */\n case 'minutes':\n setSeconds(_date, 0, isUTC);\n /* falls through */\n case 'seconds':\n setMilliseconds(_date, 0, isUTC);\n }\n\n // weeks are a special case\n if (unit === 'week') {\n setLocaleDayOfWeek(_date, 0, {isUTC});\n }\n if (unit === 'isoWeek') {\n setISODayOfWeek(_date, 1);\n }\n\n // quarters are also special\n if (unit === 'quarter') {\n setMonth(_date, Math.floor(getMonth(_date, isUTC) / 3) * 3, isUTC);\n }\n\n return _date;\n}\n\nexport function endOf(date: Date, unit: UnitOfTime, isUTC?: boolean): Date {\n let _unit = unit;\n // 'date' is an alias for 'day', so it should be considered as such.\n if (_unit === 'date') {\n _unit = 'day';\n }\n\n const start = startOf(date, _unit, isUTC);\n const _step = add(start, 1, _unit === 'isoWeek' ? 'week' : _unit, isUTC);\n const res = subtract(_step, 1, 'milliseconds', isUTC);\n\n return res;\n}\n","import { addFormatToken } from '../format/format';\nimport { startOf } from '../utils/start-end-of';\nimport { addRegexToken, match1to3, match3 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { toInt } from '../utils/type-checks';\nimport { add } from '../moment/add-subtract';\n\n\nexport function initDayOfYear() {\n// FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3, false], 'DDDo',\n function(date: Date): string {\n return getDayOfYear(date)\n .toString(10);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n// PRIORITY\n\n addUnitPriority('dayOfYear', 4);\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(\n ['DDD', 'DDDD'],\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._dayOfYear = toInt(input);\n\n return config;\n }\n );\n}\n\nexport function getDayOfYear(date: Date, isUTC?: boolean): number {\n const date1 = +startOf(date, 'day', isUTC);\n const date2 = +startOf(date, 'year', isUTC);\n const someDate = date1 - date2;\n const oneDay = 1000 * 60 * 60 * 24;\n\n return Math.round(someDate / oneDay) + 1;\n}\n\nexport function setDayOfYear(date: Date, input: number): Date {\n const dayOfYear = getDayOfYear(date);\n\n return add(date, (input - dayOfYear), 'day');\n}\n","/**\n *\n * @param {number} year\n * @param {number} dow - start-of-first-week\n * @param {number} doy - start-of-year\n * @returns {number}\n */\nimport { createUTCDate } from '../create/date-from-array';\nimport { daysInYear } from './year';\nimport { getDayOfYear } from './day-of-year';\nimport { getFullYear } from '../utils/date-getters';\n\nfunction firstWeekOffset(year: number, dow: number, doy: number): number {\n // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n const fwd = dow - doy + 7;\n // first-week day local weekday -- which local weekday is fwd\n const fwdlw = (createUTCDate(year, 0, fwd).getUTCDay() - dow + 7) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nexport function dayOfYearFromWeeks(\n year: number,\n week: number,\n weekday: number,\n dow: number,\n doy: number\n): { year: number; dayOfYear: number } {\n const localWeekday = (7 + weekday - dow) % 7;\n const weekOffset = firstWeekOffset(year, dow, doy);\n const dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset;\n let resYear: number;\n let resDayOfYear: number;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n}\n\nexport function weekOfYear(date: Date, dow: number, doy: number, isUTC?: boolean): { week: number; year: number } {\n const weekOffset = firstWeekOffset(getFullYear(date, isUTC), dow, doy);\n const week = Math.floor((getDayOfYear(date, isUTC) - weekOffset - 1) / 7) + 1;\n let resWeek: number;\n let resYear: number;\n\n if (week < 1) {\n resYear = getFullYear(date, isUTC) - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(getFullYear(date, isUTC), dow, doy)) {\n resWeek = week - weeksInYear(getFullYear(date, isUTC), dow, doy);\n resYear = getFullYear(date, isUTC) + 1;\n } else {\n resYear = getFullYear(date, isUTC);\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n}\n\nexport function weeksInYear(year: number, dow: number, doy: number): number {\n const weekOffset = firstWeekOffset(year, dow, doy);\n const weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n","// tslint:disable:max-file-line-count max-line-length cyclomatic-complexity\n\nimport { weekOfYear } from '../units/week-calendar-utils';\nimport { hasOwnProp, isArray, isFunction } from '../utils/type-checks';\nimport { getDay, getMonth } from '../utils/date-getters';\nimport { matchWord, regexEscape } from '../parse/regex';\nimport { setDayOfWeek } from '../units/day-of-week';\n\nexport interface LocaleOptionsFormat {\n format: string[];\n standalone: string[];\n isFormat?: RegExp;\n}\n\nexport type LocaleOptions = string[] | LocaleOptionsFormat;\n\nconst MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\nexport const defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n);\nexport const defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split(\n '_'\n);\nexport const defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split(\n '_'\n);\nexport const defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\nexport const defaultLongDateFormat: { [index: string]: string } = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A'\n};\n\nexport const defaultOrdinal = '%d';\nexport const defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nconst defaultMonthsShortRegex = matchWord;\nconst defaultMonthsRegex = matchWord;\n\nexport type OrdinalDateFn = (num: number, token?: string) => string;\nexport type PluralizeDateFn = (num: number, withoutSuffix: boolean,\n key?: string, isFuture?: boolean) => string;\n\nexport interface LocaleData {\n abbr?: string;\n parentLocale?: string;\n\n months?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsShort?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n monthsParseExact?: boolean;\n\n weekdays?: LocaleOptions | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysShort?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysMin?: string[] | ((date: Date, format: string, isUTC?: boolean) => string | string[]);\n weekdaysParseExact?: boolean;\n\n longDateFormat?: { [index: string]: string };\n calendar?: {\n [key: string]: (string\n | ((date: Date, now?: Date) => string)\n // tslint:disable-next-line\n | ((dayOfWeek: number, isNextWeek: boolean) => string))\n };\n relativeTime?: { [key: string]: string | PluralizeDateFn };\n dayOfMonthOrdinalParse?: RegExp;\n ordinal?: string | OrdinalDateFn;\n\n week?: { dow?: number; doy?: number };\n\n invalidDate?: string;\n\n monthsRegex?: RegExp;\n monthsParse?: RegExp[];\n monthsShortRegex?: RegExp;\n monthsStrictRegex?: RegExp;\n monthsShortStrictRegex?: RegExp;\n longMonthsParse?: RegExp[];\n shortMonthsParse?: RegExp[];\n\n meridiemParse?: RegExp;\n\n meridiemHour?(hour: number, meridiem: string): number;\n\n preparse?(str: string): string;\n\n postformat?(str: string | number): string;\n\n meridiem?(hour: number, minute?: number, isLower?: boolean): string;\n\n isPM?(input: string): boolean;\n}\n\nexport class Locale {\n parentLocale?: Locale;\n _abbr: string;\n _config: LocaleData;\n meridiemHour: (hour: number, meridiem: string) => number;\n\n _invalidDate: string;\n _week: { dow: number; doy: number };\n _dayOfMonthOrdinalParse: RegExp;\n _ordinalParse: RegExp;\n _meridiemParse: RegExp;\n\n private _calendar: { [key: string]: string };\n private _relativeTime: { future: string; past: string };\n private _months: LocaleOptions;\n private _monthsShort: LocaleOptions;\n private _monthsRegex: RegExp;\n private _monthsShortRegex: RegExp;\n private _monthsStrictRegex: RegExp;\n private _monthsShortStrictRegex: RegExp;\n private _monthsParse: RegExp[];\n private _longMonthsParse: string[] | RegExp[];\n private _shortMonthsParse: string[] | RegExp[];\n private _monthsParseExact: RegExp;\n private _weekdaysParseExact: boolean;\n private _weekdaysRegex: RegExp;\n private _weekdaysShortRegex: RegExp;\n private _weekdaysMinRegex: RegExp;\n\n private _weekdaysStrictRegex: RegExp;\n private _weekdaysShortStrictRegex: RegExp;\n private _weekdaysMinStrictRegex: RegExp;\n\n private _weekdays: LocaleOptions;\n private _weekdaysShort: string[];\n private _weekdaysMin: string[];\n private _weekdaysParse: string[] | RegExp[];\n private _minWeekdaysParse: string[] | RegExp[];\n private _shortWeekdaysParse: string[] | RegExp[];\n private _fullWeekdaysParse: RegExp[];\n private _longDateFormat: { [key: string]: string };\n\n private _ordinal: string;\n\n constructor(config: LocaleData) {\n if (!!config) {\n this.set(config);\n }\n }\n\n set(config: LocaleData): void {\n let confKey;\n for (confKey in config) {\n if (!config.hasOwnProperty(confKey)) {\n continue;\n }\n const prop = config[confKey as keyof LocaleData];\n const key = (isFunction(prop) ? confKey : `_${confKey}`) as keyof Locale;\n\n this[key] = prop as any;\n }\n\n this._config = config;\n }\n\n calendar(key: string, date: Date, now: Date): string {\n const output = this._calendar[key] || this._calendar.sameElse;\n\n return isFunction(output) ? output.call(null, date, now) : output;\n }\n\n longDateFormat(key: string) {\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val: string) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n get invalidDate(): string {\n return this._invalidDate;\n }\n\n set invalidDate(val: string) {\n this._invalidDate = val;\n }\n\n ordinal(num: number, token?: string): string {\n return this._ordinal.replace('%d', num.toString(10));\n }\n\n preparse(str: string) {\n return str;\n }\n\n postformat(str: string) {\n return str;\n }\n\n relativeTime(num: number, withoutSuffix: boolean, str: 'future' | 'past', isFuture: boolean): string {\n const output = this._relativeTime[str];\n\n return (isFunction(output)) ?\n output(num, withoutSuffix, str, isFuture) :\n output.replace(/%d/i, num.toString(10));\n }\n\n pastFuture(diff: number, output: string): string {\n const format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n /** Months */\n months(): string[];\n months(date: Date, format?: string, isUTC?: boolean): string;\n months(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._months)\n ? this._months\n : this._months.standalone;\n }\n\n if (isArray<string>(this._months)) {\n return this._months[getMonth(date, isUTC)];\n }\n\n const key = (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone';\n\n return this._months[key][getMonth(date, isUTC)];\n }\n\n monthsShort(): string[];\n monthsShort(date?: Date, format?: string, isUTC?: boolean): string;\n monthsShort(date?: Date, format?: string, isUTC = false): string | string[] {\n if (!date) {\n return isArray<string>(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort.standalone;\n }\n\n if (isArray<string>(this._monthsShort)) {\n return this._monthsShort[getMonth(date, isUTC)];\n }\n const key = MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone';\n\n return this._monthsShort[key][getMonth(date, isUTC)];\n }\n\n monthsParse(monthName: string, format?: string, strict?: boolean): number {\n let date;\n let regex;\n\n if (this._monthsParseExact) {\n return this.handleMonthStrictParse(monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(Date.UTC(2000, i));\n if (strict && !this._longMonthsParse[i]) {\n const _months = this.months(date, '', true).replace('.', '');\n const _shortMonths = this.monthsShort(date, '', true).replace('.', '');\n this._longMonthsParse[i] = new RegExp(`^${_months}$`, 'i');\n this._shortMonthsParse[i] = new RegExp(`^${_shortMonths}$`, 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = `^${this.months(date, '', true)}|^${this.monthsShort(date, '', true)}`;\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && (this._longMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (strict && format === 'MMM' && (this._shortMonthsParse[i] as RegExp).test(monthName)) {\n return i;\n }\n\n if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n monthsRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n }\n\n return this._monthsRegex;\n }\n\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n\n monthsShortRegex(isStrict: boolean): RegExp {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this.computeMonthsParse();\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n }\n\n return this._monthsShortRegex;\n }\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n\n /** Week */\n week(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, this._week.dow, this._week.doy, isUTC).week;\n }\n\n firstDayOfWeek(): number {\n return this._week.dow;\n }\n\n firstDayOfYear(): number {\n return this._week.doy;\n }\n\n /** Day of Week */\n weekdays(): string[];\n weekdays(date: Date, format?: string, isUTC?: boolean): string;\n weekdays(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return isArray<string>(this._weekdays)\n ? this._weekdays\n : this._weekdays.standalone;\n }\n\n if (isArray<string>(this._weekdays)) {\n return this._weekdays[getDay(date, isUTC)];\n }\n\n const _key = this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone';\n\n return this._weekdays[_key][getDay(date, isUTC)];\n }\n\n weekdaysMin(): string[];\n weekdaysMin(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysMin(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysMin[getDay(date, isUTC)] : this._weekdaysMin;\n }\n\n weekdaysShort(): string[];\n weekdaysShort(date: Date, format?: string, isUTC?: boolean): string;\n weekdaysShort(date?: Date, format?: string, isUTC?: boolean): string | string[] {\n return date ? this._weekdaysShort[getDay(date, isUTC)] : this._weekdaysShort;\n }\n\n\n // proto.weekdaysParse = localeWeekdaysParse;\n weekdaysParse(weekdayName?: string, format?: string, strict?: boolean): number {\n let i;\n let regex;\n\n if (this._weekdaysParseExact) {\n return this.handleWeekStrictParse(weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // fix: here is the issue\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(`^${this.weekdays(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._shortWeekdaysParse[i] = new RegExp(`^${this.weekdaysShort(date, '', true).replace('.', '\\.?')}$`, 'i');\n this._minWeekdaysParse[i] = new RegExp(`^${this.weekdaysMin(date, '', true).replace('.', '\\.?')}$`, 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = `^${this.weekdays(date, '', true)}|^${this.weekdaysShort(date, '', true)}|^${this.weekdaysMin(date, '', true)}`;\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n\n if (!isArray<RegExp>(this._fullWeekdaysParse)\n || !isArray<RegExp>(this._shortWeekdaysParse)\n || !isArray<RegExp>(this._minWeekdaysParse)\n || !isArray<RegExp>(this._weekdaysParse)) {\n return;\n }\n\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // proto.weekdaysRegex = weekdaysRegex;\n weekdaysRegex(isStrict: boolean) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = matchWord;\n }\n\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n // proto.weekdaysShortRegex = weekdaysShortRegex;\n // proto.weekdaysMinRegex = weekdaysMinRegex;\n\n\n weekdaysShortRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = matchWord;\n }\n\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n weekdaysMinRegex(isStrict?: boolean): RegExp {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this.computeWeekdaysParse();\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = matchWord;\n }\n\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n isPM(input: string): boolean {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return input.toLowerCase().charAt(0) === 'p';\n }\n\n meridiem(hours: number, minutes: number, isLower: boolean): string {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n }\n\n return isLower ? 'am' : 'AM';\n }\n\n formatLongDate(key: string) {\n this._longDateFormat = this._longDateFormat ? this._longDateFormat : defaultLongDateFormat;\n const format = this._longDateFormat[key];\n const formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[\n key\n ] = formatUpper.replace(/MMMM|MM|DD|dddd/g, (val: string) => {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n private handleMonthStrictParse(monthName: string, format: string, strict?: boolean) {\n const llc = monthName.toLocaleLowerCase();\n let i;\n let ii;\n let mom;\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = new Date(2000, i);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n if (format === 'MMM') {\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n ii = (this._longMonthsParse as string[]).indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = (this._shortMonthsParse as string[]).indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n\n private handleWeekStrictParse(weekdayName: string, format: string, strict: boolean): number {\n let ii;\n const llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n let i;\n for (i = 0; i < 7; ++i) {\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n this._minWeekdaysParse[i] = this.weekdaysMin(date).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(date).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(date, '').toLocaleLowerCase();\n }\n }\n\n if (!isArray<string>(this._weekdaysParse)\n || !isArray<string>(this._shortWeekdaysParse)\n || !isArray<string>(this._minWeekdaysParse)) {\n return;\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = this._shortWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._minWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n } else {\n ii = this._minWeekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._weekdaysParse.indexOf(llc);\n if (ii !== -1) {\n return ii;\n }\n ii = this._shortWeekdaysParse.indexOf(llc);\n\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n private computeMonthsParse() {\n const shortPieces: string[] = [];\n const longPieces: string[] = [];\n const mixedPieces: string[] = [];\n let date;\n\n let i;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n date = new Date(2000, i);\n shortPieces.push(this.monthsShort(date, ''));\n longPieces.push(this.months(date, ''));\n mixedPieces.push(this.months(date, ''));\n mixedPieces.push(this.monthsShort(date, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._monthsShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n }\n\n private computeWeekdaysParse() {\n const minPieces = [];\n const shortPieces = [];\n const longPieces = [];\n const mixedPieces = [];\n\n let i;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n // let mom = createUTC([2000, 1]).day(i);\n const date = setDayOfWeek(new Date(Date.UTC(2000, 1)), i, null, true);\n const minp = this.weekdaysMin(date);\n const shortp = this.weekdaysShort(date);\n const longp = this.weekdays(date);\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp(`^(${mixedPieces.join('|')})`, 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(`^(${longPieces.join('|')})`, 'i');\n this._weekdaysShortStrictRegex = new RegExp(`^(${shortPieces.join('|')})`, 'i');\n this._weekdaysMinStrictRegex = new RegExp(`^(${minPieces.join('|')})`, 'i');\n }\n}\n\nfunction cmpLenRev(a: string, b: string): number {\n return b.length - a.length;\n}\n","export const defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L'\n};\n","import {\n defaultDayOfMonthOrdinalParse,\n defaultLocaleMonths,\n defaultLocaleMonthsShort,\n defaultLocaleWeekdays,\n defaultLocaleWeekdaysMin,\n defaultLocaleWeekdaysShort, defaultLongDateFormat, defaultOrdinal,\n LocaleData\n} from './locale.class';\nimport { defaultCalendar } from './calendar';\n\nexport const defaultInvalidDate = 'Invalid date';\n\nexport const defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n};\n\nexport const defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n\nexport const defaultRelativeTime: {[key: string]: string} = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n};\n\nexport const baseConfig: LocaleData = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n};\n","// compare two arrays, return the number of differences\nimport { toInt } from './type-checks';\n\nexport function compareArrays<T>(array1: T[], array2: T[], dontConvert: boolean) {\n const len = Math.min(array1.length, array2.length);\n const lengthDiff = Math.abs(array1.length - array2.length);\n let diffs = 0;\n let i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i])\n || (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n\n return diffs + lengthDiff;\n}\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { weekOfYear } from './week-calendar-utils';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { add } from '../moment/add-subtract';\n\n// FORMATTING\n\nexport function initWeek() {\n addFormatToken('w', ['ww', 2, false], 'wo',\n function(date: Date, opts: DateFormatterOptions): string {\n return getWeek(date, opts.locale)\n .toString(10);\n }\n );\n\n addFormatToken('W', ['WW', 2, false], 'Wo',\n function(date: Date): string {\n return getISOWeek(date)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n// PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n// PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token.substr(0, 1)] = toInt(input);\n\n return config;\n }\n );\n\n// export function getSetWeek (input) {\n// var week = this.localeData().week(this);\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n}\n\nexport function setWeek(date: Date, input: number, locale = getLocale()): Date {\n const week = getWeek(date, locale);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return locale.week(date, isUTC);\n}\n\n// export function getSetISOWeek (input) {\n// var week = weekOfYear(this, 1, 4).week;\n// return input == null ? week : this.add((input - week) * 7, 'd');\n// }\n\nexport function setISOWeek(date: Date, input: number): Date {\n const week = getISOWeek(date);\n\n return add(date, (input - week) * 7, 'day');\n}\n\nexport function getISOWeek(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).week;\n}\n\n","import { addFormatToken } from '../format/format';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addRegexToken, match1to2, match1to4, match1to6, match2, match4, match6, matchSigned } from '../parse/regex';\nimport { addWeekParseToken } from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { parseTwoDigitYear } from './year';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from './week-calendar-utils';\nimport { createUTCDate } from '../create/date-from-array';\nimport { getISOWeek, getWeek } from './week';\nimport { getISODayOfWeek, getLocaleDayOfWeek } from './day-of-week';\nimport { getLocale } from '../locale/locales';\nimport { setDate, setFullYear, setMonth } from '../utils/date-setters';\nimport { getDate, getFullYear, getMonth } from '../utils/date-getters';\nimport { Locale } from '../locale/locale.class';\nimport { DateFormatterFn, DateFormatterOptions, WeekParsing } from '../types';\n\n// FORMATTING\n\nexport function initWeekYear() {\n addFormatToken(null, ['gg', 2, false], null,\n function (date: Date, opts: DateFormatterOptions): string {\n // return this.weekYear() % 100;\n return (getWeekYear(date, opts.locale) % 100).toString();\n }\n );\n\n addFormatToken(null, ['GG', 2, false], null,\n function (date: Date): string {\n // return this.isoWeekYear() % 100;\n return (getISOWeekYear(date) % 100).toString();\n }\n );\n\n addWeekYearFormatToken('gggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('ggggg', _getWeekYearFormatCb);\n addWeekYearFormatToken('GGGG', _getISOWeekYearFormatCb);\n addWeekYearFormatToken('GGGGG', _getISOWeekYearFormatCb);\n\n// ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n// PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n// PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week: WeekParsing, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n\n return config;\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week: WeekParsing, config, token) {\n week[token] = parseTwoDigitYear(input);\n\n return config;\n });\n}\n\nfunction addWeekYearFormatToken(token: string, getter: DateFormatterFn): void {\n addFormatToken(null, [token, token.length, false], null, getter);\n}\n\nfunction _getWeekYearFormatCb(date: Date, opts: DateFormatterOptions): string {\n return getWeekYear(date, opts.locale).toString();\n}\n\nfunction _getISOWeekYearFormatCb(date: Date): string {\n return getISOWeekYear(date).toString();\n}\n\n// MOMENTS\n\nexport function getSetWeekYear(date: Date, input: number, locale = getLocale(), isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date,\n input,\n // this.week(),\n getWeek(date, locale, isUTC),\n // this.weekday(),\n getLocaleDayOfWeek(date, locale, isUTC),\n locale.firstDayOfWeek(),\n locale.firstDayOfYear(),\n isUTC);\n}\n\nexport function getWeekYear(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return weekOfYear(date, locale.firstDayOfWeek(), locale.firstDayOfYear(), isUTC).year;\n}\n\nexport function getSetISOWeekYear(date: Date, input: number, isUTC?: boolean): number | Date {\n return getSetWeekYearHelper(date, input, getISOWeek(date, isUTC), getISODayOfWeek(date, isUTC), 1, 4);\n}\n\nexport function getISOWeekYear(date: Date, isUTC?: boolean): number {\n return weekOfYear(date, 1, 4, isUTC).year;\n}\n\nexport function getISOWeeksInYear(date: Date, isUTC?: boolean) {\n return weeksInYear(getFullYear(date, isUTC), 1, 4);\n}\n\nexport function getWeeksInYear(date: Date, isUTC?: boolean, locale: Locale = getLocale()): number {\n return weeksInYear(getFullYear(date, isUTC), locale.firstDayOfWeek(), locale.firstDayOfYear());\n}\n\nfunction getSetWeekYearHelper(date: Date, input: number, week: number,\n weekday: number, dow: number, doy: number, isUTC?: boolean): number | Date {\n if (!input) {\n return getWeekYear(date, void 0, isUTC);\n }\n\n const weeksTarget = weeksInYear(input, dow, doy);\n const _week = week > weeksTarget ? weeksTarget : week;\n\n return setWeekAll(date, input, _week, weekday, dow, doy);\n}\n\nfunction setWeekAll(date: Date, weekYear: number, week: number,\n weekday: number, dow: number, doy: number): Date {\n const dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n const _date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n setFullYear(date, getFullYear(_date, true), true);\n setMonth(date, getMonth(_date, true), true);\n setDate(date, getDate(_date, true), true);\n\n return date;\n}\n","import { addFormatToken } from '../format/format';\nimport { DateFormatterOptions } from '../types';\n\n// todo: add support for timezones\n\nexport function initTimezone() {\n // FORMATTING\n addFormatToken('z', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.isUTC ? 'UTC' : '';\n }\n );\n addFormatToken('zz', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.isUTC ? 'Coordinated Universal Time' : '';\n }\n );\n}\n\n// MOMENTS\n\nexport function getZoneAbbr(isUTC: boolean) {\n return isUTC ? 'UTC' : '';\n}\n\nexport function getZoneName(isUTC: boolean) {\n return isUTC ? 'Coordinated Universal Time' : '';\n}\n","import { addFormatToken } from '../format/format';\nimport { unix } from '../utils/date-getters';\nimport { addRegexToken, matchSigned, matchTimestamp } from '../parse/regex';\nimport { addParseToken} from '../parse/token';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\n\n\nexport function initTimestamp() {\n// FORMATTING\n\n addFormatToken('X', null, null, function(date: Date): string {\n return unix(date)\n .toString(10);\n });\n addFormatToken('x', null, null, function(date: Date): string {\n return date.valueOf()\n .toString(10);\n });\n\n// PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n\n addParseToken('X', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(parseFloat(input) * 1000);\n\n return config;\n });\n addParseToken('x', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._d = new Date(toInt(input));\n\n return config;\n });\n}\n","import { addFormatToken } from '../format/format';\nimport { getSeconds } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { SECOND } from './constants';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateFormatterOptions } from '../types';\n\n\nexport function initSecond() {\n// FORMATTING\n\n addFormatToken('s', ['ss', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getSeconds(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('second', 's');\n\n// PRIORITY\n\n addUnitPriority('second', 15);\n\n// PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n}\n","import { addFormatToken } from '../format/format';\nimport { addRegexToken, match1 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MONTH } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { getMonth } from '../utils/date-getters';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { setMonth } from '../utils/date-setters';\n\n\nexport function initQuarter() {\n// FORMATTING\n\n addFormatToken('Q', null, 'Qo',\n function(date: Date, opts: DateFormatterOptions): string {\n return getQuarter(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n// PRIORITY\n\n addUnitPriority('quarter', 7);\n\n// PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MONTH] = (toInt(input) - 1) * 3;\n\n return config;\n });\n}\n\n// MOMENTS\n\nexport function getQuarter(date: Date, isUTC = false): number {\n return Math.ceil((getMonth(date, isUTC) + 1) / 3);\n}\n\nexport function setQuarter(date: Date, quarter: number, isUTC?: boolean): Date {\n return setMonth(date, (quarter - 1) * 3 + getMonth(date, isUTC) % 3, isUTC);\n}\n\n// export function getSetQuarter(input) {\n// return input == null\n// ? Math.ceil((this.month() + 1) / 3)\n// : this.month((input - 1) * 3 + this.month() % 3);\n// }\n","// tslint:disable:no-bitwise max-line-length\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { addRegexToken, matchOffset, matchShortOffset } from '../parse/regex';\nimport { add } from '../moment/add-subtract';\nimport { addParseToken } from '../parse/token';\nimport { DateArray } from '../types';\nimport { cloneDate } from '../create/clone';\nimport { setMonth } from '../utils/date-setters';\n\nfunction addOffsetFormatToken(token: string, separator: string): void {\n addFormatToken(token, null, null, function (date: Date, config): string {\n let offset = getUTCOffset(date, {_isUTC: config.isUTC, _offset: config.offset});\n let sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n}\n\nexport function initOffset() {\n addOffsetFormatToken('Z', ':');\n addOffsetFormatToken('ZZ', '');\n\n// PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n\n return config;\n });\n}\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nconst chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher: RegExp, str: string): number {\n const matches = (str || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n const chunk = matches[matches.length - 1];\n const parts = chunk.match(chunkOffset) || ['-', '0', '0'];\n const minutes = parseInt(parts[1], 10) * 60 + toInt(parts[2]);\n const _min = parts[0] === '+' ? minutes : -minutes;\n\n return minutes === 0 ? 0 : _min;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nexport function cloneWithOffset(input: Date, date: Date,\n config: DateParsingConfig = {}): Date {\n if (!config._isUTC) {\n return input;\n }\n\n const res = cloneDate(date);\n // todo: input._d - res._d + ((res._offset || 0) - (input._offset || 0))*60000\n const offsetDiff = (config._offset || 0) * 60000;\n const diff = input.valueOf() - res.valueOf() + offsetDiff;\n // Use low-level api, because this fn is low-level api.\n res.setTime(res.valueOf() + diff);\n // todo: add timezone handling\n // hooks.updateOffset(res, false);\n\n return res;\n}\n\nexport function getDateOffset(date: Date): number {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(date.getTimezoneOffset() / 15) * 15;\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\n// todo: it's from moment timezones\n// hooks.updateOffset = function () {\n// };\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nexport function getUTCOffset(date: Date, config: DateParsingConfig = {}): number {\n const _offset = config._offset || 0;\n\n return config._isUTC ? _offset : getDateOffset(date);\n}\n\nexport function setUTCOffset(date: Date, input: number | string, keepLocalTime?: boolean, keepMinutes?: boolean, config: DateParsingConfig = {}): Date {\n const offset = config._offset || 0;\n let localAdjust;\n let _input = input;\n let _date = date;\n\n if (isString(_input)) {\n _input = offsetFromString(matchShortOffset, _input);\n if (_input === null) {\n return _date;\n }\n } else if (isNumber(_input) && Math.abs(_input) < 16 && !keepMinutes) {\n _input = _input * 60;\n }\n\n if (!config._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(_date);\n }\n config._offset = _input;\n config._isUTC = true;\n if (localAdjust != null) {\n _date = add(_date, localAdjust, 'minutes');\n }\n if (offset !== _input) {\n if (!keepLocalTime || config._changeInProgress) {\n _date = add(_date, _input - offset, 'minutes', config._isUTC);\n // addSubtract(this, createDuration(_input - offset, 'm'), 1, false);\n } else if (!config._changeInProgress) {\n config._changeInProgress = true;\n // todo: add timezone handling\n // hooks.updateOffset(this, true);\n config._changeInProgress = null;\n }\n }\n\n return _date;\n}\n\n/*\nexport function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n*/\n\nexport function setOffsetToUTC(date: Date, keepLocalTime?: boolean): Date {\n return setUTCOffset(date, 0, keepLocalTime);\n}\n\nexport function isDaylightSavingTime(date: Date): boolean {\n\n return (getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 0))\n || getUTCOffset(date) > getUTCOffset(setMonth(cloneDate(date), 5)));\n}\n\n/*export function setOffsetToLocal(date: Date, isUTC?: boolean, keepLocalTime?: boolean) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}*/\n\nexport function setOffsetToParsedOffset(date: Date, input: string, config: DateParsingConfig = {}): Date {\n if (config._tzm != null) {\n return setUTCOffset(date, config._tzm, false, true, config);\n }\n\n if (isString(input)) {\n const tZone = offsetFromString(matchOffset, input);\n if (tZone != null) {\n return setUTCOffset(date, tZone, false, false, config);\n }\n\n return setUTCOffset(date, 0, true, false, config);\n }\n\n return date;\n}\n\nexport function hasAlignedHourOffset(date: Date, input?: Date) {\n const _input = input ? getUTCOffset(input, { _isUTC: false }) : 0;\n\n return (getUTCOffset(date) - _input) % 60 === 0;\n}\n\n\n// DEPRECATED\n/*export function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n const c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n const other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}*/\n\n// in Khronos\n/*export function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nexport function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nexport function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}*/\n","import { addFormatToken } from '../format/format';\nimport { getMinutes } from '../utils/date-getters';\nimport { addRegexToken, match1to2, match2 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { MINUTE } from './constants';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\nimport { DateFormatterOptions } from '../types';\n\n\nexport function initMinute() {\n// FORMATTING\n\n addFormatToken('m', ['mm', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getMinutes(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('minute', 'm');\n\n// PRIORITY\n\n addUnitPriority('minute', 14);\n\n// PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n}\n","// tslint:disable:no-bitwise\n// FORMATTING\n\nimport { addFormatToken } from '../format/format';\nimport { addRegexToken, match1, match1to3, match2, match3, matchUnsigned } from '../parse/regex';\nimport { MILLISECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { addParseToken } from '../parse/token';\nimport { DateArray, DateFormatterOptions, WeekParsing } from '../types';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getMilliseconds } from '../utils/date-getters';\n\n\nexport function initMillisecond() {\n addFormatToken('S', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 100)).toString(10);\n }\n );\n\n addFormatToken(null, ['SS', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (~~(getMilliseconds(date, opts.isUTC) / 10)).toString(10);\n }\n );\n\n addFormatToken(null, ['SSS', 3, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC)).toString(10);\n }\n );\n addFormatToken(null, ['SSSS', 4, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10).toString(10);\n }\n );\n addFormatToken(null, ['SSSSS', 5, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSS', 6, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSS', 7, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 10000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSSS', 8, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 100000).toString(10);\n }\n );\n addFormatToken(null, ['SSSSSSSSS', 9, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return (getMilliseconds(date, opts.isUTC) * 1000000).toString(10);\n }\n );\n\n\n// ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n// PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n// PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n let token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[MILLISECOND] = toInt(parseFloat(`0.${input}`) * 1000);\n\n return config;\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n// MOMENTS\n}\n","import { getHours, getMinutes, getSeconds } from '../utils/date-getters';\nimport { addFormatToken } from '../format/format';\nimport { zeroFill } from '../utils/zero-fill';\nimport { Locale } from '../locale/locale.class';\nimport { addRegexToken, match1to2, match2, match3to4, match5to6 } from '../parse/regex';\nimport { addParseToken } from '../parse/token';\nimport { HOUR, MINUTE, SECOND } from './constants';\nimport { toInt } from '../utils/type-checks';\nimport { DateArray, DateFormatterOptions } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { addUnitPriority } from './priorities';\nimport { addUnitAlias } from './aliases';\n\n\nexport function initHour() {\n// FORMATTING\n\n function hFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) % 12 || 12;\n }\n\n function kFormat(date: Date, isUTC: boolean): number {\n return getHours(date, isUTC) || 24;\n }\n\n addFormatToken('H', ['HH', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getHours(date, opts.isUTC)\n .toString(10);\n }\n );\n addFormatToken('h', ['hh', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return hFormat(date, opts.isUTC)\n .toString(10);\n }\n );\n addFormatToken('k', ['kk', 2, false], null,\n function(date: Date, opts: DateFormatterOptions): string {\n return kFormat(date, opts.isUTC)\n .toString(10);\n }\n );\n\n addFormatToken('hmm', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_h}${_mm}`;\n }\n );\n\n addFormatToken('hmmss', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _h = hFormat(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_h}${_mm}${_ss}`;\n }\n );\n\n addFormatToken('Hmm', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n\n return `${_H}${_mm}`;\n }\n );\n\n addFormatToken('Hmmss', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n const _H = getHours(date, opts.isUTC);\n const _mm = zeroFill(getMinutes(date, opts.isUTC), 2);\n const _ss = zeroFill(getSeconds(date, opts.isUTC), 2);\n\n return `${_H}${_mm}${_ss}`;\n }\n );\n\n function meridiem(token: string, lowercase: boolean): void {\n addFormatToken(token, null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.meridiem(getHours(date, opts.isUTC), getMinutes(date, opts.isUTC), lowercase);\n }\n );\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n// ALIASES\n\n addUnitAlias('hour', 'h');\n\n// PRIORITY\n addUnitPriority('hour', 13);\n\n\n// PARSING\n\n function matchMeridiem(isStrict: boolean, locale: Locale): RegExp {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(\n ['k', 'kk'],\n function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n\n return config;\n }\n );\n addParseToken(['a', 'A'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n\n return config;\n });\n addParseToken(['h', 'hh'], function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('hmm', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('hmmss', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n\n return config;\n });\n addParseToken('Hmm', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n\n return config;\n });\n addParseToken('Hmmss', function(input: string, array: DateArray, config: DateParsingConfig): DateParsingConfig {\n const pos1 = input.length - 4;\n const pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n\n return config;\n });\n\n}\n","// internal storage for locale config files\nimport { Locale, LocaleData } from './locale.class';\nimport { baseConfig } from './locale.defaults';\nimport { hasOwnProp, isArray, isObject, isString, isUndefined, toInt } from '../utils/type-checks';\nimport { compareArrays } from '../utils/compare-arrays';\n\nimport { initWeek } from '../units/week';\nimport { initWeekYear } from '../units/week-year';\nimport { initYear } from '../units/year';\nimport { initTimezone } from '../units/timezone';\nimport { initTimestamp } from '../units/timestamp';\nimport { initSecond } from '../units/second';\nimport { initQuarter } from '../units/quarter';\nimport { initOffset } from '../units/offset';\nimport { initMinute } from '../units/minute';\nimport { initMillisecond } from '../units/millisecond';\nimport { initMonth } from '../units/month';\nimport { initHour } from '../units/hour';\nimport { initDayOfYear } from '../units/day-of-year';\nimport { initDayOfWeek } from '../units/day-of-week';\nimport { initDayOfMonth } from '../units/day-of-month';\n\nconst locales: { [key: string]: Locale } = {};\nconst localeFamilies: { [key: string]: {name: string; config: LocaleData}[] } = {};\nlet globalLocale: Locale;\n\nfunction normalizeLocale(key: string): string {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least,\n// but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names: string[]): Locale {\n let next;\n let locale;\n let i = 0;\n\n while (i < names.length) {\n const split = normalizeLocale(names[i]).split('-');\n let j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n // the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n\n return null;\n}\n\nexport function mergeConfigs(parentConfig: LocaleData,\n childConfig: LocaleData) {\n const res: LocaleData = Object.assign({}, parentConfig);\n\n for (const childProp in childConfig) {\n if (!hasOwnProp(childConfig, childProp)) {\n continue;\n }\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n } else if (childConfig[childProp] != null) {\n res[childProp] = childConfig[childProp];\n } else {\n delete res[childProp];\n }\n }\n let parentProp;\n for (parentProp in parentConfig) {\n if (\n hasOwnProp(parentConfig, parentProp) &&\n !hasOwnProp(childConfig, parentProp) &&\n isObject(parentConfig[parentProp as keyof LocaleData])\n ) {\n // make sure changes to properties don't modify parent config\n res[parentProp as keyof LocaleData] = Object.assign({}, res[parentProp as keyof LocaleData]);\n }\n }\n\n return res;\n}\n\n\nfunction loadLocale(name: string): Locale {\n // no way!\n /* var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }*/\n if (!locales[name]) {\n // tslint:disable-next-line\n console.error(`Khronos locale error: please load locale \"${name}\" before using it`);\n // throw new Error(`Khronos locale error: please load locale \"${name}\" before using it`);\n }\n\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nexport function getSetGlobalLocale(key?: string | string[], values?: LocaleData): string {\n let data: Locale;\n\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else if (isString(key)) {\n data = defineLocale(key, values);\n }\n\n if (data) {\n globalLocale = data;\n }\n }\n\n return globalLocale && globalLocale._abbr;\n}\n\nexport function defineLocale(name: string, config?: LocaleData): Locale {\n if (config === null) {\n // useful for testing\n delete locales[name];\n globalLocale = getLocale('en');\n\n return null;\n }\n\n if (!config) {\n return;\n }\n\n let parentConfig = baseConfig;\n config.abbr = name;\n if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({ name, config });\n\n return null;\n }\n }\n\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n}\n\nexport function updateLocale(name: string, config?: LocaleData): Locale {\n let _config = config;\n\n if (_config != null) {\n let parentConfig = baseConfig;\n // MERGE\n const tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n _config = mergeConfigs(parentConfig, _config);\n const locale = new Locale(_config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n\n return locales[name];\n}\n\n// returns locale data\nexport function getLocale(key?: string | string[]): Locale {\n setDefaultLocale();\n\n if (!key) {\n return globalLocale;\n }\n // let locale;\n const _key = isArray(key) ? key : [key];\n\n return chooseLocale(_key);\n}\n\nexport function listLocales(): string[] {\n return Object.keys(locales);\n}\n\nfunction setDefaultLocale(): void {\n if (locales[`en`]) {\n\n return undefined;\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal(num: number): string {\n const b = num % 10;\n const output =\n toInt((num % 100) / 10) === 1\n ? 'th'\n : b === 1 ? 'st' : b === 2 ? 'nd' : b === 3 ? 'rd' : 'th';\n\n return num + output;\n }\n });\n\n initWeek();\n initWeekYear();\n initYear();\n initTimezone();\n initTimestamp();\n initSecond();\n initQuarter();\n initOffset();\n initMonth();\n initMinute();\n initMillisecond();\n initHour();\n initDayOfYear();\n initDayOfWeek();\n initDayOfMonth();\n}\n","import { toInt } from '../utils/type-checks';\nimport { createDuration } from './create';\nimport { Duration } from './constructor';\nimport { DateObject } from '../types';\n\nconst ordering: (keyof DateObject)[] = ['year', 'quarter', 'month', 'week', 'day', 'hours', 'minutes', 'seconds', 'milliseconds'];\nconst orderingHash = ordering.reduce((mem: { [key: string]: boolean }, order) => {\n mem[order] = true;\n\n return mem;\n}, {});\n\nexport function isDurationValid(duration: Partial<DateObject>): boolean {\n const durationKeys = Object.keys(duration);\n if (durationKeys\n .some((key: keyof DateObject) => {\n return (key in orderingHash)\n && duration[key] === null\n || isNaN(duration[key]);\n })) {\n return false;\n }\n // for (let key in duration) {\n // if (!(indexOf.call(ordering, key) !== -1 && (duration[key] == null || !isNaN(duration[key])))) {\n // return false;\n // }\n // }\n\n let unitHasDecimal = false;\n for (let i = 0; i < ordering.length; ++i) {\n if (duration[ordering[i]]) {\n // only allow non-integers for smallest unit\n if (unitHasDecimal) {\n return false;\n }\n if (duration[ordering[i]] !== toInt(duration[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\n// export function isValid() {\n// return this._isValid;\n// }\n//\n// export function createInvalid(): Duration {\n// return createDuration(NaN);\n// }\n","export function absCeil (number: number): number {\n return number < 0 ? Math.floor(number) : Math.ceil(number);\n}\n","import { Duration } from './constructor';\nimport { absFloor } from '../utils';\nimport { absCeil } from '../utils/abs-ceil';\n\nexport function bubble(dur: Duration): Duration {\n let milliseconds = dur._milliseconds;\n let days = dur._days;\n let months = dur._months;\n const data = dur._data;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n const seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n const minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n const hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n const monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n const years = absFloor(months / 12);\n months %= 12;\n\n data.day = days;\n data.month = months;\n data.year = years;\n\n return dur;\n}\n\nexport function daysToMonths(day: number): number {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return day * 4800 / 146097;\n}\n\nexport function monthsToDays(month: number): number {\n // the reverse of daysToMonths\n return month * 146097 / 4800;\n}\n","// tslint:disable:cyclomatic-complexity\nimport { createDuration } from './create';\nimport { Locale } from '../locale/locale.class';\nimport { Duration } from './constructor';\n\nlet round = Math.round;\nconst thresholds: { [key: string]: number } = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n};\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(str: 'future' | 'past', num: number,\n withoutSuffix: boolean, isFuture: boolean,\n locale: Locale): string {\n return locale.relativeTime(num || 1, !!withoutSuffix, str, isFuture);\n}\n\nexport function relativeTime(posNegDuration: Duration, withoutSuffix: boolean, locale: Locale): string {\n const duration = createDuration(posNegDuration).abs();\n const seconds = round(duration.as('s'));\n const minutes = round(duration.as('m'));\n const hours = round(duration.as('h'));\n const days = round(duration.as('d'));\n const months = round(duration.as('M'));\n const years = round(duration.as('y'));\n\n const a: [string] | [string, number] =\n seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n const b: [string, number | string, boolean, boolean, Locale] =\n [a[0], a[1], withoutSuffix, +posNegDuration > 0, locale];\n // a[2] = withoutSuffix;\n // a[3] = +posNegDuration > 0;\n // a[4] = locale;\n\n return substituteTimeAgo.apply(null, b);\n}\n\n// This function allows you to set the rounding function for relative time strings\nexport function getSetRelativeTimeRounding(roundingFunction: any): boolean | Function {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n\n return true;\n }\n\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nexport function getSetRelativeTimeThreshold(threshold: string, limit: number): boolean | number {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n\n return true;\n}\n\n// export function humanize(withSuffix) {\n// if (!this.isValid()) {\n// return this.localeData().invalidDate();\n// }\n//\n// const locale = this.localeData();\n// let output = relativeTime(this, !withSuffix, locale);\n//\n// if (withSuffix) {\n// output = locale.pastFuture(+this, output);\n// }\n//\n// return locale.postformat(output);\n// }\n","import { getLocale } from '../locale/locales';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { isDurationValid } from './valid';\nimport { bubble, daysToMonths, monthsToDays } from './bubble';\nimport { DateObject } from '../types';\nimport { Locale } from '../locale/locale.class';\nimport { normalizeUnits } from '../units/aliases';\nimport { relativeTime } from './humanize';\nimport { toInt } from '../utils/type-checks';\n\nexport class Duration {\n _milliseconds: number;\n _days: number;\n _months: number;\n _data: Partial<DateObject> = {};\n _locale: Locale = getLocale();\n _isValid: boolean;\n\n constructor(duration: Partial<DateObject>, config: DateParsingConfig = {}) {\n this._locale = config && config._locale || getLocale();\n // const normalizedInput = normalizeObjectUnits(duration);\n const normalizedInput = duration;\n const years = normalizedInput.year || 0;\n const quarters = normalizedInput.quarter || 0;\n const months = normalizedInput.month || 0;\n const weeks = normalizedInput.week || 0;\n const days = normalizedInput.day || 0;\n const hours = normalizedInput.hours || 0;\n const minutes = normalizedInput.minutes || 0;\n const seconds = normalizedInput.seconds || 0;\n const milliseconds = normalizedInput.milliseconds || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1000 +\n minutes * 60 * 1000 + // 1000 * 60\n hours * 1000 * 60 * 60; // using 1000 * 60 * 60\n // instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n // this._data = {};\n\n // this._locale = getLocale();\n\n // this._bubble();\n return bubble(this);\n }\n\n isValid(): boolean {\n return this._isValid;\n }\n\n humanize(withSuffix?: boolean): string {\n // throw new Error(`TODO: implement`);\n\n if (!this.isValid()) {\n return this.localeData().invalidDate;\n }\n\n const locale = this.localeData();\n let output = relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n localeData(): Locale {\n return this._locale;\n }\n\n locale(): string;\n locale(localeKey: string): Duration;\n locale(localeKey?: string): Duration | string {\n if (!localeKey) {\n return this._locale._abbr;\n }\n\n this._locale = getLocale(localeKey) || this._locale;\n\n return this;\n }\n\n\n abs(): Duration {\n const mathAbs = Math.abs;\n\n const data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.month = mathAbs(data.month);\n data.year = mathAbs(data.year);\n\n return this;\n }\n\n as(_units: string): number {\n if (!this.isValid()) {\n return NaN;\n }\n let days;\n let months;\n const milliseconds = this._milliseconds;\n\n const units = normalizeUnits(_units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n\n return units === 'month' ? months : months / 12;\n }\n\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' :\n return days / 7 + milliseconds / 6048e5;\n case 'day' :\n return days + milliseconds / 864e5;\n case 'hours' :\n return days * 24 + milliseconds / 36e5;\n case 'minutes' :\n return days * 1440 + milliseconds / 6e4;\n case 'seconds' :\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'milliseconds':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error(`Unknown unit ${units}`);\n }\n }\n\n valueOf () {\n if (!this.isValid()) {\n return NaN;\n }\n\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n}\n\nexport function isDuration(obj: any): obj is Duration {\n return obj instanceof Duration;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { getParsingFlags } from './parsing-flags';\n\nexport function isValid(config: DateParsingConfig): boolean {\n if (config._isValid == null) {\n const flags = getParsingFlags(config);\n const parsedParts = Array.prototype.some.call(flags.parsedDateParts, function (i: number) {\n return i != null;\n });\n let isNowValid = !isNaN(config._d && config._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (config._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(config)) {\n config._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n\n return config._isValid;\n}\n\nexport function createInvalid(config: DateParsingConfig, flags?: { nullInput: boolean }): DateParsingConfig {\n config._d = new Date(NaN);\n Object.assign(getParsingFlags(config), flags || { userInvalidated: true });\n\n return config;\n}\n\nexport function markInvalid(config: DateParsingConfig): DateParsingConfig {\n config._isValid = false;\n\n return config;\n}\n","// tslint:disable-next-line\nimport { defaultLocaleMonthsShort, defaultLocaleWeekdaysShort } from '../locale/locale.class';\nimport { DateArray } from '../types';\nimport { DateParsingConfig } from './parsing.types';\nimport { isString } from '../utils/type-checks';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { createUTCDate } from './date-from-array';\nimport { createInvalid, markInvalid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n// tslint:disable-next-line\nconst extendedIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n// tslint:disable-next-line\nconst basicIsoRegex = /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\nconst tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\nconst isoDates: [string, RegExp, boolean][] = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/, true],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/, true],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/, true],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/, true],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/, true],\n ['YYYYMMDD', /\\d{8}/, true],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/, true],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/, true]\n];\n\n// iso time formats and regexes\nconst isoTimes: [string, RegExp][] = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n];\n\nconst aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\nconst obsOffsets: { [key: string]: number } = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\n// RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n// tslint:disable-next-line\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/;\n\n// date from iso format\nexport function configFromISO(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const input = config._i;\n const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);\n\n\n let allowTime;\n let dateFormat;\n let timeFormat;\n let tzFormat;\n\n if (!match) {\n config._isValid = false;\n\n return config;\n }\n\n // getParsingFlags(config).iso = true;\n let i;\n let l;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n\n if (dateFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n\n if (timeFormat == null) {\n config._isValid = false;\n\n return config;\n }\n\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n\n return config;\n }\n\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n\n return config;\n }\n }\n\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n\n return configFromStringAndFormat(config);\n}\n\n// tslint:disable-next-line\nfunction extractFromRFC2822Strings(yearStr: string, monthStr: string, dayStr: string, hourStr: string, minuteStr: string, secondStr: string): DateArray {\n const result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr: string): number {\n const year = parseInt(yearStr, 10);\n\n return year <= 49 ? year + 2000 : year;\n}\n\nfunction preprocessRFC2822(str: string): string {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return str\n .replace(/\\([^)]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ').trim();\n}\n\nfunction checkWeekday(weekdayStr: string, parsedInput: DateArray, config: DateParsingConfig): boolean {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);\n const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n\n return false;\n }\n }\n\n return true;\n}\n\nfunction calculateOffset(obsOffset: string, militaryOffset: string, numOffset: string) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n const hm = parseInt(numOffset, 10);\n const m = hm % 100;\n const h = (hm - m) / 100;\n\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nexport function configFromRFC2822(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const match = rfc2822.exec(preprocessRFC2822(config._i));\n\n if (!match) {\n return markInvalid(config);\n }\n\n const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return config;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n\n return config;\n}\n\n// date from iso format or fallback\nexport function configFromString(config: DateParsingConfig): DateParsingConfig {\n if (!isString(config._i)) {\n return config;\n }\n\n const matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n\n return config;\n }\n\n // todo: update logic processing\n // isISO -> configFromISO\n // isRFC -> configFromRFC\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return config;\n }\n\n // Final attempt, use Input Fallback\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n}\n\n// hooks.createFromInputFallback = deprecate(\n// 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n// 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n// 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n// 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n// function (config) {\n// config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n// }\n// );\n","// moment.js\n// version : 2.18.1\n// authors : Tim Wood, Iskren Chernev, Moment.js contributors\n// license : MIT\n// momentjs.com\n\nimport './units/index';\nimport { formatFunctions, makeFormatFunction } from './format/format';\nimport { Locale } from './locale/locale.class';\nimport { getLocale } from './locale/locales';\nimport { isDateValid } from './utils/type-checks';\n\nexport function formatDate(date: Date, format: string, locale?: string, isUTC?: boolean, offset = 0): string {\n const _locale = getLocale(locale || 'en');\n if (!_locale) {\n throw new Error(\n `Locale \"${locale}\" is not defined, please add it with \"defineLocale(...)\"`\n );\n }\n\n const _format = format || (isUTC ? 'YYYY-MM-DDTHH:mm:ss[Z]' : 'YYYY-MM-DDTHH:mm:ssZ');\n\n const output = formatMoment(date, _format, _locale, isUTC, offset);\n\n if (!output) {\n return output;\n }\n\n return _locale.postformat(output);\n}\n\n// format date using native date object\nexport function formatMoment(date: Date, _format: string, locale: Locale, isUTC?: boolean, offset = 0): string {\n if (!isDateValid(date)) {\n return locale.invalidDate;\n }\n\n const format = expandFormat(_format, locale);\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](date, locale, isUTC, offset);\n}\n\nexport function expandFormat(_format: string, locale: Locale): string {\n let format = _format;\n let i = 5;\n const localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n const replaceLongDateFormatTokens = (input: any) => {\n return locale.formatLongDate(input) || input;\n };\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n","// Pick the first defined of two or three arguments.\nexport function defaults<T>(a?: T, b?: T, c?: T): T {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n\n return c;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { DateArray } from '../types';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, YEAR } from '../units/constants';\nimport { daysInYear } from '../units/year';\nimport { getParsingFlags } from './parsing-flags';\nimport { createUTCDate } from './date-from-array';\nimport { createDate } from './date-from-array';\nimport { dayOfYearFromWeeks, weekOfYear, weeksInYear } from '../units/week-calendar-utils';\nimport { defaults } from '../utils/defaults';\n\nfunction currentDateArray(config: DateParsingConfig): DateArray {\n const nowValue = new Date();\n\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nexport function configFromArray(config: DateParsingConfig): DateParsingConfig {\n const input = [];\n let i;\n let date;\n let currentDate;\n let expectedWeekday;\n let yearToUse;\n\n if (config._d) {\n return config;\n }\n\n currentDate = currentDateArray(config);\n\n // compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n // if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n\n return config;\n}\n\nfunction dayOfYearFromWeekInfo(config: DateParsingConfig): DateParsingConfig {\n let w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(new Date(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n const curWeek = weekOfYear(new Date(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n\n return config;\n}\n","import { getParsingFlags } from './parsing-flags';\nimport { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, WEEK, WEEKDAY, YEAR } from '../units/constants';\nimport { daysInMonth } from '../units/month';\nimport { DateParsingConfig } from './parsing.types';\n\nexport function checkOverflow(config: DateParsingConfig): DateParsingConfig {\n let overflow;\n const a = config._a;\n\n if (a && getParsingFlags(config).overflow === -2) {\n // todo: fix this sh*t\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(config)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(config)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(config)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(config).overflow = overflow;\n }\n\n return config;\n}\n\n","import { DateParsingConfig } from './parsing.types';\nimport { configFromISO, configFromRFC2822 } from './from-string';\nimport { expandFormat } from '../format';\nimport { formattingTokens, formatTokenFunctions } from '../format/format';\nimport { isArray, isString } from '../utils/type-checks';\nimport { getParseRegexForToken } from '../parse/regex';\nimport { addTimeToArrayFromToken } from '../parse/token';\nimport { HOUR } from '../units/constants';\nimport { configFromArray } from './from-array';\nimport { getParsingFlags } from './parsing-flags';\nimport { checkOverflow } from './check-overflow';\nimport { Locale } from '../locale/locale.class';\n\n// constant that refers to the ISO standard\n// hooks.ISO_8601 = function () {};\nexport const ISO_8601 = 'ISO_8601';\n\n// constant that refers to the RFC 2822 form\n// hooks.RFC_2822 = function () {};\nexport const RFC_2822 = 'RFC_2822';\n\n// date from string and format string\nexport function configFromStringAndFormat(config: DateParsingConfig): DateParsingConfig {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === ISO_8601) {\n return configFromISO(config);\n }\n if (config._f === RFC_2822) {\n return configFromRFC2822(config);\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n if (isArray(config._f) || (!config._i && config._i !== 0)) {\n return config;\n }\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n\n let input = config._i.toString();\n let totalParsedInputLength = 0;\n const inputLength = input.length;\n const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n let i;\n let token;\n let parsedInput;\n let skipped;\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];\n if (parsedInput) {\n skipped = input.substr(0, input.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n input = input.slice(input.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;\n if (input.length > 0) {\n getParsingFlags(config).unusedInput.push(input);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = void 0;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n\n return checkOverflow(config);\n}\n\n\nfunction meridiemFixWrap(locale: Locale, _hour: number, meridiem: string): number {\n let hour = _hour;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n }\n\n if (locale.isPM == null) {\n // this is not supposed to happen\n return hour;\n }\n // Fallback\n const isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n\n if (!isPm && hour === 12) {\n hour = 0;\n }\n\n return hour;\n}\n","import { DateParsingConfig } from './parsing.types';\nimport { createInvalid, isValid } from './valid';\nimport { getParsingFlags } from './parsing-flags';\nimport { configFromStringAndFormat } from './from-string-and-format';\n\n// date from string and array of format strings\nexport function configFromStringAndArray(config: DateParsingConfig): DateParsingConfig {\n let tempConfig;\n let bestMoment;\n let scoreToBeat;\n let currentScore;\n\n if (!config._f || config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n\n return createInvalid(config);\n }\n\n let i;\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = Object.assign({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n // or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n return Object.assign(config, bestMoment || tempConfig);\n}\n","import { normalizeObjectUnits } from '../units/aliases';\nimport { configFromArray } from './from-array';\nimport { DateParsingConfig } from './parsing.types';\nimport { isObject, isString } from '../utils/type-checks';\n\nexport function configFromObject(config: DateParsingConfig): DateParsingConfig {\n if (config._d) {\n return config;\n }\n\n const input = config._i;\n if (isObject(input)) {\n const i = normalizeObjectUnits(input as any);\n config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]\n // todo: obsolete -> remove it\n .map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n }\n\n return configFromArray(config);\n}\n","// tslint:disable:max-line-length\nimport { isArray, isDate, isNumber, isObject, isObjectEmpty, isString, isUndefined } from '../utils/type-checks';\nimport { DateParsingConfig } from './parsing.types';\nimport { getLocale } from '../locale/locales';\nimport { createInvalid, isValid } from './valid';\nimport { configFromStringAndArray } from './from-string-and-array';\nimport { configFromStringAndFormat } from './from-string-and-format';\nimport { cloneDate } from './clone';\nimport { configFromString } from './from-string';\nimport { configFromArray } from './from-array';\nimport { configFromObject } from './from-object';\nimport { checkOverflow } from './check-overflow';\nimport { DateInput } from '../test/chain';\n\nfunction createFromConfig(config: DateParsingConfig): DateParsingConfig {\n const res = checkOverflow(prepareConfig(config));\n // todo: remove, in moment.js it's never called cuz of moment constructor\n res._d = new Date(res._d != null ? res._d.getTime() : NaN);\n if (!isValid(Object.assign({}, res, {_isValid: null}))) {\n res._d = new Date(NaN);\n }\n // todo: update offset\n /*if (res._nextDay) {\n // Adding is smart enough around DST\n res._d = add(res._d, 1, 'day');\n res._nextDay = undefined;\n }*/\n\n return res;\n}\n\nexport function prepareConfig(config: DateParsingConfig): DateParsingConfig {\n let input = config._i;\n const format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid(config, { nullInput: true });\n }\n\n if (isString(input)) {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isDate(input)) {\n config._d = cloneDate(input);\n\n return config;\n }\n\n // todo: add check for recursion\n\n if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config: DateParsingConfig): DateParsingConfig {\n const input = config._i;\n if (isUndefined(input)) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = cloneDate(input);\n } else if (isString(input)) {\n configFromString(config);\n } else if (isArray<string | number>(input) && input.length) {\n const _arr: (string | number)[] = input.slice(0);\n config._a = _arr.map(obj => isString(obj) ? parseInt(obj, 10) : obj);\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n // hooks.createFromInputFallback(config);\n return createInvalid(config);\n }\n\n return config;\n}\n\nexport function createLocalOrUTC(input: DateInput, format?: string | string[], localeKey?: string, strict?: boolean, isUTC?: boolean): DateParsingConfig {\n const config: DateParsingConfig = {};\n let _input = input;\n\n // params switch -> skip; test it well\n // if (localeKey === true || localeKey === false) {\n // strict = localeKey;\n // localeKey = undefined;\n // }\n\n // todo: fail fast and return not valid date\n if ((isObject(_input) && isObjectEmpty(_input)) || (isArray(_input) && _input.length === 0)) {\n _input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n // config._isAMomentObject = true;\n config._useUTC = config._isUTC = isUTC;\n config._l = localeKey;\n config._i = _input;\n config._f = format;\n config._strict = strict;\n\n return createFromConfig(config);\n}\n","import { createLocalOrUTC } from './from-anything';\nimport { DateArray, DateObject } from '../types';\nimport { DateInput } from '../test/chain';\nimport { isDate } from '../utils/type-checks';\n\nexport function parseDate(input: DateInput, format?: string | string[],\n localeKey?: string, strict?: boolean, isUTC?: boolean): Date {\n if (isDate(input)) {\n return input;\n }\n\n const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);\n\n return config._d;\n}\n","export function absRound(num: number): number {\n return num < 0 ? Math.round(num * -1) * -1 : Math.round(num);\n}\n","import { UnitOfTime } from '../types';\nimport { endOf, startOf } from './start-end-of';\n\nexport function isAfter(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() > date2.valueOf();\n }\n\n return date2.valueOf() < startOf(date1, units).valueOf();\n}\n\nexport function isBefore(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() < date2.valueOf();\n }\n\n return endOf(date1, units).valueOf() < date2.valueOf();\n}\n\nexport function isDisabledDay(date: Date, daysDisabled: number[]): boolean {\n if (daysDisabled === undefined || !daysDisabled || !daysDisabled.length) {\n return false;\n }\n\n return daysDisabled.some((day: number) => day === date.getDay());\n}\n\nexport function isBetween(\n date: Date,\n from: Date,\n to: Date,\n units: UnitOfTime,\n inclusivity = '()'\n): boolean {\n const leftBound =\n inclusivity[0] === '('\n ? isAfter(date, from, units)\n : !isBefore(date, from, units);\n const rightBound =\n inclusivity[1] === ')'\n ? isBefore(date, to, units)\n : !isAfter(date, to, units);\n\n return leftBound && rightBound;\n}\n\nexport function isSame(\n date1: Date,\n date2: Date,\n units: UnitOfTime = 'milliseconds'\n): boolean {\n if (!date1 || !date2) {\n return false;\n }\n\n if (units === 'milliseconds') {\n return date1.valueOf() === date2.valueOf();\n }\n\n const inputMs = date2.valueOf();\n\n return (\n startOf(date1, units).valueOf() <= inputMs &&\n inputMs <= endOf(date1, units).valueOf()\n );\n}\n\nexport function isSameDay(date1: Date, date2: Date):boolean{\n return (date1.getDay() == date2.getDay());\n}\n\nexport function isSameOrAfter(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isAfter(date1, date2, units);\n}\n\nexport function isSameOrBefore(\n date1: Date,\n date2: Date,\n units?: UnitOfTime\n): boolean {\n return isSame(date1, date2, units) || isBefore(date1, date2, units);\n}\n","// ASP.NET json date format regex\nimport { Duration, isDuration } from './constructor';\nimport { isDateValid, isNumber, isObject, isString, toInt } from '../utils/type-checks';\nimport { DATE, HOUR, MILLISECOND, MINUTE, SECOND } from '../units/constants';\nimport { parseDate } from '../create/local';\nimport { absRound } from '../utils/abs-round';\nimport { DateObject } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { cloneWithOffset } from '../units/offset';\nimport { isAfter, isBefore } from '../utils/date-compare';\nimport { getFullYear, getMonth } from '../utils/date-getters';\nimport { add } from '../moment/add-subtract';\nimport { cloneDate } from '../create/clone';\n\nconst aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n// from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n// somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n// and further modified to allow for strings containing both week and day\n// tslint:disable-next-line\nconst isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nexport type DurationInput = string | number | Duration | Partial<DateObject> | { from: Date; to: Date };\n\nexport function createDuration(input?: DurationInput, key?: string, config: DateParsingConfig = {}) {\n const duration = convertDuration(input, key);\n // matching against regexp is expensive, do it on demand\n\n return new Duration(duration, config);\n}\n\nfunction convertDuration(input: any, key: string): Partial<DateObject> {\n // checks for null or undefined\n if (input == null) {\n return {};\n }\n\n if (isDuration(input)) {\n return {\n milliseconds: input._milliseconds,\n day: input._days,\n month: input._months\n };\n }\n if (isNumber(input)) {\n // duration = {};\n return key ? { [key]: input } : { milliseconds: input };\n }\n\n if (isString(input)) {\n let match = aspNetRegex.exec(input);\n\n if (match) {\n const sign = (match[1] === '-') ? -1 : 1;\n\n return {\n year: 0,\n day: toInt(match[DATE]) * sign,\n hours: toInt(match[HOUR]) * sign,\n minutes: toInt(match[MINUTE]) * sign,\n seconds: toInt(match[SECOND]) * sign,\n // the millisecond decimal point is included in the match\n milliseconds: toInt(absRound(toInt(match[MILLISECOND]) * 1000)) * sign\n };\n }\n\n match = isoRegex.exec(input);\n if (match) {\n const sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n\n return {\n year: parseIso(match[2], sign),\n month: parseIso(match[3], sign),\n week: parseIso(match[4], sign),\n day: parseIso(match[5], sign),\n hours: parseIso(match[6], sign),\n minutes: parseIso(match[7], sign),\n seconds: parseIso(match[8], sign)\n };\n }\n\n }\n\n if (isObject<{from: any; to: any}>(input) && ('from' in input || 'to' in input)) {\n const diffRes = momentsDifference(parseDate(input.from), parseDate(input.to));\n\n return {\n milliseconds: diffRes.milliseconds,\n month: diffRes.months\n };\n }\n\n return input;\n}\n\n// createDuration.fn = Duration.prototype;\n// createDuration.invalid = invalid;\n\nfunction parseIso(inp: string, sign: number): number {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n const res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n const res = { milliseconds: 0, months: 0 };\n\n res.months = getMonth(other) - getMonth(base) +\n (getFullYear(other) - getFullYear(base)) * 12;\n const _basePlus = add(cloneDate(base), res.months, 'month');\n if (isAfter(_basePlus, other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(add(cloneDate(base), res.months, 'month'));\n\n return res;\n}\n\nfunction momentsDifference(base: Date, other: Date): { milliseconds: number; months: number } {\n if (!(isDateValid(base) && isDateValid(other))) {\n return { milliseconds: 0, months: 0 };\n }\n\n let res;\n const _other = cloneWithOffset(other, base, {_offset: base.getTimezoneOffset()});\n if (isBefore(base, _other)) {\n res = positiveMomentsDifference(base, _other);\n } else {\n res = positiveMomentsDifference(_other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n","import { createDuration } from '../duration/create';\nimport { absRound } from '../utils/abs-round';\nimport { Duration } from '../duration/constructor';\nimport { getDate, getMonth, getTime } from '../utils/date-getters';\nimport { setDate, setMonth, setTime } from '../utils/date-setters';\nimport { cloneDate } from '../create/clone';\nimport { UnitOfTime } from '../types';\n\nexport function add(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, 1, isUTC);\n}\n\nexport function subtract(date: Date, val: number, period: UnitOfTime, isUTC?: boolean): Date {\n const dur = createDuration(val, period);\n\n return addSubtract(date, dur, -1, isUTC);\n}\n\nexport function addSubtract(date: Date, duration: Duration, isAdding: number, isUTC?: boolean): Date {\n const milliseconds = duration._milliseconds;\n const days = absRound(duration._days);\n const months = absRound(duration._months);\n\n // todo: add timezones support\n // const _updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(date, getMonth(date, isUTC) + months * isAdding, isUTC);\n }\n if (days) {\n setDate(date, getDate(date, isUTC) + days * isAdding, isUTC);\n }\n if (milliseconds) {\n setTime(date, getTime(date) + milliseconds * isAdding);\n }\n\n return cloneDate(date);\n // todo: add timezones support\n // if (_updateOffset) {\n // hooks.updateOffset(date, days || months);\n // }\n}\n","import { addFormatToken } from '../format/format';\nimport { Locale } from '../locale/locale.class';\nimport { getDay } from '../utils/date-getters';\nimport { addRegexToken, match1to2 } from '../parse/regex';\nimport { addUnitAlias } from './aliases';\nimport { addUnitPriority } from './priorities';\nimport { addWeekParseToken } from '../parse/token';\nimport { getParsingFlags } from '../create/parsing-flags';\nimport { isNumber, isString, toInt } from '../utils/type-checks';\nimport { DateFormatterOptions, WeekParsing } from '../types';\nimport { DateParsingConfig } from '../create/parsing.types';\nimport { add } from '../moment/add-subtract';\nimport { getLocale } from '../locale/locales';\n\n\nexport function initDayOfWeek() {\n// FORMATTING\n\n addFormatToken('d', null, 'do',\n function(date: Date, opts: DateFormatterOptions): string {\n return getDay(date, opts.isUTC)\n .toString(10);\n }\n );\n\n addFormatToken('dd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysMin(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('ddd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdaysShort(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('dddd', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return opts.locale.weekdays(date, opts.format, opts.isUTC);\n }\n );\n\n addFormatToken('e', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getLocaleDayOfWeek(date, opts.locale, opts.isUTC)\n .toString(10);\n // return getDay(date, opts.isUTC).toString(10);\n }\n );\n addFormatToken('E', null, null,\n function(date: Date, opts: DateFormatterOptions): string {\n return getISODayOfWeek(date, opts.isUTC)\n .toString(10);\n }\n );\n\n// ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n// PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n// PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n\n addRegexToken('dd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysMinRegex(isStrict);\n });\n\n addRegexToken('ddd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function(isStrict: boolean, locale: Locale): RegExp {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(\n ['dd', 'ddd', 'dddd'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token) {\n const weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = !!input;\n }\n\n return config;\n }\n );\n\n addWeekParseToken(\n ['d', 'e', 'E'],\n function(input: string, week: WeekParsing, config: DateParsingConfig, token: string): DateParsingConfig {\n week[token] = toInt(input);\n\n return config;\n }\n );\n}\n\n// HELPERS\n\nexport function parseWeekday(input: string | number, locale: Locale): number {\n if (!isString(input)) {\n return input;\n }\n\n const _num = parseInt(input, 10);\n if (!isNaN(_num)) {\n return _num;\n }\n\n const _weekDay = locale.weekdaysParse(input);\n if (isNumber(_weekDay)) {\n return _weekDay;\n }\n\n return null;\n}\n\nexport function parseIsoWeekday(input: string | number, locale: Locale = getLocale()): number {\n if (isString(input)) {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n\n return isNumber(input) && isNaN(input) ? null : input;\n}\n\n// MOMENTS\n\nexport function getSetDayOfWeek(date: Date, input: number, opts: { isUTC?: boolean; locale: Locale }): Date | number {\n if (!input) {\n return getDayOfWeek(date, opts.isUTC);\n }\n\n return setDayOfWeek(date, input, opts.locale, opts.isUTC);\n}\n\nexport function setDayOfWeek(date: Date, input: number, locale = getLocale(), isUTC?: boolean): Date {\n const day = getDay(date, isUTC);\n const _input = parseWeekday(input, locale);\n\n return add(date, _input - day, 'day');\n}\n\nexport function getDayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC);\n}\n\n/********************************************/\n\n// todo: utc\n// getSetLocaleDayOfWeek\nexport function getLocaleDayOfWeek(date: Date, locale = getLocale(), isUTC?: boolean): number {\n return (getDay(date, isUTC) + 7 - locale.firstDayOfWeek()) % 7;\n}\n\nexport function setLocaleDayOfWeek(date: Date, input: number, opts: { locale?: Locale; isUTC?: boolean } = {}): Date {\n const weekday = getLocaleDayOfWeek(date, opts.locale, opts.isUTC);\n\n return add(date, input - weekday, 'day');\n}\n\n\n// getSetISODayOfWeek\nexport function getISODayOfWeek(date: Date, isUTC?: boolean): number {\n return getDay(date, isUTC) || 7;\n}\n\nexport function setISODayOfWeek(date: Date, input: number | string, opts: { locale?: Locale } = {}): Date {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n const weekday = parseIsoWeekday(input, opts.locale);\n\n return setDayOfWeek(date, getDayOfWeek(date) % 7 ? weekday : weekday - 7);\n}\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\n\nimport { LocaleData } from '../locale/locale.class';\n\nconst symbolMap: {[key: string]: string} = {\n 1: 'Ù¡',\n 2: 'Ù¢',\n 3: 'Ù£',\n 4: 'Ù¤',\n 5: 'Ù¥',\n 6: 'Ù¦',\n 7: 'Ù§',\n 8: 'Ù¨',\n 9: 'Ù©',\n 0: 'Ù '\n};\nconst numberMap: {[key: string]: string} = {\n 'Ù¡': '1',\n 'Ù¢': '2',\n 'Ù£': '3',\n 'Ù¤': '4',\n 'Ù¥': '5',\n 'Ù¦': '6',\n 'Ù§': '7',\n 'Ù¨': '8',\n 'Ù©': '9',\n 'Ù ': '0'\n};\nconst pluralForm = function (num: number): number {\n return num === 0 ? 0 : num === 1 ? 1 : num === 2 ? 2 : num % 100 >= 3 && num % 100 <= 10 ? 3 : num % 100 >= 11 ? 4 : 5;\n};\nconst plurals: {[key: string]: [string, string, [string, string], string, string, string]} = {\n s: ['Ø£ÙÙ Ù
٠ثاÙÙØ©', 'ثاÙÙØ© ÙØ§ØØ¯Ø©', ['ثاÙÙØªØ§Ù', 'ثاÙÙØªÙÙ'], '%d Ø«ÙØ§Ù', '%d ثاÙÙØ©', '%d ثاÙÙØ©'],\n m: ['Ø£ÙÙ Ù
٠دÙÙÙØ©', 'دÙÙÙØ© ÙØ§ØØ¯Ø©', ['دÙÙÙØªØ§Ù', 'دÙÙÙØªÙÙ'], '%d Ø¯ÙØ§Ø¦Ù', '%d دÙÙÙØ©', '%d دÙÙÙØ©'],\n h: ['Ø£ÙÙ Ù
٠ساعة', 'ساعة ÙØ§ØØ¯Ø©', ['ساعتاÙ', 'ساعتÙÙ'], '%d ساعات', '%d ساعة', '%d ساعة'],\n d: ['Ø£ÙÙ Ù
Ù ÙÙÙ
', 'ÙÙÙ
ÙØ§ØØ¯', ['ÙÙÙ
اÙ', 'ÙÙÙ
ÙÙ'], '%d Ø£ÙØ§Ù
', '%d ÙÙÙ
ÙØ§', '%d ÙÙÙ
'],\n M: ['Ø£ÙÙ Ù
Ù Ø´ÙØ±', 'Ø´ÙØ± ÙØ§ØØ¯', ['Ø´ÙØ±Ø§Ù', 'Ø´ÙØ±ÙÙ'], '%d Ø£Ø´ÙØ±', '%d Ø´ÙØ±Ø§', '%d Ø´ÙØ±'],\n y: ['Ø£ÙÙ Ù
٠عاÙ
', 'عاÙ
ÙØ§ØØ¯', ['عاÙ
اÙ', 'عاÙ
ÙÙ'], '%d Ø£Ø¹ÙØ§Ù
', '%d عاÙ
ÙØ§', '%d عاÙ
']\n};\nconst pluralize = function (u: string) {\n return function (num: number, withoutSuffix: boolean): string {\n const f = pluralForm(num);\n let str = plurals[u][pluralForm(num)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n\n return (str as string).replace(/%d/i, num.toString());\n };\n};\nconst months: string[] = [\n 'ÙÙØ§Ùر',\n 'ÙØ¨Ø±Ø§Ùر',\n 'Ù
ارس',\n 'أبرÙÙ',\n 'Ù
اÙÙ',\n 'ÙÙÙÙÙ',\n 'ÙÙÙÙÙ',\n 'أغسطس',\n 'سبتÙ
بر',\n 'Ø£ÙØªÙبر',\n 'ÙÙÙÙ
بر',\n 'Ø¯ÙØ³Ù
بر'\n];\n\nexport const arLocale: LocaleData = {\n abbr: 'ar',\n months,\n monthsShort: months,\n weekdays: 'Ø§ÙØ£ØØ¯_Ø§ÙØ¥Ø«ÙÙÙ_Ø§ÙØ«Ùاثاء_Ø§ÙØ£Ø±Ø¨Ø¹Ø§Ø¡_Ø§ÙØ®Ù
ÙØ³_Ø§ÙØ¬Ù
عة_Ø§ÙØ³Ø¨Øª'.split('_'),\n weekdaysShort: 'Ø£ØØ¯_إثÙÙÙ_Ø«ÙØ§Ø«Ø§Ø¡_أربعاء_Ø®Ù
ÙØ³_جÙ
عة_سبت'.split('_'),\n weekdaysMin: 'Ø_Ù_Ø«_ر_Ø®_ج_س'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n meridiemParse: /ص|Ù
/,\n isPM(input) {\n return 'Ù
' === input;\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'ص';\n } else {\n return 'Ù
';\n }\n },\n calendar: {\n sameDay: '[اÙÙÙÙ
Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n nextDay: '[ØºØ¯ÙØ§ Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n nextWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n lastDay: '[Ø£Ù
س Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n lastWeek: 'dddd [Ø¹ÙØ¯ Ø§ÙØ³Ø§Ø¹Ø©] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'بعد %s',\n past: 'Ù
ÙØ° %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y')\n },\n preparse(str: string): string {\n return str.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n }).replace(/Ø/g, ',');\n },\n postformat(str: string) {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n }).replace(/,/g, 'Ø');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { Khronos } from '../test/chain';\n\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Iskren Ivov Chernev : https://github.com/ichernev\n//! author : Kunal Marwaha : https://github.com/marwahaha\n//! author : Matt Grande : https://github.com/mattgrande\n//! author : Isaac Cambron : https://github.com/icambron\n//! author : Venelin Manchev : https://github.com/vmanchev\n\nexport const bgLocale: LocaleData = {\n abbr: 'bg',\n months: 'ÑнÑаÑи_ÑевÑÑаÑи_маÑÑ_апÑил_май_Ñни_Ñли_авгÑÑÑ_ÑепÑемвÑи_окÑомвÑи_ноемвÑи_декемвÑи'.split('_'),\n monthsShort: 'ÑнÑ_Ñев_маÑ_апÑ_май_Ñни_Ñли_авг_Ñеп_окÑ_ное_дек'.split('_'),\n weekdays: 'неделÑ_понеделник_вÑоÑник_ÑÑÑда_ÑеÑвÑÑÑÑк_пеÑÑк_ÑÑбоÑа'.split('_'),\n weekdaysShort: 'нед_пон_вÑо_ÑÑÑ_ÑеÑ_пеÑ_ÑÑб'.split('_'),\n weekdaysMin: 'нд_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[ÐÐ½ÐµÑ Ð²] LT',\n nextDay: '[УÑÑе в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[ÐÑеÑа в] LT',\n lastWeek: function (d: any) {\n\n switch (d) {\n case 0:\n case 3:\n case 6:\n return '[РизминалаÑа] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[РизминалиÑ] dddd [в] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Ñлед %s',\n past: 'пÑеди %s',\n s: 'нÑколко ÑекÑнди',\n ss: '%d ÑекÑнди',\n m: 'минÑÑа',\n mm: '%d минÑÑи',\n h: 'ÑаÑ',\n hh: '%d ÑаÑа',\n d: 'ден',\n dd: '%d дни',\n M: 'меÑеÑ',\n MM: '%d меÑеÑа',\n y: 'година',\n yy: '%d години'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|Ñи|ви|Ñи|ми)/,\n ordinal: function (_num: number): string {\n\n const number = Number(_num);\n\n let lastDigit = number % 10,\n last2Digits = number % 100;\n\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-Ñи';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-Ñи';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-Ñи';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Xavier Arbat : https://github.com/XavisaurusRex\n\nlet monthsShortDot = 'gen._feb._mar._abr._mai._jun._jul._ago._set._oct._nov._des.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_mai_jun_jul_ago_set_oct_nov_des'.split('_');\n\nlet monthsParse = [/^gen/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^jun/i, /^jul/i, /^ago/i, /^set/i, /^oct/i, /^nov/i, /^des/i];\nlet monthsRegex = /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre|gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i;\n\nexport const caLocale: LocaleData = {\n abbr: 'ca',\n months: 'gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i,\n monthsShortStrictRegex: /^(gen\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|jun\\.?|jul\\.?|ago\\.?|set\\.?|oct\\.?|nov\\.?|des\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split('_'),\n weekdaysShort: 'diu._dil._dim._dix._dij._div._dis.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[avui a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[dema a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[ahir a ' + ('la' + (getHours(date) !== 1) ? 'les' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[el] dddd [' + ('passada la ' + (getHours(date) !== 1) ? 'passades les' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|on|er|rt|é)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n const output = (num > 4) ? 'é' :\n (num === 1 || num === 3) ? 'r' :\n (num === 2) ? 'n' :\n (num === 4) ? 't' : 'é';\n return num + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\n\nconst months: string[] = 'leden_únor_bÅezen_duben_kvÄten_Äerven_Äervenec_srpen_záÅÃ_ÅÃjen_listopad_prosinec'.split('_');\nconst monthsShort: string[] = 'led_úno_bÅe_dub_kvÄ_Ävn_Ävc_srp_záÅ_ÅÃj_lis_pro'.split('_');\n\nfunction plural(num: number): boolean {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const result = num + ' ';\n\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n // break;\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n // break;\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n // break;\n case 'd': // a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'dny' : 'dnÃ');\n } else {\n return result + 'dny';\n }\n // break;\n case 'M': // a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mÄsÃc' : 'mÄsÃcem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'mÄsÃce' : 'mÄsÃců');\n } else {\n return result + 'mÄsÃci';\n }\n // break;\n case 'y': // a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n // break;\n }\n}\n\nexport const csLocale: LocaleData = {\n abbr: 'cs',\n months,\n monthsShort,\n monthsParse: (function (months, monthsShort) {\n let i, _monthsParse = [];\n for (i = 0; i < 12; i++) {\n // use custom parser to solve problem with July (Äervenec)\n _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');\n }\n return _monthsParse;\n }(months, monthsShort)),\n shortMonthsParse: (function (monthsShort) {\n let i, _shortMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _shortMonthsParse[i] = new RegExp('^' + monthsShort[i] + '$', 'i');\n }\n return _shortMonthsParse;\n }(monthsShort)),\n longMonthsParse: (function (months) {\n let i, _longMonthsParse = [];\n for (i = 0; i < 12; i++) {\n _longMonthsParse[i] = new RegExp('^' + months[i] + '$', 'i');\n }\n return _longMonthsParse;\n }(months)),\n weekdays: 'nedÄle_pondÄlÃ_úterý_stÅeda_Ätvrtek_pátek_sobota'.split('_'),\n weekdaysShort: 'ne_po_út_st_Ät_pá_so'.split('_'),\n weekdaysMin: 'ne_po_út_st_Ät_pá_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zÃtra v] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedÄli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve stÅedu v] LT';\n case 4:\n return '[ve Ätvrtek v] LT';\n case 5:\n return '[v pátek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[vÄera v] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulou nedÄli v] LT';\n case 1:\n case 2:\n return '[minulé] dddd [v] LT';\n case 3:\n return '[minulou stÅedu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: 'pÅed %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Danish (Denmark) [da]\n//! author : Per Hansen : https://github.com/perhp\n\nexport const daLocale: LocaleData = {\n abbr: 'da',\n months : 'Januar_Februar_Marts_April_Maj_Juni_Juli_August_September_Oktober_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Maj_Jun_Jul_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays : 'Søndag_Mandag_Tirsdag_Onsdag_Torsdag_Fredag_Lørdag'.split('_'),\n weekdaysShort : 'Søn_Man_Tir_Ons_Tor_Fre_Lør'.split('_'),\n weekdaysMin : 'Sø_Ma_Ti_On_To_Fr_Lø'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D. MMMM YYYY',\n LLL : 'D. MMMM YYYY HH:mm',\n LLLL : 'dddd [d.] D. MMMM YYYY [kl.] HH:mm'\n },\n calendar : {\n sameDay : '[i dag kl.] LT',\n nextDay : '[i morgen kl.] LT',\n nextWeek : 'pÃ¥ dddd [kl.] LT',\n lastDay : '[i gÃ¥r kl.] LT',\n lastWeek : '[i] dddd[s kl.] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'om %s',\n past : '%s siden',\n s : 'fÃ¥ sekunder',\n m : 'et minut',\n mm : '%d minutter',\n h : 'en time',\n hh : '%d timer',\n d : 'en dag',\n dd : '%d dage',\n M : 'en mÃ¥ned',\n MM : '%d mÃ¥neder',\n y : 'et Ã¥r',\n yy : '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\n\nfunction processRelativeTime(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const format: { [key: string]: [string, string] } = {\n 'm': ['eine Minute', 'einer Minute'],\n 'h': ['eine Stunde', 'einer Stunde'],\n 'd': ['ein Tag', 'einem Tag'],\n 'dd': [num + ' Tage', num + ' Tagen'],\n 'M': ['ein Monat', 'einem Monat'],\n 'MM': [num + ' Monate', num + ' Monaten'],\n 'y': ['ein Jahr', 'einem Jahr'],\n 'yy': [num + ' Jahre', num + ' Jahren']\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n}\n\nexport const deLocale: LocaleData = {\n abbr: 'de',\n months: 'Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),\n monthsShort: 'Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split('_'),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split('_'),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]'\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\nexport const enGbLocale: LocaleData = {\n abbr: 'en-gb',\n months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd, D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n const b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return num + output;\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esDoLocale: LocaleData = {\n abbr: 'es-do',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurà : https://github.com/julionc\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_'),\n monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nlet monthsParse = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i];\nlet monthsRegex = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\nexport const esLocale: LocaleData = {\n abbr: 'es',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (United States) [es-us]\n//! author : bustta : https://github.com/bustta\n\nlet monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split('_');\nlet monthsShort = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_');\n\nexport const esUsLocale: LocaleData = {\n abbr: 'es-us',\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n } else {\n return monthsShortDot[getMonth(date, isUTC)];\n }\n },\n monthsParseExact: true,\n weekdays: 'domingo_lunes_martes_miércoles_jueves_viernes_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mié._jue._vie._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM [de] D [de] YYYY',\n LLL: 'MMMM [de] D [de] YYYY h:mm A',\n LLLL: 'dddd, MMMM [de] D [de] YYYY h:mm A'\n },\n calendar: {\n sameDay(date: Date): string {\n return '[hoy a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date): string {\n return '[mañana a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date): string {\n return 'dddd [a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date): string {\n return '[ayer a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date): string {\n return '[el] dddd [pasado a la' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un año',\n yy: '%d años'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n// https://github.com/moment/moment/blob/develop/locale/fi.js\n\nvar numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),\n numbersFuture = [\n 'nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',\n numbersPast[7], numbersPast[8], numbersPast[9]\n ];\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n return isFuture ? 'sekunnin' : 'sekuntia';\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'päivän' : 'päivä';\n case 'dd':\n result = isFuture ? 'päivän' : 'päivää';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(num, isFuture) + ' ' + result;\n return result;\n}\n\nfunction verbalNumber(num: number, isFuture: boolean) {\n return num < 10 ? (isFuture ? numbersFuture[num] : numbersPast[num]) : num;\n}\n\nexport const fiLocale: LocaleData = {\n abbr: 'fi',\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split('_'),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu'.split('_'),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split('_'),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm'\n },\n calendar: {\n sameDay: '[tänään] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s päästä',\n past: '%s sitten',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\n\nexport const frLocale: LocaleData = {\n abbr: 'fr',\n months: 'janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre'.split('_'),\n monthsShort: 'janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.'.split('_'),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Aujourdâhui à ] LT',\n nextDay: '[Demain à ] LT',\n nextWeek: 'dddd [à ] LT',\n lastDay: '[Hier à ] LT',\n lastWeek: 'dddd [dernier à ] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return num + (num === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return num + (num === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return num + (num === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : DarÃo Beiró : https://github.com/quinobravo\n\nlet monthsShortDot = 'xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.'.split('_'),\n monthsShort = 'xan_feb_mar_abr_mai_xuñ_xul_ago_set_out_nov_dec'.split('_');\n\nlet monthsParse = [/^xan/i, /^feb/i, /^mar/i, /^abr/i, /^mai/i, /^xuñ/i, /^xul/i, /^ago/i, /^set/i, /^out/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro|xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i;\n\nexport const glLocale: LocaleData = {\n abbr: 'gl',\n months: 'xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortDot;\n }\n\n if (/-MMM-/.test(format)) {\n return monthsShort[getMonth(date, isUTC)];\n }\n\n return monthsShortDot[getMonth(date, isUTC)];\n },\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n monthsShortStrictRegex: /^(xan\\.?|feb\\.?|mar\\.?|abr\\.?|mai\\.?|xuñ\\.?|xul\\.?|ago\\.?|set\\.?|out\\.?|nov\\.?|dec\\.?)/i,\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n weekdays: 'domingo_luns_martes_mércores_xoves_venres_sábado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mér._xov._ven._sáb.'.split('_'),\n weekdaysMin: 'do_lu_ma_mé_xo_ve_sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm'\n },\n calendar: {\n sameDay(date: Date) {\n return '[hoxe á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextDay(date: Date) {\n return '[mañan á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n nextWeek(date: Date) {\n return 'dddd [á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastDay(date: Date) {\n return '[onte á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n lastWeek(date: Date) {\n return '[o] dddd [pasado á' + ((getHours(date) !== 1) ? 's' : '') + '] LT';\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'en %s',\n past: 'fai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dÃa',\n dd: '%d dÃas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\n\nexport const heLocale: LocaleData = {\n abbr: 'he',\n months: '×× ××ר_פ×ר××ר_×רץ_×פר××_×××_××× ×_××××_××××ס×_ספ×××ר_×××§×××ר_× ××××ר_×צ××ר'.split('_'),\n monthsShort: '×× ×׳_פ×ר׳_×רץ_×פר׳_×××_××× ×_××××_×××׳_ספ×׳_××ק׳_× ××׳_×צ×׳'.split('_'),\n weekdays: 'ר×ש××_×©× ×_ש××ש×_ר×××¢×_×××ש×_ש×ש×_ש×ת'.split('_'),\n weekdaysShort: '×׳_×׳_×׳_×׳_×׳_×׳_ש׳'.split('_'),\n weekdaysMin: '×_×_×_×_×_×_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [×]MMMM YYYY',\n LLL: 'D [×]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [×]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[×××× ×Ö¾]LT',\n nextDay: '[××ר ×Ö¾]LT',\n nextWeek: 'dddd [×שע×] LT',\n lastDay: '[×ת××× ×Ö¾]LT',\n lastWeek: '[××××] dddd [×××ר×× ×שע×] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '××¢×× %s',\n past: '××¤× × %s',\n s: '×ספר ×©× ××ת',\n ss: '%d ×©× ××ת',\n m: '××§×',\n mm: '%d ××§×ת',\n h: 'שע×',\n hh(num: number): string {\n if (num === 2) {\n return 'שעת×××';\n }\n return num + ' שע×ת';\n },\n d: '×××',\n dd(num: number): string {\n if (num === 2) {\n return '××××××';\n }\n return num + ' ××××';\n },\n M: '×××ש',\n MM(num: number): string {\n if (num === 2) {\n return '×××ש×××';\n }\n return num + ' ×××ש××';\n },\n y: '×©× ×',\n yy(num: number): string {\n if (num === 2) {\n return '×©× ×ª×××';\n } else if (num % 10 === 0 && num !== 10) {\n return num + ' ×©× ×';\n }\n return num + ' ×©× ××';\n }\n },\n meridiemParse: /×××\"צ|××¤× ×\"צ|×××¨× ×צ×ר×××|××¤× × ×צ×ר×××|××¤× ×ת ××קר|×××קר|×ער×/i,\n isPM(input) {\n return /^(×××\"צ|×××¨× ×צ×ר×××|×ער×)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 5) {\n return '××¤× ×ת ××קר';\n } else if (hour < 10) {\n return '×××קר';\n } else if (hour < 12) {\n return isLower ? '××¤× ×\"צ' : '××¤× × ×צ×ר×××';\n } else if (hour < 18) {\n return isLower ? '×××\"צ' : '×××¨× ×צ×ר×××';\n } else {\n return '×ער×';\n }\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\n\nlet symbolMap: {[key: string]: string} = {\n 1: '१',\n 2: '२',\n 3: '३',\n 4: '४',\n 5: '५',\n 6: '६',\n 7: 'à¥',\n 8: '८',\n 9: '९',\n 0: '०'\n },\n numberMap: {[key: string]: string} = {\n '१': '1',\n '२': '2',\n '३': '3',\n '४': '4',\n '५': '5',\n '६': '6',\n 'à¥': '7',\n '८': '8',\n '९': '9',\n '०': '0'\n };\n\nexport const hiLocale: LocaleData = {\n abbr: 'hi',\n months: 'à¤à¤¨à¤µà¤°à¥_फ़रवरà¥_मारà¥à¤_à¤
पà¥à¤°à¥à¤²_मà¤_à¤à¥à¤¨_à¤à¥à¤²à¤¾à¤_à¤
à¤à¤¸à¥à¤¤_सितमà¥à¤¬à¤°_à¤
à¤à¥à¤à¥à¤¬à¤°_नवमà¥à¤¬à¤°_दिसमà¥à¤¬à¤°'.split('_'),\n monthsShort: 'à¤à¤¨._फ़र._मारà¥à¤_à¤
पà¥à¤°à¥._मà¤_à¤à¥à¤¨_à¤à¥à¤²._à¤
à¤._सित._à¤
à¤à¥à¤à¥._नव._दिस.'.split('_'),\n monthsParseExact: true,\n weekdays: 'रविवार_सà¥à¤®à¤µà¤¾à¤°_मà¤à¤à¤²à¤µà¤¾à¤°_बà¥à¤§à¤µà¤¾à¤°_à¤à¥à¤°à¥à¤µà¤¾à¤°_शà¥à¤à¥à¤°à¤µà¤¾à¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_सà¥à¤®_मà¤à¤à¤²_बà¥à¤§_à¤à¥à¤°à¥_शà¥à¤à¥à¤°_शनि'.split('_'),\n weekdaysMin: 'र_सà¥_मà¤_बà¥_à¤à¥_शà¥_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm बà¤à¥',\n LTS: 'A h:mm:ss बà¤à¥',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm बà¤à¥',\n LLLL: 'dddd, D MMMM YYYY, A h:mm बà¤à¥'\n },\n calendar: {\n sameDay: '[à¤à¤] LT',\n nextDay: '[à¤à¤²] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[à¤à¤²] LT',\n lastWeek: '[पिà¤à¤²à¥] dddd, LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s मà¥à¤',\n past: '%s पहलà¥',\n s: 'à¤à¥à¤ हॠà¤à¥à¤·à¤£',\n ss: '%d सà¥à¤à¤à¤¡',\n m: 'à¤à¤ मिनà¤',\n mm: '%d मिनà¤',\n h: 'à¤à¤ à¤à¤à¤à¤¾',\n hh: '%d à¤à¤à¤à¥',\n d: 'à¤à¤ दिन',\n dd: '%d दिन',\n M: 'à¤à¤ महà¥à¤¨à¥',\n MM: '%d महà¥à¤¨à¥',\n y: 'à¤à¤ वरà¥à¤·',\n yy: '%d वरà¥à¤·'\n },\n preparse(str: string): string {\n return str.replace(/[१२३४५६à¥à¥®à¥¯à¥¦]/g, function (match) {\n return numberMap[match];\n });\n },\n postformat(str: string): string {\n return str.replace(/\\d/g, function (match) {\n return symbolMap[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|सà¥à¤¬à¤¹|दà¥à¤ªà¤¹à¤°|शाम/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'सà¥à¤¬à¤¹') {\n return hour;\n } else if (meridiem === 'दà¥à¤ªà¤¹à¤°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'सà¥à¤¬à¤¹';\n } else if (hour < 17) {\n return 'दà¥à¤ªà¤¹à¤°';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\n\nlet weekEndings = 'vasárnap hétfÅn kedden szerdán csütörtökön pénteken szombaton'.split(' ');\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n switch (key) {\n case 's':\n return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';\n case 'ss':\n return num + ((isFuture || withoutSuffix) ? ' másodperc' : ' másodperce');\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órája');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' év' : ' éve');\n }\n return '';\n}\nfunction week(date: Date, isFuture: boolean) {\n return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[getDayOfWeek(date)] + '] LT[-kor]';\n}\n\nexport const huLocale: LocaleData = {\n abbr: 'hu',\n months : 'január_február_március_április_május_június_július_augusztus_szeptember_október_november_december'.split('_'),\n monthsShort : 'jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec'.split('_'),\n weekdays : 'vasárnap_hétfÅ_kedd_szerda_csütörtök_péntek_szombat'.split('_'),\n weekdaysShort : 'vas_hét_kedd_sze_csüt_pén_szo'.split('_'),\n weekdaysMin : 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat : {\n LT : 'H:mm',\n LTS : 'H:mm:ss',\n L : 'YYYY.MM.DD.',\n LL : 'YYYY. MMMM D.',\n LLL : 'YYYY. MMMM D. H:mm',\n LLLL : 'YYYY. MMMM D., dddd H:mm'\n },\n meridiemParse: /de|du/i,\n isPM (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar : {\n sameDay : '[ma] LT[-kor]',\n nextDay : '[holnap] LT[-kor]',\n nextWeek (date: Date) {\n return week(date, true);\n },\n lastDay : '[tegnap] LT[-kor]',\n lastWeek (date: Date) {\n return week(date, false);\n },\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s múlva',\n past : '%s',\n s : translate,\n ss : translate,\n m : translate,\n mm : translate,\n h : translate,\n hh : translate,\n d : translate,\n dd : translate,\n M : translate,\n MM : translate,\n y : translate,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal : '%d.',\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Indonesia [id]\n//! author : Romy Kusuma : https://github.com/rkusuma\n//! reference: https://github.com/moment/moment/blob/develop/locale/id.js\n\nexport const idLocale: LocaleData = {\n abbr: 'id',\n months : 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des'.split('_'),\n weekdays : 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort : 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin : 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat : {\n LT : 'HH.mm',\n LTS : 'HH.mm.ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY [pukul] HH.mm',\n LLLL : 'dddd, D MMMM YYYY [pukul] HH.mm'\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem(hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar : {\n sameDay : '[Hari ini pukul] LT',\n nextDay : '[Besok pukul] LT',\n nextWeek : 'dddd [pukul] LT',\n lastDay : '[Kemarin pukul] LT',\n lastWeek : 'dddd [lalu pukul] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'dalam %s',\n past : '%s yang lalu',\n s : 'beberapa detik',\n ss : '%d detik',\n m : 'semenit',\n mm : '%d menit',\n h : 'sejam',\n hh : '%d jam',\n d : 'sehari',\n dd : '%d hari',\n M : 'sebulan',\n MM : '%d bulan',\n y : 'setahun',\n yy : '%d tahun'\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\n\nexport const itLocale: LocaleData = {\n abbr: 'it',\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split('_'),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato'.split('_'),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future(num: number): string {\n return ((/^[0-9].+$/).test(num.toString(10)) ? 'tra' : 'in') + ' ' + num;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: 'un\\'ora',\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\n\nexport const jaLocale: LocaleData = {\n abbr: 'ja',\n months : '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n monthsShort : '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n weekdays : 'æ¥ææ¥_æææ¥_ç«ææ¥_æ°´ææ¥_æ¨ææ¥_éææ¥_åææ¥'.split('_'),\n weekdaysShort : 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'),\n weekdaysMin : 'æ¥_æ_ç«_æ°´_æ¨_é_å'.split('_'),\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY/MM/DD',\n LL : 'YYYYå¹´MæDæ¥',\n LLL : 'YYYYå¹´MæDæ¥ HH:mm',\n LLLL : 'YYYYå¹´MæDæ¥ HH:mm dddd',\n l : 'YYYY/MM/DD',\n ll : 'YYYYå¹´MæDæ¥',\n lll : 'YYYYå¹´MæDæ¥ HH:mm',\n llll : 'YYYYå¹´MæDæ¥ HH:mm dddd'\n },\n meridiemParse: /åå|åå¾/i,\n isPM (input) {\n return input === 'åå¾';\n },\n meridiem (hour, minute, isLower) {\n if (hour < 12) {\n return 'åå';\n } else {\n return 'åå¾';\n }\n },\n calendar : {\n sameDay : '[仿¥] LT',\n nextDay : '[ææ¥] LT',\n nextWeek : '[æ¥é±]dddd LT',\n lastDay : '[æ¨æ¥] LT',\n lastWeek : '[åé±]dddd LT',\n sameElse : 'L'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}æ¥/,\n ordinal (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'æ¥';\n default:\n return num.toString(10);\n }\n },\n relativeTime : {\n future : '%så¾',\n past : '%så',\n s : 'æ°ç§',\n ss : '%dç§',\n m : '1å',\n mm : '%då',\n h : '1æé',\n hh : '%dæé',\n d : '1æ¥',\n dd : '%dæ¥',\n M : '1ã¶æ',\n MM : '%dã¶æ',\n y : '1å¹´',\n yy : '%då¹´'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\n\nexport const koLocale: LocaleData = {\n abbr: 'ko',\n months : '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'),\n monthsShort : '1ì_2ì_3ì_4ì_5ì_6ì_7ì_8ì_9ì_10ì_11ì_12ì'.split('_'),\n weekdays : 'ì¼ìì¼_ììì¼_íìì¼_ììì¼_목ìì¼_ê¸ìì¼_í ìì¼'.split('_'),\n weekdaysShort : 'ì¼_ì_í_ì_목_ê¸_í '.split('_'),\n weekdaysMin : 'ì¼_ì_í_ì_목_ê¸_í '.split('_'),\n longDateFormat : {\n LT : 'A h:mm',\n LTS : 'A h:mm:ss',\n L : 'YYYY.MM.DD',\n LL : 'YYYYë
MMMM Dì¼',\n LLL : 'YYYYë
MMMM Dì¼ A h:mm',\n LLLL : 'YYYYë
MMMM Dì¼ dddd A h:mm',\n l : 'YYYY.MM.DD',\n ll : 'YYYYë
MMMM Dì¼',\n lll : 'YYYYë
MMMM Dì¼ A h:mm',\n llll : 'YYYYë
MMMM Dì¼ dddd A h:mm'\n },\n calendar : {\n sameDay : 'ì¤ë LT',\n nextDay : 'ë´ì¼ LT',\n nextWeek : 'dddd LT',\n lastDay : 'ì´ì LT',\n lastWeek : 'ì§ë주 dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : '%s í',\n past : '%s ì ',\n s : 'ëª ì´',\n ss : '%dì´',\n m : '1ë¶',\n mm : '%dë¶',\n h : 'í ìê°',\n hh : '%dìê°',\n d : 'í루',\n dd : '%dì¼',\n M : 'í ë¬',\n MM : '%dë¬',\n y : 'ì¼ ë
',\n yy : '%dë
'\n },\n dayOfMonthOrdinalParse : /\\d{1,2}(ì¼|ì|주)/,\n ordinal : function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'ì¼';\n case 'M':\n return num + 'ì';\n case 'w':\n case 'W':\n return num + '주';\n default:\n return num.toString(10);\n }\n },\n meridiemParse : /ì¤ì |ì¤í/,\n isPM : function (token) {\n return token === 'ì¤í';\n },\n meridiem : function (hour, minute, isUpper) {\n return hour < 12 ? 'ì¤ì ' : 'ì¤í';\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Stanislavas Guk : https://github.com/ixoster\n\nconst units = {\n ss : 'sekundÄ_sekundžių_sekundes',\n m : 'minutÄ_minutÄs_minutÄ',\n mm: 'minutÄs_minuÄių_minutes',\n h : 'valanda_valandos_valandÄ
',\n hh: 'valandos_valandų_valandas',\n d : 'diena_dienos_dienÄ
',\n dd: 'dienos_dienų_dienas',\n M : 'mÄnuo_mÄnesio_mÄnesį',\n MM: 'mÄnesiai_mÄnesių_mÄnesius',\n y : 'metai_metų_metus',\n yy: 'metai_metų_metus'\n};\nfunction translateSeconds(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n if (withoutSuffix) {\n return 'kelios sekundÄs';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n}\nfunction translateSingular(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);\n}\nfunction special(num: number) {\n return num % 10 === 0 || (num > 10 && num < 20);\n}\nfunction forms(key: string) {\n return units[key].split('_');\n}\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n let result = num + ' ';\n if (num === 1) {\n return result + translateSingular(num, withoutSuffix, key[0], isFuture);\n } else if (withoutSuffix) {\n return result + (special(num) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(num) ? forms(key)[1] : forms(key)[2]);\n }\n }\n}\n\nexport const ltLocale: LocaleData = {\n abbr: 'lt',\n months : {\n format: 'sausio_vasario_kovo_balandžio_gegužÄs_birželio_liepos_rugpjÅ«Äio_rugsÄjo_spalio_lapkriÄio_gruodžio'.split('_'),\n standalone: 'sausis_vasaris_kovas_balandis_gegužÄ_birželis_liepa_rugpjÅ«tis_rugsÄjis_spalis_lapkritis_gruodis'.split('_'),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/\n },\n monthsShort : 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays : {\n format: 'sekmadienį_pirmadienį_antradienį_treÄiadienį_ketvirtadienį_penktadienį_Å¡eÅ¡tadienį'.split('_'),\n standalone: 'sekmadienis_pirmadienis_antradienis_treÄiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis'.split('_'),\n isFormat: /dddd HH:mm/\n },\n weekdaysShort : 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡'.split('_'),\n weekdaysMin : 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'YYYY-MM-DD',\n LL : 'YYYY [m.] MMMM D [d.]',\n LLL : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL : 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l : 'YYYY-MM-DD',\n ll : 'YYYY [m.] MMMM D [d.]',\n lll : 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll : 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]'\n },\n calendar : {\n sameDay : '[Å iandien] LT',\n nextDay : '[Rytoj] LT',\n nextWeek : 'dddd LT',\n lastDay : '[Vakar] LT',\n lastWeek : '[PraÄjusį] dddd LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'po %s',\n past : 'prieÅ¡ %s',\n s : translateSeconds,\n ss : translate,\n m : translateSingular,\n mm : translate,\n h : translateSingular,\n hh : translate,\n d : translateSingular,\n dd : translate,\n M : translateSingular,\n MM : translate,\n y : translateSingular,\n yy : translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal(num) {\n return num + '-oji';\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-shorthand\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Mongolian [mn]\n//! author : Javkhlantugs Nyamdorj : https://github.com/javkhaanj7\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ñ
ÑдÑ
Ñн ÑекÑнд' : 'Ñ
ÑдÑ
Ñн ÑекÑндÑн';\n case 'ss':\n return num + (withoutSuffix ? ' ÑекÑнд' : ' ÑекÑндÑн');\n case 'm':\n case 'mm':\n return num + (withoutSuffix ? ' минÑÑ' : ' минÑÑÑн');\n case 'h':\n case 'hh':\n return num + (withoutSuffix ? ' Ñаг' : ' Ñагийн');\n case 'd':\n case 'dd':\n return num + (withoutSuffix ? ' өдөÑ' : ' өдÑийн');\n case 'M':\n case 'MM':\n return num + (withoutSuffix ? ' ÑаÑ' : ' ÑаÑÑн');\n case 'y':\n case 'yy':\n return num + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return num.toString(10);\n }\n}\n\nexport const mnLocale: LocaleData = {\n abbr: 'mn',\n months: 'ÐÑгдүгÑÑÑ ÑаÑ_ХоÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÓ©ÑөвдүгÑÑÑ ÑаÑ_ТавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑÑгадÑÐ³Ð°Ð°Ñ ÑаÑ_ÐолдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐаймдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑдүгÑÑÑ ÑаÑ_ÐÑавдÑÐ³Ð°Ð°Ñ ÑаÑ_ÐÑван нÑгдүгÑÑÑ ÑаÑ_ÐÑван Ñ
оÑÑдÑÐ³Ð°Ð°Ñ ÑаÑ'.split('_'),\n monthsShort: '1 ÑаÑ_2 ÑаÑ_3 ÑаÑ_4 ÑаÑ_5 ÑаÑ_6 ÑаÑ_7 ÑаÑ_8 ÑаÑ_9 ÑаÑ_10 ÑаÑ_11 ÑаÑ_12 ÑаÑ'.split('_'),\n monthsParseExact: true,\n weekdays: 'ÐÑм_Ðаваа_ÐÑгмаÑ_ÐÑ
агва_ÐÒ¯ÑÑв_ÐааÑан_ÐÑмба'.split('_'),\n weekdaysShort: 'ÐÑм_Ðав_ÐÑг_ÐÑ
а_ÐÒ¯Ñ_Ðаа_ÐÑм'.split('_'),\n weekdaysMin: 'ÐÑ_Ðа_ÐÑ_ÐÑ
_ÐÒ¯_Ðа_ÐÑ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY Ð¾Ð½Ñ MMMMÑн D',\n LLL: 'YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm',\n LLLL: 'dddd, YYYY Ð¾Ð½Ñ MMMMÑн D HH:mm'\n },\n meridiemParse: /Ò®Ó¨|ҮХ/i,\n isPM: function (input) {\n return input === 'ҮХ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ò®Ó¨';\n } else {\n return 'ҮХ';\n }\n },\n calendar: {\n sameDay: '[ӨнөөдөÑ] LT',\n nextDay: '[ÐаÑгааÑ] LT',\n nextWeek: '[ÐÑÑÑ
] dddd LT',\n lastDay: '[Ó¨ÑигдөÑ] LT',\n lastWeek: '[ӨнгөÑÑөн] dddd LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s даÑаа',\n past: '%s өмнө',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өдөÑ/,\n ordinal: function (num: number, period: string): string {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + ' өдөÑ';\n default:\n return num.toString(10);\n }\n }\n};\n","// tslint:disable:comment-format\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Norwegian BokmÃ¥l [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\n\nexport const nbLocale: LocaleData = {\n abbr: 'nb',\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split('_'),\n monthsShort: 'jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.'.split('_'),\n monthsParseExact: true,\n weekdays: 'søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag'.split('_'),\n weekdaysShort: 'sø._ma._ti._on._to._fr._lø.'.split('_'),\n weekdaysMin: 'sø_ma_ti_on_to_fr_lø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm'\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gÃ¥r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n M: 'en mÃ¥ned',\n MM: '%d mÃ¥neder',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_');\nlet monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlBeLocale: LocaleData = {\n abbr: 'nl-be',\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'één minuut',\n mm: '%d minuten',\n h: 'één uur',\n hh: '%d uur',\n d: 'één dag',\n dd: '%d dagen',\n M: 'één maand',\n MM: '%d maanden',\n y: 'één jaar',\n yy: '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\n\nlet monthsShortWithDots = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split('_'),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split('_');\n\nlet monthsParse = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i];\nlet monthsRegex = /^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\nexport const nlLocale: LocaleData = {\n abbr: 'nl',\n months : 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split('_'),\n monthsShort (date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[getMonth(date, isUTC)];\n } else {\n return monthsShortWithDots[getMonth(date, isUTC)];\n }\n },\n\n monthsRegex,\n monthsShortRegex: monthsRegex,\n monthsStrictRegex: /^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse,\n longMonthsParse : monthsParse,\n shortMonthsParse : monthsParse,\n\n weekdays : 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split('_'),\n weekdaysShort : 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin : 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact : true,\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD-MM-YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY HH:mm',\n LLLL : 'dddd D MMMM YYYY HH:mm'\n },\n calendar : {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : 'over %s',\n past : '%s geleden',\n s : 'een paar seconden',\n ss : '%d seconden',\n m : 'één minuut',\n mm : '%d minuten',\n h : 'één uur',\n hh : '%d uur',\n d : 'één dag',\n dd : '%d dagen',\n M : 'één maand',\n MM : '%d maanden',\n y : 'één jaar',\n yy : '%d jaar'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal (_num: number): string {\n const num = Number(_num);\n return num + ((num === 1 || num === 8 || num >= 20) ? 'ste' : 'de');\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getMonth } from '../utils/date-getters';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\n\nlet monthsNominative = 'styczeÅ_luty_marzec_kwiecieÅ_maj_czerwiec_lipiec_sierpieÅ_wrzesieÅ_październik_listopad_grudzieÅ'.split('_');\nlet monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅnia_października_listopada_grudnia'.split('_');\n\nfunction plural(num: number): boolean {\n return (num % 10 < 5) && (num % 10 > 1) && ((~~(num / 10) % 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string): string {\n let result = num + ' ';\n switch (key) {\n case 'ss':\n return result + (plural(num) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutÄ';\n case 'mm':\n return result + (plural(num) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinÄ';\n case 'hh':\n return result + (plural(num) ? 'godziny' : 'godzin');\n case 'MM':\n return result + (plural(num) ? 'miesiÄ
ce' : 'miesiÄcy');\n case 'yy':\n return result + (plural(num) ? 'lata' : 'lat');\n }\n}\n\nexport const plLocale: LocaleData = {\n abbr: 'pl',\n months(date: Date, format: string, isUTC?: boolean): string | string[] {\n if (!date) {\n return monthsNominative;\n } else if (format === '') {\n // Hack: if format empty we know this is used to generate\n // RegExp by moment. Give then back both valid forms of months\n // in RegExp ready format.\n return '(' + monthsSubjective[getMonth(date, isUTC)] + '|' + monthsNominative[getMonth(date, isUTC)] + ')';\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[getMonth(date, isUTC)];\n } else {\n return monthsNominative[getMonth(date, isUTC)];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru'.split('_'),\n weekdays: 'niedziela_poniedziaÅek_wtorek_Åroda_czwartek_piÄ
tek_sobota'.split('_'),\n weekdaysShort: 'ndz_pon_wt_År_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_År_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[DziÅ o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W niedzielÄ o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W ÅrodÄ o] LT';\n\n case 5:\n return '[W piÄ
tek o] LT';\n\n case 6:\n return '[W sobotÄ o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[W zeszÅÄ
niedzielÄ o] LT';\n case 3:\n return '[W zeszÅÄ
ÅrodÄ o] LT';\n case 4:\n return '[W zeszÅÄ
czwartek o] LT';\n case 5:\n return '[W zeszÅÄ
piÄ
tek o] LT';\n case 6:\n return '[W zeszÅÄ
sobotÄ o] LT';\n default:\n return '[W zeszÅy] dddd [o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: '1 dzieÅ',\n dd: '%d dni',\n M: 'miesiÄ
c',\n MM: translate,\n y: 'rok',\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\n\nexport const ptBrLocale: LocaleData = {\n abbr: 'pt-br',\n months: 'Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro'.split('_'),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado'.split('_'),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_Sáb'.split('_'),\n weekdaysMin: 'Do_2ª_3ª_4ª_5ª_6ª_Sá'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [à s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [à s] HH:mm'\n },\n calendar: {\n sameDay: '[Hoje à s] LT',\n nextDay: '[Amanhã à s] LT',\n nextWeek: 'dddd [à s] LT',\n lastDay: '[Ontem à s] LT',\n lastWeek(date: Date) {\n return (getDayOfWeek(date) === 0 || getDayOfWeek(date) === 6) ?\n '[Ãltimo] dddd [à s] LT' : // Saturday + Sunday\n '[Ãltima] dddd [à s] LT'; // Monday - Friday\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'em %s',\n past: '%s atrás',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mês',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\n ordinal: '%dº'\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\nimport { LocaleData } from '../locale/locale.class';\n\n// ! moment.js locale configuration\n// ! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\n// ! author : Earle white: https://github.com/5earle\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key:string]: string} = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n MM: 'luni',\n yy: 'ani'\n };\n\n let separator = ' ';\n if (num % 100 >= 20 || (num >= 100 && num % 100 === 0)) {\n separator = ' de ';\n }\n return num + separator + format[key];\n}\n\n\nexport const roLocale: LocaleData = {\n abbr: 'ro',\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split('_'),\n monthsShort: 'ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'duminicÄ_luni_marÈi_miercuri_joi_vineri_sâmbÄtÄ'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_Sâm'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_Sâ'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mâine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s în urmÄ',\n s: 'câteva secunde',\n ss: relativeTimeWithPlural,\n m: 'un minut',\n mm: relativeTimeWithPlural,\n h: 'o orÄ',\n hh: relativeTimeWithPlural,\n d: 'o zi',\n dd: relativeTimeWithPlural,\n M: 'o lunÄ',\n MM: relativeTimeWithPlural,\n y: 'un an',\n yy: relativeTimeWithPlural\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getWeek } from '../units/week';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : ÐоÑенбеÑг ÐаÑк : https://github.com/socketpair\n\nfunction plural(word: string, num: number): string {\n let forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);\n}\n\nfunction relativeTimeWithPlural(num: number, withoutSuffix: boolean, key: string): string {\n let format: {[key: string]: string} = {\n ss: withoutSuffix ? 'ÑекÑнда_ÑекÑндÑ_ÑекÑнд' : 'ÑекÑндÑ_ÑекÑндÑ_ÑекÑнд',\n mm: withoutSuffix ? 'минÑÑа_минÑÑÑ_минÑÑ' : 'минÑÑÑ_минÑÑÑ_минÑÑ',\n hh: 'ÑаÑ_ÑаÑа_ÑаÑов',\n dd: 'денÑ_днÑ_дней',\n MM: 'меÑÑÑ_меÑÑÑа_меÑÑÑев',\n yy: 'год_года_леÑ'\n };\n if (key === 'm') {\n return withoutSuffix ? 'минÑÑа' : 'минÑÑÑ';\n }\n return num + ' ' + plural(format[key], +num);\n}\n\nlet monthsParse = [/^Ñнв/i, /^Ñев/i, /^маÑ/i, /^апÑ/i, /^ма[йÑ]/i, /^иÑн/i, /^иÑл/i, /^авг/i, /^Ñен/i, /^окÑ/i, /^ноÑ/i, /^дек/i];\n\n// http://new.gramota.ru/spravka/rules/139-prop : § 103\n// СокÑаÑÐµÐ½Ð¸Ñ Ð¼ÐµÑÑÑев: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n// CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\nexport const ruLocale: LocaleData = {\n abbr: 'ru',\n months: {\n format: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑа_апÑелÑ_маÑ_иÑнÑ_иÑлÑ_авгÑÑÑа_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_'),\n standalone: 'ÑнваÑÑ_ÑевÑалÑ_маÑÑ_апÑелÑ_май_иÑнÑ_иÑлÑ_авгÑÑÑ_ÑенÑÑбÑÑ_окÑÑбÑÑ_ноÑбÑÑ_декабÑÑ'.split('_')\n },\n monthsShort: {\n // по CLDR именно \"иÑл.\" и \"иÑн.\", но какой ÑмÑÑл менÑÑÑ Ð±ÑÐºÐ²Ñ Ð½Ð° ÑоÑÐºÑ ?\n format: 'Ñнв._ÑевÑ._маÑ._апÑ._маÑ_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_'),\n standalone: 'Ñнв._ÑевÑ._маÑÑ_апÑ._май_иÑнÑ_иÑлÑ_авг._ÑенÑ._окÑ._ноÑб._дек.'.split('_')\n },\n weekdays: {\n standalone: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑеда_ÑеÑвеÑг_пÑÑниÑа_ÑÑббоÑа'.split('_'),\n format: 'воÑкÑеÑенÑе_понеделÑник_вÑоÑник_ÑÑедÑ_ÑеÑвеÑг_пÑÑниÑÑ_ÑÑббоÑÑ'.split('_'),\n isFormat: /\\[ ?[Ðв] ?(?:пÑоÑлÑÑ|ÑледÑÑÑÑÑ|ÑÑÑ)? ?\\] ?dddd/\n },\n weekdaysShort: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n weekdaysMin: 'вÑ_пн_вÑ_ÑÑ_ÑÑ_пÑ_Ñб'.split('_'),\n monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸, по ÑÑи бÑквÑ, Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
, по 4 бÑквÑ, ÑокÑаÑÐµÐ½Ð¸Ñ Ñ ÑоÑкой и без ÑоÑки\n monthsRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\\.?|ÑевÑал[ÑÑ]|ÑевÑ?\\.?|маÑÑа?|маÑ\\.?|апÑел[ÑÑ]|апÑ\\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\\.?|иÑл[ÑÑ]|иÑл\\.?|авгÑÑÑа?|авг\\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\\.?|окÑÑбÑ[ÑÑ]|окÑ\\.?|ноÑбÑ[ÑÑ]|ноÑб?\\.?|декабÑ[ÑÑ]|дек\\.?)/i,\n\n // ÐºÐ¾Ð¿Ð¸Ñ Ð¿ÑедÑдÑÑего\n monthsShortRegex: /^(ÑнваÑ[ÑÑ]|Ñнв\\.?|ÑевÑал[ÑÑ]|ÑевÑ?\\.?|маÑÑа?|маÑ\\.?|апÑел[ÑÑ]|апÑ\\.?|ма[йÑ]|иÑн[ÑÑ]|иÑн\\.?|иÑл[ÑÑ]|иÑл\\.?|авгÑÑÑа?|авг\\.?|ÑенÑÑбÑ[ÑÑ]|ÑенÑ?\\.?|окÑÑбÑ[ÑÑ]|окÑ\\.?|ноÑбÑ[ÑÑ]|ноÑб?\\.?|декабÑ[ÑÑ]|дек\\.?)/i,\n\n // полнÑе Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ñ Ð¿Ð°Ð´ÐµÐ¶Ð°Ð¼Ð¸\n monthsStrictRegex: /^(ÑнваÑ[ÑÑ]|ÑевÑал[ÑÑ]|маÑÑа?|апÑел[ÑÑ]|ма[Ñй]|иÑн[ÑÑ]|иÑл[ÑÑ]|авгÑÑÑа?|ÑенÑÑбÑ[ÑÑ]|окÑÑбÑ[ÑÑ]|ноÑбÑ[ÑÑ]|декабÑ[ÑÑ])/i,\n\n // ÐÑÑажение, коÑоÑое ÑооÑвеÑÑвÑÐµÑ ÑолÑко ÑокÑаÑÑннÑм ÑоÑмам\n monthsShortStrictRegex: /^(Ñнв\\.|ÑевÑ?\\.|маÑ[Ñ.]|апÑ\\.|ма[Ñй]|иÑн[ÑÑ.]|иÑл[ÑÑ.]|авг\\.|ÑенÑ?\\.|окÑ\\.|ноÑб?\\.|дек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm'\n },\n calendar: {\n sameDay: '[Ð¡ÐµÐ³Ð¾Ð´Ð½Ñ Ð²] LT',\n nextDay: '[ÐавÑÑа в] LT',\n lastDay: '[ÐÑеÑа в] LT',\n nextWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[Ð ÑледÑÑÑее] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Ð ÑледÑÑÑий] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Ð ÑледÑÑÑÑÑ] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Ðо] dddd [в] LT';\n } else {\n return '[Ð] dddd [в] LT';\n }\n }\n },\n lastWeek(date: Date, now: Date) {\n if (getWeek(now) !== getWeek(date)) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[РпÑоÑлое] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n return '[РпÑоÑлÑй] dddd [в] LT';\n case 3:\n case 5:\n case 6:\n return '[РпÑоÑлÑÑ] dddd [в] LT';\n }\n } else {\n if (getDayOfWeek(date) === 2) {\n return '[Ðо] dddd [в] LT';\n } else {\n return '[Ð] dddd [в] LT';\n }\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'ÑеÑез %s',\n past: '%s назад',\n s: 'неÑколÑко ÑекÑнд',\n ss: relativeTimeWithPlural,\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: 'ÑаÑ',\n hh: relativeTimeWithPlural,\n d: 'денÑ',\n dd: relativeTimeWithPlural,\n M: 'меÑÑÑ',\n MM: relativeTimeWithPlural,\n y: 'год',\n yy: relativeTimeWithPlural\n },\n meridiemParse: /ноÑи|ÑÑÑа|днÑ|веÑеÑа/i,\n isPM(input) {\n return /^(днÑ|веÑеÑа)$/.test(input);\n },\n meridiem(hour, minute, isLower) {\n if (hour < 4) {\n return 'ноÑи';\n } else if (hour < 12) {\n return 'ÑÑÑа';\n } else if (hour < 17) {\n return 'днÑ';\n } else {\n return 'веÑеÑа';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|Ñ)/,\n ordinal(_num: number, period: string): string {\n const num = Number(_num);\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return num + '-й';\n case 'D':\n return num + '-го';\n case 'w':\n case 'W':\n return num + '-Ñ';\n default:\n return num.toString(10);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Jozef Pažin : https://github.com/atiris\n\nconst months = 'január_február_marec_aprÃl_máj_jún_júl_august_september_október_november_december'.split('_');\nconst monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_');\n\nfunction plural(num: number): boolean {\n return (num > 1) && (num < 5) && (~~(num / 10) !== 1);\n}\n\nfunction translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n const result = num + ' ';\n\n switch (key) {\n case 's':// a few seconds / in a few seconds / a few seconds ago\n return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';\n case 'ss':// 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'sekundy' : 'sekúnd');\n }\n else {\n return result + 'sekundami';\n }\n // break;\n case 'm':// a minute / in a minute / a minute ago\n return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');\n case 'mm':// 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'minúty' : 'minút');\n }\n else {\n return result + 'minútami';\n }\n // break;\n case 'h':// an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');\n case 'hh':// 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'hodiny' : 'hodÃn');\n }\n else {\n return result + 'hodinami';\n }\n // break;\n case 'd':// a day / in a day / a day ago\n return (withoutSuffix || isFuture) ? 'deÅ' : 'dÅom';\n case 'dd':// 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'dni' : 'dnÃ');\n }\n else {\n return result + 'dÅami';\n }\n // break;\n case 'M':// a month / in a month / a month ago\n return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';\n case 'MM':// 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'mesiace' : 'mesiacov');\n }\n else {\n return result + 'mesiacmi';\n }\n // break;\n case 'y':// a year / in a year / a year ago\n return (withoutSuffix || isFuture) ? 'rok' : 'rokom';\n case 'yy':// 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural(num) ? 'roky' : 'rokov');\n }\n else {\n return result + 'rokmi';\n }\n // break;\n }\n}\n\nexport const skLocale: LocaleData = {\n abbr: 'sk',\n months,\n monthsShort,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å¡t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY'\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å¡tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[vÄera o] LT',\n lastWeek(date: Date): string {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[minulú nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulú stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulú sobotu o] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'o %s',\n past: 'pred %s',\n s: translate,\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: translate,\n dd: translate,\n M: translate,\n MM: translate,\n y: translate,\n yy: translate\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:object-literal-key-quotes\n\nimport { LocaleData } from '../locale/locale.class';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : mihan : https://github.com/mihan\n\nfunction processRelativeTime(number: number, withoutSuffix: boolean, key: string, isFuture: boolean): string {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture ? 'nekaj sekund' : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += withoutSuffix || isFuture ? 'sekund' : 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n}\n\nexport const slLocale: LocaleData = {\n abbr: 'sl',\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split('_'),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split('_'),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_Äetrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._Äet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_Äe_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm'\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[vÄeraj ob] LT',\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n return '[prejÅ¡njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ¡njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ¡njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ¡nji] dddd [ob] LT';\n }\n },\n sameElse: 'L'\n },\n relativeTime: {\n future: 'Äez %s',\n past: 'pred %s',\n s: processRelativeTime,\n ss: processRelativeTime,\n m: processRelativeTime,\n mm: processRelativeTime,\n h: processRelativeTime,\n hh: processRelativeTime,\n d: processRelativeTime,\n dd: processRelativeTime,\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\n\nexport const svLocale: LocaleData = {\n abbr: 'sv',\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split('_'),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag'.split('_'),\n weekdaysShort: 'sön_mÃ¥n_tis_ons_tor_fre_lör'.split('_'),\n weekdaysMin: 'sö_mÃ¥_ti_on_to_fr_lö'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgÃ¥r] LT',\n nextWeek: '[PÃ¥] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'om %s',\n past: 'för %s sedan',\n s: 'nÃ¥gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mÃ¥nad',\n MM: '%d mÃ¥nader',\n y: 'ett Ã¥r',\n yy: '%d Ã¥r'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(e|a)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n let b = num % 10,\n output = (~~(num % 100 / 10) === 1) ? 'e' :\n (b === 1) ? 'a' :\n (b === 2) ? 'a' :\n (b === 3) ? 'e' : 'e';\n return num + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\n// moment.js locale configuration\n// locale : Thai [th]\n// author : Watcharapol Sanitwong : https://github.com/tumit\n\nimport { LocaleData } from '../locale/locale.class';\n\nexport const thLocale: LocaleData = {\n abbr: 'th',\n months: 'มà¸à¸£à¸²à¸à¸¡_à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹_มีà¸à¸²à¸à¸¡_à¹à¸¡à¸©à¸²à¸¢à¸_à¸à¸¤à¸©à¸ าà¸à¸¡_มิà¸à¸¸à¸à¸²à¸¢à¸_à¸à¸£à¸à¸à¸²à¸à¸¡_สิà¸à¸«à¸²à¸à¸¡_à¸à¸±à¸à¸¢à¸²à¸¢à¸_à¸à¸¸à¸¥à¸²à¸à¸¡_à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸_à¸à¸±à¸à¸§à¸²à¸à¸¡'.split('_'),\n monthsShort: 'ม.à¸._à¸.à¸._มี.à¸._à¹à¸¡.ย._à¸.à¸._มิ.ย._à¸.à¸._ส.à¸._à¸.ย._à¸.à¸._à¸.ย._à¸.à¸.'.split('_'),\n monthsParseExact: true,\n weekdays: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'),\n weekdaysShort: 'à¸à¸²à¸à¸´à¸à¸¢à¹_à¸à¸±à¸à¸à¸£à¹_à¸à¸±à¸à¸à¸²à¸£_à¸à¸¸à¸_à¸à¸¤à¸«à¸±à¸ª_ศุà¸à¸£à¹_à¹à¸ªà¸²à¸£à¹'.split('_'), // yes, three characters difference\n weekdaysMin: 'à¸à¸²._à¸._à¸._à¸._à¸à¸¤._ศ._ส.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY à¹à¸§à¸¥à¸² H:mm',\n LLLL: 'วัà¸ddddà¸à¸µà¹ D MMMM YYYY à¹à¸§à¸¥à¸² H:mm'\n },\n meridiemParse: /à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸|หลัà¸à¹à¸à¸µà¹à¸¢à¸/,\n isPM(input) {\n return input === 'หลัà¸à¹à¸à¸µà¹à¸¢à¸';\n },\n meridiem(hour, minute, isLower) {\n if (hour < 12) {\n return 'à¸à¹à¸à¸à¹à¸à¸µà¹à¸¢à¸';\n } else {\n return 'หลัà¸à¹à¸à¸µà¹à¸¢à¸';\n }\n },\n calendar: {\n sameDay: '[วัà¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n nextDay: '[à¸à¸£à¸¸à¹à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n nextWeek: 'dddd[หà¸à¹à¸² à¹à¸§à¸¥à¸²] LT',\n lastDay: '[à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹ à¹à¸§à¸¥à¸²] LT',\n lastWeek: '[วัà¸]dddd[à¸à¸µà¹à¹à¸¥à¹à¸§ à¹à¸§à¸¥à¸²] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: 'à¸à¸µà¸ %s',\n past: '%sà¸à¸µà¹à¹à¸¥à¹à¸§',\n s: 'à¹à¸¡à¹à¸à¸µà¹à¸§à¸´à¸à¸²à¸à¸µ',\n ss: '%d วิà¸à¸²à¸à¸µ',\n m: '1 à¸à¸²à¸à¸µ',\n mm: '%d à¸à¸²à¸à¸µ',\n h: '1 à¸à¸±à¹à¸§à¹à¸¡à¸',\n hh: '%d à¸à¸±à¹à¸§à¹à¸¡à¸',\n d: '1 วัà¸',\n dd: '%d วัà¸',\n M: '1 à¹à¸à¸·à¸à¸',\n MM: '%d à¹à¸à¸·à¸à¸',\n y: '1 à¸à¸µ',\n yy: '%d à¸à¸µ'\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak YiÄit Kaya: https://github.com/BYK\n\nlet suffixes: { [key: string]: string } = {\n 1: '\\'inci',\n 5: '\\'inci',\n 8: '\\'inci',\n 70: '\\'inci',\n 80: '\\'inci',\n 2: '\\'nci',\n 7: '\\'nci',\n 20: '\\'nci',\n 50: '\\'nci',\n 3: '\\'üncü',\n 4: '\\'üncü',\n 100: '\\'üncü',\n 6: '\\'ncı',\n 9: '\\'uncu',\n 10: '\\'uncu',\n 30: '\\'uncu',\n 60: '\\'ıncı',\n 90: '\\'ıncı'\n};\n\nexport const trLocale: LocaleData = {\n abbr: 'tr',\n months: 'Ocak_Åubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄustos_Eylül_Ekim_Kasım_Aralık'.split('_'),\n monthsShort: 'Oca_Åub_Mar_Nis_May_Haz_Tem_AÄu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_ÃarÅamba_PerÅembe_Cuma_Cumartesi'.split('_'),\n weekdaysShort: 'Paz_Pts_Sal_Ãar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ãa_Pe_Cu_Ct'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm'\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geçen] dddd [saat] LT',\n sameElse: 'L'\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s önce',\n s: 'birkaç saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,\n ordinal(_num: number): string {\n const num = Number(_num);\n if (num === 0) { // special case for zero\n return num + '\\'ıncı';\n }\n let a = num % 10,\n b = num % 100 - a,\n c = num >= 100 ? 100 : null;\n return num + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7 // The week that contains Jan 1st is the first week of the year.\n }\n};\n","// tslint:disable:comment-format binary-expression-operand-order max-line-length\n// tslint:disable:no-bitwise prefer-template cyclomatic-complexity\n// tslint:disable:no-shadowed-variable switch-default prefer-const\n// tslint:disable:one-variable-per-declaration newline-before-return\n// tslint:disable:no-parameter-reassignment prefer-switch\n\nimport { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n\nexport const zhCnLocale: LocaleData = {\n abbr: 'zh-cn',\n months: '䏿_äºæ_䏿_åæ_äºæ_å
æ_䏿_å
«æ_乿_åæ_å䏿_åäºæ'.split('_'),\n monthsShort: '1æ_2æ_3æ_4æ_5æ_6æ_7æ_8æ_9æ_10æ_11æ_12æ'.split('_'),\n weekdays: 'æææ¥_ææä¸_ææäº_ææä¸_ææå_ææäº_ææå
'.split('_'),\n weekdaysShort: '卿¥_å¨ä¸_å¨äº_å¨ä¸_å¨å_å¨äº_å¨å
'.split('_'),\n weekdaysMin: 'æ¥_ä¸_äº_ä¸_å_äº_å
'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYYå¹´MæDæ¥',\n LLL: 'YYYYå¹´MæDæ¥Ahç¹mmå',\n LLLL: 'YYYYå¹´MæDæ¥ddddAhç¹mmå',\n l: 'YYYY/M/D',\n ll: 'YYYYå¹´MæDæ¥',\n lll: 'YYYYå¹´MæDæ¥ HH:mm',\n llll: 'YYYYå¹´MæDæ¥dddd HH:mm'\n },\n meridiemParse: /忍|æ©ä¸|ä¸å|ä¸å|ä¸å|æä¸/,\n meridiemHour(hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === '忍' || meridiem === 'æ©ä¸' ||\n meridiem === 'ä¸å') {\n return hour;\n } else if (meridiem === 'ä¸å' || meridiem === 'æä¸') {\n return hour + 12;\n } else {\n // 'ä¸å'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem(hour, minute, isLower) {\n let hm = hour * 100 + minute;\n if (hm < 600) {\n return '忍';\n } else if (hm < 900) {\n return 'æ©ä¸';\n } else if (hm < 1130) {\n return 'ä¸å';\n } else if (hm < 1230) {\n return 'ä¸å';\n } else if (hm < 1800) {\n return 'ä¸å';\n } else {\n return 'æä¸';\n }\n },\n calendar: {\n sameDay: '[ä»å¤©]LT',\n nextDay: '[æå¤©]LT',\n nextWeek: '[ä¸]ddddLT',\n lastDay: '[æ¨å¤©]LT',\n lastWeek: '[ä¸]ddddLT',\n sameElse: 'L'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(æ¥|æ|å¨)/,\n ordinal(_num: number, period) {\n const num = Number(_num);\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return num + 'æ¥';\n case 'M':\n return num + 'æ';\n case 'w':\n case 'W':\n return num + 'å¨';\n default:\n return num.toString();\n }\n },\n relativeTime: {\n future: '%så
',\n past: '%så',\n s: 'å ç§',\n ss: '%d ç§',\n m: '1 åé',\n mm: '%d åé',\n h: '1 å°æ¶',\n hh: '%d å°æ¶',\n d: '1 天',\n dd: '%d 天',\n M: '1 个æ',\n MM: '%d 个æ',\n y: '1 å¹´',\n yy: '%d å¹´'\n },\n week: {\n // GB/T 7408-1994ãæ°æ®å
åäº¤æ¢æ ¼å¼Â·ä¿¡æ¯äº¤æ¢Â·æ¥æåæ¶é´è¡¨ç¤ºæ³ãä¸ISO 8601:1988çæ\n dow: 1, // Monday is the first day of the week.\n doy: 4 // The week that contains Jan 4th is the first week of the year.\n }\n};\n"],"names":["daysInMonth","months","monthsShort","monthsShortDot","monthsParse","monthsRegex","translate","symbolMap","numberMap","monthsShortWithDots","monthsShortWithoutDots","plural","relativeTimeWithPlural","processRelativeTime"],"mappings":"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"}
|