ngx-bootstrap 10.3.0 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -5
- package/accordion/accordion-group.component.d.ts +1 -1
- package/accordion/accordion.component.d.ts +1 -1
- package/accordion/esm2022/accordion-group.component.mjs +84 -0
- package/accordion/{esm2020 → esm2022}/accordion.component.mjs +4 -4
- package/accordion/{esm2020 → esm2022}/accordion.config.mjs +4 -4
- package/accordion/{esm2020 → esm2022}/accordion.module.mjs +5 -5
- package/accordion/{fesm2020 → fesm2022}/ngx-bootstrap-accordion.mjs +29 -29
- package/accordion/fesm2022/ngx-bootstrap-accordion.mjs.map +1 -0
- package/accordion/package.json +8 -14
- package/alert/alert.component.d.ts +1 -1
- package/alert/esm2022/alert.component.mjs +77 -0
- package/alert/{esm2020 → esm2022}/alert.config.mjs +4 -4
- package/alert/{esm2020 → esm2022}/alert.module.mjs +5 -5
- package/alert/{fesm2015 → fesm2022}/ngx-bootstrap-alert.mjs +10 -10
- package/alert/fesm2022/ngx-bootstrap-alert.mjs.map +1 -0
- package/alert/package.json +8 -14
- package/buttons/button-checkbox.directive.d.ts +2 -2
- package/buttons/button-radio.directive.d.ts +1 -1
- package/buttons/{esm2020 → esm2022}/button-checkbox.directive.mjs +4 -4
- package/buttons/{esm2020 → esm2022}/button-radio-group.directive.mjs +4 -4
- package/buttons/esm2022/button-radio.directive.mjs +188 -0
- package/buttons/{esm2020 → esm2022}/buttons.module.mjs +5 -5
- package/buttons/{fesm2020 → fesm2022}/ngx-bootstrap-buttons.mjs +26 -26
- package/buttons/fesm2022/ngx-bootstrap-buttons.mjs.map +1 -0
- package/buttons/package.json +7 -13
- package/carousel/carousel.component.d.ts +1 -1
- package/carousel/esm2022/carousel.component.mjs +713 -0
- package/carousel/{esm2020 → esm2022}/carousel.config.mjs +4 -4
- package/carousel/{esm2020 → esm2022}/carousel.module.mjs +5 -5
- package/carousel/{esm2020 → esm2022}/slide.component.mjs +6 -6
- package/carousel/{fesm2020 → fesm2022}/ngx-bootstrap-carousel.mjs +65 -56
- package/carousel/fesm2022/ngx-bootstrap-carousel.mjs.map +1 -0
- package/carousel/package.json +8 -14
- package/carousel/slide.component.d.ts +1 -1
- package/chronos/duration/create.d.ts +1 -1
- package/chronos/{fesm2020 → fesm2022}/ngx-bootstrap-chronos.mjs +4 -0
- package/chronos/fesm2022/ngx-bootstrap-chronos.mjs.map +1 -0
- package/chronos/locale/locale.class.d.ts +3 -3
- package/chronos/moment/calendar.d.ts +1 -1
- package/chronos/package.json +5 -11
- package/chronos/parse/regex.d.ts +1 -1
- package/chronos/testing/chain.d.ts +3 -3
- package/chronos/types.d.ts +4 -4
- package/chronos/units/aliases.d.ts +1 -1
- package/collapse/collapse.directive.d.ts +1 -1
- package/collapse/esm2022/collapse.directive.mjs +168 -0
- package/collapse/{esm2020 → esm2022}/collapse.module.mjs +5 -5
- package/collapse/{fesm2020 → fesm2022}/ngx-bootstrap-collapse.mjs +26 -26
- package/collapse/fesm2022/ngx-bootstrap-collapse.mjs.map +1 -0
- package/collapse/package.json +8 -14
- package/component-loader/{esm2020 → esm2022}/component-loader.factory.mjs +4 -4
- package/component-loader/{fesm2020 → fesm2022}/ngx-bootstrap-component-loader.mjs +5 -3
- package/component-loader/fesm2022/ngx-bootstrap-component-loader.mjs.map +1 -0
- package/component-loader/listen-options.model.d.ts +1 -1
- package/component-loader/package.json +7 -13
- package/datepicker/bs-datepicker-inline.component.d.ts +1 -1
- package/datepicker/bs-datepicker.component.d.ts +1 -1
- package/datepicker/bs-daterangepicker-inline.component.d.ts +1 -1
- package/datepicker/bs-daterangepicker.component.d.ts +1 -1
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.component.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-inline.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-datepicker-input.directive.mjs +4 -4
- package/datepicker/esm2022/bs-datepicker.component.mjs +303 -0
- package/datepicker/{esm2020 → esm2022}/bs-datepicker.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-datepicker.module.mjs +32 -32
- package/datepicker/esm2022/bs-daterangepicker-inline.component.mjs +163 -0
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-inline.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker-input.directive.mjs +4 -4
- package/datepicker/esm2022/bs-daterangepicker.component.mjs +296 -0
- package/datepicker/{esm2020 → esm2022}/bs-daterangepicker.config.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/bs-locale.service.mjs +4 -4
- package/datepicker/esm2022/reducer/bs-datepicker.actions.mjs +143 -0
- package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.effects.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.store.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-calendar-layout.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-current-date-view.component.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-custom-dates-view.component.mjs +6 -6
- package/datepicker/esm2022/themes/bs/bs-datepicker-container.component.mjs +192 -0
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-day-decorator.directive.mjs +4 -4
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-inline-container.component.mjs +9 -9
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-datepicker-navigation-view.component.mjs +6 -6
- package/datepicker/esm2022/themes/bs/bs-daterangepicker-container.component.mjs +261 -0
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-daterangepicker-inline-container.component.mjs +9 -9
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-days-calendar-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-months-calendar-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-timepicker-view.component.mjs +6 -6
- package/datepicker/{esm2020 → esm2022}/themes/bs/bs-years-calendar-view.component.mjs +6 -6
- package/datepicker/{fesm2020 → fesm2022}/ngx-bootstrap-datepicker.mjs +226 -226
- package/datepicker/fesm2022/ngx-bootstrap-datepicker.mjs.map +1 -0
- package/datepicker/models/index.d.ts +1 -1
- package/datepicker/package.json +13 -19
- package/datepicker/themes/bs/bs-current-date-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +1 -1
- package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +1 -1
- package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +1 -1
- package/datepicker/utils/matrix-utils.d.ts +1 -1
- package/dropdown/bs-dropdown.directive.d.ts +1 -1
- package/dropdown/esm2022/bs-dropdown-container.component.mjs +79 -0
- package/dropdown/{esm2020 → esm2022}/bs-dropdown-menu.directive.mjs +4 -4
- package/dropdown/{esm2020 → esm2022}/bs-dropdown-toggle.directive.mjs +4 -4
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.config.mjs +4 -4
- package/dropdown/esm2022/bs-dropdown.directive.mjs +340 -0
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.module.mjs +10 -10
- package/dropdown/{esm2020 → esm2022}/bs-dropdown.state.mjs +4 -4
- package/dropdown/{fesm2020 → fesm2022}/ngx-bootstrap-dropdown.mjs +62 -62
- package/dropdown/fesm2022/ngx-bootstrap-dropdown.mjs.map +1 -0
- package/dropdown/package.json +10 -16
- package/fesm2022/ngx-bootstrap.mjs.map +1 -0
- package/focus-trap/boolean-property.d.ts +1 -1
- package/focus-trap/{esm2020 → esm2022}/focus-trap-manager.mjs +4 -4
- package/focus-trap/esm2022/focus-trap.mjs +399 -0
- package/focus-trap/{esm2020 → esm2022}/focus-trap.module.mjs +5 -5
- package/focus-trap/{esm2020 → esm2022}/interactivity-checker.mjs +4 -4
- package/focus-trap/{esm2020 → esm2022}/platform.mjs +4 -4
- package/focus-trap/{fesm2020 → fesm2022}/ngx-bootstrap-focus-trap.mjs +43 -39
- package/focus-trap/fesm2022/ngx-bootstrap-focus-trap.mjs.map +1 -0
- package/focus-trap/focus-trap.d.ts +1 -1
- package/focus-trap/package.json +8 -14
- package/locale/fesm2022/ngx-bootstrap-locale.mjs.map +1 -0
- package/locale/package.json +6 -12
- package/mini-ngrx/fesm2022/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
- package/mini-ngrx/package.json +6 -12
- package/mini-ngrx/public_api.d.ts +1 -1
- package/modal/{esm2020 → esm2022}/bs-modal-ref.service.mjs +4 -4
- package/modal/{esm2020 → esm2022}/bs-modal.service.mjs +4 -4
- package/modal/esm2022/modal-backdrop.component.mjs +50 -0
- package/modal/{esm2020 → esm2022}/modal-container.component.mjs +6 -6
- package/modal/{esm2020 → esm2022}/modal-options.class.mjs +4 -4
- package/modal/esm2022/modal.directive.mjs +364 -0
- package/modal/{esm2020 → esm2022}/modal.module.mjs +7 -7
- package/modal/{fesm2020 → fesm2022}/ngx-bootstrap-modal.mjs +44 -42
- package/modal/fesm2022/ngx-bootstrap-modal.mjs.map +1 -0
- package/modal/modal.directive.d.ts +1 -1
- package/modal/models/index.d.ts +1 -1
- package/modal/package.json +8 -14
- package/package.json +81 -87
- package/pagination/{esm2020 → esm2022}/pager.component.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.component.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.config.mjs +4 -4
- package/pagination/{esm2020 → esm2022}/pagination.module.mjs +5 -5
- package/pagination/{fesm2020 → fesm2022}/ngx-bootstrap-pagination.mjs +13 -13
- package/pagination/fesm2022/ngx-bootstrap-pagination.mjs.map +1 -0
- package/pagination/package.json +8 -14
- package/pagination/pager.component.d.ts +1 -1
- package/pagination/pagination.component.d.ts +1 -1
- package/popover/esm2022/popover-container.component.mjs +46 -0
- package/popover/{esm2020 → esm2022}/popover.config.mjs +4 -4
- package/popover/esm2022/popover.directive.mjs +241 -0
- package/popover/{esm2020 → esm2022}/popover.module.mjs +5 -5
- package/popover/{fesm2020 → fesm2022}/ngx-bootstrap-popover.mjs +31 -31
- package/popover/fesm2022/ngx-bootstrap-popover.mjs.map +1 -0
- package/popover/package.json +9 -15
- package/popover/popover-container.component.d.ts +1 -1
- package/popover/popover.directive.d.ts +1 -1
- package/positioning/{esm2020 → esm2022}/positioning.service.mjs +4 -4
- package/positioning/{fesm2020 → fesm2022}/ngx-bootstrap-positioning.mjs +3 -3
- package/positioning/fesm2022/ngx-bootstrap-positioning.mjs.map +1 -0
- package/positioning/models/index.d.ts +1 -1
- package/positioning/package.json +10 -16
- package/progressbar/bar.component.d.ts +1 -1
- package/progressbar/{esm2020 → esm2022}/bar.component.mjs +4 -4
- package/progressbar/esm2022/progressbar.component.mjs +53 -0
- package/progressbar/{esm2020 → esm2022}/progressbar.config.mjs +4 -4
- package/progressbar/{esm2020 → esm2022}/progressbar.module.mjs +5 -5
- package/progressbar/{fesm2020 → fesm2022}/ngx-bootstrap-progressbar.mjs +24 -24
- package/progressbar/fesm2022/ngx-bootstrap-progressbar.mjs.map +1 -0
- package/progressbar/package.json +7 -13
- package/progressbar/progressbar-type.interface.d.ts +1 -1
- package/progressbar/progressbar.component.d.ts +1 -1
- package/rating/{esm2020 → esm2022}/rating.component.mjs +4 -4
- package/rating/{esm2020 → esm2022}/rating.config.mjs +4 -4
- package/rating/{esm2020 → esm2022}/rating.module.mjs +5 -5
- package/rating/{fesm2015 → fesm2022}/ngx-bootstrap-rating.mjs +10 -10
- package/rating/fesm2022/ngx-bootstrap-rating.mjs.map +1 -0
- package/rating/package.json +8 -14
- package/rating/rating.component.d.ts +1 -1
- package/schematics/collection.json +1 -1
- package/schematics/package.json +7 -7
- package/schematics/utils/current_dependency_versions.json +1 -1
- package/schematics/utils/index.d.ts +0 -2
- package/schematics/utils/index.js +1 -13
- package/schematics/utils/index.js.map +1 -1
- package/sortable/{esm2020 → esm2022}/draggable-item.service.mjs +4 -4
- package/sortable/esm2022/sortable.component.mjs +266 -0
- package/sortable/{esm2020 → esm2022}/sortable.module.mjs +5 -5
- package/sortable/{fesm2020 → fesm2022}/ngx-bootstrap-sortable.mjs +28 -28
- package/sortable/fesm2022/ngx-bootstrap-sortable.mjs.map +1 -0
- package/sortable/package.json +10 -16
- package/sortable/sortable.component.d.ts +1 -1
- package/tabs/esm2022/ng-transclude.directive.mjs +28 -0
- package/tabs/{esm2020 → esm2022}/tab-heading.directive.mjs +4 -4
- package/tabs/esm2022/tab.directive.mjs +115 -0
- package/tabs/{esm2020 → esm2022}/tabs.module.mjs +11 -11
- package/tabs/esm2022/tabset.component.mjs +216 -0
- package/tabs/{esm2020 → esm2022}/tabset.config.mjs +4 -4
- package/tabs/{fesm2015 → fesm2022}/ngx-bootstrap-tabs.mjs +63 -63
- package/tabs/fesm2022/ngx-bootstrap-tabs.mjs.map +1 -0
- package/tabs/ng-transclude.directive.d.ts +1 -1
- package/tabs/package.json +7 -13
- package/tabs/tab.directive.d.ts +1 -1
- package/tabs/tabset.component.d.ts +1 -1
- package/timepicker/esm2022/reducer/timepicker.actions.mjs +53 -0
- package/timepicker/{esm2020 → esm2022}/reducer/timepicker.store.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.component.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.config.mjs +4 -4
- package/timepicker/{esm2020 → esm2022}/timepicker.module.mjs +5 -5
- package/timepicker/{fesm2020 → fesm2022}/ngx-bootstrap-timepicker.mjs +22 -22
- package/timepicker/fesm2022/ngx-bootstrap-timepicker.mjs.map +1 -0
- package/timepicker/package.json +10 -16
- package/timepicker/reducer/timepicker.reducer.d.ts +1 -3
- package/timepicker/timepicker.component.d.ts +1 -1
- package/timepicker/timepicker.models.d.ts +1 -1
- package/tooltip/{esm2020 → esm2022}/tooltip-container.component.mjs +9 -9
- package/tooltip/{esm2020 → esm2022}/tooltip.config.mjs +4 -4
- package/tooltip/esm2022/tooltip.directive.mjs +342 -0
- package/tooltip/{esm2020 → esm2022}/tooltip.module.mjs +5 -5
- package/tooltip/{fesm2020 → fesm2022}/ngx-bootstrap-tooltip.mjs +61 -61
- package/tooltip/fesm2022/ngx-bootstrap-tooltip.mjs.map +1 -0
- package/tooltip/package.json +10 -16
- package/tooltip/tooltip.directive.d.ts +1 -1
- package/typeahead/esm2022/typeahead-container.component.mjs +311 -0
- package/typeahead/{esm2020 → esm2022}/typeahead.config.mjs +4 -4
- package/typeahead/{esm2020 → esm2022}/typeahead.directive.mjs +4 -4
- package/typeahead/{esm2020 → esm2022}/typeahead.module.mjs +5 -5
- package/typeahead/{fesm2020 → fesm2022}/ngx-bootstrap-typeahead.mjs +20 -20
- package/typeahead/fesm2022/ngx-bootstrap-typeahead.mjs.map +1 -0
- package/typeahead/package.json +12 -18
- package/typeahead/typeahead.directive.d.ts +3 -3
- package/utils/fesm2022/ngx-bootstrap-utils.mjs.map +1 -0
- package/utils/package.json +6 -12
- package/utils/theme-provider.d.ts +1 -1
- package/utils/triggers.d.ts +1 -1
- package/accordion/esm2020/accordion-group.component.mjs +0 -84
- package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +0 -182
- package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +0 -1
- package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +0 -1
- package/alert/esm2020/alert.component.mjs +0 -77
- package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +0 -1
- package/alert/fesm2020/ngx-bootstrap-alert.mjs +0 -119
- package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +0 -1
- package/buttons/esm2020/button-radio.directive.mjs +0 -188
- package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +0 -448
- package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +0 -1
- package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +0 -1
- package/carousel/esm2020/carousel.component.mjs +0 -713
- package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +0 -851
- package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +0 -1
- package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +0 -1
- package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +0 -7384
- package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +0 -1
- package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +0 -1
- package/collapse/esm2020/collapse.directive.mjs +0 -168
- package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +0 -200
- package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +0 -1
- package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +0 -1
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +0 -345
- package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +0 -1
- package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +0 -1
- package/datepicker/esm2020/bs-datepicker.component.mjs +0 -303
- package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +0 -163
- package/datepicker/esm2020/bs-daterangepicker.component.mjs +0 -296
- package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +0 -143
- package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +0 -192
- package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +0 -261
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +0 -3971
- package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +0 -1
- package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +0 -1
- package/dropdown/esm2020/bs-dropdown-container.component.mjs +0 -79
- package/dropdown/esm2020/bs-dropdown.directive.mjs +0 -340
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +0 -603
- package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +0 -1
- package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +0 -1
- package/fesm2015/ngx-bootstrap.mjs.map +0 -1
- package/fesm2020/ngx-bootstrap.mjs +0 -6
- package/fesm2020/ngx-bootstrap.mjs.map +0 -1
- package/focus-trap/esm2020/focus-trap.mjs +0 -399
- package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +0 -800
- package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +0 -1
- package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +0 -1
- package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +0 -1
- package/locale/fesm2020/ngx-bootstrap-locale.mjs +0 -6
- package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +0 -1
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs +0 -64
- package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
- package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +0 -1
- package/modal/esm2020/modal-backdrop.component.mjs +0 -50
- package/modal/esm2020/modal.directive.mjs +0 -364
- package/modal/fesm2015/ngx-bootstrap-modal.mjs +0 -888
- package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +0 -1
- package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +0 -1
- package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +0 -565
- package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +0 -1
- package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +0 -1
- package/popover/esm2020/popover-container.component.mjs +0 -46
- package/popover/esm2020/popover.directive.mjs +0 -241
- package/popover/fesm2015/ngx-bootstrap-popover.mjs +0 -339
- package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +0 -1
- package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +0 -1
- package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +0 -1018
- package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +0 -1
- package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +0 -1
- package/progressbar/esm2020/progressbar.component.mjs +0 -53
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +0 -163
- package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +0 -1
- package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +0 -1
- package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +0 -1
- package/rating/fesm2020/ngx-bootstrap-rating.mjs +0 -163
- package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +0 -1
- package/sortable/esm2020/sortable.component.mjs +0 -266
- package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +0 -324
- package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +0 -1
- package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +0 -1
- package/tabs/esm2020/ng-transclude.directive.mjs +0 -28
- package/tabs/esm2020/tab.directive.mjs +0 -115
- package/tabs/esm2020/tabset.component.mjs +0 -216
- package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +0 -1
- package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +0 -427
- package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +0 -1
- package/timepicker/esm2020/reducer/timepicker.actions.mjs +0 -53
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +0 -830
- package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +0 -1
- package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +0 -1
- package/tooltip/esm2020/tooltip.directive.mjs +0 -342
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +0 -431
- package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +0 -1
- package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +0 -1
- package/typeahead/esm2020/typeahead-container.component.mjs +0 -311
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +0 -1890
- package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +0 -1
- package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +0 -1
- package/utils/fesm2015/ngx-bootstrap-utils.mjs +0 -523
- package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +0 -1
- package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +0 -1
- /package/accordion/{esm2020 → esm2022}/index.mjs +0 -0
- /package/accordion/{esm2020 → esm2022}/ngx-bootstrap-accordion.mjs +0 -0
- /package/accordion/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/index.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/ngx-bootstrap-alert.mjs +0 -0
- /package/alert/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/index.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/ngx-bootstrap-buttons.mjs +0 -0
- /package/buttons/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/index.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/ngx-bootstrap-carousel.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/carousel/{esm2020 → esm2022}/utils.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/check-overflow.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/clone.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/date-from-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-anything.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-object.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string-and-array.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string-and-format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/from-string.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/local.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/parsing-flags.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/parsing.types.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/create/valid.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/bubble.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/constructor.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/create.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/humanize.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/duration/valid.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/format/format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/format.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/bg.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ca.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/cs.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/da.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/de.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/en-gb.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-do.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-pr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es-us.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/es.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/et.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/fi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/fr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/gl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/he.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/hu.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/id.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/it.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ja.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ka.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/kk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ko.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/lt.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/lv.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/mn.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nb.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nl-be.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/nl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/pl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/pt-br.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ro.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/ru.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sl.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sq.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/sv.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/th-be.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/th.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/tr.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/uk.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/vi.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/i18n/zh-cn.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/index.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/calendar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locale.class.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locale.defaults.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/locale/locales.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/add-subtract.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/calendar.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/diff.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/moment/min-max.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/ngx-bootstrap-chronos.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/parse/regex.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/parse/token.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/testing/chain.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/types.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/aliases.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/constants.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-month.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-week.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/day-of-year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/hour.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/index.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/millisecond.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/minute.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/month.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/offset.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/priorities.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/quarter.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/second.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/timestamp.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/timezone.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week-calendar-utils.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week-year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/week.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/units/year.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/abs-ceil.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/abs-round.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/compare-arrays.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-compare.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-getters.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/date-setters.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/defaults.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/start-end-of.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/type-checks.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils/zero-fill.mjs +0 -0
- /package/chronos/{esm2020 → esm2022}/utils.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/collapse-animations.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/index.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/ngx-bootstrap-collapse.mjs +0 -0
- /package/collapse/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/bs-component-ref.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/component-loader.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/content-ref.class.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/index.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/listen-options.model.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/ngx-bootstrap-component-loader.mjs +0 -0
- /package/component-loader/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/base/bs-datepicker-container.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/datepicker-animations.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/calc-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-months-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/flag-years-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-days-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-months-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/format-years-calendar.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/engine/view-mode.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/index.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/ngx-bootstrap-datepicker.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/_defaults.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.reducer.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/reducer/bs-datepicker.state.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/bs-calendar-utils.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/copy-time-utils.mjs +0 -0
- /package/datepicker/{esm2020 → esm2022}/utils/matrix-utils.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/dropdown-animations.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/index.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/ngx-bootstrap-dropdown.mjs +0 -0
- /package/dropdown/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/ngx-bootstrap.mjs +0 -0
- /package/{fesm2015 → fesm2022}/ngx-bootstrap.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/boolean-property.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/index.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/ngx-bootstrap-focus-trap.mjs +0 -0
- /package/focus-trap/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/index.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/ngx-bootstrap-locale.mjs +0 -0
- /package/locale/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/locale/{fesm2015 → fesm2022}/ngx-bootstrap-locale.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/index.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/state.class.mjs +0 -0
- /package/mini-ngrx/{esm2020 → esm2022}/store.class.mjs +0 -0
- /package/mini-ngrx/{fesm2020 → fesm2022}/ngx-bootstrap-mini-ngrx.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/index.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/modal-backdrop.options.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/ngx-bootstrap-modal.mjs +0 -0
- /package/modal/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/index.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/ngx-bootstrap-pagination.mjs +0 -0
- /package/pagination/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/index.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/ngx-bootstrap-popover.mjs +0 -0
- /package/popover/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/arrow.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/flip.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/initData.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/preventOverflow.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/modifiers/shift.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/ng-positioning.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/ngx-bootstrap-positioning.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/checkMargin.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/computeAutoPlacement.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/findCommonOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBordersSize.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBoundaries.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getBoundingClientRect.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getClientRect.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getFixedPositionOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsetParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsetRectRelativeToArbitraryNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOppositePlacement.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOppositeVariation.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getOuterSizes.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getParentNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getReferenceOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getRoot.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getScroll.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getScrollParent.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getStyleComputedProperty.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getTargetOffsets.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/getWindowSizes.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/includeScroll.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isFixed.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isModifierEnabled.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isNumeric.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/isOffsetContainer.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/setStyles.mjs +0 -0
- /package/positioning/{esm2020 → esm2022}/utils/updateContainerClass.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/index.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/ngx-bootstrap-progressbar.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/progressbar-type.interface.mjs +0 -0
- /package/progressbar/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/index.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/ngx-bootstrap-rating.mjs +0 -0
- /package/rating/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/draggable-item.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/index.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/ngx-bootstrap-sortable.mjs +0 -0
- /package/sortable/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/index.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/ngx-bootstrap-tabs.mjs +0 -0
- /package/tabs/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/index.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/ngx-bootstrap-timepicker.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/reducer/timepicker.reducer.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker-controls.util.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker.models.mjs +0 -0
- /package/timepicker/{esm2020 → esm2022}/timepicker.utils.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/index.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/ngx-bootstrap-tooltip.mjs +0 -0
- /package/tooltip/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/index.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/latin-map.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/models/index.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/ngx-bootstrap-typeahead.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-animations.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-match.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-options.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-order.class.mjs +0 -0
- /package/typeahead/{esm2020 → esm2022}/typeahead-utils.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/decorators.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/facade/browser.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/index.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/linked-list.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/ngx-bootstrap-utils.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/theme-provider.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/trigger.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/triggers.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/utils.class.mjs +0 -0
- /package/utils/{esm2020 → esm2022}/warn-once.mjs +0 -0
- /package/utils/{fesm2020 → fesm2022}/ngx-bootstrap-utils.mjs +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ngx-bootstrap-chronos.mjs","sources":["../../../../src/chronos/utils.ts","../../../../src/chronos/utils/type-checks.ts","../../../../src/chronos/units/aliases.ts","../../../../src/chronos/units/constants.ts","../../../../src/chronos/utils/zero-fill.ts","../../../../src/chronos/format/format.ts","../../../../src/chronos/create/date-from-array.ts","../../../../src/chronos/utils/date-getters.ts","../../../../src/chronos/parse/regex.ts","../../../../src/chronos/parse/token.ts","../../../../src/chronos/units/priorities.ts","../../../../src/chronos/units/day-of-month.ts","../../../../src/chronos/create/parsing-flags.ts","../../../../src/chronos/units/year.ts","../../../../src/chronos/units/month.ts","../../../../src/chronos/utils/date-setters.ts","../../../../src/chronos/create/clone.ts","../../../../src/chronos/utils/start-end-of.ts","../../../../src/chronos/units/day-of-year.ts","../../../../src/chronos/units/week-calendar-utils.ts","../../../../src/chronos/locale/locale.class.ts","../../../../src/chronos/locale/calendar.ts","../../../../src/chronos/locale/locale.defaults.ts","../../../../src/chronos/utils/compare-arrays.ts","../../../../src/chronos/units/week.ts","../../../../src/chronos/units/week-year.ts","../../../../src/chronos/units/timezone.ts","../../../../src/chronos/units/timestamp.ts","../../../../src/chronos/units/second.ts","../../../../src/chronos/units/quarter.ts","../../../../src/chronos/units/offset.ts","../../../../src/chronos/units/minute.ts","../../../../src/chronos/units/millisecond.ts","../../../../src/chronos/units/hour.ts","../../../../src/chronos/locale/locales.ts","../../../../src/chronos/duration/valid.ts","../../../../src/chronos/utils/abs-ceil.ts","../../../../src/chronos/duration/bubble.ts","../../../../src/chronos/duration/humanize.ts","../../../../src/chronos/duration/constructor.ts","../../../../src/chronos/create/valid.ts","../../../../src/chronos/create/from-string.ts","../../../../src/chronos/format.ts","../../../../src/chronos/utils/defaults.ts","../../../../src/chronos/create/from-array.ts","../../../../src/chronos/create/check-overflow.ts","../../../../src/chronos/create/from-string-and-format.ts","../../../../src/chronos/create/from-string-and-array.ts","../../../../src/chronos/create/from-object.ts","../../../../src/chronos/create/from-anything.ts","../../../../src/chronos/create/local.ts","../../../../src/chronos/utils/abs-round.ts","../../../../src/chronos/utils/date-compare.ts","../../../../src/chronos/duration/create.ts","../../../../src/chronos/moment/add-subtract.ts","../../../../src/chronos/units/day-of-week.ts","../../../../src/chronos/i18n/ar.ts","../../../../src/chronos/i18n/bg.ts","../../../../src/chronos/i18n/ca.ts","../../../../src/chronos/i18n/cs.ts","../../../../src/chronos/i18n/da.ts","../../../../src/chronos/i18n/de.ts","../../../../src/chronos/i18n/en-gb.ts","../../../../src/chronos/i18n/es-do.ts","../../../../src/chronos/i18n/es.ts","../../../../src/chronos/i18n/es-pr.ts","../../../../src/chronos/i18n/es-us.ts","../../../../src/chronos/i18n/et.ts","../../../../src/chronos/i18n/fi.ts","../../../../src/chronos/i18n/fr.ts","../../../../src/chronos/i18n/gl.ts","../../../../src/chronos/i18n/he.ts","../../../../src/chronos/i18n/hi.ts","../../../../src/chronos/i18n/hu.ts","../../../../src/chronos/i18n/hr.ts","../../../../src/chronos/i18n/id.ts","../../../../src/chronos/i18n/it.ts","../../../../src/chronos/i18n/ja.ts","../../../../src/chronos/i18n/ka.ts","../../../../src/chronos/i18n/kk.ts","../../../../src/chronos/i18n/ko.ts","../../../../src/chronos/i18n/lt.ts","../../../../src/chronos/i18n/lv.ts","../../../../src/chronos/i18n/mn.ts","../../../../src/chronos/i18n/nb.ts","../../../../src/chronos/i18n/nl-be.ts","../../../../src/chronos/i18n/nl.ts","../../../../src/chronos/i18n/pl.ts","../../../../src/chronos/i18n/pt-br.ts","../../../../src/chronos/i18n/ro.ts","../../../../src/chronos/i18n/ru.ts","../../../../src/chronos/i18n/sk.ts","../../../../src/chronos/i18n/sl.ts","../../../../src/chronos/i18n/sq.ts","../../../../src/chronos/i18n/sv.ts","../../../../src/chronos/i18n/th.ts","../../../../src/chronos/i18n/th-be.ts","../../../../src/chronos/i18n/tr.ts","../../../../src/chronos/i18n/uk.ts","../../../../src/chronos/i18n/vi.ts","../../../../src/chronos/i18n/zh-cn.ts","../../../../src/chronos/ngx-bootstrap-chronos.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\n// eslint-disable-next-line @typescript-eslint/ban-types\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\nexport function hasOwnProp<T>(a: T /*object*/, b: string): b is Extract<keyof T, string> {\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 // eslint-disable-next-line no-prototype-builtins\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: Record<string, unknown>): DateObject {\n const normalizedInput: Record<string, unknown> = {};\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;\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 const formatFunctions: {\n [key: string]: (date: Date, locale: Locale, isUTC?: boolean, offset?: number) => string;\n} = {};\nexport const formatTokenFunctions: { [key: string]: DateFormatterFn } = {};\n\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\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","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function createUTCDate(y?: number, m?: number, d?: number): Date {\n // eslint-disable-next-line prefer-rest-params\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() === Number(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\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 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","import { 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 if (opts.locale.getFullYear) {\n return opts.locale.getFullYear(date, opts.isUTC).toString();\n }\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 1, // day, to avoid issue with wrong months selection at the end of current month (#5371)\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","import { 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","import { weekOfYear } from '../units/week-calendar-utils';\nimport { hasOwnProp, isArray, isFunction } from '../utils/type-checks';\nimport { getDay, getMonth, getFullYear } 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 | ((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, format?: string | 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 getFullYear?(date: Date, isUTC: boolean): number;\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 // eslint-disable-next-line no-prototype-builtins\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, format?: string | string[]) {\n return str;\n }\n\n\n getFullYear(date: Date, isUTC = false): number {\n return getFullYear(date, isUTC);\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 // testing 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 // testing 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","// 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","// 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\n if (isObject(parentConfig[childProp]) && isObject(childConfig[childProp])) {\n res[childProp as any] = {};\n Object.assign(res[childProp], parentConfig[childProp]);\n Object.assign(res[childProp], childConfig[childProp]);\n } else if (childConfig[childProp] != null) {\n res[childProp as any] = childConfig[childProp];\n } else {\n delete res[childProp as any];\n }\n }\n for (const 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 any] = 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 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","import { 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 | ((x: number) => number) {\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","import { 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)\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)?)?$/;\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\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\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 yearToUse;\n\n if (config._d) {\n return config;\n }\n\n const 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 // eslint-disable-next-line prefer-spread\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n const 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 weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n const 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 beginning of week\n weekday = w[\"e\"] + dow;\n if (w[\"e\"] < 0 || w[\"e\"] > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning 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 Record<string, unknown>);\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","import { 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 '../testing/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, format);\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; testing 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 { DateInput } from '../testing/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\nexport function utcAsLocal(date) {\n if (!(date instanceof Date)) {\n return null;\n }\n\n return new Date(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n );\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 (typeof 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\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","//! 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","import { LocaleData } from '../locale/locale.class';\nimport { Khronos } from '../testing/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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { LocaleData } from '../locale/locale.class';\nimport { getHours, getMonth } from '../utils/date-getters';\n\n//! moment.js locale configuration\n//! locale : Spanish (Puerto Rico) [es-pr]\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 esPrLocale: LocaleData = {\n abbr: 'es-pr',\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: '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: 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","import { 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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Chris Gedrim : https://github.com/a90machado\n\nconst processRelativeTime = function (num: number, withoutSuffix: boolean, key: string, isFuture: boolean) {\n const format = {\n s : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],\n ss: [num + 'sekundi', num + 'sekundit'],\n m : ['ühe minuti', 'üks minut'],\n mm: [num + ' minuti', num + ' minutit'],\n h : ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [num + ' tunni', num + ' tundi'],\n d : ['ühe päeva', 'üks päev'],\n M : ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [num + ' kuu', num + ' kuud'],\n y : ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [num + ' aasta', num + ' aastat']\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n};\n\nexport const etLocale: LocaleData = {\n abbr: 'et',\n months: 'jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split('_'),\n monthsShort: 'jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split('_'),\n weekdays: 'pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev'.split('_'),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.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: '[Täna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[Järgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s pärast',\n past : '%s tagasi',\n s : processRelativeTime,\n ss : processRelativeTime,\n m : processRelativeTime,\n mm : processRelativeTime,\n h : processRelativeTime,\n hh : processRelativeTime,\n d : processRelativeTime,\n dd : '%d päeva',\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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Danijel Grmec : https://github.com/cobaltsis\n\nexport const hrLocale: LocaleData = {\n abbr: 'hr',\n months: 'Siječanj_Veljača_Ožujak_Travanj_Svibanj_Lipanj_Srpanj_Kolovoz_Rujan_Listopad_Studeni_Prosinac'.split('_'),\n monthsShort: 'Sij_Velj_Ožu_Tra_Svi_Lip_Srp_Kol_Ruj_Lis_Stu_Pro'.split('_'),\n weekdays: 'Nedjelja_Ponedjeljak_Utorak_Srijeda_Četvrtak_Petak_Subota'.split('_'),\n weekdaysShort: 'Ned_Pon_Uto_Sri_Čet_Pet_Sub'.split('_'),\n weekdaysMin: 'Ne_Po_Ut_Sr_Če_Pe_Su'.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: '[Danas u] LT',\n nextDay: '[Sutra u] LT',\n nextWeek: 'dddd [u] LT',\n lastDay: '[Jučer u] LT',\n lastWeek: '[Zadnji] dddd [u] LT',\n sameElse: 'L'\n },\n invalidDate: 'Neispravan datum',\n relativeTime: {\n future: 'za %s',\n past: '%s prije',\n s: 'nekoliko sekundi',\n ss: '%d sekundi',\n m: 'minuta',\n mm: '%d minuta',\n h: 'sat',\n hh: '%d sati',\n d: 'dan',\n dd: '%d dana',\n M: 'mjesec',\n MM: '%d mjeseci',\n y: 'godina',\n yy: '%d godina'\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) ? '.' :\n (b === 1) ? '.' :\n (b === 2) ? '.' :\n (b === 3) ? '.' : '.';\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","import { 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","import { 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","import { 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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili\n//! author : Levan Tskipuri : https://github.com/tskipa\n\nexport const kaLocale: LocaleData = {\n abbr: 'ka',\n months : {\n format: 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_'),\n standalone: 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_')\n },\n monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),\n weekdays : {\n standalone: 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),\n format: 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_'),\n isFormat: /(წინა|შემდეგ)/\n },\n weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),\n weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),\n longDateFormat : {\n LT : 'h:mm A',\n LTS : 'h:mm:ss A',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM YYYY',\n LLL : 'D MMMM YYYY h:mm A',\n LLLL : 'dddd, D MMMM YYYY h:mm A'\n },\n calendar : {\n sameDay : '[დღეს] LT[-ზე]',\n nextDay : '[ხვალ] LT[-ზე]',\n lastDay : '[გუშინ] LT[-ზე]',\n nextWeek : '[შემდეგ] dddd LT[-ზე]',\n lastWeek : '[წინა] dddd LT-ზე',\n sameElse : 'L'\n },\n relativeTime : {\n future(s: number): string {\n var st = s.toString();\n return (/(წამი|წუთი|საათი|წელი)/).test(st) ?\n st.replace(/ი$/, 'ში') :\n st + 'ში';\n },\n past(s: number): string {\n var st = s.toString();\n if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(st)) {\n return st.replace(/(ი|ე)$/, 'ის წინ');\n }\n if ((/წელი/).test(st)) {\n return st.replace(/წელი$/, 'წლის წინ');\n }\n },\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: /0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,\n ordinal(_num: number, _period: string): string {\n const num = Number(_num);\n if (num === 0) {\n return num.toString();\n }\n if (num === 1) {\n return num + '-ლი';\n }\n if ((num < 20) || (num <= 100 && (num % 20 === 0)) || (num % 100 === 0)) {\n return 'მე-' + num;\n }\n return num + '-ე';\n },\n week : {\n dow : 1,\n doy : 4\n }\n};\n","// ! moment.js locale configuration\n// ! locale : Kazakh [kk]\n// ! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\n\nimport { LocaleData } from '..';\n\nconst suffixes = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші'\n};\n\nexport const kkLocale: LocaleData = {\n abbr: 'kk',\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 },\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 dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal(_num: number): string {\n const a = _num % 10;\n const b = _num >= 100 ? 100 : null;\n\n return _num + (suffixes[_num] || suffixes[a] || suffixes[b]);\n },\n week : {\n dow : 1, // Monday is the first day of the week.\n doy : 7 // The week that contains Jan 7th is the first week of the year.\n }\n};\n","import { 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","import { 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 as any)[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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Matiss Janis Aboltins : https://github.com/matissjanis\n\nexport const lvLocale: LocaleData = {\n abbr: 'lv',\n months : 'Janvāris_Februāris_Marts_Aprīlis_Maijs_Jūnijs_Jūlijs_Augusts_Septembris_Oktobris_Novembris_Decembris'.split('_'),\n monthsShort : 'Jan_Feb_Mar_Apr_Mai_Jūn_Jūl_Aug_Sep_Okt_Nov_Dec'.split('_'),\n weekdays : 'Svētdiena_Pirmdiena_Otrdiena_Trešdiena_Ceturtdiena_Piektdiena_Sestdiena'.split('_'),\n weekdaysShort : 'Svētd_Pirmd_Otrd_Trešd_Ceturtd_Piektd_Sestd'.split('_'),\n weekdaysMin : 'Sv_Pi_Ot_Tr_Ce_Pk_Se'.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 : 'pēc %s',\n past : 'pirms %s',\n s : 'dažām sekundēm',\n ss : '%d sekundēm',\n m : 'minūtes',\n mm : '%d minūtēm',\n h : 'stundas',\n hh : '%d stundām',\n d : 'dienas',\n dd : '%d dienām',\n M : 'mēneša',\n MM : '%d mēnešiem',\n y : 'gada',\n yy : '%d gadiem'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal(num) {\n return num + '.';\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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { 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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Agon Cecelia : https://github.com/agoncecelia\n\nexport const sqLocale: LocaleData = {\n abbr: 'sq',\n months : 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor'.split('_'),\n monthsShort : 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj'.split('_'),\n weekdays : 'E Dielë_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë'.split('_'),\n weekdaysShort : 'Die_Hën_Mar_Mër_Enj_Pre_Sht'.split('_'),\n weekdaysMin : 'Di_He_Ma_Me_En_Pr_Sh'.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 : '[Sot në] LT',\n nextDay : '[Nesër në] LT',\n nextWeek : 'dddd [në] LT',\n lastDay : '[Dje në] LT',\n lastWeek : 'dddd [e kaluar në] LT',\n sameElse : 'L'\n },\n relativeTime : {\n future : 'në %s',\n past : 'para %sve',\n s : 'disa sekonda',\n ss : '%d sekonda',\n m : 'një minut',\n mm : '%d minuta',\n h : 'një orë',\n hh : '%d orë',\n d : 'një ditë',\n dd : '%d ditë',\n M : 'një muaj',\n MM : '%d muaj',\n y : 'një vit',\n yy : '%d vite'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./, // need clarification\n ordinal : '%d.', // need clarification\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","import { 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","// 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","// moment.js locale configuration\n// locale : Thai-Buddhist Era [th-be]\n// author : Watcharapol Sanitwong : https://github.com/tumit\n\nimport { LocaleData } from '../locale/locale.class';\n\nexport const thBeLocale: LocaleData = {\n abbr: 'th-be',\n months: 'มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม'.split('_'),\n monthsShort: 'ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.'.split('_'),\n monthsParseExact: true,\n weekdays: 'อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์'.split('_'),\n weekdaysShort: 'อา._จ._อ._พ._พฤ._ศ._ส.'.split('_'),\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 preparse(str: string, format?: string): string {\n\n const _format = thBeLocale.longDateFormat[format]\n ? thBeLocale.longDateFormat[format]\n : format;\n\n // endsWith('YYYY')\n if (_format.indexOf('YYYY', _format.length - 'YYYY'.length) !== -1 ) {\n const ddMM = str.substr(0, str.length - 4);\n const yyyy = parseInt(str.substr(str.length - 4), 10) - 543;\n return ddMM + yyyy;\n }\n\n return str;\n },\n\n getFullYear(date: Date, isUTC = false): number {\n return 543 + (isUTC ? date.getUTCFullYear() : date.getFullYear());\n }\n};\n","import { 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","import { LocaleData } from '../locale/locale.class';\nimport { getHours } from '../utils/date-getters';\nimport { getDayOfWeek } from '../units/day-of-week';\n\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\n\nfunction plural(word, num) {\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, key): string {\n let format: { [key: string]: string } = {\n ss: withoutSuffix ? 'секунда_секунди_секунд' : 'секунду_секунди_секунд',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'хвилину_хвилини_хвилин',\n hh: withoutSuffix ? 'година_години_годин' : 'годину_години_годин',\n dd: 'день_дні_днів',\n MM: 'місяць_місяці_місяців',\n yy: 'рік_роки_років'\n };\n\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'хвилину';\n }\n\n if (key === 'h') {\n return withoutSuffix ? 'година' : 'годину';\n }\n return num + ' ' + plural(format[key], +num);\n}\n\nfunction weekdaysCaseReplace(date: Date, format: string, isUTC?: boolean): string | string[] {\n let weekdays = {\n nominative: 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),\n accusative: 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),\n genitive: 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')\n };\n\n if (!date) {\n return weekdays.nominative;\n }\n\n let nounCase = (/(\\[[ВвУу]\\]) ?dddd/).test(format) ?\n 'accusative' :\n ((/\\[?(?:минулої|наступної)? ?\\] ?dddd/).test(format) ?\n 'genitive' :\n 'nominative');\n return weekdays[nounCase][getDayOfWeek(date, isUTC)];\n}\n\nfunction processHoursFunction(str: string) {\n return function (date: Date): string {\n return str + 'о' + (getHours(date) === 11 ? 'б' : '') + '] LT';\n };\n}\n\nexport const ukLocale: LocaleData = {\n abbr: 'uk',\n months: {\n format: 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_'),\n standalone: 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_')\n },\n monthsShort: 'січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд'.split('_'),\n weekdays: weekdaysCaseReplace,\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 },\n calendar: {\n sameDay: processHoursFunction('[Сьогодні '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[У] dddd ['),\n lastWeek(date: Date) {\n switch (getDayOfWeek(date)) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[Минулої] dddd [')(date);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [')(date);\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 // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|ранку|дня|вечора/,\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 case 'w':\n case 'W':\n return num + '-й';\n case 'D':\n return num + '-го';\n default:\n return num.toString();\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","import { LocaleData } from '../locale/locale.class';\n\n//! moment.js locale configuration\n//! locale : Việt Nam [vi]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\n\nexport const viLocale: LocaleData = {\n abbr: 'vi',\n months : 'tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12'.split('_'),\n monthsShort : 'Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12'.split('_'),\n monthsParseExact: true,\n weekdays : 'chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy'.split('_'),\n weekdaysShort : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin : 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact : true,\n meridiemParse: /sa|ch/i,\n isPM(input: string): boolean {\n return /^ch$/i.test(input);\n },\n meridiem(hours: number, minutes: number, isLower: boolean): string {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat : {\n LT : 'HH:mm',\n LTS : 'HH:mm:ss',\n L : 'DD/MM/YYYY',\n LL : 'D MMMM [năm] YYYY',\n LLL : 'D MMMM [năm] YYYY HH:mm',\n LLLL : 'dddd, D MMMM [năm] YYYY HH:mm',\n l : 'DD/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: '[Hôm nay lúc] LT',\n nextDay: '[Ngày mai lúc] LT',\n nextWeek: 'dddd [tuần tới lúc] LT',\n lastDay: '[Hôm qua lúc] LT',\n lastWeek: 'dddd [tuần trước lúc] LT',\n sameElse: 'L'\n },\n relativeTime : {\n future : '%s tới',\n past : '%s trước',\n s : 'vài giây',\n ss : '%d giây' ,\n m : 'một phút',\n mm : '%d phút',\n h : 'một giờ',\n hh : '%d giờ',\n d : 'một ngày',\n dd : '%d ngày',\n M : 'một tháng',\n MM : '%d tháng',\n y : 'một năm',\n yy : '%d năm'\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal(_num: number): string {\n return '' + _num;\n },\n week : {\n dow : 1, // Thứ Hai là ngày đầu tuần.\n doy : 4 // Tuần chứa ngày 4 tháng 1 là tuần đầu tiên trong năm.\n }\n};\n\n","import { 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","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["daysInMonth","isSameDay","symbolMap","numberMap","months","monthsShortDot","monthsShort","monthsParse","monthsRegex","plural","translate","processRelativeTime","suffixes","monthsShortWithDots","monthsShortWithoutDots","relativeTimeWithPlural"],"mappings":"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"}
|