ngx-bootstrap 7.1.2 → 8.0.0-RC.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.
Files changed (2349) hide show
  1. package/accordion/accordion-group.component.d.ts +3 -5
  2. package/accordion/accordion.component.d.ts +3 -5
  3. package/accordion/accordion.config.d.ts +3 -4
  4. package/accordion/accordion.module.d.ts +8 -9
  5. package/accordion/esm2020/accordion-group.component.mjs +88 -0
  6. package/accordion/esm2020/accordion.component.mjs +56 -0
  7. package/accordion/esm2020/accordion.config.mjs +22 -0
  8. package/accordion/esm2020/accordion.module.mjs +23 -0
  9. package/accordion/esm2020/index.mjs +2 -0
  10. package/accordion/esm2020/ngx-bootstrap-accordion.mjs +5 -0
  11. package/accordion/esm2020/public_api.mjs +5 -0
  12. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs +186 -0
  13. package/accordion/fesm2015/ngx-bootstrap-accordion.mjs.map +1 -0
  14. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs +184 -0
  15. package/accordion/fesm2020/ngx-bootstrap-accordion.mjs.map +1 -0
  16. package/accordion/ngx-bootstrap-accordion.d.ts +1 -2
  17. package/accordion/package.json +27 -34
  18. package/alert/alert.component.d.ts +3 -5
  19. package/alert/alert.config.d.ts +3 -4
  20. package/alert/alert.module.d.ts +6 -7
  21. package/alert/esm2020/alert.component.mjs +77 -0
  22. package/alert/esm2020/alert.config.mjs +21 -0
  23. package/alert/esm2020/alert.module.mjs +22 -0
  24. package/alert/esm2020/index.mjs +2 -0
  25. package/alert/esm2020/ngx-bootstrap-alert.mjs +5 -0
  26. package/alert/esm2020/public_api.mjs +4 -0
  27. package/alert/fesm2015/ngx-bootstrap-alert.mjs +120 -0
  28. package/alert/fesm2015/ngx-bootstrap-alert.mjs.map +1 -0
  29. package/alert/fesm2020/ngx-bootstrap-alert.mjs +120 -0
  30. package/alert/fesm2020/ngx-bootstrap-alert.mjs.map +1 -0
  31. package/alert/ngx-bootstrap-alert.d.ts +1 -2
  32. package/alert/package.json +24 -23
  33. package/buttons/button-checkbox.directive.d.ts +3 -5
  34. package/buttons/button-radio-group.directive.d.ts +3 -5
  35. package/buttons/button-radio.directive.d.ts +3 -5
  36. package/buttons/buttons.module.d.ts +7 -8
  37. package/buttons/esm2020/button-checkbox.directive.mjs +87 -0
  38. package/buttons/esm2020/button-radio-group.directive.mjs +157 -0
  39. package/buttons/esm2020/button-radio.directive.mjs +188 -0
  40. package/buttons/esm2020/buttons.module.mjs +21 -0
  41. package/buttons/esm2020/index.mjs +2 -0
  42. package/buttons/esm2020/ngx-bootstrap-buttons.mjs +5 -0
  43. package/buttons/esm2020/public_api.mjs +5 -0
  44. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs +448 -0
  45. package/buttons/fesm2015/ngx-bootstrap-buttons.mjs.map +1 -0
  46. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs +446 -0
  47. package/buttons/fesm2020/ngx-bootstrap-buttons.mjs.map +1 -0
  48. package/buttons/ngx-bootstrap-buttons.d.ts +1 -5
  49. package/buttons/package.json +23 -22
  50. package/carousel/carousel.component.d.ts +3 -5
  51. package/carousel/carousel.config.d.ts +3 -4
  52. package/carousel/carousel.module.d.ts +7 -8
  53. package/carousel/esm2020/carousel.component.mjs +711 -0
  54. package/carousel/esm2020/carousel.config.mjs +32 -0
  55. package/carousel/esm2020/carousel.module.mjs +22 -0
  56. package/carousel/esm2020/index.mjs +2 -0
  57. package/carousel/esm2020/models/index.mjs +2 -0
  58. package/carousel/esm2020/ngx-bootstrap-carousel.mjs +5 -0
  59. package/carousel/esm2020/public_api.mjs +5 -0
  60. package/carousel/esm2020/slide.component.mjs +92 -0
  61. package/carousel/esm2020/utils.mjs +32 -0
  62. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs +875 -0
  63. package/carousel/fesm2015/ngx-bootstrap-carousel.mjs.map +1 -0
  64. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs +874 -0
  65. package/carousel/fesm2020/ngx-bootstrap-carousel.mjs.map +1 -0
  66. package/carousel/ngx-bootstrap-carousel.d.ts +1 -2
  67. package/carousel/package.json +24 -23
  68. package/carousel/slide.component.d.ts +3 -5
  69. package/chronos/esm2020/create/check-overflow.mjs +30 -0
  70. package/chronos/esm2020/create/clone.mjs +6 -0
  71. package/chronos/esm2020/create/date-from-array.mjs +19 -0
  72. package/chronos/esm2020/create/from-anything.mjs +106 -0
  73. package/chronos/esm2020/create/from-array.mjs +135 -0
  74. package/chronos/esm2020/create/from-object.mjs +17 -0
  75. package/chronos/esm2020/create/from-string-and-array.mjs +38 -0
  76. package/chronos/esm2020/create/from-string-and-format.mjs +106 -0
  77. package/chronos/esm2020/create/from-string.mjs +222 -0
  78. package/chronos/esm2020/create/local.mjs +16 -0
  79. package/chronos/esm2020/create/parsing-flags.mjs +26 -0
  80. package/chronos/esm2020/create/parsing.types.mjs +2 -0
  81. package/chronos/esm2020/create/valid.mjs +42 -0
  82. package/chronos/esm2020/duration/bubble.mjs +47 -0
  83. package/chronos/esm2020/duration/constructor.mjs +130 -0
  84. package/chronos/esm2020/duration/create.mjs +112 -0
  85. package/chronos/esm2020/duration/humanize.mjs +79 -0
  86. package/chronos/esm2020/duration/valid.mjs +43 -0
  87. package/chronos/esm2020/format/format.mjs +50 -0
  88. package/chronos/esm2020/format.mjs +46 -0
  89. package/chronos/esm2020/i18n/ar.mjs +132 -0
  90. package/chronos/esm2020/i18n/bg.mjs +90 -0
  91. package/chronos/esm2020/i18n/ca.mjs +87 -0
  92. package/chronos/esm2020/i18n/cs.mjs +175 -0
  93. package/chronos/esm2020/i18n/da.mjs +49 -0
  94. package/chronos/esm2020/i18n/de.mjs +67 -0
  95. package/chronos/esm2020/i18n/en-gb.mjs +57 -0
  96. package/chronos/esm2020/i18n/es-do.mjs +81 -0
  97. package/chronos/esm2020/i18n/es-us.mjs +75 -0
  98. package/chronos/esm2020/i18n/es.mjs +80 -0
  99. package/chronos/esm2020/i18n/et.mjs +69 -0
  100. package/chronos/esm2020/i18n/fi.mjs +96 -0
  101. package/chronos/esm2020/i18n/fr.mjs +72 -0
  102. package/chronos/esm2020/i18n/gl.mjs +80 -0
  103. package/chronos/esm2020/i18n/he.mjs +94 -0
  104. package/chronos/esm2020/i18n/hi.mjs +119 -0
  105. package/chronos/esm2020/i18n/hr.mjs +58 -0
  106. package/chronos/esm2020/i18n/hu.mjs +100 -0
  107. package/chronos/esm2020/i18n/id.mjs +78 -0
  108. package/chronos/esm2020/i18n/it.mjs +61 -0
  109. package/chronos/esm2020/i18n/ja.mjs +71 -0
  110. package/chronos/esm2020/i18n/ka.mjs +83 -0
  111. package/chronos/esm2020/i18n/kk.mjs +76 -0
  112. package/chronos/esm2020/i18n/ko.mjs +72 -0
  113. package/chronos/esm2020/i18n/lt.mjs +112 -0
  114. package/chronos/esm2020/i18n/lv.mjs +52 -0
  115. package/chronos/esm2020/i18n/mn.mjs +94 -0
  116. package/chronos/esm2020/i18n/nb.mjs +53 -0
  117. package/chronos/esm2020/i18n/nl-be.mjs +77 -0
  118. package/chronos/esm2020/i18n/nl.mjs +76 -0
  119. package/chronos/esm2020/i18n/pl.mjs +122 -0
  120. package/chronos/esm2020/i18n/pt-br.mjs +52 -0
  121. package/chronos/esm2020/i18n/ro.mjs +66 -0
  122. package/chronos/esm2020/i18n/ru.mjs +177 -0
  123. package/chronos/esm2020/i18n/sk.mjs +153 -0
  124. package/chronos/esm2020/i18n/sl.mjs +179 -0
  125. package/chronos/esm2020/i18n/sq.mjs +50 -0
  126. package/chronos/esm2020/i18n/sv.mjs +59 -0
  127. package/chronos/esm2020/i18n/th-be.mjs +73 -0
  128. package/chronos/esm2020/i18n/th.mjs +58 -0
  129. package/chronos/esm2020/i18n/tr.mjs +78 -0
  130. package/chronos/esm2020/i18n/uk.mjs +143 -0
  131. package/chronos/esm2020/i18n/vi.mjs +70 -0
  132. package/chronos/esm2020/i18n/zh-cn.mjs +109 -0
  133. package/chronos/esm2020/index.mjs +2 -0
  134. package/chronos/esm2020/locale/calendar.mjs +9 -0
  135. package/chronos/esm2020/locale/locale.class.mjs +532 -0
  136. package/chronos/esm2020/locale/locale.defaults.mjs +40 -0
  137. package/chronos/esm2020/locale/locales.mjs +228 -0
  138. package/chronos/esm2020/moment/add-subtract.mjs +35 -0
  139. package/chronos/esm2020/moment/calendar.mjs +41 -0
  140. package/chronos/esm2020/moment/diff.mjs +70 -0
  141. package/chronos/esm2020/moment/min-max.mjs +38 -0
  142. package/chronos/esm2020/ngx-bootstrap-chronos.mjs +5 -0
  143. package/chronos/esm2020/parse/regex.mjs +47 -0
  144. package/chronos/esm2020/parse/token.mjs +31 -0
  145. package/chronos/esm2020/public_api.mjs +56 -0
  146. package/chronos/esm2020/testing/chain.mjs +708 -0
  147. package/chronos/esm2020/types.mjs +2 -0
  148. package/chronos/esm2020/units/aliases.mjs +35 -0
  149. package/chronos/esm2020/units/constants.mjs +11 -0
  150. package/chronos/esm2020/units/day-of-month.mjs +31 -0
  151. package/chronos/esm2020/units/day-of-week.mjs +129 -0
  152. package/chronos/esm2020/units/day-of-year.mjs +37 -0
  153. package/chronos/esm2020/units/hour.mjs +127 -0
  154. package/chronos/esm2020/units/index.mjs +19 -0
  155. package/chronos/esm2020/units/millisecond.mjs +59 -0
  156. package/chronos/esm2020/units/minute.mjs +23 -0
  157. package/chronos/esm2020/units/month.mjs +63 -0
  158. package/chronos/esm2020/units/offset.mjs +209 -0
  159. package/chronos/esm2020/units/priorities.mjs +21 -0
  160. package/chronos/esm2020/units/quarter.mjs +39 -0
  161. package/chronos/esm2020/units/second.mjs +23 -0
  162. package/chronos/esm2020/units/timestamp.mjs +28 -0
  163. package/chronos/esm2020/units/timezone.mjs +19 -0
  164. package/chronos/esm2020/units/week-calendar-utils.mjs +70 -0
  165. package/chronos/esm2020/units/week-year.mjs +101 -0
  166. package/chronos/esm2020/units/week.mjs +58 -0
  167. package/chronos/esm2020/units/year.mjs +60 -0
  168. package/chronos/esm2020/utils/abs-ceil.mjs +4 -0
  169. package/chronos/esm2020/utils/abs-round.mjs +4 -0
  170. package/chronos/esm2020/utils/compare-arrays.mjs +16 -0
  171. package/chronos/esm2020/utils/date-compare.mjs +55 -0
  172. package/chronos/esm2020/utils/date-getters.mjs +67 -0
  173. package/chronos/esm2020/utils/date-setters.mjs +75 -0
  174. package/chronos/esm2020/utils/defaults.mjs +11 -0
  175. package/chronos/esm2020/utils/start-end-of.mjs +57 -0
  176. package/chronos/esm2020/utils/type-checks.mjs +58 -0
  177. package/chronos/esm2020/utils/zero-fill.mjs +10 -0
  178. package/chronos/esm2020/utils.mjs +7 -0
  179. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs +7311 -0
  180. package/chronos/fesm2015/ngx-bootstrap-chronos.mjs.map +1 -0
  181. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs +7311 -0
  182. package/chronos/fesm2020/ngx-bootstrap-chronos.mjs.map +1 -0
  183. package/chronos/ngx-bootstrap-chronos.d.ts +1 -3
  184. package/chronos/package.json +21 -21
  185. package/collapse/collapse.directive.d.ts +3 -5
  186. package/collapse/collapse.module.d.ts +5 -6
  187. package/collapse/esm2020/collapse-animations.mjs +11 -0
  188. package/collapse/esm2020/collapse.directive.mjs +168 -0
  189. package/collapse/esm2020/collapse.module.mjs +19 -0
  190. package/collapse/esm2020/index.mjs +2 -0
  191. package/collapse/esm2020/ngx-bootstrap-collapse.mjs +5 -0
  192. package/collapse/esm2020/public_api.mjs +3 -0
  193. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs +200 -0
  194. package/collapse/fesm2015/ngx-bootstrap-collapse.mjs.map +1 -0
  195. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs +200 -0
  196. package/collapse/fesm2020/ngx-bootstrap-collapse.mjs.map +1 -0
  197. package/collapse/ngx-bootstrap-collapse.d.ts +1 -2
  198. package/collapse/package.json +24 -23
  199. package/component-loader/component-loader.factory.d.ts +3 -4
  200. package/component-loader/esm2020/bs-component-ref.class.mjs +3 -0
  201. package/component-loader/esm2020/component-loader.class.mjs +286 -0
  202. package/component-loader/esm2020/component-loader.factory.mjs +30 -0
  203. package/component-loader/esm2020/content-ref.class.mjs +16 -0
  204. package/component-loader/esm2020/index.mjs +2 -0
  205. package/component-loader/esm2020/listen-options.model.mjs +2 -0
  206. package/component-loader/esm2020/ngx-bootstrap-component-loader.mjs +5 -0
  207. package/component-loader/esm2020/public_api.mjs +5 -0
  208. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs +339 -0
  209. package/component-loader/fesm2015/ngx-bootstrap-component-loader.mjs.map +1 -0
  210. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs +336 -0
  211. package/component-loader/fesm2020/ngx-bootstrap-component-loader.mjs.map +1 -0
  212. package/component-loader/ngx-bootstrap-component-loader.d.ts +1 -2
  213. package/component-loader/package.json +27 -25
  214. package/datepicker/bs-datepicker-inline.component.d.ts +3 -5
  215. package/datepicker/bs-datepicker-inline.config.d.ts +3 -4
  216. package/datepicker/bs-datepicker-input.directive.d.ts +3 -5
  217. package/datepicker/bs-datepicker.component.d.ts +4 -6
  218. package/datepicker/bs-datepicker.config.d.ts +3 -4
  219. package/datepicker/bs-datepicker.module.d.ts +26 -27
  220. package/datepicker/bs-daterangepicker-inline.component.d.ts +3 -5
  221. package/datepicker/bs-daterangepicker-inline.config.d.ts +3 -4
  222. package/datepicker/bs-daterangepicker-input.directive.d.ts +3 -5
  223. package/datepicker/bs-daterangepicker.component.d.ts +3 -5
  224. package/datepicker/bs-daterangepicker.config.d.ts +3 -4
  225. package/datepicker/bs-locale.service.d.ts +3 -5
  226. package/datepicker/datepicker-inner.component.d.ts +3 -5
  227. package/datepicker/datepicker.component.d.ts +3 -5
  228. package/datepicker/datepicker.config.d.ts +3 -4
  229. package/datepicker/datepicker.module.d.ts +11 -12
  230. package/datepicker/daypicker.component.d.ts +3 -5
  231. package/datepicker/esm2020/base/bs-datepicker-container.mjs +76 -0
  232. package/datepicker/esm2020/bs-datepicker-inline.component.mjs +151 -0
  233. package/datepicker/esm2020/bs-datepicker-inline.config.mjs +14 -0
  234. package/datepicker/esm2020/bs-datepicker-input.directive.mjs +163 -0
  235. package/datepicker/esm2020/bs-datepicker.component.mjs +265 -0
  236. package/datepicker/esm2020/bs-datepicker.config.mjs +89 -0
  237. package/datepicker/esm2020/bs-datepicker.module.mjs +123 -0
  238. package/datepicker/esm2020/bs-daterangepicker-inline.component.mjs +151 -0
  239. package/datepicker/esm2020/bs-daterangepicker-inline.config.mjs +21 -0
  240. package/datepicker/esm2020/bs-daterangepicker-input.directive.mjs +208 -0
  241. package/datepicker/esm2020/bs-daterangepicker.component.mjs +256 -0
  242. package/datepicker/esm2020/bs-daterangepicker.config.mjs +19 -0
  243. package/datepicker/esm2020/bs-locale.service.mjs +32 -0
  244. package/datepicker/esm2020/date-formatter.mjs +7 -0
  245. package/datepicker/esm2020/datepicker-animations.mjs +16 -0
  246. package/datepicker/esm2020/datepicker-inner.component.mjs +325 -0
  247. package/datepicker/esm2020/datepicker.component.mjs +204 -0
  248. package/datepicker/esm2020/datepicker.config.mjs +32 -0
  249. package/datepicker/esm2020/datepicker.module.mjs +48 -0
  250. package/datepicker/esm2020/daypicker.component.mjs +255 -0
  251. package/datepicker/esm2020/engine/calc-days-calendar.mjs +21 -0
  252. package/datepicker/esm2020/engine/flag-days-calendar.mjs +93 -0
  253. package/datepicker/esm2020/engine/flag-months-calendar.mjs +45 -0
  254. package/datepicker/esm2020/engine/flag-years-calendar.mjs +42 -0
  255. package/datepicker/esm2020/engine/format-days-calendar.mjs +33 -0
  256. package/datepicker/esm2020/engine/format-months-calendar.mjs +23 -0
  257. package/datepicker/esm2020/engine/format-years-calendar.mjs +39 -0
  258. package/datepicker/esm2020/engine/view-mode.mjs +4 -0
  259. package/datepicker/esm2020/index.mjs +2 -0
  260. package/datepicker/esm2020/models/index.mjs +9 -0
  261. package/datepicker/esm2020/monthpicker.component.mjs +131 -0
  262. package/datepicker/esm2020/ngx-bootstrap-datepicker.mjs +5 -0
  263. package/datepicker/esm2020/public_api.mjs +25 -0
  264. package/datepicker/esm2020/reducer/_defaults.mjs +6 -0
  265. package/datepicker/esm2020/reducer/bs-datepicker.actions.mjs +143 -0
  266. package/datepicker/esm2020/reducer/bs-datepicker.effects.mjs +182 -0
  267. package/datepicker/esm2020/reducer/bs-datepicker.reducer.mjs +378 -0
  268. package/datepicker/esm2020/reducer/bs-datepicker.state.mjs +18 -0
  269. package/datepicker/esm2020/reducer/bs-datepicker.store.mjs +22 -0
  270. package/datepicker/esm2020/themes/bs/bs-calendar-layout.component.mjs +47 -0
  271. package/datepicker/esm2020/themes/bs/bs-current-date-view.component.mjs +16 -0
  272. package/datepicker/esm2020/themes/bs/bs-custom-dates-view.component.mjs +50 -0
  273. package/datepicker/esm2020/themes/bs/bs-datepicker-container.component.mjs +160 -0
  274. package/datepicker/esm2020/themes/bs/bs-datepicker-day-decorator.directive.mjs +47 -0
  275. package/datepicker/esm2020/themes/bs/bs-datepicker-inline-container.component.mjs +36 -0
  276. package/datepicker/esm2020/themes/bs/bs-datepicker-navigation-view.component.mjs +105 -0
  277. package/datepicker/esm2020/themes/bs/bs-daterangepicker-container.component.mjs +226 -0
  278. package/datepicker/esm2020/themes/bs/bs-daterangepicker-inline-container.component.mjs +36 -0
  279. package/datepicker/esm2020/themes/bs/bs-days-calendar-view.component.mjs +226 -0
  280. package/datepicker/esm2020/themes/bs/bs-months-calendar-view.component.mjs +93 -0
  281. package/datepicker/esm2020/themes/bs/bs-timepicker-view.component.mjs +55 -0
  282. package/datepicker/esm2020/themes/bs/bs-years-calendar-view.component.mjs +94 -0
  283. package/datepicker/esm2020/utils/bs-calendar-utils.mjs +120 -0
  284. package/datepicker/esm2020/utils/copy-time-utils.mjs +7 -0
  285. package/datepicker/esm2020/utils/matrix-utils.mjs +14 -0
  286. package/datepicker/esm2020/yearpicker.component.mjs +146 -0
  287. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs +4848 -0
  288. package/datepicker/fesm2015/ngx-bootstrap-datepicker.mjs.map +1 -0
  289. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs +4816 -0
  290. package/datepicker/fesm2020/ngx-bootstrap-datepicker.mjs.map +1 -0
  291. package/datepicker/monthpicker.component.d.ts +3 -5
  292. package/datepicker/ngx-bootstrap-datepicker.d.ts +1 -17
  293. package/datepicker/package.json +35 -32
  294. package/datepicker/reducer/bs-datepicker.actions.d.ts +3 -5
  295. package/datepicker/reducer/bs-datepicker.effects.d.ts +3 -5
  296. package/datepicker/reducer/bs-datepicker.store.d.ts +3 -5
  297. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +3 -5
  298. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +3 -5
  299. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +3 -5
  300. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +3 -5
  301. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +3 -5
  302. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +3 -5
  303. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +3 -5
  304. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +3 -5
  305. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +3 -5
  306. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +3 -5
  307. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +3 -5
  308. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +3 -5
  309. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +3 -5
  310. package/datepicker/yearpicker.component.d.ts +3 -5
  311. package/dropdown/bs-dropdown-container.component.d.ts +3 -5
  312. package/dropdown/bs-dropdown-menu.directive.d.ts +3 -5
  313. package/dropdown/bs-dropdown-toggle.directive.d.ts +3 -5
  314. package/dropdown/bs-dropdown.config.d.ts +3 -4
  315. package/dropdown/bs-dropdown.directive.d.ts +3 -5
  316. package/dropdown/bs-dropdown.module.d.ts +9 -10
  317. package/dropdown/bs-dropdown.state.d.ts +3 -5
  318. package/dropdown/esm2020/bs-dropdown-container.component.mjs +80 -0
  319. package/dropdown/esm2020/bs-dropdown-menu.directive.mjs +22 -0
  320. package/dropdown/esm2020/bs-dropdown-toggle.directive.mjs +87 -0
  321. package/dropdown/esm2020/bs-dropdown.config.mjs +24 -0
  322. package/dropdown/esm2020/bs-dropdown.directive.mjs +346 -0
  323. package/dropdown/esm2020/bs-dropdown.module.mjs +49 -0
  324. package/dropdown/esm2020/bs-dropdown.state.mjs +25 -0
  325. package/dropdown/esm2020/dropdown-animations.mjs +7 -0
  326. package/dropdown/esm2020/index.mjs +2 -0
  327. package/dropdown/esm2020/ngx-bootstrap-dropdown.mjs +5 -0
  328. package/dropdown/esm2020/public_api.mjs +8 -0
  329. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs +610 -0
  330. package/dropdown/fesm2015/ngx-bootstrap-dropdown.mjs.map +1 -0
  331. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs +610 -0
  332. package/dropdown/fesm2020/ngx-bootstrap-dropdown.mjs.map +1 -0
  333. package/dropdown/ngx-bootstrap-dropdown.d.ts +1 -2
  334. package/dropdown/package.json +30 -28
  335. package/esm2020/index.mjs +2 -0
  336. package/esm2020/ngx-bootstrap.mjs +5 -0
  337. package/fesm2015/ngx-bootstrap.mjs +6 -0
  338. package/fesm2015/ngx-bootstrap.mjs.map +1 -0
  339. package/fesm2020/ngx-bootstrap.mjs +6 -0
  340. package/fesm2020/ngx-bootstrap.mjs.map +1 -0
  341. package/focus-trap/esm2020/boolean-property.mjs +12 -0
  342. package/focus-trap/esm2020/focus-trap-manager.mjs +54 -0
  343. package/focus-trap/esm2020/focus-trap.mjs +399 -0
  344. package/focus-trap/esm2020/focus-trap.module.mjs +31 -0
  345. package/focus-trap/esm2020/index.mjs +2 -0
  346. package/focus-trap/esm2020/interactivity-checker.mjs +241 -0
  347. package/focus-trap/esm2020/ngx-bootstrap-focus-trap.mjs +5 -0
  348. package/focus-trap/esm2020/platform.mjs +80 -0
  349. package/focus-trap/esm2020/public_api.mjs +4 -0
  350. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs +800 -0
  351. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.mjs.map +1 -0
  352. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs +801 -0
  353. package/focus-trap/fesm2020/ngx-bootstrap-focus-trap.mjs.map +1 -0
  354. package/focus-trap/focus-trap-manager.d.ts +3 -11
  355. package/focus-trap/focus-trap.d.ts +5 -6
  356. package/focus-trap/focus-trap.module.d.ts +6 -7
  357. package/focus-trap/interactivity-checker.d.ts +3 -4
  358. package/focus-trap/ngx-bootstrap-focus-trap.d.ts +1 -6
  359. package/focus-trap/package.json +24 -23
  360. package/focus-trap/platform.d.ts +3 -11
  361. package/locale/esm2020/index.mjs +2 -0
  362. package/locale/esm2020/ngx-bootstrap-locale.mjs +5 -0
  363. package/locale/esm2020/public_api.mjs +45 -0
  364. package/locale/fesm2015/ngx-bootstrap-locale.mjs +6 -0
  365. package/locale/fesm2015/ngx-bootstrap-locale.mjs.map +1 -0
  366. package/locale/fesm2020/ngx-bootstrap-locale.mjs +6 -0
  367. package/locale/fesm2020/ngx-bootstrap-locale.mjs.map +1 -0
  368. package/locale/ngx-bootstrap-locale.d.ts +1 -2
  369. package/locale/package.json +22 -21
  370. package/mini-ngrx/esm2020/index.mjs +2 -0
  371. package/mini-ngrx/esm2020/ngx-bootstrap-mini-ngrx.mjs +5 -0
  372. package/mini-ngrx/esm2020/public_api.mjs +3 -0
  373. package/mini-ngrx/esm2020/state.class.mjs +16 -0
  374. package/mini-ngrx/esm2020/store.class.mjs +42 -0
  375. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs +64 -0
  376. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
  377. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs +63 -0
  378. package/mini-ngrx/fesm2020/ngx-bootstrap-mini-ngrx.mjs.map +1 -0
  379. package/mini-ngrx/ngx-bootstrap-mini-ngrx.d.ts +1 -2
  380. package/mini-ngrx/package.json +22 -21
  381. package/modal/bs-modal-ref.service.d.ts +3 -5
  382. package/modal/bs-modal.service.d.ts +3 -5
  383. package/modal/esm2020/bs-modal-ref.service.mjs +22 -0
  384. package/modal/esm2020/bs-modal.service.mjs +219 -0
  385. package/modal/esm2020/index.mjs +2 -0
  386. package/modal/esm2020/modal-backdrop.component.mjs +58 -0
  387. package/modal/esm2020/modal-backdrop.options.mjs +7 -0
  388. package/modal/esm2020/modal-container.component.mjs +146 -0
  389. package/modal/esm2020/modal-options.class.mjs +46 -0
  390. package/modal/esm2020/modal.directive.mjs +368 -0
  391. package/modal/esm2020/modal.module.mjs +43 -0
  392. package/modal/esm2020/models/index.mjs +2 -0
  393. package/modal/esm2020/ngx-bootstrap-modal.mjs +5 -0
  394. package/modal/esm2020/public_api.mjs +9 -0
  395. package/modal/fesm2015/ngx-bootstrap-modal.mjs +891 -0
  396. package/modal/fesm2015/ngx-bootstrap-modal.mjs.map +1 -0
  397. package/modal/fesm2020/ngx-bootstrap-modal.mjs +882 -0
  398. package/modal/fesm2020/ngx-bootstrap-modal.mjs.map +1 -0
  399. package/modal/modal-backdrop.component.d.ts +3 -5
  400. package/modal/modal-container.component.d.ts +3 -5
  401. package/modal/modal-options.class.d.ts +3 -5
  402. package/modal/modal.directive.d.ts +3 -5
  403. package/modal/modal.module.d.ts +8 -9
  404. package/modal/ngx-bootstrap-modal.d.ts +1 -3
  405. package/modal/package.json +29 -27
  406. package/ngx-bootstrap.d.ts +1 -0
  407. package/package.json +19 -7
  408. package/pagination/esm2020/index.mjs +2 -0
  409. package/pagination/esm2020/models/index.mjs +2 -0
  410. package/pagination/esm2020/ngx-bootstrap-pagination.mjs +5 -0
  411. package/pagination/esm2020/pager.component.mjs +256 -0
  412. package/pagination/esm2020/pagination.component.mjs +257 -0
  413. package/pagination/esm2020/pagination.config.mjs +35 -0
  414. package/pagination/esm2020/pagination.module.mjs +22 -0
  415. package/pagination/esm2020/public_api.mjs +5 -0
  416. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs +565 -0
  417. package/pagination/fesm2015/ngx-bootstrap-pagination.mjs.map +1 -0
  418. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs +563 -0
  419. package/pagination/fesm2020/ngx-bootstrap-pagination.mjs.map +1 -0
  420. package/pagination/ngx-bootstrap-pagination.d.ts +1 -4
  421. package/pagination/package.json +24 -23
  422. package/pagination/pager.component.d.ts +3 -5
  423. package/pagination/pagination.component.d.ts +3 -5
  424. package/pagination/pagination.config.d.ts +3 -4
  425. package/pagination/pagination.module.d.ts +7 -8
  426. package/popover/esm2020/index.mjs +2 -0
  427. package/popover/esm2020/ngx-bootstrap-popover.mjs +5 -0
  428. package/popover/esm2020/popover-container.component.mjs +67 -0
  429. package/popover/esm2020/popover.config.mjs +35 -0
  430. package/popover/esm2020/popover.directive.mjs +238 -0
  431. package/popover/esm2020/popover.module.mjs +28 -0
  432. package/popover/esm2020/public_api.mjs +5 -0
  433. package/popover/fesm2015/ngx-bootstrap-popover.mjs +358 -0
  434. package/popover/fesm2015/ngx-bootstrap-popover.mjs.map +1 -0
  435. package/popover/fesm2020/ngx-bootstrap-popover.mjs +358 -0
  436. package/popover/fesm2020/ngx-bootstrap-popover.mjs.map +1 -0
  437. package/popover/ngx-bootstrap-popover.d.ts +1 -2
  438. package/popover/package.json +28 -26
  439. package/popover/popover-container.component.d.ts +3 -5
  440. package/popover/popover.config.d.ts +3 -4
  441. package/popover/popover.directive.d.ts +3 -5
  442. package/popover/popover.module.d.ts +7 -8
  443. package/positioning/esm2020/index.mjs +2 -0
  444. package/positioning/esm2020/models/index.mjs +53 -0
  445. package/positioning/esm2020/modifiers/arrow.mjs +56 -0
  446. package/positioning/esm2020/modifiers/flip.mjs +65 -0
  447. package/positioning/esm2020/modifiers/index.mjs +6 -0
  448. package/positioning/esm2020/modifiers/initData.mjs +44 -0
  449. package/positioning/esm2020/modifiers/preventOverflow.mjs +55 -0
  450. package/positioning/esm2020/modifiers/shift.mjs +24 -0
  451. package/positioning/esm2020/ng-positioning.mjs +39 -0
  452. package/positioning/esm2020/ngx-bootstrap-positioning.mjs +5 -0
  453. package/positioning/esm2020/positioning.service.mjs +71 -0
  454. package/positioning/esm2020/public_api.mjs +5 -0
  455. package/positioning/esm2020/utils/checkMargin.mjs +32 -0
  456. package/positioning/esm2020/utils/computeAutoPlacement.mjs +59 -0
  457. package/positioning/esm2020/utils/findCommonOffsetParent.mjs +40 -0
  458. package/positioning/esm2020/utils/getBordersSize.mjs +10 -0
  459. package/positioning/esm2020/utils/getBoundaries.mjs +70 -0
  460. package/positioning/esm2020/utils/getBoundingClientRect.mjs +56 -0
  461. package/positioning/esm2020/utils/getClientRect.mjs +8 -0
  462. package/positioning/esm2020/utils/getFixedPositionOffsetParent.mjs +16 -0
  463. package/positioning/esm2020/utils/getOffsetParent.mjs +33 -0
  464. package/positioning/esm2020/utils/getOffsetRectRelativeToArbitraryNode.mjs +52 -0
  465. package/positioning/esm2020/utils/getOffsets.mjs +11 -0
  466. package/positioning/esm2020/utils/getOppositePlacement.mjs +8 -0
  467. package/positioning/esm2020/utils/getOppositeVariation.mjs +13 -0
  468. package/positioning/esm2020/utils/getOuterSizes.mjs +12 -0
  469. package/positioning/esm2020/utils/getParentNode.mjs +12 -0
  470. package/positioning/esm2020/utils/getReferenceOffsets.mjs +13 -0
  471. package/positioning/esm2020/utils/getRoot.mjs +10 -0
  472. package/positioning/esm2020/utils/getScroll.mjs +14 -0
  473. package/positioning/esm2020/utils/getScrollParent.mjs +28 -0
  474. package/positioning/esm2020/utils/getStyleComputedProperty.mjs +12 -0
  475. package/positioning/esm2020/utils/getTargetOffsets.mjs +30 -0
  476. package/positioning/esm2020/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +19 -0
  477. package/positioning/esm2020/utils/getWindowSizes.mjs +16 -0
  478. package/positioning/esm2020/utils/includeScroll.mjs +24 -0
  479. package/positioning/esm2020/utils/index.mjs +24 -0
  480. package/positioning/esm2020/utils/isFixed.mjs +16 -0
  481. package/positioning/esm2020/utils/isModifierEnabled.mjs +4 -0
  482. package/positioning/esm2020/utils/isNumeric.mjs +11 -0
  483. package/positioning/esm2020/utils/isOffsetContainer.mjs +11 -0
  484. package/positioning/esm2020/utils/setStyles.mjs +21 -0
  485. package/positioning/esm2020/utils/updateContainerClass.mjs +30 -0
  486. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs +1023 -0
  487. package/positioning/fesm2015/ngx-bootstrap-positioning.mjs.map +1 -0
  488. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs +1029 -0
  489. package/positioning/fesm2020/ngx-bootstrap-positioning.mjs.map +1 -0
  490. package/positioning/ngx-bootstrap-positioning.d.ts +1 -2
  491. package/positioning/package.json +26 -24
  492. package/positioning/positioning.service.d.ts +3 -4
  493. package/progressbar/bar.component.d.ts +3 -5
  494. package/progressbar/esm2020/bar.component.mjs +77 -0
  495. package/progressbar/esm2020/index.mjs +2 -0
  496. package/progressbar/esm2020/ngx-bootstrap-progressbar.mjs +5 -0
  497. package/progressbar/esm2020/progressbar-type.interface.mjs +2 -0
  498. package/progressbar/esm2020/progressbar.component.mjs +57 -0
  499. package/progressbar/esm2020/progressbar.config.mjs +19 -0
  500. package/progressbar/esm2020/progressbar.module.mjs +22 -0
  501. package/progressbar/esm2020/public_api.mjs +5 -0
  502. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs +172 -0
  503. package/progressbar/fesm2015/ngx-bootstrap-progressbar.mjs.map +1 -0
  504. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs +171 -0
  505. package/progressbar/fesm2020/ngx-bootstrap-progressbar.mjs.map +1 -0
  506. package/progressbar/ngx-bootstrap-progressbar.d.ts +1 -2
  507. package/progressbar/package.json +24 -23
  508. package/progressbar/progressbar.component.d.ts +3 -5
  509. package/progressbar/progressbar.config.d.ts +3 -4
  510. package/progressbar/progressbar.module.d.ts +7 -8
  511. package/rating/esm2020/index.mjs +2 -0
  512. package/rating/esm2020/models/index.mjs +2 -0
  513. package/rating/esm2020/ngx-bootstrap-rating.mjs +5 -0
  514. package/rating/esm2020/public_api.mjs +4 -0
  515. package/rating/esm2020/rating.component.mjs +121 -0
  516. package/rating/esm2020/rating.config.mjs +18 -0
  517. package/rating/esm2020/rating.module.mjs +24 -0
  518. package/rating/fesm2015/ngx-bootstrap-rating.mjs +163 -0
  519. package/rating/fesm2015/ngx-bootstrap-rating.mjs.map +1 -0
  520. package/rating/fesm2020/ngx-bootstrap-rating.mjs +163 -0
  521. package/rating/fesm2020/ngx-bootstrap-rating.mjs.map +1 -0
  522. package/rating/ngx-bootstrap-rating.d.ts +1 -3
  523. package/rating/package.json +24 -23
  524. package/rating/rating.component.d.ts +3 -5
  525. package/rating/rating.config.d.ts +3 -4
  526. package/rating/rating.module.d.ts +6 -7
  527. package/schematics/ng-add/index.js +10 -10
  528. package/schematics/ng-add/index.js.map +1 -1
  529. package/schematics/package.json +6 -6
  530. package/schematics/utils/addStyles.js +2 -2
  531. package/schematics/utils/addStyles.js.map +1 -1
  532. package/schematics/utils/current_dependency_versions.json +1 -1
  533. package/schematics/utils/getVersions.js +1 -1
  534. package/schematics/utils/getVersions.js.map +1 -1
  535. package/schematics/utils/index.js +3 -3
  536. package/schematics/utils/index.js.map +1 -1
  537. package/schematics/utils/ng-module-imports.js +1 -1
  538. package/schematics/utils/ng-module-imports.js.map +1 -1
  539. package/schematics/utils/project-main-file.js +1 -1
  540. package/schematics/utils/project-main-file.js.map +1 -1
  541. package/schematics/utils/project-targets.d.ts +1 -1
  542. package/schematics/utils/project-targets.js.map +1 -1
  543. package/sortable/draggable-item.service.d.ts +3 -5
  544. package/sortable/esm2020/draggable-item.mjs +2 -0
  545. package/sortable/esm2020/draggable-item.service.mjs +36 -0
  546. package/sortable/esm2020/index.mjs +2 -0
  547. package/sortable/esm2020/ngx-bootstrap-sortable.mjs +5 -0
  548. package/sortable/esm2020/public_api.mjs +4 -0
  549. package/sortable/esm2020/sortable.component.mjs +266 -0
  550. package/sortable/esm2020/sortable.module.mjs +22 -0
  551. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs +324 -0
  552. package/sortable/fesm2015/ngx-bootstrap-sortable.mjs.map +1 -0
  553. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs +323 -0
  554. package/sortable/fesm2020/ngx-bootstrap-sortable.mjs.map +1 -0
  555. package/sortable/ngx-bootstrap-sortable.d.ts +1 -2
  556. package/sortable/package.json +26 -25
  557. package/sortable/sortable.component.d.ts +3 -5
  558. package/sortable/sortable.module.d.ts +6 -7
  559. package/tabs/esm2020/index.mjs +2 -0
  560. package/tabs/esm2020/ng-transclude.directive.mjs +28 -0
  561. package/tabs/esm2020/ngx-bootstrap-tabs.mjs +5 -0
  562. package/tabs/esm2020/public_api.mjs +7 -0
  563. package/tabs/esm2020/tab-heading.directive.mjs +18 -0
  564. package/tabs/esm2020/tab.directive.mjs +115 -0
  565. package/tabs/esm2020/tabs.module.mjs +43 -0
  566. package/tabs/esm2020/tabset.component.mjs +216 -0
  567. package/tabs/esm2020/tabset.config.mjs +21 -0
  568. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs +427 -0
  569. package/tabs/fesm2015/ngx-bootstrap-tabs.mjs.map +1 -0
  570. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs +427 -0
  571. package/tabs/fesm2020/ngx-bootstrap-tabs.mjs.map +1 -0
  572. package/tabs/ng-transclude.directive.d.ts +3 -5
  573. package/tabs/ngx-bootstrap-tabs.d.ts +1 -2
  574. package/tabs/package.json +23 -22
  575. package/tabs/tab-heading.directive.d.ts +3 -5
  576. package/tabs/tab.directive.d.ts +3 -5
  577. package/tabs/tabs.module.d.ts +9 -10
  578. package/tabs/tabset.component.d.ts +3 -5
  579. package/tabs/tabset.config.d.ts +3 -4
  580. package/timepicker/esm2020/index.mjs +2 -0
  581. package/timepicker/esm2020/models/index.mjs +2 -0
  582. package/timepicker/esm2020/ngx-bootstrap-timepicker.mjs +5 -0
  583. package/timepicker/esm2020/public_api.mjs +6 -0
  584. package/timepicker/esm2020/reducer/timepicker.actions.mjs +53 -0
  585. package/timepicker/esm2020/reducer/timepicker.reducer.mjs +83 -0
  586. package/timepicker/esm2020/reducer/timepicker.store.mjs +21 -0
  587. package/timepicker/esm2020/timepicker-controls.util.mjs +123 -0
  588. package/timepicker/esm2020/timepicker.component.mjs +360 -0
  589. package/timepicker/esm2020/timepicker.config.mjs +54 -0
  590. package/timepicker/esm2020/timepicker.models.mjs +2 -0
  591. package/timepicker/esm2020/timepicker.module.mjs +27 -0
  592. package/timepicker/esm2020/timepicker.utils.mjs +152 -0
  593. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs +856 -0
  594. package/timepicker/fesm2015/ngx-bootstrap-timepicker.mjs.map +1 -0
  595. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs +855 -0
  596. package/timepicker/fesm2020/ngx-bootstrap-timepicker.mjs.map +1 -0
  597. package/timepicker/ngx-bootstrap-timepicker.d.ts +1 -3
  598. package/timepicker/package.json +27 -26
  599. package/timepicker/reducer/timepicker.actions.d.ts +3 -5
  600. package/timepicker/reducer/timepicker.store.d.ts +3 -5
  601. package/timepicker/timepicker.component.d.ts +4 -6
  602. package/timepicker/timepicker.config.d.ts +3 -4
  603. package/timepicker/timepicker.module.d.ts +6 -7
  604. package/tooltip/esm2020/index.mjs +2 -0
  605. package/tooltip/esm2020/ngx-bootstrap-tooltip.mjs +5 -0
  606. package/tooltip/esm2020/public_api.mjs +5 -0
  607. package/tooltip/esm2020/tooltip-container.component.mjs +76 -0
  608. package/tooltip/esm2020/tooltip.config.mjs +22 -0
  609. package/tooltip/esm2020/tooltip.directive.mjs +342 -0
  610. package/tooltip/esm2020/tooltip.module.mjs +28 -0
  611. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs +460 -0
  612. package/tooltip/fesm2015/ngx-bootstrap-tooltip.mjs.map +1 -0
  613. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs +458 -0
  614. package/tooltip/fesm2020/ngx-bootstrap-tooltip.mjs.map +1 -0
  615. package/tooltip/ngx-bootstrap-tooltip.d.ts +1 -2
  616. package/tooltip/package.json +29 -27
  617. package/tooltip/tooltip-container.component.d.ts +3 -5
  618. package/tooltip/tooltip.config.d.ts +3 -4
  619. package/tooltip/tooltip.directive.d.ts +3 -5
  620. package/tooltip/tooltip.module.d.ts +7 -8
  621. package/typeahead/esm2020/index.mjs +2 -0
  622. package/typeahead/esm2020/latin-map.mjs +827 -0
  623. package/typeahead/esm2020/models/index.mjs +2 -0
  624. package/typeahead/esm2020/ngx-bootstrap-typeahead.mjs +5 -0
  625. package/typeahead/esm2020/public_api.mjs +9 -0
  626. package/typeahead/esm2020/typeahead-animations.mjs +16 -0
  627. package/typeahead/esm2020/typeahead-container.component.mjs +326 -0
  628. package/typeahead/esm2020/typeahead-match.class.mjs +15 -0
  629. package/typeahead/esm2020/typeahead-options.class.mjs +8 -0
  630. package/typeahead/esm2020/typeahead-order.class.mjs +2 -0
  631. package/typeahead/esm2020/typeahead-utils.mjs +77 -0
  632. package/typeahead/esm2020/typeahead.config.mjs +34 -0
  633. package/typeahead/esm2020/typeahead.directive.mjs +576 -0
  634. package/typeahead/esm2020/typeahead.module.mjs +28 -0
  635. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs +1906 -0
  636. package/typeahead/fesm2015/ngx-bootstrap-typeahead.mjs.map +1 -0
  637. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs +1894 -0
  638. package/typeahead/fesm2020/ngx-bootstrap-typeahead.mjs.map +1 -0
  639. package/typeahead/ngx-bootstrap-typeahead.d.ts +1 -3
  640. package/typeahead/package.json +31 -29
  641. package/typeahead/typeahead-container.component.d.ts +3 -5
  642. package/typeahead/typeahead.config.d.ts +3 -4
  643. package/typeahead/typeahead.directive.d.ts +3 -5
  644. package/typeahead/typeahead.module.d.ts +7 -8
  645. package/utils/esm2020/decorators.mjs +23 -0
  646. package/utils/esm2020/facade/browser.mjs +26 -0
  647. package/utils/esm2020/index.mjs +2 -0
  648. package/utils/esm2020/linked-list.class.mjs +247 -0
  649. package/utils/esm2020/ngx-bootstrap-utils.mjs +5 -0
  650. package/utils/esm2020/public_api.mjs +10 -0
  651. package/utils/esm2020/theme-provider.mjs +74 -0
  652. package/utils/esm2020/trigger.class.mjs +14 -0
  653. package/utils/esm2020/triggers.mjs +118 -0
  654. package/utils/esm2020/utils.class.mjs +30 -0
  655. package/utils/esm2020/warn-once.mjs +11 -0
  656. package/utils/fesm2015/ngx-bootstrap-utils.mjs +547 -0
  657. package/utils/fesm2015/ngx-bootstrap-utils.mjs.map +1 -0
  658. package/utils/fesm2020/ngx-bootstrap-utils.mjs +545 -0
  659. package/utils/fesm2020/ngx-bootstrap-utils.mjs.map +1 -0
  660. package/utils/ngx-bootstrap-utils.d.ts +1 -3
  661. package/utils/package.json +22 -21
  662. package/__ivy_ngcc__/chronos/fesm2015/ngx-bootstrap-chronos.js +0 -7318
  663. package/__ivy_ngcc__/chronos/fesm2015/ngx-bootstrap-chronos.js.map +0 -1
  664. package/__ivy_ngcc__/datepicker/fesm2015/ngx-bootstrap-datepicker.js +0 -6224
  665. package/__ivy_ngcc__/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +0 -1
  666. package/__ivy_ngcc__/locale/fesm2015/ngx-bootstrap-locale.js +0 -7
  667. package/__ivy_ngcc__/locale/fesm2015/ngx-bootstrap-locale.js.map +0 -1
  668. package/accordion/__ivy_ngcc__/fesm2015/ngx-bootstrap-accordion.js +0 -258
  669. package/accordion/__ivy_ngcc__/fesm2015/ngx-bootstrap-accordion.js.map +0 -1
  670. package/accordion/accordion-group.component.d.ts.__ivy_ngcc_bak +0 -34
  671. package/accordion/accordion-group.component.d.ts.map +0 -1
  672. package/accordion/accordion.component.d.ts.__ivy_ngcc_bak +0 -14
  673. package/accordion/accordion.component.d.ts.map +0 -1
  674. package/accordion/accordion.config.d.ts.__ivy_ngcc_bak +0 -9
  675. package/accordion/accordion.config.d.ts.map +0 -1
  676. package/accordion/accordion.module.d.ts.__ivy_ngcc_bak +0 -4
  677. package/accordion/accordion.module.d.ts.map +0 -1
  678. package/accordion/bundles/ngx-bootstrap-accordion.umd.js +0 -195
  679. package/accordion/bundles/ngx-bootstrap-accordion.umd.js.map +0 -1
  680. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js +0 -2
  681. package/accordion/bundles/ngx-bootstrap-accordion.umd.min.js.map +0 -1
  682. package/accordion/esm2015/accordion-group.component.js +0 -81
  683. package/accordion/esm2015/accordion-group.component.js.map +0 -1
  684. package/accordion/esm2015/accordion-group.component.metadata.json +0 -1
  685. package/accordion/esm2015/accordion.component.js +0 -54
  686. package/accordion/esm2015/accordion.component.js.map +0 -1
  687. package/accordion/esm2015/accordion.component.metadata.json +0 -1
  688. package/accordion/esm2015/accordion.config.js +0 -20
  689. package/accordion/esm2015/accordion.config.js.map +0 -1
  690. package/accordion/esm2015/accordion.config.metadata.json +0 -1
  691. package/accordion/esm2015/accordion.module.js +0 -18
  692. package/accordion/esm2015/accordion.module.js.map +0 -1
  693. package/accordion/esm2015/accordion.module.metadata.json +0 -1
  694. package/accordion/esm2015/index.js +0 -2
  695. package/accordion/esm2015/index.js.map +0 -1
  696. package/accordion/esm2015/index.metadata.json +0 -1
  697. package/accordion/esm2015/ngx-bootstrap-accordion.js +0 -5
  698. package/accordion/esm2015/ngx-bootstrap-accordion.js.map +0 -1
  699. package/accordion/esm2015/ngx-bootstrap-accordion.metadata.json +0 -1
  700. package/accordion/esm2015/public_api.js +0 -5
  701. package/accordion/esm2015/public_api.js.map +0 -1
  702. package/accordion/esm2015/public_api.metadata.json +0 -1
  703. package/accordion/fesm2015/ngx-bootstrap-accordion.js +0 -172
  704. package/accordion/fesm2015/ngx-bootstrap-accordion.js.map +0 -1
  705. package/accordion/ngx-bootstrap-accordion.d.ts.__ivy_ngcc_bak +0 -4
  706. package/accordion/ngx-bootstrap-accordion.d.ts.map +0 -1
  707. package/accordion/ngx-bootstrap-accordion.metadata.json +0 -1
  708. package/alert/__ivy_ngcc__/fesm2015/ngx-bootstrap-alert.js +0 -168
  709. package/alert/__ivy_ngcc__/fesm2015/ngx-bootstrap-alert.js.map +0 -1
  710. package/alert/alert.component.d.ts.__ivy_ngcc_bak +0 -30
  711. package/alert/alert.component.d.ts.map +0 -1
  712. package/alert/alert.config.d.ts.__ivy_ngcc_bak +0 -8
  713. package/alert/alert.config.d.ts.map +0 -1
  714. package/alert/alert.module.d.ts.__ivy_ngcc_bak +0 -4
  715. package/alert/alert.module.d.ts.map +0 -1
  716. package/alert/bundles/ngx-bootstrap-alert.umd.js +0 -436
  717. package/alert/bundles/ngx-bootstrap-alert.umd.js.map +0 -1
  718. package/alert/bundles/ngx-bootstrap-alert.umd.min.js +0 -16
  719. package/alert/bundles/ngx-bootstrap-alert.umd.min.js.map +0 -1
  720. package/alert/esm2015/alert.component.js +0 -75
  721. package/alert/esm2015/alert.component.js.map +0 -1
  722. package/alert/esm2015/alert.component.metadata.json +0 -1
  723. package/alert/esm2015/alert.config.js +0 -19
  724. package/alert/esm2015/alert.config.js.map +0 -1
  725. package/alert/esm2015/alert.config.metadata.json +0 -1
  726. package/alert/esm2015/alert.module.js +0 -17
  727. package/alert/esm2015/alert.module.js.map +0 -1
  728. package/alert/esm2015/alert.module.metadata.json +0 -1
  729. package/alert/esm2015/index.js +0 -2
  730. package/alert/esm2015/index.js.map +0 -1
  731. package/alert/esm2015/index.metadata.json +0 -1
  732. package/alert/esm2015/ngx-bootstrap-alert.js +0 -5
  733. package/alert/esm2015/ngx-bootstrap-alert.js.map +0 -1
  734. package/alert/esm2015/ngx-bootstrap-alert.metadata.json +0 -1
  735. package/alert/esm2015/public_api.js +0 -4
  736. package/alert/esm2015/public_api.js.map +0 -1
  737. package/alert/esm2015/public_api.metadata.json +0 -1
  738. package/alert/fesm2015/ngx-bootstrap-alert.js +0 -113
  739. package/alert/fesm2015/ngx-bootstrap-alert.js.map +0 -1
  740. package/alert/ngx-bootstrap-alert.d.ts.__ivy_ngcc_bak +0 -4
  741. package/alert/ngx-bootstrap-alert.d.ts.map +0 -1
  742. package/alert/ngx-bootstrap-alert.metadata.json +0 -1
  743. package/bundles/ngx-bootstrap.umd.js +0 -13
  744. package/bundles/ngx-bootstrap.umd.js.map +0 -1
  745. package/bundles/ngx-bootstrap.umd.min.js +0 -2
  746. package/bundles/ngx-bootstrap.umd.min.js.map +0 -1
  747. package/buttons/__ivy_ngcc__/fesm2015/ngx-bootstrap-buttons.js +0 -507
  748. package/buttons/__ivy_ngcc__/fesm2015/ngx-bootstrap-buttons.js.map +0 -1
  749. package/buttons/bundles/ngx-bootstrap-buttons.umd.js +0 -455
  750. package/buttons/bundles/ngx-bootstrap-buttons.umd.js.map +0 -1
  751. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js +0 -2
  752. package/buttons/bundles/ngx-bootstrap-buttons.umd.min.js.map +0 -1
  753. package/buttons/button-checkbox.directive.d.ts.__ivy_ngcc_bak +0 -28
  754. package/buttons/button-checkbox.directive.d.ts.map +0 -1
  755. package/buttons/button-radio-group.directive.d.ts.__ivy_ngcc_bak +0 -32
  756. package/buttons/button-radio-group.directive.d.ts.map +0 -1
  757. package/buttons/button-radio.directive.d.ts.__ivy_ngcc_bak +0 -48
  758. package/buttons/button-radio.directive.d.ts.map +0 -1
  759. package/buttons/buttons.module.d.ts.__ivy_ngcc_bak +0 -4
  760. package/buttons/buttons.module.d.ts.map +0 -1
  761. package/buttons/esm2015/button-checkbox.directive.js +0 -76
  762. package/buttons/esm2015/button-checkbox.directive.js.map +0 -1
  763. package/buttons/esm2015/button-checkbox.directive.metadata.json +0 -1
  764. package/buttons/esm2015/button-radio-group.directive.js +0 -138
  765. package/buttons/esm2015/button-radio-group.directive.js.map +0 -1
  766. package/buttons/esm2015/button-radio-group.directive.metadata.json +0 -1
  767. package/buttons/esm2015/button-radio.directive.js +0 -161
  768. package/buttons/esm2015/button-radio.directive.js.map +0 -1
  769. package/buttons/esm2015/button-radio.directive.metadata.json +0 -1
  770. package/buttons/esm2015/buttons.module.js +0 -16
  771. package/buttons/esm2015/buttons.module.js.map +0 -1
  772. package/buttons/esm2015/buttons.module.metadata.json +0 -1
  773. package/buttons/esm2015/index.js +0 -2
  774. package/buttons/esm2015/index.js.map +0 -1
  775. package/buttons/esm2015/index.metadata.json +0 -1
  776. package/buttons/esm2015/ngx-bootstrap-buttons.js +0 -8
  777. package/buttons/esm2015/ngx-bootstrap-buttons.js.map +0 -1
  778. package/buttons/esm2015/ngx-bootstrap-buttons.metadata.json +0 -1
  779. package/buttons/esm2015/public_api.js +0 -5
  780. package/buttons/esm2015/public_api.js.map +0 -1
  781. package/buttons/esm2015/public_api.metadata.json +0 -1
  782. package/buttons/fesm2015/ngx-bootstrap-buttons.js +0 -388
  783. package/buttons/fesm2015/ngx-bootstrap-buttons.js.map +0 -1
  784. package/buttons/ngx-bootstrap-buttons.d.ts.__ivy_ngcc_bak +0 -7
  785. package/buttons/ngx-bootstrap-buttons.d.ts.map +0 -1
  786. package/buttons/ngx-bootstrap-buttons.metadata.json +0 -1
  787. package/carousel/__ivy_ngcc__/fesm2015/ngx-bootstrap-carousel.js +0 -1018
  788. package/carousel/__ivy_ngcc__/fesm2015/ngx-bootstrap-carousel.js.map +0 -1
  789. package/carousel/bundles/ngx-bootstrap-carousel.umd.js +0 -1171
  790. package/carousel/bundles/ngx-bootstrap-carousel.umd.js.map +0 -1
  791. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js +0 -16
  792. package/carousel/bundles/ngx-bootstrap-carousel.umd.min.js.map +0 -1
  793. package/carousel/carousel.component.d.ts.__ivy_ngcc_bak +0 -189
  794. package/carousel/carousel.component.d.ts.map +0 -1
  795. package/carousel/carousel.config.d.ts.__ivy_ngcc_bak +0 -10
  796. package/carousel/carousel.config.d.ts.map +0 -1
  797. package/carousel/carousel.module.d.ts.__ivy_ngcc_bak +0 -4
  798. package/carousel/carousel.module.d.ts.map +0 -1
  799. package/carousel/esm2015/carousel.component.js +0 -701
  800. package/carousel/esm2015/carousel.component.js.map +0 -1
  801. package/carousel/esm2015/carousel.component.metadata.json +0 -1
  802. package/carousel/esm2015/carousel.config.js +0 -30
  803. package/carousel/esm2015/carousel.config.js.map +0 -1
  804. package/carousel/esm2015/carousel.config.metadata.json +0 -1
  805. package/carousel/esm2015/carousel.module.js +0 -17
  806. package/carousel/esm2015/carousel.module.js.map +0 -1
  807. package/carousel/esm2015/carousel.module.metadata.json +0 -1
  808. package/carousel/esm2015/index.js +0 -2
  809. package/carousel/esm2015/index.js.map +0 -1
  810. package/carousel/esm2015/index.metadata.json +0 -1
  811. package/carousel/esm2015/models/index.js +0 -2
  812. package/carousel/esm2015/models/index.js.map +0 -1
  813. package/carousel/esm2015/models/index.metadata.json +0 -1
  814. package/carousel/esm2015/ngx-bootstrap-carousel.js +0 -5
  815. package/carousel/esm2015/ngx-bootstrap-carousel.js.map +0 -1
  816. package/carousel/esm2015/ngx-bootstrap-carousel.metadata.json +0 -1
  817. package/carousel/esm2015/public_api.js +0 -5
  818. package/carousel/esm2015/public_api.js.map +0 -1
  819. package/carousel/esm2015/public_api.metadata.json +0 -1
  820. package/carousel/esm2015/slide.component.js +0 -74
  821. package/carousel/esm2015/slide.component.js.map +0 -1
  822. package/carousel/esm2015/slide.component.metadata.json +0 -1
  823. package/carousel/esm2015/utils.js +0 -32
  824. package/carousel/esm2015/utils.js.map +0 -1
  825. package/carousel/esm2015/utils.metadata.json +0 -1
  826. package/carousel/fesm2015/ngx-bootstrap-carousel.js +0 -843
  827. package/carousel/fesm2015/ngx-bootstrap-carousel.js.map +0 -1
  828. package/carousel/ngx-bootstrap-carousel.d.ts.__ivy_ngcc_bak +0 -4
  829. package/carousel/ngx-bootstrap-carousel.d.ts.map +0 -1
  830. package/carousel/ngx-bootstrap-carousel.metadata.json +0 -1
  831. package/carousel/slide.component.d.ts.__ivy_ngcc_bak +0 -19
  832. package/carousel/slide.component.d.ts.map +0 -1
  833. package/chronos/bundles/ngx-bootstrap-chronos.umd.js +0 -7449
  834. package/chronos/bundles/ngx-bootstrap-chronos.umd.js.map +0 -1
  835. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js +0 -67
  836. package/chronos/bundles/ngx-bootstrap-chronos.umd.min.js.map +0 -1
  837. package/chronos/esm2015/create/check-overflow.js +0 -30
  838. package/chronos/esm2015/create/check-overflow.js.map +0 -1
  839. package/chronos/esm2015/create/check-overflow.metadata.json +0 -1
  840. package/chronos/esm2015/create/clone.js +0 -6
  841. package/chronos/esm2015/create/clone.js.map +0 -1
  842. package/chronos/esm2015/create/clone.metadata.json +0 -1
  843. package/chronos/esm2015/create/date-from-array.js +0 -19
  844. package/chronos/esm2015/create/date-from-array.js.map +0 -1
  845. package/chronos/esm2015/create/date-from-array.metadata.json +0 -1
  846. package/chronos/esm2015/create/from-anything.js +0 -106
  847. package/chronos/esm2015/create/from-anything.js.map +0 -1
  848. package/chronos/esm2015/create/from-anything.metadata.json +0 -1
  849. package/chronos/esm2015/create/from-array.js +0 -135
  850. package/chronos/esm2015/create/from-array.js.map +0 -1
  851. package/chronos/esm2015/create/from-array.metadata.json +0 -1
  852. package/chronos/esm2015/create/from-object.js +0 -17
  853. package/chronos/esm2015/create/from-object.js.map +0 -1
  854. package/chronos/esm2015/create/from-object.metadata.json +0 -1
  855. package/chronos/esm2015/create/from-string-and-array.js +0 -38
  856. package/chronos/esm2015/create/from-string-and-array.js.map +0 -1
  857. package/chronos/esm2015/create/from-string-and-array.metadata.json +0 -1
  858. package/chronos/esm2015/create/from-string-and-format.js +0 -106
  859. package/chronos/esm2015/create/from-string-and-format.js.map +0 -1
  860. package/chronos/esm2015/create/from-string-and-format.metadata.json +0 -1
  861. package/chronos/esm2015/create/from-string.js +0 -222
  862. package/chronos/esm2015/create/from-string.js.map +0 -1
  863. package/chronos/esm2015/create/from-string.metadata.json +0 -1
  864. package/chronos/esm2015/create/local.js +0 -16
  865. package/chronos/esm2015/create/local.js.map +0 -1
  866. package/chronos/esm2015/create/local.metadata.json +0 -1
  867. package/chronos/esm2015/create/parsing-flags.js +0 -26
  868. package/chronos/esm2015/create/parsing-flags.js.map +0 -1
  869. package/chronos/esm2015/create/parsing-flags.metadata.json +0 -1
  870. package/chronos/esm2015/create/parsing.types.js +0 -2
  871. package/chronos/esm2015/create/parsing.types.js.map +0 -1
  872. package/chronos/esm2015/create/parsing.types.metadata.json +0 -1
  873. package/chronos/esm2015/create/valid.js +0 -42
  874. package/chronos/esm2015/create/valid.js.map +0 -1
  875. package/chronos/esm2015/create/valid.metadata.json +0 -1
  876. package/chronos/esm2015/duration/bubble.js +0 -47
  877. package/chronos/esm2015/duration/bubble.js.map +0 -1
  878. package/chronos/esm2015/duration/bubble.metadata.json +0 -1
  879. package/chronos/esm2015/duration/constructor.js +0 -130
  880. package/chronos/esm2015/duration/constructor.js.map +0 -1
  881. package/chronos/esm2015/duration/constructor.metadata.json +0 -1
  882. package/chronos/esm2015/duration/create.js +0 -112
  883. package/chronos/esm2015/duration/create.js.map +0 -1
  884. package/chronos/esm2015/duration/create.metadata.json +0 -1
  885. package/chronos/esm2015/duration/humanize.js +0 -79
  886. package/chronos/esm2015/duration/humanize.js.map +0 -1
  887. package/chronos/esm2015/duration/humanize.metadata.json +0 -1
  888. package/chronos/esm2015/duration/valid.js +0 -45
  889. package/chronos/esm2015/duration/valid.js.map +0 -1
  890. package/chronos/esm2015/duration/valid.metadata.json +0 -1
  891. package/chronos/esm2015/format/format.js +0 -50
  892. package/chronos/esm2015/format/format.js.map +0 -1
  893. package/chronos/esm2015/format/format.metadata.json +0 -1
  894. package/chronos/esm2015/format.js +0 -46
  895. package/chronos/esm2015/format.js.map +0 -1
  896. package/chronos/esm2015/format.metadata.json +0 -1
  897. package/chronos/esm2015/i18n/ar.js +0 -135
  898. package/chronos/esm2015/i18n/ar.js.map +0 -1
  899. package/chronos/esm2015/i18n/ar.metadata.json +0 -1
  900. package/chronos/esm2015/i18n/bg.js +0 -92
  901. package/chronos/esm2015/i18n/bg.js.map +0 -1
  902. package/chronos/esm2015/i18n/bg.metadata.json +0 -1
  903. package/chronos/esm2015/i18n/ca.js +0 -87
  904. package/chronos/esm2015/i18n/ca.js.map +0 -1
  905. package/chronos/esm2015/i18n/ca.metadata.json +0 -1
  906. package/chronos/esm2015/i18n/cs.js +0 -177
  907. package/chronos/esm2015/i18n/cs.js.map +0 -1
  908. package/chronos/esm2015/i18n/cs.metadata.json +0 -1
  909. package/chronos/esm2015/i18n/da.js +0 -49
  910. package/chronos/esm2015/i18n/da.js.map +0 -1
  911. package/chronos/esm2015/i18n/da.metadata.json +0 -1
  912. package/chronos/esm2015/i18n/de.js +0 -67
  913. package/chronos/esm2015/i18n/de.js.map +0 -1
  914. package/chronos/esm2015/i18n/de.metadata.json +0 -1
  915. package/chronos/esm2015/i18n/en-gb.js +0 -57
  916. package/chronos/esm2015/i18n/en-gb.js.map +0 -1
  917. package/chronos/esm2015/i18n/en-gb.metadata.json +0 -1
  918. package/chronos/esm2015/i18n/es-do.js +0 -81
  919. package/chronos/esm2015/i18n/es-do.js.map +0 -1
  920. package/chronos/esm2015/i18n/es-do.metadata.json +0 -1
  921. package/chronos/esm2015/i18n/es-us.js +0 -75
  922. package/chronos/esm2015/i18n/es-us.js.map +0 -1
  923. package/chronos/esm2015/i18n/es-us.metadata.json +0 -1
  924. package/chronos/esm2015/i18n/es.js +0 -80
  925. package/chronos/esm2015/i18n/es.js.map +0 -1
  926. package/chronos/esm2015/i18n/es.metadata.json +0 -1
  927. package/chronos/esm2015/i18n/et.js +0 -71
  928. package/chronos/esm2015/i18n/et.js.map +0 -1
  929. package/chronos/esm2015/i18n/et.metadata.json +0 -1
  930. package/chronos/esm2015/i18n/fi.js +0 -96
  931. package/chronos/esm2015/i18n/fi.js.map +0 -1
  932. package/chronos/esm2015/i18n/fi.metadata.json +0 -1
  933. package/chronos/esm2015/i18n/fr.js +0 -72
  934. package/chronos/esm2015/i18n/fr.js.map +0 -1
  935. package/chronos/esm2015/i18n/fr.metadata.json +0 -1
  936. package/chronos/esm2015/i18n/gl.js +0 -80
  937. package/chronos/esm2015/i18n/gl.js.map +0 -1
  938. package/chronos/esm2015/i18n/gl.metadata.json +0 -1
  939. package/chronos/esm2015/i18n/he.js +0 -94
  940. package/chronos/esm2015/i18n/he.js.map +0 -1
  941. package/chronos/esm2015/i18n/he.metadata.json +0 -1
  942. package/chronos/esm2015/i18n/hi.js +0 -119
  943. package/chronos/esm2015/i18n/hi.js.map +0 -1
  944. package/chronos/esm2015/i18n/hi.metadata.json +0 -1
  945. package/chronos/esm2015/i18n/hr.js +0 -58
  946. package/chronos/esm2015/i18n/hr.js.map +0 -1
  947. package/chronos/esm2015/i18n/hr.metadata.json +0 -1
  948. package/chronos/esm2015/i18n/hu.js +0 -100
  949. package/chronos/esm2015/i18n/hu.js.map +0 -1
  950. package/chronos/esm2015/i18n/hu.metadata.json +0 -1
  951. package/chronos/esm2015/i18n/id.js +0 -78
  952. package/chronos/esm2015/i18n/id.js.map +0 -1
  953. package/chronos/esm2015/i18n/id.metadata.json +0 -1
  954. package/chronos/esm2015/i18n/it.js +0 -61
  955. package/chronos/esm2015/i18n/it.js.map +0 -1
  956. package/chronos/esm2015/i18n/it.metadata.json +0 -1
  957. package/chronos/esm2015/i18n/ja.js +0 -71
  958. package/chronos/esm2015/i18n/ja.js.map +0 -1
  959. package/chronos/esm2015/i18n/ja.metadata.json +0 -1
  960. package/chronos/esm2015/i18n/ka.js +0 -83
  961. package/chronos/esm2015/i18n/ka.js.map +0 -1
  962. package/chronos/esm2015/i18n/ka.metadata.json +0 -1
  963. package/chronos/esm2015/i18n/kk.js +0 -76
  964. package/chronos/esm2015/i18n/kk.js.map +0 -1
  965. package/chronos/esm2015/i18n/kk.metadata.json +0 -1
  966. package/chronos/esm2015/i18n/ko.js +0 -72
  967. package/chronos/esm2015/i18n/ko.js.map +0 -1
  968. package/chronos/esm2015/i18n/ko.metadata.json +0 -1
  969. package/chronos/esm2015/i18n/lt.js +0 -112
  970. package/chronos/esm2015/i18n/lt.js.map +0 -1
  971. package/chronos/esm2015/i18n/lt.metadata.json +0 -1
  972. package/chronos/esm2015/i18n/lv.js +0 -52
  973. package/chronos/esm2015/i18n/lv.js.map +0 -1
  974. package/chronos/esm2015/i18n/lv.metadata.json +0 -1
  975. package/chronos/esm2015/i18n/mn.js +0 -94
  976. package/chronos/esm2015/i18n/mn.js.map +0 -1
  977. package/chronos/esm2015/i18n/mn.metadata.json +0 -1
  978. package/chronos/esm2015/i18n/nb.js +0 -53
  979. package/chronos/esm2015/i18n/nb.js.map +0 -1
  980. package/chronos/esm2015/i18n/nb.metadata.json +0 -1
  981. package/chronos/esm2015/i18n/nl-be.js +0 -77
  982. package/chronos/esm2015/i18n/nl-be.js.map +0 -1
  983. package/chronos/esm2015/i18n/nl-be.metadata.json +0 -1
  984. package/chronos/esm2015/i18n/nl.js +0 -76
  985. package/chronos/esm2015/i18n/nl.js.map +0 -1
  986. package/chronos/esm2015/i18n/nl.metadata.json +0 -1
  987. package/chronos/esm2015/i18n/pl.js +0 -122
  988. package/chronos/esm2015/i18n/pl.js.map +0 -1
  989. package/chronos/esm2015/i18n/pl.metadata.json +0 -1
  990. package/chronos/esm2015/i18n/pt-br.js +0 -52
  991. package/chronos/esm2015/i18n/pt-br.js.map +0 -1
  992. package/chronos/esm2015/i18n/pt-br.metadata.json +0 -1
  993. package/chronos/esm2015/i18n/ro.js +0 -66
  994. package/chronos/esm2015/i18n/ro.js.map +0 -1
  995. package/chronos/esm2015/i18n/ro.metadata.json +0 -1
  996. package/chronos/esm2015/i18n/ru.js +0 -177
  997. package/chronos/esm2015/i18n/ru.js.map +0 -1
  998. package/chronos/esm2015/i18n/ru.metadata.json +0 -1
  999. package/chronos/esm2015/i18n/sk.js +0 -153
  1000. package/chronos/esm2015/i18n/sk.js.map +0 -1
  1001. package/chronos/esm2015/i18n/sk.metadata.json +0 -1
  1002. package/chronos/esm2015/i18n/sl.js +0 -179
  1003. package/chronos/esm2015/i18n/sl.js.map +0 -1
  1004. package/chronos/esm2015/i18n/sl.metadata.json +0 -1
  1005. package/chronos/esm2015/i18n/sq.js +0 -50
  1006. package/chronos/esm2015/i18n/sq.js.map +0 -1
  1007. package/chronos/esm2015/i18n/sq.metadata.json +0 -1
  1008. package/chronos/esm2015/i18n/sv.js +0 -59
  1009. package/chronos/esm2015/i18n/sv.js.map +0 -1
  1010. package/chronos/esm2015/i18n/sv.metadata.json +0 -1
  1011. package/chronos/esm2015/i18n/th-be.js +0 -73
  1012. package/chronos/esm2015/i18n/th-be.js.map +0 -1
  1013. package/chronos/esm2015/i18n/th-be.metadata.json +0 -1
  1014. package/chronos/esm2015/i18n/th.js +0 -58
  1015. package/chronos/esm2015/i18n/th.js.map +0 -1
  1016. package/chronos/esm2015/i18n/th.metadata.json +0 -1
  1017. package/chronos/esm2015/i18n/tr.js +0 -78
  1018. package/chronos/esm2015/i18n/tr.js.map +0 -1
  1019. package/chronos/esm2015/i18n/tr.metadata.json +0 -1
  1020. package/chronos/esm2015/i18n/uk.js +0 -143
  1021. package/chronos/esm2015/i18n/uk.js.map +0 -1
  1022. package/chronos/esm2015/i18n/uk.metadata.json +0 -1
  1023. package/chronos/esm2015/i18n/vi.js +0 -70
  1024. package/chronos/esm2015/i18n/vi.js.map +0 -1
  1025. package/chronos/esm2015/i18n/vi.metadata.json +0 -1
  1026. package/chronos/esm2015/i18n/zh-cn.js +0 -109
  1027. package/chronos/esm2015/i18n/zh-cn.js.map +0 -1
  1028. package/chronos/esm2015/i18n/zh-cn.metadata.json +0 -1
  1029. package/chronos/esm2015/index.js +0 -2
  1030. package/chronos/esm2015/index.js.map +0 -1
  1031. package/chronos/esm2015/index.metadata.json +0 -1
  1032. package/chronos/esm2015/locale/calendar.js +0 -9
  1033. package/chronos/esm2015/locale/calendar.js.map +0 -1
  1034. package/chronos/esm2015/locale/calendar.metadata.json +0 -1
  1035. package/chronos/esm2015/locale/locale.class.js +0 -532
  1036. package/chronos/esm2015/locale/locale.class.js.map +0 -1
  1037. package/chronos/esm2015/locale/locale.class.metadata.json +0 -1
  1038. package/chronos/esm2015/locale/locale.defaults.js +0 -40
  1039. package/chronos/esm2015/locale/locale.defaults.js.map +0 -1
  1040. package/chronos/esm2015/locale/locale.defaults.metadata.json +0 -1
  1041. package/chronos/esm2015/locale/locales.js +0 -228
  1042. package/chronos/esm2015/locale/locales.js.map +0 -1
  1043. package/chronos/esm2015/locale/locales.metadata.json +0 -1
  1044. package/chronos/esm2015/moment/add-subtract.js +0 -35
  1045. package/chronos/esm2015/moment/add-subtract.js.map +0 -1
  1046. package/chronos/esm2015/moment/add-subtract.metadata.json +0 -1
  1047. package/chronos/esm2015/moment/calendar.js +0 -41
  1048. package/chronos/esm2015/moment/calendar.js.map +0 -1
  1049. package/chronos/esm2015/moment/calendar.metadata.json +0 -1
  1050. package/chronos/esm2015/moment/diff.js +0 -70
  1051. package/chronos/esm2015/moment/diff.js.map +0 -1
  1052. package/chronos/esm2015/moment/diff.metadata.json +0 -1
  1053. package/chronos/esm2015/moment/min-max.js +0 -38
  1054. package/chronos/esm2015/moment/min-max.js.map +0 -1
  1055. package/chronos/esm2015/moment/min-max.metadata.json +0 -1
  1056. package/chronos/esm2015/ngx-bootstrap-chronos.js +0 -6
  1057. package/chronos/esm2015/ngx-bootstrap-chronos.js.map +0 -1
  1058. package/chronos/esm2015/ngx-bootstrap-chronos.metadata.json +0 -1
  1059. package/chronos/esm2015/parse/regex.js +0 -47
  1060. package/chronos/esm2015/parse/regex.js.map +0 -1
  1061. package/chronos/esm2015/parse/regex.metadata.json +0 -1
  1062. package/chronos/esm2015/parse/token.js +0 -31
  1063. package/chronos/esm2015/parse/token.js.map +0 -1
  1064. package/chronos/esm2015/parse/token.metadata.json +0 -1
  1065. package/chronos/esm2015/public_api.js +0 -56
  1066. package/chronos/esm2015/public_api.js.map +0 -1
  1067. package/chronos/esm2015/public_api.metadata.json +0 -1
  1068. package/chronos/esm2015/testing/chain.js +0 -708
  1069. package/chronos/esm2015/testing/chain.js.map +0 -1
  1070. package/chronos/esm2015/testing/chain.metadata.json +0 -1
  1071. package/chronos/esm2015/types.js +0 -2
  1072. package/chronos/esm2015/types.js.map +0 -1
  1073. package/chronos/esm2015/types.metadata.json +0 -1
  1074. package/chronos/esm2015/units/aliases.js +0 -35
  1075. package/chronos/esm2015/units/aliases.js.map +0 -1
  1076. package/chronos/esm2015/units/aliases.metadata.json +0 -1
  1077. package/chronos/esm2015/units/constants.js +0 -11
  1078. package/chronos/esm2015/units/constants.js.map +0 -1
  1079. package/chronos/esm2015/units/constants.metadata.json +0 -1
  1080. package/chronos/esm2015/units/day-of-month.js +0 -31
  1081. package/chronos/esm2015/units/day-of-month.js.map +0 -1
  1082. package/chronos/esm2015/units/day-of-month.metadata.json +0 -1
  1083. package/chronos/esm2015/units/day-of-week.js +0 -129
  1084. package/chronos/esm2015/units/day-of-week.js.map +0 -1
  1085. package/chronos/esm2015/units/day-of-week.metadata.json +0 -1
  1086. package/chronos/esm2015/units/day-of-year.js +0 -37
  1087. package/chronos/esm2015/units/day-of-year.js.map +0 -1
  1088. package/chronos/esm2015/units/day-of-year.metadata.json +0 -1
  1089. package/chronos/esm2015/units/hour.js +0 -127
  1090. package/chronos/esm2015/units/hour.js.map +0 -1
  1091. package/chronos/esm2015/units/hour.metadata.json +0 -1
  1092. package/chronos/esm2015/units/index.js +0 -19
  1093. package/chronos/esm2015/units/index.js.map +0 -1
  1094. package/chronos/esm2015/units/millisecond.js +0 -59
  1095. package/chronos/esm2015/units/millisecond.js.map +0 -1
  1096. package/chronos/esm2015/units/millisecond.metadata.json +0 -1
  1097. package/chronos/esm2015/units/minute.js +0 -23
  1098. package/chronos/esm2015/units/minute.js.map +0 -1
  1099. package/chronos/esm2015/units/minute.metadata.json +0 -1
  1100. package/chronos/esm2015/units/month.js +0 -63
  1101. package/chronos/esm2015/units/month.js.map +0 -1
  1102. package/chronos/esm2015/units/month.metadata.json +0 -1
  1103. package/chronos/esm2015/units/offset.js +0 -209
  1104. package/chronos/esm2015/units/offset.js.map +0 -1
  1105. package/chronos/esm2015/units/offset.metadata.json +0 -1
  1106. package/chronos/esm2015/units/priorities.js +0 -21
  1107. package/chronos/esm2015/units/priorities.js.map +0 -1
  1108. package/chronos/esm2015/units/priorities.metadata.json +0 -1
  1109. package/chronos/esm2015/units/quarter.js +0 -39
  1110. package/chronos/esm2015/units/quarter.js.map +0 -1
  1111. package/chronos/esm2015/units/quarter.metadata.json +0 -1
  1112. package/chronos/esm2015/units/second.js +0 -23
  1113. package/chronos/esm2015/units/second.js.map +0 -1
  1114. package/chronos/esm2015/units/second.metadata.json +0 -1
  1115. package/chronos/esm2015/units/timestamp.js +0 -28
  1116. package/chronos/esm2015/units/timestamp.js.map +0 -1
  1117. package/chronos/esm2015/units/timestamp.metadata.json +0 -1
  1118. package/chronos/esm2015/units/timezone.js +0 -19
  1119. package/chronos/esm2015/units/timezone.js.map +0 -1
  1120. package/chronos/esm2015/units/timezone.metadata.json +0 -1
  1121. package/chronos/esm2015/units/week-calendar-utils.js +0 -70
  1122. package/chronos/esm2015/units/week-calendar-utils.js.map +0 -1
  1123. package/chronos/esm2015/units/week-calendar-utils.metadata.json +0 -1
  1124. package/chronos/esm2015/units/week-year.js +0 -101
  1125. package/chronos/esm2015/units/week-year.js.map +0 -1
  1126. package/chronos/esm2015/units/week-year.metadata.json +0 -1
  1127. package/chronos/esm2015/units/week.js +0 -58
  1128. package/chronos/esm2015/units/week.js.map +0 -1
  1129. package/chronos/esm2015/units/week.metadata.json +0 -1
  1130. package/chronos/esm2015/units/year.js +0 -60
  1131. package/chronos/esm2015/units/year.js.map +0 -1
  1132. package/chronos/esm2015/units/year.metadata.json +0 -1
  1133. package/chronos/esm2015/utils/abs-ceil.js +0 -4
  1134. package/chronos/esm2015/utils/abs-ceil.js.map +0 -1
  1135. package/chronos/esm2015/utils/abs-ceil.metadata.json +0 -1
  1136. package/chronos/esm2015/utils/abs-round.js +0 -4
  1137. package/chronos/esm2015/utils/abs-round.js.map +0 -1
  1138. package/chronos/esm2015/utils/abs-round.metadata.json +0 -1
  1139. package/chronos/esm2015/utils/compare-arrays.js +0 -16
  1140. package/chronos/esm2015/utils/compare-arrays.js.map +0 -1
  1141. package/chronos/esm2015/utils/compare-arrays.metadata.json +0 -1
  1142. package/chronos/esm2015/utils/date-compare.js +0 -55
  1143. package/chronos/esm2015/utils/date-compare.js.map +0 -1
  1144. package/chronos/esm2015/utils/date-compare.metadata.json +0 -1
  1145. package/chronos/esm2015/utils/date-getters.js +0 -67
  1146. package/chronos/esm2015/utils/date-getters.js.map +0 -1
  1147. package/chronos/esm2015/utils/date-getters.metadata.json +0 -1
  1148. package/chronos/esm2015/utils/date-setters.js +0 -75
  1149. package/chronos/esm2015/utils/date-setters.js.map +0 -1
  1150. package/chronos/esm2015/utils/date-setters.metadata.json +0 -1
  1151. package/chronos/esm2015/utils/defaults.js +0 -11
  1152. package/chronos/esm2015/utils/defaults.js.map +0 -1
  1153. package/chronos/esm2015/utils/defaults.metadata.json +0 -1
  1154. package/chronos/esm2015/utils/start-end-of.js +0 -57
  1155. package/chronos/esm2015/utils/start-end-of.js.map +0 -1
  1156. package/chronos/esm2015/utils/start-end-of.metadata.json +0 -1
  1157. package/chronos/esm2015/utils/type-checks.js +0 -58
  1158. package/chronos/esm2015/utils/type-checks.js.map +0 -1
  1159. package/chronos/esm2015/utils/type-checks.metadata.json +0 -1
  1160. package/chronos/esm2015/utils/zero-fill.js +0 -10
  1161. package/chronos/esm2015/utils/zero-fill.js.map +0 -1
  1162. package/chronos/esm2015/utils/zero-fill.metadata.json +0 -1
  1163. package/chronos/esm2015/utils.js +0 -7
  1164. package/chronos/esm2015/utils.js.map +0 -1
  1165. package/chronos/esm2015/utils.metadata.json +0 -1
  1166. package/chronos/fesm2015/ngx-bootstrap-chronos.js +0 -7317
  1167. package/chronos/fesm2015/ngx-bootstrap-chronos.js.map +0 -1
  1168. package/chronos/ngx-bootstrap-chronos.d.ts.__ivy_ngcc_bak +0 -5
  1169. package/chronos/ngx-bootstrap-chronos.d.ts.map +0 -1
  1170. package/chronos/ngx-bootstrap-chronos.metadata.json +0 -1
  1171. package/collapse/__ivy_ngcc__/fesm2015/ngx-bootstrap-collapse.js +0 -222
  1172. package/collapse/__ivy_ngcc__/fesm2015/ngx-bootstrap-collapse.js.map +0 -1
  1173. package/collapse/bundles/ngx-bootstrap-collapse.umd.js +0 -203
  1174. package/collapse/bundles/ngx-bootstrap-collapse.umd.js.map +0 -1
  1175. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js +0 -2
  1176. package/collapse/bundles/ngx-bootstrap-collapse.umd.min.js.map +0 -1
  1177. package/collapse/collapse.directive.d.ts.__ivy_ngcc_bak +0 -42
  1178. package/collapse/collapse.directive.d.ts.map +0 -1
  1179. package/collapse/collapse.module.d.ts.__ivy_ngcc_bak +0 -4
  1180. package/collapse/collapse.module.d.ts.map +0 -1
  1181. package/collapse/esm2015/collapse-animations.js +0 -11
  1182. package/collapse/esm2015/collapse-animations.js.map +0 -1
  1183. package/collapse/esm2015/collapse-animations.metadata.json +0 -1
  1184. package/collapse/esm2015/collapse.directive.js +0 -152
  1185. package/collapse/esm2015/collapse.directive.js.map +0 -1
  1186. package/collapse/esm2015/collapse.directive.metadata.json +0 -1
  1187. package/collapse/esm2015/collapse.module.js +0 -14
  1188. package/collapse/esm2015/collapse.module.js.map +0 -1
  1189. package/collapse/esm2015/collapse.module.metadata.json +0 -1
  1190. package/collapse/esm2015/index.js +0 -2
  1191. package/collapse/esm2015/index.js.map +0 -1
  1192. package/collapse/esm2015/index.metadata.json +0 -1
  1193. package/collapse/esm2015/ngx-bootstrap-collapse.js +0 -5
  1194. package/collapse/esm2015/ngx-bootstrap-collapse.js.map +0 -1
  1195. package/collapse/esm2015/ngx-bootstrap-collapse.metadata.json +0 -1
  1196. package/collapse/esm2015/public_api.js +0 -3
  1197. package/collapse/esm2015/public_api.js.map +0 -1
  1198. package/collapse/esm2015/public_api.metadata.json +0 -1
  1199. package/collapse/fesm2015/ngx-bootstrap-collapse.js +0 -180
  1200. package/collapse/fesm2015/ngx-bootstrap-collapse.js.map +0 -1
  1201. package/collapse/ngx-bootstrap-collapse.d.ts.__ivy_ngcc_bak +0 -4
  1202. package/collapse/ngx-bootstrap-collapse.d.ts.map +0 -1
  1203. package/collapse/ngx-bootstrap-collapse.metadata.json +0 -1
  1204. package/component-loader/__ivy_ngcc__/fesm2015/ngx-bootstrap-component-loader.js +0 -348
  1205. package/component-loader/__ivy_ngcc__/fesm2015/ngx-bootstrap-component-loader.js.map +0 -1
  1206. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js +0 -366
  1207. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.js.map +0 -1
  1208. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js +0 -2
  1209. package/component-loader/bundles/ngx-bootstrap-component-loader.umd.min.js.map +0 -1
  1210. package/component-loader/component-loader.factory.d.ts.__ivy_ngcc_bak +0 -18
  1211. package/component-loader/component-loader.factory.d.ts.map +0 -1
  1212. package/component-loader/esm2015/bs-component-ref.class.js +0 -3
  1213. package/component-loader/esm2015/bs-component-ref.class.js.map +0 -1
  1214. package/component-loader/esm2015/bs-component-ref.class.metadata.json +0 -1
  1215. package/component-loader/esm2015/component-loader.class.js +0 -289
  1216. package/component-loader/esm2015/component-loader.class.js.map +0 -1
  1217. package/component-loader/esm2015/component-loader.class.metadata.json +0 -1
  1218. package/component-loader/esm2015/component-loader.factory.js +0 -35
  1219. package/component-loader/esm2015/component-loader.factory.js.map +0 -1
  1220. package/component-loader/esm2015/component-loader.factory.metadata.json +0 -1
  1221. package/component-loader/esm2015/content-ref.class.js +0 -16
  1222. package/component-loader/esm2015/content-ref.class.js.map +0 -1
  1223. package/component-loader/esm2015/content-ref.class.metadata.json +0 -1
  1224. package/component-loader/esm2015/index.js +0 -2
  1225. package/component-loader/esm2015/index.js.map +0 -1
  1226. package/component-loader/esm2015/index.metadata.json +0 -1
  1227. package/component-loader/esm2015/listen-options.model.js +0 -2
  1228. package/component-loader/esm2015/listen-options.model.js.map +0 -1
  1229. package/component-loader/esm2015/listen-options.model.metadata.json +0 -1
  1230. package/component-loader/esm2015/ngx-bootstrap-component-loader.js +0 -5
  1231. package/component-loader/esm2015/ngx-bootstrap-component-loader.js.map +0 -1
  1232. package/component-loader/esm2015/ngx-bootstrap-component-loader.metadata.json +0 -1
  1233. package/component-loader/esm2015/public_api.js +0 -5
  1234. package/component-loader/esm2015/public_api.js.map +0 -1
  1235. package/component-loader/esm2015/public_api.metadata.json +0 -1
  1236. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js +0 -343
  1237. package/component-loader/fesm2015/ngx-bootstrap-component-loader.js.map +0 -1
  1238. package/component-loader/ngx-bootstrap-component-loader.d.ts.__ivy_ngcc_bak +0 -4
  1239. package/component-loader/ngx-bootstrap-component-loader.d.ts.map +0 -1
  1240. package/component-loader/ngx-bootstrap-component-loader.metadata.json +0 -1
  1241. package/datepicker/bs-datepicker-inline.component.d.ts.__ivy_ngcc_bak +0 -61
  1242. package/datepicker/bs-datepicker-inline.component.d.ts.map +0 -1
  1243. package/datepicker/bs-datepicker-inline.config.d.ts.__ivy_ngcc_bak +0 -3
  1244. package/datepicker/bs-datepicker-inline.config.d.ts.map +0 -1
  1245. package/datepicker/bs-datepicker-input.directive.d.ts.__ivy_ngcc_bak +0 -30
  1246. package/datepicker/bs-datepicker-input.directive.d.ts.map +0 -1
  1247. package/datepicker/bs-datepicker.component.d.ts.__ivy_ngcc_bak +0 -121
  1248. package/datepicker/bs-datepicker.component.d.ts.map +0 -1
  1249. package/datepicker/bs-datepicker.config.d.ts.__ivy_ngcc_bak +0 -151
  1250. package/datepicker/bs-datepicker.config.d.ts.map +0 -1
  1251. package/datepicker/bs-datepicker.module.d.ts.__ivy_ngcc_bak +0 -4
  1252. package/datepicker/bs-datepicker.module.d.ts.map +0 -1
  1253. package/datepicker/bs-daterangepicker-inline.component.d.ts.__ivy_ngcc_bak +0 -61
  1254. package/datepicker/bs-daterangepicker-inline.component.d.ts.map +0 -1
  1255. package/datepicker/bs-daterangepicker-inline.config.d.ts.__ivy_ngcc_bak +0 -6
  1256. package/datepicker/bs-daterangepicker-inline.config.d.ts.map +0 -1
  1257. package/datepicker/bs-daterangepicker-input.directive.d.ts.__ivy_ngcc_bak +0 -30
  1258. package/datepicker/bs-daterangepicker-input.directive.d.ts.map +0 -1
  1259. package/datepicker/bs-daterangepicker.component.d.ts.__ivy_ngcc_bak +0 -113
  1260. package/datepicker/bs-daterangepicker.component.d.ts.map +0 -1
  1261. package/datepicker/bs-daterangepicker.config.d.ts.__ivy_ngcc_bak +0 -4
  1262. package/datepicker/bs-daterangepicker.config.d.ts.map +0 -1
  1263. package/datepicker/bs-locale.service.d.ts.__ivy_ngcc_bak +0 -10
  1264. package/datepicker/bs-locale.service.d.ts.map +0 -1
  1265. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js +0 -4590
  1266. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.js.map +0 -1
  1267. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js +0 -17
  1268. package/datepicker/bundles/ngx-bootstrap-datepicker.umd.min.js.map +0 -1
  1269. package/datepicker/datepicker-inner.component.d.ts.__ivy_ngcc_bak +0 -77
  1270. package/datepicker/datepicker-inner.component.d.ts.map +0 -1
  1271. package/datepicker/datepicker.component.d.ts.__ivy_ngcc_bak +0 -78
  1272. package/datepicker/datepicker.component.d.ts.map +0 -1
  1273. package/datepicker/datepicker.config.d.ts.__ivy_ngcc_bak +0 -19
  1274. package/datepicker/datepicker.config.d.ts.map +0 -1
  1275. package/datepicker/datepicker.module.d.ts.__ivy_ngcc_bak +0 -4
  1276. package/datepicker/datepicker.module.d.ts.map +0 -1
  1277. package/datepicker/daypicker.component.d.ts.__ivy_ngcc_bak +0 -17
  1278. package/datepicker/daypicker.component.d.ts.map +0 -1
  1279. package/datepicker/esm2015/base/bs-datepicker-container.js +0 -84
  1280. package/datepicker/esm2015/base/bs-datepicker-container.js.map +0 -1
  1281. package/datepicker/esm2015/base/bs-datepicker-container.metadata.json +0 -1
  1282. package/datepicker/esm2015/bs-datepicker-inline.component.js +0 -147
  1283. package/datepicker/esm2015/bs-datepicker-inline.component.js.map +0 -1
  1284. package/datepicker/esm2015/bs-datepicker-inline.component.metadata.json +0 -1
  1285. package/datepicker/esm2015/bs-datepicker-inline.component.ngfactory.js.map +0 -1
  1286. package/datepicker/esm2015/bs-datepicker-inline.config.js +0 -12
  1287. package/datepicker/esm2015/bs-datepicker-inline.config.js.map +0 -1
  1288. package/datepicker/esm2015/bs-datepicker-inline.config.metadata.json +0 -1
  1289. package/datepicker/esm2015/bs-datepicker-inline.config.ngfactory.js.map +0 -1
  1290. package/datepicker/esm2015/bs-datepicker-input.directive.js +0 -162
  1291. package/datepicker/esm2015/bs-datepicker-input.directive.js.map +0 -1
  1292. package/datepicker/esm2015/bs-datepicker-input.directive.metadata.json +0 -1
  1293. package/datepicker/esm2015/bs-datepicker-input.directive.ngfactory.js.map +0 -1
  1294. package/datepicker/esm2015/bs-datepicker.component.js +0 -251
  1295. package/datepicker/esm2015/bs-datepicker.component.js.map +0 -1
  1296. package/datepicker/esm2015/bs-datepicker.component.metadata.json +0 -1
  1297. package/datepicker/esm2015/bs-datepicker.component.ngfactory.js.map +0 -1
  1298. package/datepicker/esm2015/bs-datepicker.config.js +0 -87
  1299. package/datepicker/esm2015/bs-datepicker.config.js.map +0 -1
  1300. package/datepicker/esm2015/bs-datepicker.config.metadata.json +0 -1
  1301. package/datepicker/esm2015/bs-datepicker.config.ngfactory.js.map +0 -1
  1302. package/datepicker/esm2015/bs-datepicker.module.js +0 -91
  1303. package/datepicker/esm2015/bs-datepicker.module.js.map +0 -1
  1304. package/datepicker/esm2015/bs-datepicker.module.metadata.json +0 -1
  1305. package/datepicker/esm2015/bs-datepicker.module.ngfactory.js.map +0 -1
  1306. package/datepicker/esm2015/bs-daterangepicker-inline.component.js +0 -146
  1307. package/datepicker/esm2015/bs-daterangepicker-inline.component.js.map +0 -1
  1308. package/datepicker/esm2015/bs-daterangepicker-inline.component.metadata.json +0 -1
  1309. package/datepicker/esm2015/bs-daterangepicker-inline.component.ngfactory.js.map +0 -1
  1310. package/datepicker/esm2015/bs-daterangepicker-inline.config.js +0 -19
  1311. package/datepicker/esm2015/bs-daterangepicker-inline.config.js.map +0 -1
  1312. package/datepicker/esm2015/bs-daterangepicker-inline.config.metadata.json +0 -1
  1313. package/datepicker/esm2015/bs-daterangepicker-inline.config.ngfactory.js.map +0 -1
  1314. package/datepicker/esm2015/bs-daterangepicker-input.directive.js +0 -207
  1315. package/datepicker/esm2015/bs-daterangepicker-input.directive.js.map +0 -1
  1316. package/datepicker/esm2015/bs-daterangepicker-input.directive.metadata.json +0 -1
  1317. package/datepicker/esm2015/bs-daterangepicker-input.directive.ngfactory.js.map +0 -1
  1318. package/datepicker/esm2015/bs-daterangepicker.component.js +0 -244
  1319. package/datepicker/esm2015/bs-daterangepicker.component.js.map +0 -1
  1320. package/datepicker/esm2015/bs-daterangepicker.component.metadata.json +0 -1
  1321. package/datepicker/esm2015/bs-daterangepicker.component.ngfactory.js.map +0 -1
  1322. package/datepicker/esm2015/bs-daterangepicker.config.js +0 -17
  1323. package/datepicker/esm2015/bs-daterangepicker.config.js.map +0 -1
  1324. package/datepicker/esm2015/bs-daterangepicker.config.metadata.json +0 -1
  1325. package/datepicker/esm2015/bs-daterangepicker.config.ngfactory.js.map +0 -1
  1326. package/datepicker/esm2015/bs-locale.service.js +0 -28
  1327. package/datepicker/esm2015/bs-locale.service.js.map +0 -1
  1328. package/datepicker/esm2015/bs-locale.service.metadata.json +0 -1
  1329. package/datepicker/esm2015/bs-locale.service.ngfactory.js.map +0 -1
  1330. package/datepicker/esm2015/date-formatter.js +0 -7
  1331. package/datepicker/esm2015/date-formatter.js.map +0 -1
  1332. package/datepicker/esm2015/date-formatter.metadata.json +0 -1
  1333. package/datepicker/esm2015/datepicker-animations.js +0 -16
  1334. package/datepicker/esm2015/datepicker-animations.js.map +0 -1
  1335. package/datepicker/esm2015/datepicker-animations.metadata.json +0 -1
  1336. package/datepicker/esm2015/datepicker-inner.component.js +0 -290
  1337. package/datepicker/esm2015/datepicker-inner.component.js.map +0 -1
  1338. package/datepicker/esm2015/datepicker-inner.component.metadata.json +0 -1
  1339. package/datepicker/esm2015/datepicker-inner.component.ngfactory.js.map +0 -1
  1340. package/datepicker/esm2015/datepicker.component.js +0 -142
  1341. package/datepicker/esm2015/datepicker.component.js.map +0 -1
  1342. package/datepicker/esm2015/datepicker.component.metadata.json +0 -1
  1343. package/datepicker/esm2015/datepicker.component.ngfactory.js.map +0 -1
  1344. package/datepicker/esm2015/datepicker.config.js +0 -30
  1345. package/datepicker/esm2015/datepicker.config.js.map +0 -1
  1346. package/datepicker/esm2015/datepicker.config.metadata.json +0 -1
  1347. package/datepicker/esm2015/datepicker.config.ngfactory.js.map +0 -1
  1348. package/datepicker/esm2015/datepicker.module.js +0 -35
  1349. package/datepicker/esm2015/datepicker.module.js.map +0 -1
  1350. package/datepicker/esm2015/datepicker.module.metadata.json +0 -1
  1351. package/datepicker/esm2015/datepicker.module.ngfactory.js.map +0 -1
  1352. package/datepicker/esm2015/daypicker.component.js +0 -185
  1353. package/datepicker/esm2015/daypicker.component.js.map +0 -1
  1354. package/datepicker/esm2015/daypicker.component.metadata.json +0 -1
  1355. package/datepicker/esm2015/daypicker.component.ngfactory.js.map +0 -1
  1356. package/datepicker/esm2015/engine/calc-days-calendar.js +0 -21
  1357. package/datepicker/esm2015/engine/calc-days-calendar.js.map +0 -1
  1358. package/datepicker/esm2015/engine/calc-days-calendar.metadata.json +0 -1
  1359. package/datepicker/esm2015/engine/flag-days-calendar.js +0 -93
  1360. package/datepicker/esm2015/engine/flag-days-calendar.js.map +0 -1
  1361. package/datepicker/esm2015/engine/flag-days-calendar.metadata.json +0 -1
  1362. package/datepicker/esm2015/engine/flag-months-calendar.js +0 -45
  1363. package/datepicker/esm2015/engine/flag-months-calendar.js.map +0 -1
  1364. package/datepicker/esm2015/engine/flag-months-calendar.metadata.json +0 -1
  1365. package/datepicker/esm2015/engine/flag-years-calendar.js +0 -42
  1366. package/datepicker/esm2015/engine/flag-years-calendar.js.map +0 -1
  1367. package/datepicker/esm2015/engine/flag-years-calendar.metadata.json +0 -1
  1368. package/datepicker/esm2015/engine/format-days-calendar.js +0 -33
  1369. package/datepicker/esm2015/engine/format-days-calendar.js.map +0 -1
  1370. package/datepicker/esm2015/engine/format-days-calendar.metadata.json +0 -1
  1371. package/datepicker/esm2015/engine/format-months-calendar.js +0 -23
  1372. package/datepicker/esm2015/engine/format-months-calendar.js.map +0 -1
  1373. package/datepicker/esm2015/engine/format-months-calendar.metadata.json +0 -1
  1374. package/datepicker/esm2015/engine/format-years-calendar.js +0 -39
  1375. package/datepicker/esm2015/engine/format-years-calendar.js.map +0 -1
  1376. package/datepicker/esm2015/engine/format-years-calendar.metadata.json +0 -1
  1377. package/datepicker/esm2015/engine/view-mode.js +0 -4
  1378. package/datepicker/esm2015/engine/view-mode.js.map +0 -1
  1379. package/datepicker/esm2015/engine/view-mode.metadata.json +0 -1
  1380. package/datepicker/esm2015/index.js +0 -2
  1381. package/datepicker/esm2015/index.js.map +0 -1
  1382. package/datepicker/esm2015/index.metadata.json +0 -1
  1383. package/datepicker/esm2015/models/index.js +0 -9
  1384. package/datepicker/esm2015/models/index.js.map +0 -1
  1385. package/datepicker/esm2015/models/index.metadata.json +0 -1
  1386. package/datepicker/esm2015/monthpicker.component.js +0 -91
  1387. package/datepicker/esm2015/monthpicker.component.js.map +0 -1
  1388. package/datepicker/esm2015/monthpicker.component.metadata.json +0 -1
  1389. package/datepicker/esm2015/monthpicker.component.ngfactory.js.map +0 -1
  1390. package/datepicker/esm2015/ngx-bootstrap-datepicker.js +0 -20
  1391. package/datepicker/esm2015/ngx-bootstrap-datepicker.js.map +0 -1
  1392. package/datepicker/esm2015/ngx-bootstrap-datepicker.metadata.json +0 -1
  1393. package/datepicker/esm2015/public_api.js +0 -25
  1394. package/datepicker/esm2015/public_api.js.map +0 -1
  1395. package/datepicker/esm2015/public_api.metadata.json +0 -1
  1396. package/datepicker/esm2015/reducer/_defaults.js +0 -6
  1397. package/datepicker/esm2015/reducer/_defaults.js.map +0 -1
  1398. package/datepicker/esm2015/reducer/_defaults.metadata.json +0 -1
  1399. package/datepicker/esm2015/reducer/bs-datepicker.actions.js +0 -139
  1400. package/datepicker/esm2015/reducer/bs-datepicker.actions.js.map +0 -1
  1401. package/datepicker/esm2015/reducer/bs-datepicker.actions.metadata.json +0 -1
  1402. package/datepicker/esm2015/reducer/bs-datepicker.actions.ngfactory.js.map +0 -1
  1403. package/datepicker/esm2015/reducer/bs-datepicker.effects.js +0 -195
  1404. package/datepicker/esm2015/reducer/bs-datepicker.effects.js.map +0 -1
  1405. package/datepicker/esm2015/reducer/bs-datepicker.effects.metadata.json +0 -1
  1406. package/datepicker/esm2015/reducer/bs-datepicker.effects.ngfactory.js.map +0 -1
  1407. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js +0 -378
  1408. package/datepicker/esm2015/reducer/bs-datepicker.reducer.js.map +0 -1
  1409. package/datepicker/esm2015/reducer/bs-datepicker.reducer.metadata.json +0 -1
  1410. package/datepicker/esm2015/reducer/bs-datepicker.state.js +0 -18
  1411. package/datepicker/esm2015/reducer/bs-datepicker.state.js.map +0 -1
  1412. package/datepicker/esm2015/reducer/bs-datepicker.state.metadata.json +0 -1
  1413. package/datepicker/esm2015/reducer/bs-datepicker.store.js +0 -19
  1414. package/datepicker/esm2015/reducer/bs-datepicker.store.js.map +0 -1
  1415. package/datepicker/esm2015/reducer/bs-datepicker.store.metadata.json +0 -1
  1416. package/datepicker/esm2015/reducer/bs-datepicker.store.ngfactory.js.map +0 -1
  1417. package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.js +0 -25
  1418. package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.js.map +0 -1
  1419. package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.metadata.json +0 -1
  1420. package/datepicker/esm2015/themes/bs/bs-calendar-layout.component.ngfactory.js.map +0 -1
  1421. package/datepicker/esm2015/themes/bs/bs-current-date-view.component.js +0 -13
  1422. package/datepicker/esm2015/themes/bs/bs-current-date-view.component.js.map +0 -1
  1423. package/datepicker/esm2015/themes/bs/bs-current-date-view.component.metadata.json +0 -1
  1424. package/datepicker/esm2015/themes/bs/bs-current-date-view.component.ngfactory.js.map +0 -1
  1425. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js +0 -33
  1426. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.js.map +0 -1
  1427. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.metadata.json +0 -1
  1428. package/datepicker/esm2015/themes/bs/bs-custom-dates-view.component.ngfactory.js.map +0 -1
  1429. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js +0 -161
  1430. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.js.map +0 -1
  1431. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.metadata.json +0 -1
  1432. package/datepicker/esm2015/themes/bs/bs-datepicker-container.component.ngfactory.js.map +0 -1
  1433. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js +0 -47
  1434. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.js.map +0 -1
  1435. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.metadata.json +0 -1
  1436. package/datepicker/esm2015/themes/bs/bs-datepicker-day-decorator.directive.ngfactory.js.map +0 -1
  1437. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js +0 -36
  1438. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.js.map +0 -1
  1439. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.metadata.json +0 -1
  1440. package/datepicker/esm2015/themes/bs/bs-datepicker-inline-container.component.ngfactory.js.map +0 -1
  1441. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js +0 -63
  1442. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.js.map +0 -1
  1443. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.metadata.json +0 -1
  1444. package/datepicker/esm2015/themes/bs/bs-datepicker-navigation-view.component.ngfactory.js.map +0 -1
  1445. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js +0 -221
  1446. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.js.map +0 -1
  1447. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.metadata.json +0 -1
  1448. package/datepicker/esm2015/themes/bs/bs-daterangepicker-container.component.ngfactory.js.map +0 -1
  1449. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js +0 -36
  1450. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.js.map +0 -1
  1451. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.metadata.json +0 -1
  1452. package/datepicker/esm2015/themes/bs/bs-daterangepicker-inline-container.component.ngfactory.js.map +0 -1
  1453. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js +0 -161
  1454. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.js.map +0 -1
  1455. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.metadata.json +0 -1
  1456. package/datepicker/esm2015/themes/bs/bs-days-calendar-view.component.ngfactory.js.map +0 -1
  1457. package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.js +0 -60
  1458. package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.js.map +0 -1
  1459. package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.metadata.json +0 -1
  1460. package/datepicker/esm2015/themes/bs/bs-months-calendar-view.component.ngfactory.js.map +0 -1
  1461. package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.js +0 -33
  1462. package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.js.map +0 -1
  1463. package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.metadata.json +0 -1
  1464. package/datepicker/esm2015/themes/bs/bs-timepicker-view.component.ngfactory.js.map +0 -1
  1465. package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.js +0 -61
  1466. package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.js.map +0 -1
  1467. package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.metadata.json +0 -1
  1468. package/datepicker/esm2015/themes/bs/bs-years-calendar-view.component.ngfactory.js.map +0 -1
  1469. package/datepicker/esm2015/utils/bs-calendar-utils.js +0 -120
  1470. package/datepicker/esm2015/utils/bs-calendar-utils.js.map +0 -1
  1471. package/datepicker/esm2015/utils/bs-calendar-utils.metadata.json +0 -1
  1472. package/datepicker/esm2015/utils/copy-time-utils.js +0 -7
  1473. package/datepicker/esm2015/utils/copy-time-utils.js.map +0 -1
  1474. package/datepicker/esm2015/utils/copy-time-utils.metadata.json +0 -1
  1475. package/datepicker/esm2015/utils/matrix-utils.js +0 -14
  1476. package/datepicker/esm2015/utils/matrix-utils.js.map +0 -1
  1477. package/datepicker/esm2015/utils/matrix-utils.metadata.json +0 -1
  1478. package/datepicker/esm2015/yearpicker.component.js +0 -101
  1479. package/datepicker/esm2015/yearpicker.component.js.map +0 -1
  1480. package/datepicker/esm2015/yearpicker.component.metadata.json +0 -1
  1481. package/datepicker/esm2015/yearpicker.component.ngfactory.js.map +0 -1
  1482. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js +0 -4353
  1483. package/datepicker/fesm2015/ngx-bootstrap-datepicker.js.map +0 -1
  1484. package/datepicker/monthpicker.component.d.ts.__ivy_ngcc_bak +0 -11
  1485. package/datepicker/monthpicker.component.d.ts.map +0 -1
  1486. package/datepicker/ngx-bootstrap-datepicker.d.ts.__ivy_ngcc_bak +0 -19
  1487. package/datepicker/ngx-bootstrap-datepicker.d.ts.map +0 -1
  1488. package/datepicker/ngx-bootstrap-datepicker.metadata.json +0 -1
  1489. package/datepicker/reducer/bs-datepicker.actions.d.ts.__ivy_ngcc_bak +0 -45
  1490. package/datepicker/reducer/bs-datepicker.actions.d.ts.map +0 -1
  1491. package/datepicker/reducer/bs-datepicker.effects.d.ts.__ivy_ngcc_bak +0 -38
  1492. package/datepicker/reducer/bs-datepicker.effects.d.ts.map +0 -1
  1493. package/datepicker/reducer/bs-datepicker.store.d.ts.__ivy_ngcc_bak +0 -5
  1494. package/datepicker/reducer/bs-datepicker.store.d.ts.map +0 -1
  1495. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts.__ivy_ngcc_bak +0 -2
  1496. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts.map +0 -1
  1497. package/datepicker/themes/bs/bs-current-date-view.component.d.ts.__ivy_ngcc_bak +0 -3
  1498. package/datepicker/themes/bs/bs-current-date-view.component.d.ts.map +0 -1
  1499. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts.__ivy_ngcc_bak +0 -12
  1500. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts.map +0 -1
  1501. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts.__ivy_ngcc_bak +0 -35
  1502. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts.map +0 -1
  1503. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts.__ivy_ngcc_bak +0 -11
  1504. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts.map +0 -1
  1505. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts.__ivy_ngcc_bak +0 -10
  1506. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts.map +0 -1
  1507. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts.__ivy_ngcc_bak +0 -9
  1508. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts.map +0 -1
  1509. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts.__ivy_ngcc_bak +0 -40
  1510. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts.map +0 -1
  1511. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts.__ivy_ngcc_bak +0 -10
  1512. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts.map +0 -1
  1513. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts.__ivy_ngcc_bak +0 -23
  1514. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts.map +0 -1
  1515. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts.__ivy_ngcc_bak +0 -13
  1516. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts.map +0 -1
  1517. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts.__ivy_ngcc_bak +0 -5
  1518. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts.map +0 -1
  1519. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts.__ivy_ngcc_bak +0 -13
  1520. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts.map +0 -1
  1521. package/datepicker/yearpicker.component.d.ts.__ivy_ngcc_bak +0 -11
  1522. package/datepicker/yearpicker.component.d.ts.map +0 -1
  1523. package/dropdown/__ivy_ngcc__/fesm2015/ngx-bootstrap-dropdown.js +0 -667
  1524. package/dropdown/__ivy_ngcc__/fesm2015/ngx-bootstrap-dropdown.js.map +0 -1
  1525. package/dropdown/bs-dropdown-container.component.d.ts.__ivy_ngcc_bak +0 -17
  1526. package/dropdown/bs-dropdown-container.component.d.ts.map +0 -1
  1527. package/dropdown/bs-dropdown-menu.directive.d.ts.__ivy_ngcc_bak +0 -5
  1528. package/dropdown/bs-dropdown-menu.directive.d.ts.map +0 -1
  1529. package/dropdown/bs-dropdown-toggle.directive.d.ts.__ivy_ngcc_bak +0 -18
  1530. package/dropdown/bs-dropdown-toggle.directive.d.ts.map +0 -1
  1531. package/dropdown/bs-dropdown.config.d.ts.__ivy_ngcc_bak +0 -11
  1532. package/dropdown/bs-dropdown.config.d.ts.map +0 -1
  1533. package/dropdown/bs-dropdown.directive.d.ts.__ivy_ngcc_bak +0 -106
  1534. package/dropdown/bs-dropdown.directive.d.ts.map +0 -1
  1535. package/dropdown/bs-dropdown.module.d.ts.__ivy_ngcc_bak +0 -4
  1536. package/dropdown/bs-dropdown.module.d.ts.map +0 -1
  1537. package/dropdown/bs-dropdown.state.d.ts.__ivy_ngcc_bak +0 -20
  1538. package/dropdown/bs-dropdown.state.d.ts.map +0 -1
  1539. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js +0 -964
  1540. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.js.map +0 -1
  1541. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js +0 -16
  1542. package/dropdown/bundles/ngx-bootstrap-dropdown.umd.min.js.map +0 -1
  1543. package/dropdown/esm2015/bs-dropdown-container.component.js +0 -74
  1544. package/dropdown/esm2015/bs-dropdown-container.component.js.map +0 -1
  1545. package/dropdown/esm2015/bs-dropdown-container.component.metadata.json +0 -1
  1546. package/dropdown/esm2015/bs-dropdown-menu.directive.js +0 -22
  1547. package/dropdown/esm2015/bs-dropdown-menu.directive.js.map +0 -1
  1548. package/dropdown/esm2015/bs-dropdown-menu.directive.metadata.json +0 -1
  1549. package/dropdown/esm2015/bs-dropdown-toggle.directive.js +0 -84
  1550. package/dropdown/esm2015/bs-dropdown-toggle.directive.js.map +0 -1
  1551. package/dropdown/esm2015/bs-dropdown-toggle.directive.metadata.json +0 -1
  1552. package/dropdown/esm2015/bs-dropdown.config.js +0 -22
  1553. package/dropdown/esm2015/bs-dropdown.config.js.map +0 -1
  1554. package/dropdown/esm2015/bs-dropdown.config.metadata.json +0 -1
  1555. package/dropdown/esm2015/bs-dropdown.directive.js +0 -332
  1556. package/dropdown/esm2015/bs-dropdown.directive.js.map +0 -1
  1557. package/dropdown/esm2015/bs-dropdown.directive.metadata.json +0 -1
  1558. package/dropdown/esm2015/bs-dropdown.module.js +0 -39
  1559. package/dropdown/esm2015/bs-dropdown.module.js.map +0 -1
  1560. package/dropdown/esm2015/bs-dropdown.module.metadata.json +0 -1
  1561. package/dropdown/esm2015/bs-dropdown.state.js +0 -22
  1562. package/dropdown/esm2015/bs-dropdown.state.js.map +0 -1
  1563. package/dropdown/esm2015/bs-dropdown.state.metadata.json +0 -1
  1564. package/dropdown/esm2015/dropdown-animations.js +0 -7
  1565. package/dropdown/esm2015/dropdown-animations.js.map +0 -1
  1566. package/dropdown/esm2015/dropdown-animations.metadata.json +0 -1
  1567. package/dropdown/esm2015/index.js +0 -2
  1568. package/dropdown/esm2015/index.js.map +0 -1
  1569. package/dropdown/esm2015/index.metadata.json +0 -1
  1570. package/dropdown/esm2015/ngx-bootstrap-dropdown.js +0 -5
  1571. package/dropdown/esm2015/ngx-bootstrap-dropdown.js.map +0 -1
  1572. package/dropdown/esm2015/ngx-bootstrap-dropdown.metadata.json +0 -1
  1573. package/dropdown/esm2015/public_api.js +0 -8
  1574. package/dropdown/esm2015/public_api.js.map +0 -1
  1575. package/dropdown/esm2015/public_api.metadata.json +0 -1
  1576. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js +0 -584
  1577. package/dropdown/fesm2015/ngx-bootstrap-dropdown.js.map +0 -1
  1578. package/dropdown/ngx-bootstrap-dropdown.d.ts.__ivy_ngcc_bak +0 -4
  1579. package/dropdown/ngx-bootstrap-dropdown.d.ts.map +0 -1
  1580. package/dropdown/ngx-bootstrap-dropdown.metadata.json +0 -1
  1581. package/esm2015/index.js +0 -2
  1582. package/esm2015/index.js.map +0 -1
  1583. package/esm2015/ngx-bootstrap.js +0 -5
  1584. package/esm2015/ngx-bootstrap.js.map +0 -1
  1585. package/esm2015/ngx-bootstrap.metadata.json +0 -1
  1586. package/fesm2015/ngx-bootstrap.js +0 -6
  1587. package/fesm2015/ngx-bootstrap.js.map +0 -1
  1588. package/focus-trap/__ivy_ngcc__/fesm2015/ngx-bootstrap-focus-trap.js +0 -822
  1589. package/focus-trap/__ivy_ngcc__/fesm2015/ngx-bootstrap-focus-trap.js.map +0 -1
  1590. package/focus-trap/bundles/ngx-bootstrap-focus-trap.umd.js +0 -831
  1591. package/focus-trap/bundles/ngx-bootstrap-focus-trap.umd.js.map +0 -1
  1592. package/focus-trap/bundles/ngx-bootstrap-focus-trap.umd.min.js +0 -32
  1593. package/focus-trap/bundles/ngx-bootstrap-focus-trap.umd.min.js.map +0 -1
  1594. package/focus-trap/esm2015/boolean-property.js +0 -12
  1595. package/focus-trap/esm2015/boolean-property.js.map +0 -1
  1596. package/focus-trap/esm2015/boolean-property.metadata.json +0 -1
  1597. package/focus-trap/esm2015/focus-trap-manager.js +0 -52
  1598. package/focus-trap/esm2015/focus-trap-manager.js.map +0 -1
  1599. package/focus-trap/esm2015/focus-trap-manager.metadata.json +0 -1
  1600. package/focus-trap/esm2015/focus-trap.js +0 -397
  1601. package/focus-trap/esm2015/focus-trap.js.map +0 -1
  1602. package/focus-trap/esm2015/focus-trap.metadata.json +0 -1
  1603. package/focus-trap/esm2015/focus-trap.module.js +0 -26
  1604. package/focus-trap/esm2015/focus-trap.module.js.map +0 -1
  1605. package/focus-trap/esm2015/focus-trap.module.metadata.json +0 -1
  1606. package/focus-trap/esm2015/index.js +0 -2
  1607. package/focus-trap/esm2015/index.js.map +0 -1
  1608. package/focus-trap/esm2015/index.metadata.json +0 -1
  1609. package/focus-trap/esm2015/interactivity-checker.js +0 -242
  1610. package/focus-trap/esm2015/interactivity-checker.js.map +0 -1
  1611. package/focus-trap/esm2015/interactivity-checker.metadata.json +0 -1
  1612. package/focus-trap/esm2015/ngx-bootstrap-focus-trap.js +0 -9
  1613. package/focus-trap/esm2015/ngx-bootstrap-focus-trap.js.map +0 -1
  1614. package/focus-trap/esm2015/ngx-bootstrap-focus-trap.metadata.json +0 -1
  1615. package/focus-trap/esm2015/platform.js +0 -78
  1616. package/focus-trap/esm2015/platform.js.map +0 -1
  1617. package/focus-trap/esm2015/platform.metadata.json +0 -1
  1618. package/focus-trap/esm2015/public_api.js +0 -4
  1619. package/focus-trap/esm2015/public_api.js.map +0 -1
  1620. package/focus-trap/esm2015/public_api.metadata.json +0 -1
  1621. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.js +0 -790
  1622. package/focus-trap/fesm2015/ngx-bootstrap-focus-trap.js.map +0 -1
  1623. package/focus-trap/focus-trap-manager.d.ts.__ivy_ngcc_bak +0 -30
  1624. package/focus-trap/focus-trap-manager.d.ts.map +0 -1
  1625. package/focus-trap/focus-trap.d.ts.__ivy_ngcc_bak +0 -157
  1626. package/focus-trap/focus-trap.d.ts.map +0 -1
  1627. package/focus-trap/focus-trap.module.d.ts.__ivy_ngcc_bak +0 -4
  1628. package/focus-trap/focus-trap.module.d.ts.map +0 -1
  1629. package/focus-trap/interactivity-checker.d.ts.__ivy_ngcc_bak +0 -57
  1630. package/focus-trap/interactivity-checker.d.ts.map +0 -1
  1631. package/focus-trap/ngx-bootstrap-focus-trap.d.ts.__ivy_ngcc_bak +0 -8
  1632. package/focus-trap/ngx-bootstrap-focus-trap.d.ts.map +0 -1
  1633. package/focus-trap/ngx-bootstrap-focus-trap.metadata.json +0 -1
  1634. package/focus-trap/platform.d.ts.__ivy_ngcc_bak +0 -33
  1635. package/focus-trap/platform.d.ts.map +0 -1
  1636. package/locale/bundles/ngx-bootstrap-locale.umd.js +0 -279
  1637. package/locale/bundles/ngx-bootstrap-locale.umd.js.map +0 -1
  1638. package/locale/bundles/ngx-bootstrap-locale.umd.min.js +0 -2
  1639. package/locale/bundles/ngx-bootstrap-locale.umd.min.js.map +0 -1
  1640. package/locale/esm2015/index.js +0 -2
  1641. package/locale/esm2015/index.js.map +0 -1
  1642. package/locale/esm2015/index.metadata.json +0 -1
  1643. package/locale/esm2015/ngx-bootstrap-locale.js +0 -5
  1644. package/locale/esm2015/ngx-bootstrap-locale.js.map +0 -1
  1645. package/locale/esm2015/ngx-bootstrap-locale.metadata.json +0 -1
  1646. package/locale/esm2015/public_api.js +0 -45
  1647. package/locale/esm2015/public_api.js.map +0 -1
  1648. package/locale/esm2015/public_api.metadata.json +0 -1
  1649. package/locale/fesm2015/ngx-bootstrap-locale.js +0 -6
  1650. package/locale/fesm2015/ngx-bootstrap-locale.js.map +0 -1
  1651. package/locale/ngx-bootstrap-locale.d.ts.__ivy_ngcc_bak +0 -4
  1652. package/locale/ngx-bootstrap-locale.d.ts.map +0 -1
  1653. package/locale/ngx-bootstrap-locale.metadata.json +0 -1
  1654. package/mini-ngrx/__ivy_ngcc__/fesm2015/ngx-bootstrap-mini-ngrx.js +0 -62
  1655. package/mini-ngrx/__ivy_ngcc__/fesm2015/ngx-bootstrap-mini-ngrx.js.map +0 -1
  1656. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js +0 -381
  1657. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.js.map +0 -1
  1658. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js +0 -16
  1659. package/mini-ngrx/bundles/ngx-bootstrap-mini-ngrx.umd.min.js.map +0 -1
  1660. package/mini-ngrx/esm2015/index.js +0 -2
  1661. package/mini-ngrx/esm2015/index.js.map +0 -1
  1662. package/mini-ngrx/esm2015/index.metadata.json +0 -1
  1663. package/mini-ngrx/esm2015/ngx-bootstrap-mini-ngrx.js +0 -5
  1664. package/mini-ngrx/esm2015/ngx-bootstrap-mini-ngrx.js.map +0 -1
  1665. package/mini-ngrx/esm2015/ngx-bootstrap-mini-ngrx.metadata.json +0 -1
  1666. package/mini-ngrx/esm2015/public_api.js +0 -3
  1667. package/mini-ngrx/esm2015/public_api.js.map +0 -1
  1668. package/mini-ngrx/esm2015/public_api.metadata.json +0 -1
  1669. package/mini-ngrx/esm2015/state.class.js +0 -16
  1670. package/mini-ngrx/esm2015/state.class.js.map +0 -1
  1671. package/mini-ngrx/esm2015/state.class.metadata.json +0 -1
  1672. package/mini-ngrx/esm2015/store.class.js +0 -40
  1673. package/mini-ngrx/esm2015/store.class.js.map +0 -1
  1674. package/mini-ngrx/esm2015/store.class.metadata.json +0 -1
  1675. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js +0 -61
  1676. package/mini-ngrx/fesm2015/ngx-bootstrap-mini-ngrx.js.map +0 -1
  1677. package/mini-ngrx/ngx-bootstrap-mini-ngrx.d.ts.__ivy_ngcc_bak +0 -4
  1678. package/mini-ngrx/ngx-bootstrap-mini-ngrx.d.ts.map +0 -1
  1679. package/mini-ngrx/ngx-bootstrap-mini-ngrx.metadata.json +0 -1
  1680. package/modal/__ivy_ngcc__/fesm2015/ngx-bootstrap-modal.js +0 -932
  1681. package/modal/__ivy_ngcc__/fesm2015/ngx-bootstrap-modal.js.map +0 -1
  1682. package/modal/bs-modal-ref.service.d.ts.__ivy_ngcc_bak +0 -27
  1683. package/modal/bs-modal-ref.service.d.ts.map +0 -1
  1684. package/modal/bs-modal.service.d.ts.__ivy_ngcc_bak +0 -45
  1685. package/modal/bs-modal.service.d.ts.map +0 -1
  1686. package/modal/bundles/ngx-bootstrap-modal.umd.js +0 -1213
  1687. package/modal/bundles/ngx-bootstrap-modal.umd.js.map +0 -1
  1688. package/modal/bundles/ngx-bootstrap-modal.umd.min.js +0 -2
  1689. package/modal/bundles/ngx-bootstrap-modal.umd.min.js.map +0 -1
  1690. package/modal/esm2015/bs-modal-ref.service.js +0 -18
  1691. package/modal/esm2015/bs-modal-ref.service.js.map +0 -1
  1692. package/modal/esm2015/bs-modal-ref.service.metadata.json +0 -1
  1693. package/modal/esm2015/bs-modal.service.js +0 -214
  1694. package/modal/esm2015/bs-modal.service.js.map +0 -1
  1695. package/modal/esm2015/bs-modal.service.metadata.json +0 -1
  1696. package/modal/esm2015/index.js +0 -2
  1697. package/modal/esm2015/index.js.map +0 -1
  1698. package/modal/esm2015/index.metadata.json +0 -1
  1699. package/modal/esm2015/modal-backdrop.component.js +0 -58
  1700. package/modal/esm2015/modal-backdrop.component.js.map +0 -1
  1701. package/modal/esm2015/modal-backdrop.component.metadata.json +0 -1
  1702. package/modal/esm2015/modal-backdrop.options.js +0 -7
  1703. package/modal/esm2015/modal-backdrop.options.js.map +0 -1
  1704. package/modal/esm2015/modal-backdrop.options.metadata.json +0 -1
  1705. package/modal/esm2015/modal-container.component.js +0 -135
  1706. package/modal/esm2015/modal-container.component.js.map +0 -1
  1707. package/modal/esm2015/modal-container.component.metadata.json +0 -1
  1708. package/modal/esm2015/modal-options.class.js +0 -42
  1709. package/modal/esm2015/modal-options.class.js.map +0 -1
  1710. package/modal/esm2015/modal-options.class.metadata.json +0 -1
  1711. package/modal/esm2015/modal.directive.js +0 -354
  1712. package/modal/esm2015/modal.directive.js.map +0 -1
  1713. package/modal/esm2015/modal.directive.metadata.json +0 -1
  1714. package/modal/esm2015/modal.module.js +0 -36
  1715. package/modal/esm2015/modal.module.js.map +0 -1
  1716. package/modal/esm2015/modal.module.metadata.json +0 -1
  1717. package/modal/esm2015/models/index.js +0 -2
  1718. package/modal/esm2015/models/index.js.map +0 -1
  1719. package/modal/esm2015/models/index.metadata.json +0 -1
  1720. package/modal/esm2015/ngx-bootstrap-modal.js +0 -6
  1721. package/modal/esm2015/ngx-bootstrap-modal.js.map +0 -1
  1722. package/modal/esm2015/ngx-bootstrap-modal.metadata.json +0 -1
  1723. package/modal/esm2015/public_api.js +0 -9
  1724. package/modal/esm2015/public_api.js.map +0 -1
  1725. package/modal/esm2015/public_api.metadata.json +0 -1
  1726. package/modal/fesm2015/ngx-bootstrap-modal.js +0 -847
  1727. package/modal/fesm2015/ngx-bootstrap-modal.js.map +0 -1
  1728. package/modal/modal-backdrop.component.d.ts.__ivy_ngcc_bak +0 -14
  1729. package/modal/modal-backdrop.component.d.ts.map +0 -1
  1730. package/modal/modal-container.component.d.ts.__ivy_ngcc_bak +0 -23
  1731. package/modal/modal-container.component.d.ts.map +0 -1
  1732. package/modal/modal-options.class.d.ts.__ivy_ngcc_bak +0 -60
  1733. package/modal/modal-options.class.d.ts.map +0 -1
  1734. package/modal/modal.directive.d.ts.__ivy_ngcc_bak +0 -86
  1735. package/modal/modal.directive.d.ts.map +0 -1
  1736. package/modal/modal.module.d.ts.__ivy_ngcc_bak +0 -7
  1737. package/modal/modal.module.d.ts.map +0 -1
  1738. package/modal/ngx-bootstrap-modal.d.ts.__ivy_ngcc_bak +0 -5
  1739. package/modal/ngx-bootstrap-modal.d.ts.map +0 -1
  1740. package/modal/ngx-bootstrap-modal.metadata.json +0 -1
  1741. package/ngx-bootstrap.metadata.json +0 -1
  1742. package/pagination/__ivy_ngcc__/fesm2015/ngx-bootstrap-pagination.js +0 -787
  1743. package/pagination/__ivy_ngcc__/fesm2015/ngx-bootstrap-pagination.js.map +0 -1
  1744. package/pagination/bundles/ngx-bootstrap-pagination.umd.js +0 -587
  1745. package/pagination/bundles/ngx-bootstrap-pagination.umd.js.map +0 -1
  1746. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js +0 -2
  1747. package/pagination/bundles/ngx-bootstrap-pagination.umd.min.js.map +0 -1
  1748. package/pagination/esm2015/index.js +0 -2
  1749. package/pagination/esm2015/index.js.map +0 -1
  1750. package/pagination/esm2015/index.metadata.json +0 -1
  1751. package/pagination/esm2015/models/index.js +0 -2
  1752. package/pagination/esm2015/models/index.js.map +0 -1
  1753. package/pagination/esm2015/models/index.metadata.json +0 -1
  1754. package/pagination/esm2015/ngx-bootstrap-pagination.js +0 -7
  1755. package/pagination/esm2015/ngx-bootstrap-pagination.js.map +0 -1
  1756. package/pagination/esm2015/ngx-bootstrap-pagination.metadata.json +0 -1
  1757. package/pagination/esm2015/pager.component.js +0 -247
  1758. package/pagination/esm2015/pager.component.js.map +0 -1
  1759. package/pagination/esm2015/pager.component.metadata.json +0 -1
  1760. package/pagination/esm2015/pagination.component.js +0 -243
  1761. package/pagination/esm2015/pagination.component.js.map +0 -1
  1762. package/pagination/esm2015/pagination.component.metadata.json +0 -1
  1763. package/pagination/esm2015/pagination.config.js +0 -33
  1764. package/pagination/esm2015/pagination.config.js.map +0 -1
  1765. package/pagination/esm2015/pagination.config.metadata.json +0 -1
  1766. package/pagination/esm2015/pagination.module.js +0 -17
  1767. package/pagination/esm2015/pagination.module.js.map +0 -1
  1768. package/pagination/esm2015/pagination.module.metadata.json +0 -1
  1769. package/pagination/esm2015/public_api.js +0 -5
  1770. package/pagination/esm2015/public_api.js.map +0 -1
  1771. package/pagination/esm2015/public_api.metadata.json +0 -1
  1772. package/pagination/fesm2015/ngx-bootstrap-pagination.js +0 -538
  1773. package/pagination/fesm2015/ngx-bootstrap-pagination.js.map +0 -1
  1774. package/pagination/ngx-bootstrap-pagination.d.ts.__ivy_ngcc_bak +0 -6
  1775. package/pagination/ngx-bootstrap-pagination.d.ts.map +0 -1
  1776. package/pagination/ngx-bootstrap-pagination.metadata.json +0 -1
  1777. package/pagination/pager.component.d.ts.__ivy_ngcc_bak +0 -75
  1778. package/pagination/pager.component.d.ts.map +0 -1
  1779. package/pagination/pagination.component.d.ts.__ivy_ngcc_bak +0 -88
  1780. package/pagination/pagination.component.d.ts.map +0 -1
  1781. package/pagination/pagination.config.d.ts.__ivy_ngcc_bak +0 -6
  1782. package/pagination/pagination.config.d.ts.map +0 -1
  1783. package/pagination/pagination.module.d.ts.__ivy_ngcc_bak +0 -4
  1784. package/pagination/pagination.module.d.ts.map +0 -1
  1785. package/popover/__ivy_ngcc__/fesm2015/ngx-bootstrap-popover.js +0 -419
  1786. package/popover/__ivy_ngcc__/fesm2015/ngx-bootstrap-popover.js.map +0 -1
  1787. package/popover/bundles/ngx-bootstrap-popover.umd.js +0 -354
  1788. package/popover/bundles/ngx-bootstrap-popover.umd.js.map +0 -1
  1789. package/popover/bundles/ngx-bootstrap-popover.umd.min.js +0 -2
  1790. package/popover/bundles/ngx-bootstrap-popover.umd.min.js.map +0 -1
  1791. package/popover/esm2015/index.js +0 -2
  1792. package/popover/esm2015/index.js.map +0 -1
  1793. package/popover/esm2015/index.metadata.json +0 -1
  1794. package/popover/esm2015/ngx-bootstrap-popover.js +0 -5
  1795. package/popover/esm2015/ngx-bootstrap-popover.js.map +0 -1
  1796. package/popover/esm2015/ngx-bootstrap-popover.metadata.json +0 -1
  1797. package/popover/esm2015/popover-container.component.js +0 -69
  1798. package/popover/esm2015/popover-container.component.js.map +0 -1
  1799. package/popover/esm2015/popover-container.component.metadata.json +0 -1
  1800. package/popover/esm2015/popover.config.js +0 -33
  1801. package/popover/esm2015/popover.config.js.map +0 -1
  1802. package/popover/esm2015/popover.config.metadata.json +0 -1
  1803. package/popover/esm2015/popover.directive.js +0 -228
  1804. package/popover/esm2015/popover.directive.js.map +0 -1
  1805. package/popover/esm2015/popover.directive.metadata.json +0 -1
  1806. package/popover/esm2015/popover.module.js +0 -23
  1807. package/popover/esm2015/popover.module.js.map +0 -1
  1808. package/popover/esm2015/popover.module.metadata.json +0 -1
  1809. package/popover/esm2015/public_api.js +0 -5
  1810. package/popover/esm2015/public_api.js.map +0 -1
  1811. package/popover/esm2015/public_api.metadata.json +0 -1
  1812. package/popover/fesm2015/ngx-bootstrap-popover.js +0 -347
  1813. package/popover/fesm2015/ngx-bootstrap-popover.js.map +0 -1
  1814. package/popover/ngx-bootstrap-popover.d.ts.__ivy_ngcc_bak +0 -4
  1815. package/popover/ngx-bootstrap-popover.d.ts.map +0 -1
  1816. package/popover/ngx-bootstrap-popover.metadata.json +0 -1
  1817. package/popover/popover-container.component.d.ts.__ivy_ngcc_bak +0 -13
  1818. package/popover/popover-container.component.d.ts.map +0 -1
  1819. package/popover/popover.config.d.ts.__ivy_ngcc_bak +0 -26
  1820. package/popover/popover.config.d.ts.map +0 -1
  1821. package/popover/popover.directive.d.ts.__ivy_ngcc_bak +0 -94
  1822. package/popover/popover.directive.d.ts.map +0 -1
  1823. package/popover/popover.module.d.ts.__ivy_ngcc_bak +0 -4
  1824. package/popover/popover.module.d.ts.map +0 -1
  1825. package/positioning/__ivy_ngcc__/fesm2015/ngx-bootstrap-positioning.js +0 -1080
  1826. package/positioning/__ivy_ngcc__/fesm2015/ngx-bootstrap-positioning.js.map +0 -1
  1827. package/positioning/bundles/ngx-bootstrap-positioning.umd.js +0 -1108
  1828. package/positioning/bundles/ngx-bootstrap-positioning.umd.js.map +0 -1
  1829. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js +0 -2
  1830. package/positioning/bundles/ngx-bootstrap-positioning.umd.min.js.map +0 -1
  1831. package/positioning/esm2015/index.js +0 -2
  1832. package/positioning/esm2015/index.js.map +0 -1
  1833. package/positioning/esm2015/index.metadata.json +0 -1
  1834. package/positioning/esm2015/models/index.js +0 -53
  1835. package/positioning/esm2015/models/index.js.map +0 -1
  1836. package/positioning/esm2015/models/index.metadata.json +0 -1
  1837. package/positioning/esm2015/modifiers/arrow.js +0 -57
  1838. package/positioning/esm2015/modifiers/arrow.js.map +0 -1
  1839. package/positioning/esm2015/modifiers/arrow.metadata.json +0 -1
  1840. package/positioning/esm2015/modifiers/flip.js +0 -60
  1841. package/positioning/esm2015/modifiers/flip.js.map +0 -1
  1842. package/positioning/esm2015/modifiers/flip.metadata.json +0 -1
  1843. package/positioning/esm2015/modifiers/index.js +0 -6
  1844. package/positioning/esm2015/modifiers/index.js.map +0 -1
  1845. package/positioning/esm2015/modifiers/index.metadata.json +0 -1
  1846. package/positioning/esm2015/modifiers/initData.js +0 -44
  1847. package/positioning/esm2015/modifiers/initData.js.map +0 -1
  1848. package/positioning/esm2015/modifiers/initData.metadata.json +0 -1
  1849. package/positioning/esm2015/modifiers/preventOverflow.js +0 -55
  1850. package/positioning/esm2015/modifiers/preventOverflow.js.map +0 -1
  1851. package/positioning/esm2015/modifiers/preventOverflow.metadata.json +0 -1
  1852. package/positioning/esm2015/modifiers/shift.js +0 -23
  1853. package/positioning/esm2015/modifiers/shift.js.map +0 -1
  1854. package/positioning/esm2015/modifiers/shift.metadata.json +0 -1
  1855. package/positioning/esm2015/ng-positioning.js +0 -39
  1856. package/positioning/esm2015/ng-positioning.js.map +0 -1
  1857. package/positioning/esm2015/ng-positioning.metadata.json +0 -1
  1858. package/positioning/esm2015/ngx-bootstrap-positioning.js +0 -5
  1859. package/positioning/esm2015/ngx-bootstrap-positioning.js.map +0 -1
  1860. package/positioning/esm2015/ngx-bootstrap-positioning.metadata.json +0 -1
  1861. package/positioning/esm2015/positioning.service.js +0 -71
  1862. package/positioning/esm2015/positioning.service.js.map +0 -1
  1863. package/positioning/esm2015/positioning.service.metadata.json +0 -1
  1864. package/positioning/esm2015/positioning.service.ngfactory.js.map +0 -1
  1865. package/positioning/esm2015/public_api.js +0 -5
  1866. package/positioning/esm2015/public_api.js.map +0 -1
  1867. package/positioning/esm2015/public_api.metadata.json +0 -1
  1868. package/positioning/esm2015/utils/checkMargin.js +0 -32
  1869. package/positioning/esm2015/utils/checkMargin.js.map +0 -1
  1870. package/positioning/esm2015/utils/checkMargin.metadata.json +0 -1
  1871. package/positioning/esm2015/utils/computeAutoPlacement.js +0 -56
  1872. package/positioning/esm2015/utils/computeAutoPlacement.js.map +0 -1
  1873. package/positioning/esm2015/utils/computeAutoPlacement.metadata.json +0 -1
  1874. package/positioning/esm2015/utils/findCommonOffsetParent.js +0 -40
  1875. package/positioning/esm2015/utils/findCommonOffsetParent.js.map +0 -1
  1876. package/positioning/esm2015/utils/findCommonOffsetParent.metadata.json +0 -1
  1877. package/positioning/esm2015/utils/getBordersSize.js +0 -10
  1878. package/positioning/esm2015/utils/getBordersSize.js.map +0 -1
  1879. package/positioning/esm2015/utils/getBordersSize.metadata.json +0 -1
  1880. package/positioning/esm2015/utils/getBoundaries.js +0 -70
  1881. package/positioning/esm2015/utils/getBoundaries.js.map +0 -1
  1882. package/positioning/esm2015/utils/getBoundaries.metadata.json +0 -1
  1883. package/positioning/esm2015/utils/getBoundingClientRect.js +0 -59
  1884. package/positioning/esm2015/utils/getBoundingClientRect.js.map +0 -1
  1885. package/positioning/esm2015/utils/getBoundingClientRect.metadata.json +0 -1
  1886. package/positioning/esm2015/utils/getClientRect.js +0 -4
  1887. package/positioning/esm2015/utils/getClientRect.js.map +0 -1
  1888. package/positioning/esm2015/utils/getClientRect.metadata.json +0 -1
  1889. package/positioning/esm2015/utils/getFixedPositionOffsetParent.js +0 -17
  1890. package/positioning/esm2015/utils/getFixedPositionOffsetParent.js.map +0 -1
  1891. package/positioning/esm2015/utils/getFixedPositionOffsetParent.metadata.json +0 -1
  1892. package/positioning/esm2015/utils/getOffsetParent.js +0 -34
  1893. package/positioning/esm2015/utils/getOffsetParent.js.map +0 -1
  1894. package/positioning/esm2015/utils/getOffsetParent.metadata.json +0 -1
  1895. package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.js +0 -61
  1896. package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.js.map +0 -1
  1897. package/positioning/esm2015/utils/getOffsetRectRelativeToArbitraryNode.metadata.json +0 -1
  1898. package/positioning/esm2015/utils/getOffsets.js +0 -12
  1899. package/positioning/esm2015/utils/getOffsets.js.map +0 -1
  1900. package/positioning/esm2015/utils/getOffsets.metadata.json +0 -1
  1901. package/positioning/esm2015/utils/getOppositePlacement.js +0 -8
  1902. package/positioning/esm2015/utils/getOppositePlacement.js.map +0 -1
  1903. package/positioning/esm2015/utils/getOppositePlacement.metadata.json +0 -1
  1904. package/positioning/esm2015/utils/getOppositeVariation.js +0 -13
  1905. package/positioning/esm2015/utils/getOppositeVariation.js.map +0 -1
  1906. package/positioning/esm2015/utils/getOppositeVariation.metadata.json +0 -1
  1907. package/positioning/esm2015/utils/getOuterSizes.js +0 -14
  1908. package/positioning/esm2015/utils/getOuterSizes.js.map +0 -1
  1909. package/positioning/esm2015/utils/getOuterSizes.metadata.json +0 -1
  1910. package/positioning/esm2015/utils/getParentNode.js +0 -12
  1911. package/positioning/esm2015/utils/getParentNode.js.map +0 -1
  1912. package/positioning/esm2015/utils/getParentNode.metadata.json +0 -1
  1913. package/positioning/esm2015/utils/getReferenceOffsets.js +0 -13
  1914. package/positioning/esm2015/utils/getReferenceOffsets.js.map +0 -1
  1915. package/positioning/esm2015/utils/getReferenceOffsets.metadata.json +0 -1
  1916. package/positioning/esm2015/utils/getRoot.js +0 -10
  1917. package/positioning/esm2015/utils/getRoot.js.map +0 -1
  1918. package/positioning/esm2015/utils/getRoot.metadata.json +0 -1
  1919. package/positioning/esm2015/utils/getScroll.js +0 -14
  1920. package/positioning/esm2015/utils/getScroll.js.map +0 -1
  1921. package/positioning/esm2015/utils/getScroll.metadata.json +0 -1
  1922. package/positioning/esm2015/utils/getScrollParent.js +0 -28
  1923. package/positioning/esm2015/utils/getScrollParent.js.map +0 -1
  1924. package/positioning/esm2015/utils/getScrollParent.metadata.json +0 -1
  1925. package/positioning/esm2015/utils/getStyleComputedProperty.js +0 -12
  1926. package/positioning/esm2015/utils/getStyleComputedProperty.js.map +0 -1
  1927. package/positioning/esm2015/utils/getStyleComputedProperty.metadata.json +0 -1
  1928. package/positioning/esm2015/utils/getTargetOffsets.js +0 -31
  1929. package/positioning/esm2015/utils/getTargetOffsets.js.map +0 -1
  1930. package/positioning/esm2015/utils/getTargetOffsets.metadata.json +0 -1
  1931. package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.js +0 -19
  1932. package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.js.map +0 -1
  1933. package/positioning/esm2015/utils/getViewportOffsetRectRelativeToArtbitraryNode.metadata.json +0 -1
  1934. package/positioning/esm2015/utils/getWindowSizes.js +0 -21
  1935. package/positioning/esm2015/utils/getWindowSizes.js.map +0 -1
  1936. package/positioning/esm2015/utils/getWindowSizes.metadata.json +0 -1
  1937. package/positioning/esm2015/utils/includeScroll.js +0 -24
  1938. package/positioning/esm2015/utils/includeScroll.js.map +0 -1
  1939. package/positioning/esm2015/utils/includeScroll.metadata.json +0 -1
  1940. package/positioning/esm2015/utils/index.js +0 -24
  1941. package/positioning/esm2015/utils/index.js.map +0 -1
  1942. package/positioning/esm2015/utils/index.metadata.json +0 -1
  1943. package/positioning/esm2015/utils/isBrowser.js +0 -2
  1944. package/positioning/esm2015/utils/isBrowser.js.map +0 -1
  1945. package/positioning/esm2015/utils/isBrowser.metadata.json +0 -1
  1946. package/positioning/esm2015/utils/isFixed.js +0 -16
  1947. package/positioning/esm2015/utils/isFixed.js.map +0 -1
  1948. package/positioning/esm2015/utils/isFixed.metadata.json +0 -1
  1949. package/positioning/esm2015/utils/isIE.js +0 -18
  1950. package/positioning/esm2015/utils/isIE.js.map +0 -1
  1951. package/positioning/esm2015/utils/isIE.metadata.json +0 -1
  1952. package/positioning/esm2015/utils/isModifierEnabled.js +0 -5
  1953. package/positioning/esm2015/utils/isModifierEnabled.js.map +0 -1
  1954. package/positioning/esm2015/utils/isModifierEnabled.metadata.json +0 -1
  1955. package/positioning/esm2015/utils/isNumeric.js +0 -11
  1956. package/positioning/esm2015/utils/isNumeric.js.map +0 -1
  1957. package/positioning/esm2015/utils/isNumeric.metadata.json +0 -1
  1958. package/positioning/esm2015/utils/isOffsetContainer.js +0 -11
  1959. package/positioning/esm2015/utils/isOffsetContainer.js.map +0 -1
  1960. package/positioning/esm2015/utils/isOffsetContainer.metadata.json +0 -1
  1961. package/positioning/esm2015/utils/setStyles.js +0 -21
  1962. package/positioning/esm2015/utils/setStyles.js.map +0 -1
  1963. package/positioning/esm2015/utils/setStyles.metadata.json +0 -1
  1964. package/positioning/esm2015/utils/updateContainerClass.js +0 -30
  1965. package/positioning/esm2015/utils/updateContainerClass.js.map +0 -1
  1966. package/positioning/esm2015/utils/updateContainerClass.metadata.json +0 -1
  1967. package/positioning/fesm2015/ngx-bootstrap-positioning.js +0 -1073
  1968. package/positioning/fesm2015/ngx-bootstrap-positioning.js.map +0 -1
  1969. package/positioning/ngx-bootstrap-positioning.d.ts.__ivy_ngcc_bak +0 -4
  1970. package/positioning/ngx-bootstrap-positioning.d.ts.map +0 -1
  1971. package/positioning/ngx-bootstrap-positioning.metadata.json +0 -1
  1972. package/positioning/positioning.service.d.ts.__ivy_ngcc_bak +0 -45
  1973. package/positioning/positioning.service.d.ts.map +0 -1
  1974. package/positioning/utils/isBrowser.d.ts +0 -1
  1975. package/positioning/utils/isIE.d.ts +0 -1
  1976. package/progressbar/__ivy_ngcc__/fesm2015/ngx-bootstrap-progressbar.js +0 -256
  1977. package/progressbar/__ivy_ngcc__/fesm2015/ngx-bootstrap-progressbar.js.map +0 -1
  1978. package/progressbar/bar.component.d.ts.__ivy_ngcc_bak +0 -22
  1979. package/progressbar/bar.component.d.ts.map +0 -1
  1980. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js +0 -191
  1981. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.js.map +0 -1
  1982. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js +0 -2
  1983. package/progressbar/bundles/ngx-bootstrap-progressbar.umd.min.js.map +0 -1
  1984. package/progressbar/esm2015/bar.component.js +0 -81
  1985. package/progressbar/esm2015/bar.component.js.map +0 -1
  1986. package/progressbar/esm2015/bar.component.metadata.json +0 -1
  1987. package/progressbar/esm2015/index.js +0 -2
  1988. package/progressbar/esm2015/index.js.map +0 -1
  1989. package/progressbar/esm2015/index.metadata.json +0 -1
  1990. package/progressbar/esm2015/ngx-bootstrap-progressbar.js +0 -5
  1991. package/progressbar/esm2015/ngx-bootstrap-progressbar.js.map +0 -1
  1992. package/progressbar/esm2015/ngx-bootstrap-progressbar.metadata.json +0 -1
  1993. package/progressbar/esm2015/progressbar-type.interface.js +0 -2
  1994. package/progressbar/esm2015/progressbar-type.interface.js.map +0 -1
  1995. package/progressbar/esm2015/progressbar-type.interface.metadata.json +0 -1
  1996. package/progressbar/esm2015/progressbar.component.js +0 -57
  1997. package/progressbar/esm2015/progressbar.component.js.map +0 -1
  1998. package/progressbar/esm2015/progressbar.component.metadata.json +0 -1
  1999. package/progressbar/esm2015/progressbar.config.js +0 -17
  2000. package/progressbar/esm2015/progressbar.config.js.map +0 -1
  2001. package/progressbar/esm2015/progressbar.config.metadata.json +0 -1
  2002. package/progressbar/esm2015/progressbar.module.js +0 -17
  2003. package/progressbar/esm2015/progressbar.module.js.map +0 -1
  2004. package/progressbar/esm2015/progressbar.module.metadata.json +0 -1
  2005. package/progressbar/esm2015/public_api.js +0 -5
  2006. package/progressbar/esm2015/public_api.js.map +0 -1
  2007. package/progressbar/esm2015/public_api.metadata.json +0 -1
  2008. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js +0 -172
  2009. package/progressbar/fesm2015/ngx-bootstrap-progressbar.js.map +0 -1
  2010. package/progressbar/ngx-bootstrap-progressbar.d.ts.__ivy_ngcc_bak +0 -4
  2011. package/progressbar/ngx-bootstrap-progressbar.d.ts.map +0 -1
  2012. package/progressbar/ngx-bootstrap-progressbar.metadata.json +0 -1
  2013. package/progressbar/progressbar.component.d.ts.__ivy_ngcc_bak +0 -20
  2014. package/progressbar/progressbar.component.d.ts.map +0 -1
  2015. package/progressbar/progressbar.config.d.ts.__ivy_ngcc_bak +0 -6
  2016. package/progressbar/progressbar.config.d.ts.map +0 -1
  2017. package/progressbar/progressbar.module.d.ts.__ivy_ngcc_bak +0 -4
  2018. package/progressbar/progressbar.module.d.ts.map +0 -1
  2019. package/rating/__ivy_ngcc__/fesm2015/ngx-bootstrap-rating.js +0 -227
  2020. package/rating/__ivy_ngcc__/fesm2015/ngx-bootstrap-rating.js.map +0 -1
  2021. package/rating/bundles/ngx-bootstrap-rating.umd.js +0 -169
  2022. package/rating/bundles/ngx-bootstrap-rating.umd.js.map +0 -1
  2023. package/rating/bundles/ngx-bootstrap-rating.umd.min.js +0 -2
  2024. package/rating/bundles/ngx-bootstrap-rating.umd.min.js.map +0 -1
  2025. package/rating/esm2015/index.js +0 -2
  2026. package/rating/esm2015/index.js.map +0 -1
  2027. package/rating/esm2015/index.metadata.json +0 -1
  2028. package/rating/esm2015/models/index.js +0 -2
  2029. package/rating/esm2015/models/index.js.map +0 -1
  2030. package/rating/esm2015/models/index.metadata.json +0 -1
  2031. package/rating/esm2015/ngx-bootstrap-rating.js +0 -6
  2032. package/rating/esm2015/ngx-bootstrap-rating.js.map +0 -1
  2033. package/rating/esm2015/ngx-bootstrap-rating.metadata.json +0 -1
  2034. package/rating/esm2015/public_api.js +0 -4
  2035. package/rating/esm2015/public_api.js.map +0 -1
  2036. package/rating/esm2015/public_api.metadata.json +0 -1
  2037. package/rating/esm2015/rating.component.js +0 -118
  2038. package/rating/esm2015/rating.component.js.map +0 -1
  2039. package/rating/esm2015/rating.component.metadata.json +0 -1
  2040. package/rating/esm2015/rating.config.js +0 -16
  2041. package/rating/esm2015/rating.config.js.map +0 -1
  2042. package/rating/esm2015/rating.config.metadata.json +0 -1
  2043. package/rating/esm2015/rating.module.js +0 -19
  2044. package/rating/esm2015/rating.module.js.map +0 -1
  2045. package/rating/esm2015/rating.module.metadata.json +0 -1
  2046. package/rating/fesm2015/ngx-bootstrap-rating.js +0 -155
  2047. package/rating/fesm2015/ngx-bootstrap-rating.js.map +0 -1
  2048. package/rating/ngx-bootstrap-rating.d.ts.__ivy_ngcc_bak +0 -5
  2049. package/rating/ngx-bootstrap-rating.d.ts.map +0 -1
  2050. package/rating/ngx-bootstrap-rating.metadata.json +0 -1
  2051. package/rating/rating.component.d.ts.__ivy_ngcc_bak +0 -37
  2052. package/rating/rating.component.d.ts.map +0 -1
  2053. package/rating/rating.config.d.ts.__ivy_ngcc_bak +0 -5
  2054. package/rating/rating.config.d.ts.map +0 -1
  2055. package/rating/rating.module.d.ts.__ivy_ngcc_bak +0 -4
  2056. package/rating/rating.module.d.ts.map +0 -1
  2057. package/sortable/__ivy_ngcc__/fesm2015/ngx-bootstrap-sortable.js +0 -361
  2058. package/sortable/__ivy_ngcc__/fesm2015/ngx-bootstrap-sortable.js.map +0 -1
  2059. package/sortable/bundles/ngx-bootstrap-sortable.umd.js +0 -558
  2060. package/sortable/bundles/ngx-bootstrap-sortable.umd.js.map +0 -1
  2061. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js +0 -16
  2062. package/sortable/bundles/ngx-bootstrap-sortable.umd.min.js.map +0 -1
  2063. package/sortable/draggable-item.service.d.ts.__ivy_ngcc_bak +0 -10
  2064. package/sortable/draggable-item.service.d.ts.map +0 -1
  2065. package/sortable/esm2015/draggable-item.js +0 -2
  2066. package/sortable/esm2015/draggable-item.js.map +0 -1
  2067. package/sortable/esm2015/draggable-item.metadata.json +0 -1
  2068. package/sortable/esm2015/draggable-item.service.js +0 -32
  2069. package/sortable/esm2015/draggable-item.service.js.map +0 -1
  2070. package/sortable/esm2015/draggable-item.service.metadata.json +0 -1
  2071. package/sortable/esm2015/index.js +0 -2
  2072. package/sortable/esm2015/index.js.map +0 -1
  2073. package/sortable/esm2015/index.metadata.json +0 -1
  2074. package/sortable/esm2015/ngx-bootstrap-sortable.js +0 -5
  2075. package/sortable/esm2015/ngx-bootstrap-sortable.js.map +0 -1
  2076. package/sortable/esm2015/ngx-bootstrap-sortable.metadata.json +0 -1
  2077. package/sortable/esm2015/public_api.js +0 -4
  2078. package/sortable/esm2015/public_api.js.map +0 -1
  2079. package/sortable/esm2015/public_api.metadata.json +0 -1
  2080. package/sortable/esm2015/sortable.component.js +0 -217
  2081. package/sortable/esm2015/sortable.component.js.map +0 -1
  2082. package/sortable/esm2015/sortable.component.metadata.json +0 -1
  2083. package/sortable/esm2015/sortable.module.js +0 -17
  2084. package/sortable/esm2015/sortable.module.js.map +0 -1
  2085. package/sortable/esm2015/sortable.module.metadata.json +0 -1
  2086. package/sortable/fesm2015/ngx-bootstrap-sortable.js +0 -268
  2087. package/sortable/fesm2015/ngx-bootstrap-sortable.js.map +0 -1
  2088. package/sortable/ngx-bootstrap-sortable.d.ts.__ivy_ngcc_bak +0 -4
  2089. package/sortable/ngx-bootstrap-sortable.d.ts.map +0 -1
  2090. package/sortable/ngx-bootstrap-sortable.metadata.json +0 -1
  2091. package/sortable/sortable.component.d.ts.__ivy_ngcc_bak +0 -59
  2092. package/sortable/sortable.component.d.ts.map +0 -1
  2093. package/sortable/sortable.module.d.ts.__ivy_ngcc_bak +0 -4
  2094. package/sortable/sortable.module.d.ts.map +0 -1
  2095. package/tabs/__ivy_ngcc__/fesm2015/ngx-bootstrap-tabs.js +0 -521
  2096. package/tabs/__ivy_ngcc__/fesm2015/ngx-bootstrap-tabs.js.map +0 -1
  2097. package/tabs/bundles/ngx-bootstrap-tabs.umd.js +0 -458
  2098. package/tabs/bundles/ngx-bootstrap-tabs.umd.js.map +0 -1
  2099. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js +0 -2
  2100. package/tabs/bundles/ngx-bootstrap-tabs.umd.min.js.map +0 -1
  2101. package/tabs/esm2015/index.js +0 -2
  2102. package/tabs/esm2015/index.js.map +0 -1
  2103. package/tabs/esm2015/index.metadata.json +0 -1
  2104. package/tabs/esm2015/ng-transclude.directive.js +0 -28
  2105. package/tabs/esm2015/ng-transclude.directive.js.map +0 -1
  2106. package/tabs/esm2015/ng-transclude.directive.metadata.json +0 -1
  2107. package/tabs/esm2015/ngx-bootstrap-tabs.js +0 -5
  2108. package/tabs/esm2015/ngx-bootstrap-tabs.js.map +0 -1
  2109. package/tabs/esm2015/ngx-bootstrap-tabs.metadata.json +0 -1
  2110. package/tabs/esm2015/public_api.js +0 -7
  2111. package/tabs/esm2015/public_api.js.map +0 -1
  2112. package/tabs/esm2015/public_api.metadata.json +0 -1
  2113. package/tabs/esm2015/tab-heading.directive.js +0 -17
  2114. package/tabs/esm2015/tab-heading.directive.js.map +0 -1
  2115. package/tabs/esm2015/tab-heading.directive.metadata.json +0 -1
  2116. package/tabs/esm2015/tab.directive.js +0 -96
  2117. package/tabs/esm2015/tab.directive.js.map +0 -1
  2118. package/tabs/esm2015/tab.directive.metadata.json +0 -1
  2119. package/tabs/esm2015/tabs.module.js +0 -32
  2120. package/tabs/esm2015/tabs.module.js.map +0 -1
  2121. package/tabs/esm2015/tabs.module.metadata.json +0 -1
  2122. package/tabs/esm2015/tabset.component.js +0 -215
  2123. package/tabs/esm2015/tabset.component.js.map +0 -1
  2124. package/tabs/esm2015/tabset.component.metadata.json +0 -1
  2125. package/tabs/esm2015/tabset.config.js +0 -19
  2126. package/tabs/esm2015/tabset.config.js.map +0 -1
  2127. package/tabs/esm2015/tabset.config.metadata.json +0 -1
  2128. package/tabs/fesm2015/ngx-bootstrap-tabs.js +0 -401
  2129. package/tabs/fesm2015/ngx-bootstrap-tabs.js.map +0 -1
  2130. package/tabs/ng-transclude.directive.d.ts.__ivy_ngcc_bak +0 -8
  2131. package/tabs/ng-transclude.directive.d.ts.map +0 -1
  2132. package/tabs/ngx-bootstrap-tabs.d.ts.__ivy_ngcc_bak +0 -4
  2133. package/tabs/ngx-bootstrap-tabs.d.ts.map +0 -1
  2134. package/tabs/ngx-bootstrap-tabs.metadata.json +0 -1
  2135. package/tabs/tab-heading.directive.d.ts.__ivy_ngcc_bak +0 -7
  2136. package/tabs/tab-heading.directive.d.ts.map +0 -1
  2137. package/tabs/tab.directive.d.ts.__ivy_ngcc_bak +0 -36
  2138. package/tabs/tab.directive.d.ts.map +0 -1
  2139. package/tabs/tabs.module.d.ts.__ivy_ngcc_bak +0 -4
  2140. package/tabs/tabs.module.d.ts.map +0 -1
  2141. package/tabs/tabset.component.d.ts.__ivy_ngcc_bak +0 -41
  2142. package/tabs/tabset.component.d.ts.map +0 -1
  2143. package/tabs/tabset.config.d.ts.__ivy_ngcc_bak +0 -8
  2144. package/tabs/tabset.config.d.ts.map +0 -1
  2145. package/timepicker/__ivy_ngcc__/fesm2015/ngx-bootstrap-timepicker.js +0 -1137
  2146. package/timepicker/__ivy_ngcc__/fesm2015/ngx-bootstrap-timepicker.js.map +0 -1
  2147. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js +0 -1156
  2148. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.js.map +0 -1
  2149. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js +0 -17
  2150. package/timepicker/bundles/ngx-bootstrap-timepicker.umd.min.js.map +0 -1
  2151. package/timepicker/esm2015/index.js +0 -2
  2152. package/timepicker/esm2015/index.js.map +0 -1
  2153. package/timepicker/esm2015/index.metadata.json +0 -1
  2154. package/timepicker/esm2015/models/index.js +0 -2
  2155. package/timepicker/esm2015/models/index.js.map +0 -1
  2156. package/timepicker/esm2015/models/index.metadata.json +0 -1
  2157. package/timepicker/esm2015/ngx-bootstrap-timepicker.js +0 -6
  2158. package/timepicker/esm2015/ngx-bootstrap-timepicker.js.map +0 -1
  2159. package/timepicker/esm2015/ngx-bootstrap-timepicker.metadata.json +0 -1
  2160. package/timepicker/esm2015/public_api.js +0 -6
  2161. package/timepicker/esm2015/public_api.js.map +0 -1
  2162. package/timepicker/esm2015/public_api.metadata.json +0 -1
  2163. package/timepicker/esm2015/reducer/timepicker.actions.js +0 -49
  2164. package/timepicker/esm2015/reducer/timepicker.actions.js.map +0 -1
  2165. package/timepicker/esm2015/reducer/timepicker.actions.metadata.json +0 -1
  2166. package/timepicker/esm2015/reducer/timepicker.reducer.js +0 -83
  2167. package/timepicker/esm2015/reducer/timepicker.reducer.js.map +0 -1
  2168. package/timepicker/esm2015/reducer/timepicker.reducer.metadata.json +0 -1
  2169. package/timepicker/esm2015/reducer/timepicker.store.js +0 -18
  2170. package/timepicker/esm2015/reducer/timepicker.store.js.map +0 -1
  2171. package/timepicker/esm2015/reducer/timepicker.store.metadata.json +0 -1
  2172. package/timepicker/esm2015/timepicker-controls.util.js +0 -123
  2173. package/timepicker/esm2015/timepicker-controls.util.js.map +0 -1
  2174. package/timepicker/esm2015/timepicker-controls.util.metadata.json +0 -1
  2175. package/timepicker/esm2015/timepicker.component.js +0 -350
  2176. package/timepicker/esm2015/timepicker.component.js.map +0 -1
  2177. package/timepicker/esm2015/timepicker.component.metadata.json +0 -1
  2178. package/timepicker/esm2015/timepicker.config.js +0 -52
  2179. package/timepicker/esm2015/timepicker.config.js.map +0 -1
  2180. package/timepicker/esm2015/timepicker.config.metadata.json +0 -1
  2181. package/timepicker/esm2015/timepicker.models.js +0 -2
  2182. package/timepicker/esm2015/timepicker.models.js.map +0 -1
  2183. package/timepicker/esm2015/timepicker.models.metadata.json +0 -1
  2184. package/timepicker/esm2015/timepicker.module.js +0 -21
  2185. package/timepicker/esm2015/timepicker.module.js.map +0 -1
  2186. package/timepicker/esm2015/timepicker.module.metadata.json +0 -1
  2187. package/timepicker/esm2015/timepicker.utils.js +0 -152
  2188. package/timepicker/esm2015/timepicker.utils.js.map +0 -1
  2189. package/timepicker/esm2015/timepicker.utils.metadata.json +0 -1
  2190. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js +0 -836
  2191. package/timepicker/fesm2015/ngx-bootstrap-timepicker.js.map +0 -1
  2192. package/timepicker/ngx-bootstrap-timepicker.d.ts.__ivy_ngcc_bak +0 -5
  2193. package/timepicker/ngx-bootstrap-timepicker.d.ts.map +0 -1
  2194. package/timepicker/ngx-bootstrap-timepicker.metadata.json +0 -1
  2195. package/timepicker/reducer/timepicker.actions.d.ts.__ivy_ngcc_bak +0 -25
  2196. package/timepicker/reducer/timepicker.actions.d.ts.map +0 -1
  2197. package/timepicker/reducer/timepicker.store.d.ts.__ivy_ngcc_bak +0 -5
  2198. package/timepicker/reducer/timepicker.store.d.ts.map +0 -1
  2199. package/timepicker/timepicker.component.d.ts.__ivy_ngcc_bak +0 -113
  2200. package/timepicker/timepicker.component.d.ts.map +0 -1
  2201. package/timepicker/timepicker.config.d.ts.__ivy_ngcc_bak +0 -45
  2202. package/timepicker/timepicker.config.d.ts.map +0 -1
  2203. package/timepicker/timepicker.module.d.ts.__ivy_ngcc_bak +0 -4
  2204. package/timepicker/timepicker.module.d.ts.map +0 -1
  2205. package/tooltip/__ivy_ngcc__/fesm2015/ngx-bootstrap-tooltip.js +0 -506
  2206. package/tooltip/__ivy_ngcc__/fesm2015/ngx-bootstrap-tooltip.js.map +0 -1
  2207. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js +0 -766
  2208. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.js.map +0 -1
  2209. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js +0 -2
  2210. package/tooltip/bundles/ngx-bootstrap-tooltip.umd.min.js.map +0 -1
  2211. package/tooltip/esm2015/index.js +0 -2
  2212. package/tooltip/esm2015/index.js.map +0 -1
  2213. package/tooltip/esm2015/index.metadata.json +0 -1
  2214. package/tooltip/esm2015/ngx-bootstrap-tooltip.js +0 -5
  2215. package/tooltip/esm2015/ngx-bootstrap-tooltip.js.map +0 -1
  2216. package/tooltip/esm2015/ngx-bootstrap-tooltip.metadata.json +0 -1
  2217. package/tooltip/esm2015/public_api.js +0 -5
  2218. package/tooltip/esm2015/public_api.js.map +0 -1
  2219. package/tooltip/esm2015/public_api.metadata.json +0 -1
  2220. package/tooltip/esm2015/tooltip-container.component.js +0 -69
  2221. package/tooltip/esm2015/tooltip-container.component.js.map +0 -1
  2222. package/tooltip/esm2015/tooltip-container.component.metadata.json +0 -1
  2223. package/tooltip/esm2015/tooltip.config.js +0 -20
  2224. package/tooltip/esm2015/tooltip.config.js.map +0 -1
  2225. package/tooltip/esm2015/tooltip.config.metadata.json +0 -1
  2226. package/tooltip/esm2015/tooltip.directive.js +0 -313
  2227. package/tooltip/esm2015/tooltip.directive.js.map +0 -1
  2228. package/tooltip/esm2015/tooltip.directive.metadata.json +0 -1
  2229. package/tooltip/esm2015/tooltip.module.js +0 -23
  2230. package/tooltip/esm2015/tooltip.module.js.map +0 -1
  2231. package/tooltip/esm2015/tooltip.module.metadata.json +0 -1
  2232. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js +0 -419
  2233. package/tooltip/fesm2015/ngx-bootstrap-tooltip.js.map +0 -1
  2234. package/tooltip/ngx-bootstrap-tooltip.d.ts.__ivy_ngcc_bak +0 -4
  2235. package/tooltip/ngx-bootstrap-tooltip.d.ts.map +0 -1
  2236. package/tooltip/ngx-bootstrap-tooltip.metadata.json +0 -1
  2237. package/tooltip/tooltip-container.component.d.ts.__ivy_ngcc_bak +0 -15
  2238. package/tooltip/tooltip-container.component.d.ts.map +0 -1
  2239. package/tooltip/tooltip.config.d.ts.__ivy_ngcc_bak +0 -13
  2240. package/tooltip/tooltip.config.d.ts.map +0 -1
  2241. package/tooltip/tooltip.directive.d.ts.__ivy_ngcc_bak +0 -110
  2242. package/tooltip/tooltip.directive.d.ts.map +0 -1
  2243. package/tooltip/tooltip.module.d.ts.__ivy_ngcc_bak +0 -4
  2244. package/tooltip/tooltip.module.d.ts.map +0 -1
  2245. package/typeahead/__ivy_ngcc__/fesm2015/ngx-bootstrap-typeahead.js +0 -2103
  2246. package/typeahead/__ivy_ngcc__/fesm2015/ngx-bootstrap-typeahead.js.map +0 -1
  2247. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js +0 -2264
  2248. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.js.map +0 -1
  2249. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js +0 -2
  2250. package/typeahead/bundles/ngx-bootstrap-typeahead.umd.min.js.map +0 -1
  2251. package/typeahead/esm2015/index.js +0 -2
  2252. package/typeahead/esm2015/index.js.map +0 -1
  2253. package/typeahead/esm2015/index.metadata.json +0 -1
  2254. package/typeahead/esm2015/latin-map.js +0 -827
  2255. package/typeahead/esm2015/latin-map.js.map +0 -1
  2256. package/typeahead/esm2015/latin-map.metadata.json +0 -1
  2257. package/typeahead/esm2015/models/index.js +0 -2
  2258. package/typeahead/esm2015/models/index.js.map +0 -1
  2259. package/typeahead/esm2015/models/index.metadata.json +0 -1
  2260. package/typeahead/esm2015/ngx-bootstrap-typeahead.js +0 -6
  2261. package/typeahead/esm2015/ngx-bootstrap-typeahead.js.map +0 -1
  2262. package/typeahead/esm2015/ngx-bootstrap-typeahead.metadata.json +0 -1
  2263. package/typeahead/esm2015/public_api.js +0 -9
  2264. package/typeahead/esm2015/public_api.js.map +0 -1
  2265. package/typeahead/esm2015/public_api.metadata.json +0 -1
  2266. package/typeahead/esm2015/typeahead-animations.js +0 -16
  2267. package/typeahead/esm2015/typeahead-animations.js.map +0 -1
  2268. package/typeahead/esm2015/typeahead-animations.metadata.json +0 -1
  2269. package/typeahead/esm2015/typeahead-container.component.js +0 -332
  2270. package/typeahead/esm2015/typeahead-container.component.js.map +0 -1
  2271. package/typeahead/esm2015/typeahead-container.component.metadata.json +0 -1
  2272. package/typeahead/esm2015/typeahead-match.class.js +0 -15
  2273. package/typeahead/esm2015/typeahead-match.class.js.map +0 -1
  2274. package/typeahead/esm2015/typeahead-match.class.metadata.json +0 -1
  2275. package/typeahead/esm2015/typeahead-options.class.js +0 -8
  2276. package/typeahead/esm2015/typeahead-options.class.js.map +0 -1
  2277. package/typeahead/esm2015/typeahead-options.class.metadata.json +0 -1
  2278. package/typeahead/esm2015/typeahead-order.class.js +0 -2
  2279. package/typeahead/esm2015/typeahead-order.class.js.map +0 -1
  2280. package/typeahead/esm2015/typeahead-order.class.metadata.json +0 -1
  2281. package/typeahead/esm2015/typeahead-utils.js +0 -77
  2282. package/typeahead/esm2015/typeahead-utils.js.map +0 -1
  2283. package/typeahead/esm2015/typeahead-utils.metadata.json +0 -1
  2284. package/typeahead/esm2015/typeahead.config.js +0 -32
  2285. package/typeahead/esm2015/typeahead.config.js.map +0 -1
  2286. package/typeahead/esm2015/typeahead.config.metadata.json +0 -1
  2287. package/typeahead/esm2015/typeahead.directive.js +0 -537
  2288. package/typeahead/esm2015/typeahead.directive.js.map +0 -1
  2289. package/typeahead/esm2015/typeahead.directive.metadata.json +0 -1
  2290. package/typeahead/esm2015/typeahead.module.js +0 -23
  2291. package/typeahead/esm2015/typeahead.module.js.map +0 -1
  2292. package/typeahead/esm2015/typeahead.module.metadata.json +0 -1
  2293. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js +0 -1858
  2294. package/typeahead/fesm2015/ngx-bootstrap-typeahead.js.map +0 -1
  2295. package/typeahead/ngx-bootstrap-typeahead.d.ts.__ivy_ngcc_bak +0 -5
  2296. package/typeahead/ngx-bootstrap-typeahead.d.ts.map +0 -1
  2297. package/typeahead/ngx-bootstrap-typeahead.metadata.json +0 -1
  2298. package/typeahead/typeahead-container.component.d.ts.__ivy_ngcc_bak +0 -64
  2299. package/typeahead/typeahead-container.component.d.ts.map +0 -1
  2300. package/typeahead/typeahead.config.d.ts.__ivy_ngcc_bak +0 -23
  2301. package/typeahead/typeahead.config.d.ts.map +0 -1
  2302. package/typeahead/typeahead.directive.d.ts.__ivy_ngcc_bak +0 -173
  2303. package/typeahead/typeahead.directive.d.ts.map +0 -1
  2304. package/typeahead/typeahead.module.d.ts.__ivy_ngcc_bak +0 -4
  2305. package/typeahead/typeahead.module.d.ts.map +0 -1
  2306. package/utils/__ivy_ngcc__/fesm2015/ngx-bootstrap-utils.js +0 -548
  2307. package/utils/__ivy_ngcc__/fesm2015/ngx-bootstrap-utils.js.map +0 -1
  2308. package/utils/bundles/ngx-bootstrap-utils.umd.js +0 -589
  2309. package/utils/bundles/ngx-bootstrap-utils.umd.js.map +0 -1
  2310. package/utils/bundles/ngx-bootstrap-utils.umd.min.js +0 -10
  2311. package/utils/bundles/ngx-bootstrap-utils.umd.min.js.map +0 -1
  2312. package/utils/esm2015/decorators.js +0 -23
  2313. package/utils/esm2015/decorators.js.map +0 -1
  2314. package/utils/esm2015/decorators.metadata.json +0 -1
  2315. package/utils/esm2015/facade/browser.js +0 -26
  2316. package/utils/esm2015/facade/browser.js.map +0 -1
  2317. package/utils/esm2015/facade/browser.metadata.json +0 -1
  2318. package/utils/esm2015/index.js +0 -2
  2319. package/utils/esm2015/index.js.map +0 -1
  2320. package/utils/esm2015/index.metadata.json +0 -1
  2321. package/utils/esm2015/linked-list.class.js +0 -249
  2322. package/utils/esm2015/linked-list.class.js.map +0 -1
  2323. package/utils/esm2015/linked-list.class.metadata.json +0 -1
  2324. package/utils/esm2015/ngx-bootstrap-utils.js +0 -6
  2325. package/utils/esm2015/ngx-bootstrap-utils.js.map +0 -1
  2326. package/utils/esm2015/ngx-bootstrap-utils.metadata.json +0 -1
  2327. package/utils/esm2015/public_api.js +0 -10
  2328. package/utils/esm2015/public_api.js.map +0 -1
  2329. package/utils/esm2015/public_api.metadata.json +0 -1
  2330. package/utils/esm2015/theme-provider.js +0 -74
  2331. package/utils/esm2015/theme-provider.js.map +0 -1
  2332. package/utils/esm2015/theme-provider.metadata.json +0 -1
  2333. package/utils/esm2015/trigger.class.js +0 -14
  2334. package/utils/esm2015/trigger.class.js.map +0 -1
  2335. package/utils/esm2015/trigger.class.metadata.json +0 -1
  2336. package/utils/esm2015/triggers.js +0 -118
  2337. package/utils/esm2015/triggers.js.map +0 -1
  2338. package/utils/esm2015/triggers.metadata.json +0 -1
  2339. package/utils/esm2015/utils.class.js +0 -30
  2340. package/utils/esm2015/utils.class.js.map +0 -1
  2341. package/utils/esm2015/utils.class.metadata.json +0 -1
  2342. package/utils/esm2015/warn-once.js +0 -11
  2343. package/utils/esm2015/warn-once.js.map +0 -1
  2344. package/utils/esm2015/warn-once.metadata.json +0 -1
  2345. package/utils/fesm2015/ngx-bootstrap-utils.js +0 -547
  2346. package/utils/fesm2015/ngx-bootstrap-utils.js.map +0 -1
  2347. package/utils/ngx-bootstrap-utils.d.ts.__ivy_ngcc_bak +0 -5
  2348. package/utils/ngx-bootstrap-utils.d.ts.map +0 -1
  2349. package/utils/ngx-bootstrap-utils.metadata.json +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/chronos/utils.ts","../../../../src/chronos/utils/type-checks.ts","../../../../src/chronos/units/aliases.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/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-week.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/timestamp.ts","../../../../src/chronos/units/quarter.ts","../../../../src/chronos/units/constants.ts","../../../../src/chronos/units/offset.ts","../../../../src/chronos/units/hour.ts","../../../../src/chronos/locale/locales.ts","../../../../src/chronos/units/timezone.ts","../../../../src/chronos/units/second.ts","../../../../src/chronos/units/minute.ts","../../../../src/chronos/units/millisecond.ts","../../../../src/chronos/units/day-of-month.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-object.ts","../../../../src/chronos/create/from-anything.ts","../../../../src/chronos/create/from-string-and-array.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/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-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"],"names":["absFloor","num","Math","ceil","floor","isString","str","isDate","value","Date","Object","prototype","toString","call","isDateValid","date","getTime","isNaN","isFunction","fn","Function","isNumber","isArray","input","Array","hasOwnProp","a","b","hasOwnProperty","isObject","isUndefined","toInt","argumentForCoercion","coercedNumber","isFinite","aliases","_mapUnits","hour","minute","second","millisecond","addUnitAlias","unit","shorthand","lowerCase","toLowerCase","_unit","normalizeUnits","units","undefined","zeroFill","targetLength","forceSign","absNumber","abs","zerosToFill","length","pow","max","substr","formatFunctions","formatTokenFunctions","formattingTokens","addFormatToken","token","padded","ordinal","callback","apply","arguments","opts","locale","removeFormattingTokens","match","replace","createUTCDate","y","m","d","UTC","getUTCFullYear","setUTCFullYear","createDate","h","M","s","ms","getFullYear","setFullYear","getHours","isUTC","getUTCHours","getMinutes","getUTCMinutes","getSeconds","getUTCSeconds","getMilliseconds","getUTCMilliseconds","getDay","getUTCDay","getDate","getUTCDate","getMonth","getUTCMonth","isSameMonth","date1","date2","isSameYear","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchShortOffset","matchTimestamp","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","RegExp","regexEscape","matched","p1","p2","p3","p4","tokens","addParseToken","_token","func","array","config","i","addWeekParseToken","_w","addTimeToArrayFromToken","_a","priorities","addUnitPriority","priority","getParsingFlags","_pf","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","getYear","parseTwoDigitYear","daysInYear","year","isLeapYear","daysInMonth","month","NaN","x","modMonth","defaultTimeUnit","day","seconds","getNum","def","setMonth","dayOfMonth","min","setUTCMonth","setDate","setUTCDate","cloneDate","startOf","_date","setUTCHours","setHours","setUTCMinutes","setMinutes","setUTCSeconds","setSeconds","setUTCMilliseconds","setMilliseconds","weekday","getLocaleDayOfWeek","add","setLocaleDayOfWeek","getLocale","weekdaysParse","parseIsoWeekday","setDayOfWeek","getDayOfWeek","setISODayOfWeek","endOf","subtract","getDayOfYear","someDate","round","firstWeekOffset","dow","doy","fwd","dayOfYearFromWeeks","week","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","MONTHS_IN_FORMAT","defaultLocaleMonths","split","defaultLocaleMonthsShort","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultMonthsShortRegex","defaultMonthsRegex","Locale","this","set","confKey","prop","_config","calendar","key","now","output","_calendar","sameElse","longDateFormat","format","_longDateFormat","formatUpper","toUpperCase","val","slice","defineProperty","_invalidDate","_ordinal","preparse","postformat","relativeTime","withoutSuffix","isFuture","_relativeTime","pastFuture","diff","months","_months","standalone","isFormat","test","monthsShort","_monthsShort","monthsParse","monthName","strict","_monthsParseExact","handleMonthStrictParse","_monthsParse","_longMonthsParse","_shortMonthsParse","_shortMonths","monthsRegex","computeMonthsParse","_monthsStrictRegex","_monthsRegex","monthsShortRegex","_monthsShortStrictRegex","_monthsShortRegex","_week","firstDayOfWeek","firstDayOfYear","weekdays","_weekdays","_key","weekdaysMin","_weekdaysMin","weekdaysShort","_weekdaysShort","weekdayName","_weekdaysParseExact","handleWeekStrictParse","_weekdaysParse","_minWeekdaysParse","_shortWeekdaysParse","_fullWeekdaysParse","weekdaysRegex","computeWeekdaysParse","_weekdaysStrictRegex","_weekdaysRegex","weekdaysShortRegex","_weekdaysShortStrictRegex","_weekdaysShortRegex","weekdaysMinRegex","_weekdaysMinStrictRegex","_weekdaysMinRegex","isPM","charAt","hours","minutes","isLower","formatLongDate","ii","mom","llc","toLocaleLowerCase","indexOf","shortPieces","longPieces","mixedPieces","push","sort","cmpLenRev","join","minPieces","minp","shortp","longp","baseConfig","sameDay","nextDay","nextWeek","lastDay","lastWeek","invalidDate","dayOfMonthOrdinalParse","future","past","ss","mm","hh","dd","MM","yy","meridiemParse","compareArrays","array1","array2","dontConvert","len","lengthDiff","diffs","getWeek","getISOWeek","addWeekYearFormatToken","getter","_getWeekYearFormatCb","getWeekYear","_getISOWeekYearFormatCb","getISOWeekYear","initTimestamp","valueOf","unix","_d","parseFloat","initQuarter","getQuarter","addOffsetFormatToken","separator","offset","getUTCOffset","_isUTC","_offset","sign","chunkOffset","offsetFromString","matcher","matches","parts","parseInt","_min","getDateOffset","getTimezoneOffset","initHour","hFormat","lowercase","matchMeridiem","_meridiemParse","kFormat","kInput","_isPm","_locale","_meridiem","bigHour","pos","pos1","pos2","globalLocale","locales","localeFamilies","normalizeLocale","mergeConfigs","parentConfig","childConfig","res","assign","childProp","parentProp","loadLocale","name","console","error","getSetGlobalLocale","values","data","defineLocale","_abbr","abbr","parentLocale","forEach","_useUTC","_tzm","_strict","parseMs","initMillisecond","_dayOfYear","getISODayOfWeek","invalidWeekday","_dayOfMonthOrdinalParse","_ordinalParse","setDefaultLocale","names","next","j","chooseLocale","ordering","orderingHash","reduce","mem","order","absCeil","number","daysToMonths","monthsToDays","thresholds","substituteTimeAgo","Duration","duration","_data","normalizedInput","years","quarters","quarter","weeks","days","milliseconds","_isValid","keys","some","unitHasDecimal","isDurationValid","_milliseconds","_days","dur","monthsFromDays","bubble","isValid","humanize","withSuffix","localeData","posNegDuration","createDuration","as","localeKey","mathAbs","_units","Error","flags","parsedParts","isNowValid","isFrozen","createInvalid","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","_i","allowTime","dateFormat","timeFormat","tzFormat","l","exec","_f","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","trim","markInvalid","monthStr","dayStr","hourStr","minuteStr","secondStr","result","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","expandFormat","_format","localFormattingTokens","replaceLongDateFormatTokens","lastIndex","defaults","c","configFromArray","yearToUse","currentDate","nowValue","currentDateArray","weekYear","temp","weekdayOverflow","w","GG","W","E","curWeek","gg","e","_overflowWeeks","_overflowWeekday","dayOfYearFromWeekInfo","_overflowDayOfYear","_nextDay","expectedWeekday","checkOverflow","skipped","totalParsedInputLength","inputLength","_hour","meridiemHour","isPm","meridiemFixWrap","configFromObject","inputObject","normalizedProp","normalizeObjectUnits","map","obj","createFromConfig","_l","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","configFromString","_arr","configFromInput","prepareConfig","createLocalOrUTC","_input","getOwnPropertyNames","k","isObjectEmpty","parseDate","absRound","isAfter","isBefore","isSame","inputMs","aspNetRegex","isoRegex","parseIso","diffRes","base","other","_other","offsetDiff","setTime","cloneWithOffset","positiveMomentsDifference","momentsDifference","from","to","convertDuration","inp","period","addSubtract","isAdding","_num","_weekDay","parseWeekday","symbolMap","numberMap","pluralForm","plurals","pluralize","u","f","arLocale","weekdaysParseExact","bgLocale","Number","lastDigit","last2Digits","monthsShortDot","caLocale","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","plural","translate","csLocale","months$1","monthsShort$1","daLocale","processRelativeTime","deLocale","monthsParseExact","enGbLocale","esDoLocale","monthsRegex$1","monthsParse$1","esLocale","monthsRegex$2","monthsParse$2","esUsLocale","etLocale","numbersPast","numbersFuture","verbalNumber","fiLocale","ll","lll","llll","frLocale","glLocale","monthsRegex$3","monthsParse$3","heLocale","hiLocale","weekEndings","huLocale","hrLocale","idLocale","itLocale","jaLocale","kaLocale","st","_period","suffixes","kkLocale","koLocale","isUpper","translateSingular","forms","special","ltLocale","lvLocale","mnLocale","nbLocale","monthsShortWithDots","monthsShortWithoutDots","nlBeLocale","monthsRegex$4","monthsParse$4","nlLocale","monthsRegex$5","monthsParse$5","monthsNominative","monthsSubjective","plLocale","ptBrLocale","relativeTimeWithPlural","roLocale","word","ruLocale","monthsParse$6","skLocale","slLocale","sqLocale","svLocale","thLocale","thBeLocale","trLocale","processHoursFunction","ukLocale","nominative","accusative","genitive","viLocale","zhCnLocale","formatArr","makeFormatFunction","formatMoment","daysDisabled","tmpLocale"],"mappings":"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","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","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 { 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 { 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","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 { 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 { 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","// 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","// 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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 { 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","//! 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 (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"]}