mis-crystal-design-system 14.0.55-test-v3 → 14.0.55-test-v5

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 (500) hide show
  1. package/datepicker/base/bs-datepicker-container.d.ts +44 -0
  2. package/datepicker/bs-datepicker-inline.component.d.ts +64 -0
  3. package/datepicker/bs-datepicker-inline.config.d.ts +6 -0
  4. package/datepicker/bs-datepicker-input.directive.d.ts +33 -0
  5. package/datepicker/bs-datepicker.component.d.ts +126 -0
  6. package/datepicker/bs-datepicker.config.d.ts +143 -0
  7. package/datepicker/bs-datepicker.module.d.ts +29 -0
  8. package/datepicker/bs-daterangepicker-inline.component.d.ts +64 -0
  9. package/datepicker/bs-daterangepicker-inline.config.d.ts +9 -0
  10. package/datepicker/bs-daterangepicker-input.directive.d.ts +33 -0
  11. package/datepicker/bs-daterangepicker.component.d.ts +118 -0
  12. package/datepicker/bs-daterangepicker.config.d.ts +7 -0
  13. package/datepicker/bs-locale.service.d.ts +13 -0
  14. package/datepicker/chronos/create/check-overflow.d.ts +2 -0
  15. package/datepicker/chronos/create/clone.d.ts +1 -0
  16. package/datepicker/chronos/create/date-from-array.d.ts +2 -0
  17. package/datepicker/chronos/create/from-anything.d.ts +4 -0
  18. package/datepicker/chronos/create/from-array.d.ts +2 -0
  19. package/datepicker/chronos/create/from-object.d.ts +2 -0
  20. package/datepicker/chronos/create/from-string-and-array.d.ts +2 -0
  21. package/datepicker/chronos/create/from-string-and-format.d.ts +4 -0
  22. package/datepicker/chronos/create/from-string.d.ts +4 -0
  23. package/datepicker/chronos/create/local.d.ts +3 -0
  24. package/datepicker/chronos/create/parsing-flags.d.ts +2 -0
  25. package/datepicker/chronos/create/parsing.types.d.ts +64 -0
  26. package/datepicker/chronos/create/valid.d.ts +6 -0
  27. package/datepicker/chronos/duration/bubble.d.ts +4 -0
  28. package/datepicker/chronos/duration/constructor.d.ts +21 -0
  29. package/datepicker/chronos/duration/create.d.ts +8 -0
  30. package/datepicker/chronos/duration/humanize.d.ts +5 -0
  31. package/datepicker/chronos/duration/valid.d.ts +2 -0
  32. package/datepicker/chronos/format/format.d.ts +11 -0
  33. package/datepicker/chronos/format.d.ts +5 -0
  34. package/datepicker/chronos/i18n/ar.d.ts +2 -0
  35. package/datepicker/chronos/i18n/bg.d.ts +2 -0
  36. package/datepicker/chronos/i18n/ca.d.ts +2 -0
  37. package/datepicker/chronos/i18n/cs.d.ts +2 -0
  38. package/datepicker/chronos/i18n/da.d.ts +2 -0
  39. package/datepicker/chronos/i18n/de.d.ts +2 -0
  40. package/datepicker/chronos/i18n/en-gb.d.ts +2 -0
  41. package/datepicker/chronos/i18n/es-do.d.ts +2 -0
  42. package/datepicker/chronos/i18n/es-us.d.ts +2 -0
  43. package/datepicker/chronos/i18n/es.d.ts +2 -0
  44. package/datepicker/chronos/i18n/et.d.ts +2 -0
  45. package/datepicker/chronos/i18n/fi.d.ts +2 -0
  46. package/datepicker/chronos/i18n/fr.d.ts +2 -0
  47. package/datepicker/chronos/i18n/gl.d.ts +2 -0
  48. package/datepicker/chronos/i18n/he.d.ts +2 -0
  49. package/datepicker/chronos/i18n/hi.d.ts +2 -0
  50. package/datepicker/chronos/i18n/hr.d.ts +2 -0
  51. package/datepicker/chronos/i18n/hu.d.ts +2 -0
  52. package/datepicker/chronos/i18n/id.d.ts +2 -0
  53. package/datepicker/chronos/i18n/it.d.ts +2 -0
  54. package/datepicker/chronos/i18n/ja.d.ts +2 -0
  55. package/datepicker/chronos/i18n/ka.d.ts +2 -0
  56. package/datepicker/chronos/i18n/kk.d.ts +2 -0
  57. package/datepicker/chronos/i18n/ko.d.ts +2 -0
  58. package/datepicker/chronos/i18n/lt.d.ts +2 -0
  59. package/datepicker/chronos/i18n/lv.d.ts +2 -0
  60. package/datepicker/chronos/i18n/mn.d.ts +2 -0
  61. package/datepicker/chronos/i18n/nb.d.ts +2 -0
  62. package/datepicker/chronos/i18n/nl-be.d.ts +2 -0
  63. package/datepicker/chronos/i18n/nl.d.ts +2 -0
  64. package/datepicker/chronos/i18n/pl.d.ts +2 -0
  65. package/datepicker/chronos/i18n/pt-br.d.ts +2 -0
  66. package/datepicker/chronos/i18n/ro.d.ts +2 -0
  67. package/datepicker/chronos/i18n/ru.d.ts +2 -0
  68. package/datepicker/chronos/i18n/sk.d.ts +2 -0
  69. package/datepicker/chronos/i18n/sl.d.ts +2 -0
  70. package/datepicker/chronos/i18n/sq.d.ts +2 -0
  71. package/datepicker/chronos/i18n/sv.d.ts +2 -0
  72. package/datepicker/chronos/i18n/th-be.d.ts +2 -0
  73. package/datepicker/chronos/i18n/th.d.ts +2 -0
  74. package/datepicker/chronos/i18n/tr.d.ts +2 -0
  75. package/datepicker/chronos/i18n/uk.d.ts +2 -0
  76. package/datepicker/chronos/i18n/vi.d.ts +2 -0
  77. package/datepicker/chronos/i18n/zh-cn.d.ts +2 -0
  78. package/datepicker/chronos/index.d.ts +1 -0
  79. package/datepicker/chronos/locale/calendar.d.ts +8 -0
  80. package/datepicker/chronos/locale/locale.class.d.ts +143 -0
  81. package/datepicker/chronos/locale/locale.defaults.d.ts +11 -0
  82. package/datepicker/chronos/locale/locales.d.ts +7 -0
  83. package/datepicker/chronos/moment/add-subtract.d.ts +5 -0
  84. package/datepicker/chronos/moment/calendar.d.ts +15 -0
  85. package/datepicker/chronos/moment/diff.d.ts +3 -0
  86. package/datepicker/chronos/moment/min-max.d.ts +2 -0
  87. package/datepicker/chronos/parse/regex.d.ts +22 -0
  88. package/datepicker/chronos/parse/token.d.ts +5 -0
  89. package/datepicker/chronos/public_api.d.ts +57 -0
  90. package/datepicker/chronos/test/chain.d.ts +214 -0
  91. package/datepicker/chronos/types.d.ts +36 -0
  92. package/datepicker/chronos/units/aliases.d.ts +7 -0
  93. package/datepicker/chronos/units/constants.d.ts +9 -0
  94. package/datepicker/chronos/units/day-of-month.d.ts +1 -0
  95. package/datepicker/chronos/units/day-of-week.d.ts +20 -0
  96. package/datepicker/chronos/units/day-of-year.d.ts +3 -0
  97. package/datepicker/chronos/units/hour.d.ts +1 -0
  98. package/datepicker/chronos/units/index.d.ts +18 -0
  99. package/datepicker/chronos/units/millisecond.d.ts +1 -0
  100. package/datepicker/chronos/units/minute.d.ts +1 -0
  101. package/datepicker/chronos/units/month.d.ts +2 -0
  102. package/datepicker/chronos/units/offset.d.ts +10 -0
  103. package/datepicker/chronos/units/priorities.d.ts +1 -0
  104. package/datepicker/chronos/units/quarter.d.ts +3 -0
  105. package/datepicker/chronos/units/second.d.ts +1 -0
  106. package/datepicker/chronos/units/timestamp.d.ts +1 -0
  107. package/datepicker/chronos/units/timezone.d.ts +3 -0
  108. package/datepicker/chronos/units/week-calendar-utils.d.ts +9 -0
  109. package/datepicker/chronos/units/week-year.d.ts +8 -0
  110. package/datepicker/chronos/units/week.d.ts +6 -0
  111. package/datepicker/chronos/units/year.d.ts +4 -0
  112. package/datepicker/chronos/utils/abs-ceil.d.ts +1 -0
  113. package/datepicker/chronos/utils/abs-round.d.ts +1 -0
  114. package/datepicker/chronos/utils/compare-arrays.d.ts +1 -0
  115. package/datepicker/chronos/utils/date-compare.d.ts +9 -0
  116. package/datepicker/chronos/utils/date-getters.d.ts +18 -0
  117. package/datepicker/chronos/utils/date-setters.d.ts +12 -0
  118. package/datepicker/chronos/utils/defaults.d.ts +1 -0
  119. package/datepicker/chronos/utils/start-end-of.d.ts +3 -0
  120. package/datepicker/chronos/utils/type-checks.d.ts +12 -0
  121. package/datepicker/chronos/utils/zero-fill.d.ts +1 -0
  122. package/datepicker/chronos/utils.d.ts +2 -0
  123. package/datepicker/component-loader/bs-component-ref.class.d.ts +5 -0
  124. package/datepicker/component-loader/component-loader.class.d.ts +75 -0
  125. package/datepicker/component-loader/component-loader.factory.d.ts +21 -0
  126. package/datepicker/component-loader/content-ref.class.d.ts +7 -0
  127. package/datepicker/component-loader/index.d.ts +1 -0
  128. package/datepicker/component-loader/listen-options.model.d.ts +11 -0
  129. package/datepicker/component-loader/public_api.d.ts +4 -0
  130. package/datepicker/date-formatter.d.ts +3 -0
  131. package/datepicker/datepicker-animations.d.ts +3 -0
  132. package/datepicker/datepicker-inner.component.d.ts +78 -0
  133. package/datepicker/datepicker.component.d.ts +81 -0
  134. package/datepicker/datepicker.config.d.ts +22 -0
  135. package/datepicker/datepicker.module.d.ts +15 -0
  136. package/datepicker/daypicker.component.d.ts +17 -0
  137. package/datepicker/engine/calc-days-calendar.d.ts +2 -0
  138. package/datepicker/engine/flag-days-calendar.d.ts +17 -0
  139. package/datepicker/engine/flag-months-calendar.d.ts +12 -0
  140. package/datepicker/engine/flag-years-calendar.d.ts +12 -0
  141. package/datepicker/engine/format-days-calendar.d.ts +4 -0
  142. package/datepicker/engine/format-months-calendar.d.ts +2 -0
  143. package/datepicker/engine/format-years-calendar.d.ts +4 -0
  144. package/datepicker/engine/view-mode.d.ts +2 -0
  145. package/datepicker/index.d.ts +1 -0
  146. package/datepicker/mini-ngrx/index.d.ts +1 -0
  147. package/datepicker/mini-ngrx/public_api.d.ts +7 -0
  148. package/datepicker/mini-ngrx/state.class.d.ts +8 -0
  149. package/datepicker/mini-ngrx/store.class.d.ts +16 -0
  150. package/datepicker/models/index.d.ts +102 -0
  151. package/datepicker/monthpicker.component.d.ts +14 -0
  152. package/datepicker/positioning/index.d.ts +1 -0
  153. package/datepicker/positioning/models/index.d.ts +41 -0
  154. package/datepicker/positioning/modifiers/arrow.d.ts +2 -0
  155. package/datepicker/positioning/modifiers/flip.d.ts +2 -0
  156. package/datepicker/positioning/modifiers/index.d.ts +5 -0
  157. package/datepicker/positioning/modifiers/initData.d.ts +2 -0
  158. package/datepicker/positioning/modifiers/preventOverflow.d.ts +2 -0
  159. package/datepicker/positioning/modifiers/shift.d.ts +2 -0
  160. package/datepicker/positioning/ng-positioning.d.ts +8 -0
  161. package/datepicker/positioning/positioning.service.d.ts +48 -0
  162. package/datepicker/positioning/public_api.d.ts +2 -0
  163. package/datepicker/positioning/utils/computeAutoPlacement.d.ts +2 -0
  164. package/datepicker/positioning/utils/findCommonOffsetParent.d.ts +1 -0
  165. package/datepicker/positioning/utils/getBordersSize.d.ts +4 -0
  166. package/datepicker/positioning/utils/getBoundaries.d.ts +1 -0
  167. package/datepicker/positioning/utils/getBoundingClientRect.d.ts +2 -0
  168. package/datepicker/positioning/utils/getClientRect.d.ts +5 -0
  169. package/datepicker/positioning/utils/getFixedPositionOffsetParent.d.ts +4 -0
  170. package/datepicker/positioning/utils/getOffsetParent.d.ts +1 -0
  171. package/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.d.ts +2 -0
  172. package/datepicker/positioning/utils/getOffsets.d.ts +2 -0
  173. package/datepicker/positioning/utils/getOppositePlacement.d.ts +4 -0
  174. package/datepicker/positioning/utils/getOppositeVariation.d.ts +4 -0
  175. package/datepicker/positioning/utils/getOuterSizes.d.ts +7 -0
  176. package/datepicker/positioning/utils/getParentNode.d.ts +4 -0
  177. package/datepicker/positioning/utils/getReferenceOffsets.d.ts +2 -0
  178. package/datepicker/positioning/utils/getRoot.d.ts +4 -0
  179. package/datepicker/positioning/utils/getScroll.d.ts +4 -0
  180. package/datepicker/positioning/utils/getScrollParent.d.ts +1 -0
  181. package/datepicker/positioning/utils/getStyleComputedProperty.d.ts +4 -0
  182. package/datepicker/positioning/utils/getTargetOffsets.d.ts +2 -0
  183. package/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.d.ts +2 -0
  184. package/datepicker/positioning/utils/getWindowSizes.d.ts +4 -0
  185. package/datepicker/positioning/utils/includeScroll.d.ts +2 -0
  186. package/datepicker/positioning/utils/index.d.ts +23 -0
  187. package/datepicker/positioning/utils/isBrowser.d.ts +1 -0
  188. package/datepicker/positioning/utils/isFixed.d.ts +1 -0
  189. package/datepicker/positioning/utils/isIE.d.ts +1 -0
  190. package/datepicker/positioning/utils/isModifierEnabled.d.ts +4 -0
  191. package/datepicker/positioning/utils/isNumeric.d.ts +4 -0
  192. package/datepicker/positioning/utils/isOffsetContainer.d.ts +1 -0
  193. package/datepicker/positioning/utils/setStyles.d.ts +5 -0
  194. package/datepicker/positioning/utils/updateContainerClass.d.ts +6 -0
  195. package/datepicker/public_api.d.ts +25 -0
  196. package/datepicker/reducer/_defaults.d.ts +2 -0
  197. package/datepicker/reducer/bs-datepicker.actions.d.ts +46 -0
  198. package/datepicker/reducer/bs-datepicker.effects.d.ts +41 -0
  199. package/datepicker/reducer/bs-datepicker.reducer.d.ts +3 -0
  200. package/datepicker/reducer/bs-datepicker.state.d.ts +43 -0
  201. package/datepicker/reducer/bs-datepicker.store.d.ts +8 -0
  202. package/datepicker/themes/bs/bs-calendar-layout.component.d.ts +5 -0
  203. package/datepicker/themes/bs/bs-current-date-view.component.d.ts +6 -0
  204. package/datepicker/themes/bs/bs-custom-dates-view.component.d.ts +17 -0
  205. package/datepicker/themes/bs/bs-datepicker-container.component.d.ts +36 -0
  206. package/datepicker/themes/bs/bs-datepicker-day-decorator.directive.d.ts +14 -0
  207. package/datepicker/themes/bs/bs-datepicker-inline-container.component.d.ts +13 -0
  208. package/datepicker/themes/bs/bs-datepicker-navigation-view.component.d.ts +12 -0
  209. package/datepicker/themes/bs/bs-daterangepicker-container.component.d.ts +40 -0
  210. package/datepicker/themes/bs/bs-daterangepicker-inline-container.component.d.ts +13 -0
  211. package/datepicker/themes/bs/bs-days-calendar-view.component.d.ts +26 -0
  212. package/datepicker/themes/bs/bs-months-calendar-view.component.d.ts +16 -0
  213. package/datepicker/themes/bs/bs-timepicker-view.component.d.ts +8 -0
  214. package/datepicker/themes/bs/bs-years-calendar-view.component.d.ts +16 -0
  215. package/datepicker/utils/bs-calendar-utils.d.ts +10 -0
  216. package/datepicker/utils/matrix-utils.d.ts +9 -0
  217. package/datepicker/utils-v2/decorators.d.ts +1 -0
  218. package/datepicker/utils-v2/facade/browser.d.ts +23 -0
  219. package/datepicker/utils-v2/index.d.ts +1 -0
  220. package/datepicker/utils-v2/linked-list.class.d.ts +26 -0
  221. package/datepicker/utils-v2/public_api.d.ts +10 -0
  222. package/datepicker/utils-v2/theme-provider.d.ts +2 -0
  223. package/datepicker/utils-v2/trigger.class.d.ts +6 -0
  224. package/datepicker/utils-v2/triggers.d.ts +18 -0
  225. package/datepicker/utils-v2/utils.class.d.ts +4 -0
  226. package/datepicker/utils-v2/warn-once.d.ts +1 -0
  227. package/datepicker/yearpicker.component.d.ts +14 -0
  228. package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +1 -1
  229. package/dynamic-form/dynamic-form.component.d.ts +1 -0
  230. package/esm2020/datepicker/base/bs-datepicker-container.mjs +47 -0
  231. package/esm2020/datepicker/bs-datepicker-inline.component.mjs +137 -0
  232. package/esm2020/datepicker/bs-datepicker-inline.config.mjs +14 -0
  233. package/esm2020/datepicker/bs-datepicker-input.directive.mjs +160 -0
  234. package/esm2020/datepicker/bs-datepicker.component.mjs +254 -0
  235. package/esm2020/datepicker/bs-datepicker.config.mjs +87 -0
  236. package/esm2020/datepicker/bs-datepicker.module.mjs +126 -0
  237. package/esm2020/datepicker/bs-daterangepicker-inline.component.mjs +134 -0
  238. package/esm2020/datepicker/bs-daterangepicker-inline.config.mjs +21 -0
  239. package/esm2020/datepicker/bs-daterangepicker-input.directive.mjs +192 -0
  240. package/esm2020/datepicker/bs-daterangepicker.component.mjs +240 -0
  241. package/esm2020/datepicker/bs-daterangepicker.config.mjs +19 -0
  242. package/esm2020/datepicker/bs-locale.service.mjs +32 -0
  243. package/esm2020/datepicker/chronos/create/check-overflow.mjs +30 -0
  244. package/esm2020/datepicker/chronos/create/clone.mjs +6 -0
  245. package/esm2020/datepicker/chronos/create/date-from-array.mjs +17 -0
  246. package/esm2020/datepicker/chronos/create/from-anything.mjs +107 -0
  247. package/esm2020/datepicker/chronos/create/from-array.mjs +136 -0
  248. package/esm2020/datepicker/chronos/create/from-object.mjs +17 -0
  249. package/esm2020/datepicker/chronos/create/from-string-and-array.mjs +38 -0
  250. package/esm2020/datepicker/chronos/create/from-string-and-format.mjs +106 -0
  251. package/esm2020/datepicker/chronos/create/from-string.mjs +227 -0
  252. package/esm2020/datepicker/chronos/create/local.mjs +16 -0
  253. package/esm2020/datepicker/chronos/create/parsing-flags.mjs +26 -0
  254. package/esm2020/datepicker/chronos/create/parsing.types.mjs +2 -0
  255. package/esm2020/datepicker/chronos/create/valid.mjs +42 -0
  256. package/esm2020/datepicker/chronos/duration/bubble.mjs +47 -0
  257. package/esm2020/datepicker/chronos/duration/constructor.mjs +130 -0
  258. package/esm2020/datepicker/chronos/duration/create.mjs +113 -0
  259. package/esm2020/datepicker/chronos/duration/humanize.mjs +80 -0
  260. package/esm2020/datepicker/chronos/duration/valid.mjs +43 -0
  261. package/esm2020/datepicker/chronos/format/format.mjs +51 -0
  262. package/esm2020/datepicker/chronos/format.mjs +46 -0
  263. package/esm2020/datepicker/chronos/i18n/ar.mjs +128 -0
  264. package/esm2020/datepicker/chronos/i18n/bg.mjs +94 -0
  265. package/esm2020/datepicker/chronos/i18n/ca.mjs +91 -0
  266. package/esm2020/datepicker/chronos/i18n/cs.mjs +179 -0
  267. package/esm2020/datepicker/chronos/i18n/da.mjs +50 -0
  268. package/esm2020/datepicker/chronos/i18n/de.mjs +72 -0
  269. package/esm2020/datepicker/chronos/i18n/en-gb.mjs +61 -0
  270. package/esm2020/datepicker/chronos/i18n/es-do.mjs +85 -0
  271. package/esm2020/datepicker/chronos/i18n/es-us.mjs +79 -0
  272. package/esm2020/datepicker/chronos/i18n/es.mjs +84 -0
  273. package/esm2020/datepicker/chronos/i18n/et.mjs +73 -0
  274. package/esm2020/datepicker/chronos/i18n/fi.mjs +100 -0
  275. package/esm2020/datepicker/chronos/i18n/fr.mjs +76 -0
  276. package/esm2020/datepicker/chronos/i18n/gl.mjs +84 -0
  277. package/esm2020/datepicker/chronos/i18n/he.mjs +98 -0
  278. package/esm2020/datepicker/chronos/i18n/hi.mjs +124 -0
  279. package/esm2020/datepicker/chronos/i18n/hr.mjs +62 -0
  280. package/esm2020/datepicker/chronos/i18n/hu.mjs +104 -0
  281. package/esm2020/datepicker/chronos/i18n/id.mjs +83 -0
  282. package/esm2020/datepicker/chronos/i18n/it.mjs +65 -0
  283. package/esm2020/datepicker/chronos/i18n/ja.mjs +75 -0
  284. package/esm2020/datepicker/chronos/i18n/ka.mjs +87 -0
  285. package/esm2020/datepicker/chronos/i18n/kk.mjs +76 -0
  286. package/esm2020/datepicker/chronos/i18n/ko.mjs +77 -0
  287. package/esm2020/datepicker/chronos/i18n/lt.mjs +116 -0
  288. package/esm2020/datepicker/chronos/i18n/lv.mjs +56 -0
  289. package/esm2020/datepicker/chronos/i18n/mn.mjs +99 -0
  290. package/esm2020/datepicker/chronos/i18n/nb.mjs +53 -0
  291. package/esm2020/datepicker/chronos/i18n/nl-be.mjs +81 -0
  292. package/esm2020/datepicker/chronos/i18n/nl.mjs +80 -0
  293. package/esm2020/datepicker/chronos/i18n/pl.mjs +126 -0
  294. package/esm2020/datepicker/chronos/i18n/pt-br.mjs +56 -0
  295. package/esm2020/datepicker/chronos/i18n/ro.mjs +66 -0
  296. package/esm2020/datepicker/chronos/i18n/ru.mjs +181 -0
  297. package/esm2020/datepicker/chronos/i18n/sk.mjs +157 -0
  298. package/esm2020/datepicker/chronos/i18n/sl.mjs +184 -0
  299. package/esm2020/datepicker/chronos/i18n/sq.mjs +54 -0
  300. package/esm2020/datepicker/chronos/i18n/sv.mjs +63 -0
  301. package/esm2020/datepicker/chronos/i18n/th-be.mjs +74 -0
  302. package/esm2020/datepicker/chronos/i18n/th.mjs +59 -0
  303. package/esm2020/datepicker/chronos/i18n/tr.mjs +82 -0
  304. package/esm2020/datepicker/chronos/i18n/uk.mjs +147 -0
  305. package/esm2020/datepicker/chronos/i18n/vi.mjs +74 -0
  306. package/esm2020/datepicker/chronos/i18n/zh-cn.mjs +114 -0
  307. package/esm2020/datepicker/chronos/index.mjs +2 -0
  308. package/esm2020/datepicker/chronos/locale/calendar.mjs +9 -0
  309. package/esm2020/datepicker/chronos/locale/locale.class.mjs +532 -0
  310. package/esm2020/datepicker/chronos/locale/locale.defaults.mjs +40 -0
  311. package/esm2020/datepicker/chronos/locale/locales.mjs +229 -0
  312. package/esm2020/datepicker/chronos/moment/add-subtract.mjs +35 -0
  313. package/esm2020/datepicker/chronos/moment/calendar.mjs +41 -0
  314. package/esm2020/datepicker/chronos/moment/diff.mjs +70 -0
  315. package/esm2020/datepicker/chronos/moment/min-max.mjs +38 -0
  316. package/esm2020/datepicker/chronos/parse/regex.mjs +49 -0
  317. package/esm2020/datepicker/chronos/parse/token.mjs +32 -0
  318. package/esm2020/datepicker/chronos/public_api.mjs +56 -0
  319. package/esm2020/datepicker/chronos/test/chain.mjs +711 -0
  320. package/esm2020/datepicker/chronos/types.mjs +2 -0
  321. package/esm2020/datepicker/chronos/units/aliases.mjs +35 -0
  322. package/esm2020/datepicker/chronos/units/constants.mjs +11 -0
  323. package/esm2020/datepicker/chronos/units/day-of-month.mjs +31 -0
  324. package/esm2020/datepicker/chronos/units/day-of-week.mjs +129 -0
  325. package/esm2020/datepicker/chronos/units/day-of-year.mjs +37 -0
  326. package/esm2020/datepicker/chronos/units/hour.mjs +127 -0
  327. package/esm2020/datepicker/chronos/units/index.mjs +19 -0
  328. package/esm2020/datepicker/chronos/units/millisecond.mjs +60 -0
  329. package/esm2020/datepicker/chronos/units/minute.mjs +23 -0
  330. package/esm2020/datepicker/chronos/units/month.mjs +63 -0
  331. package/esm2020/datepicker/chronos/units/offset.mjs +210 -0
  332. package/esm2020/datepicker/chronos/units/priorities.mjs +21 -0
  333. package/esm2020/datepicker/chronos/units/quarter.mjs +39 -0
  334. package/esm2020/datepicker/chronos/units/second.mjs +23 -0
  335. package/esm2020/datepicker/chronos/units/timestamp.mjs +28 -0
  336. package/esm2020/datepicker/chronos/units/timezone.mjs +19 -0
  337. package/esm2020/datepicker/chronos/units/week-calendar-utils.mjs +70 -0
  338. package/esm2020/datepicker/chronos/units/week-year.mjs +101 -0
  339. package/esm2020/datepicker/chronos/units/week.mjs +58 -0
  340. package/esm2020/datepicker/chronos/units/year.mjs +60 -0
  341. package/esm2020/datepicker/chronos/utils/abs-ceil.mjs +4 -0
  342. package/esm2020/datepicker/chronos/utils/abs-round.mjs +4 -0
  343. package/esm2020/datepicker/chronos/utils/compare-arrays.mjs +16 -0
  344. package/esm2020/datepicker/chronos/utils/date-compare.mjs +55 -0
  345. package/esm2020/datepicker/chronos/utils/date-getters.mjs +67 -0
  346. package/esm2020/datepicker/chronos/utils/date-setters.mjs +75 -0
  347. package/esm2020/datepicker/chronos/utils/defaults.mjs +11 -0
  348. package/esm2020/datepicker/chronos/utils/start-end-of.mjs +57 -0
  349. package/esm2020/datepicker/chronos/utils/type-checks.mjs +56 -0
  350. package/esm2020/datepicker/chronos/utils/zero-fill.mjs +10 -0
  351. package/esm2020/datepicker/chronos/utils.mjs +7 -0
  352. package/esm2020/datepicker/component-loader/bs-component-ref.class.mjs +3 -0
  353. package/esm2020/datepicker/component-loader/component-loader.class.mjs +272 -0
  354. package/esm2020/datepicker/component-loader/component-loader.factory.mjs +29 -0
  355. package/esm2020/datepicker/component-loader/content-ref.class.mjs +12 -0
  356. package/esm2020/datepicker/component-loader/index.mjs +2 -0
  357. package/esm2020/datepicker/component-loader/listen-options.model.mjs +2 -0
  358. package/esm2020/datepicker/component-loader/public_api.mjs +5 -0
  359. package/esm2020/datepicker/date-formatter.mjs +7 -0
  360. package/esm2020/datepicker/datepicker-animations.mjs +16 -0
  361. package/esm2020/datepicker/datepicker-inner.component.mjs +323 -0
  362. package/esm2020/datepicker/datepicker.component.mjs +182 -0
  363. package/esm2020/datepicker/datepicker.config.mjs +32 -0
  364. package/esm2020/datepicker/datepicker.module.mjs +49 -0
  365. package/esm2020/datepicker/daypicker.component.mjs +314 -0
  366. package/esm2020/datepicker/engine/calc-days-calendar.mjs +19 -0
  367. package/esm2020/datepicker/engine/flag-days-calendar.mjs +91 -0
  368. package/esm2020/datepicker/engine/flag-months-calendar.mjs +41 -0
  369. package/esm2020/datepicker/engine/flag-years-calendar.mjs +39 -0
  370. package/esm2020/datepicker/engine/format-days-calendar.mjs +29 -0
  371. package/esm2020/datepicker/engine/format-months-calendar.mjs +19 -0
  372. package/esm2020/datepicker/engine/format-years-calendar.mjs +35 -0
  373. package/esm2020/datepicker/engine/view-mode.mjs +4 -0
  374. package/esm2020/datepicker/index.mjs +2 -0
  375. package/esm2020/datepicker/mini-ngrx/index.mjs +2 -0
  376. package/esm2020/datepicker/mini-ngrx/public_api.mjs +3 -0
  377. package/esm2020/datepicker/mini-ngrx/state.class.mjs +16 -0
  378. package/esm2020/datepicker/mini-ngrx/store.class.mjs +43 -0
  379. package/esm2020/datepicker/mis-crystal-design-system-datepicker.mjs +5 -0
  380. package/esm2020/datepicker/models/index.mjs +9 -0
  381. package/esm2020/datepicker/monthpicker.component.mjs +145 -0
  382. package/esm2020/datepicker/positioning/index.mjs +2 -0
  383. package/esm2020/datepicker/positioning/models/index.mjs +2 -0
  384. package/esm2020/datepicker/positioning/modifiers/arrow.mjs +56 -0
  385. package/esm2020/datepicker/positioning/modifiers/flip.mjs +66 -0
  386. package/esm2020/datepicker/positioning/modifiers/index.mjs +6 -0
  387. package/esm2020/datepicker/positioning/modifiers/initData.mjs +42 -0
  388. package/esm2020/datepicker/positioning/modifiers/preventOverflow.mjs +59 -0
  389. package/esm2020/datepicker/positioning/modifiers/shift.mjs +24 -0
  390. package/esm2020/datepicker/positioning/ng-positioning.mjs +30 -0
  391. package/esm2020/datepicker/positioning/positioning.service.mjs +75 -0
  392. package/esm2020/datepicker/positioning/public_api.mjs +3 -0
  393. package/esm2020/datepicker/positioning/utils/computeAutoPlacement.mjs +57 -0
  394. package/esm2020/datepicker/positioning/utils/findCommonOffsetParent.mjs +40 -0
  395. package/esm2020/datepicker/positioning/utils/getBordersSize.mjs +10 -0
  396. package/esm2020/datepicker/positioning/utils/getBoundaries.mjs +56 -0
  397. package/esm2020/datepicker/positioning/utils/getBoundingClientRect.mjs +55 -0
  398. package/esm2020/datepicker/positioning/utils/getClientRect.mjs +8 -0
  399. package/esm2020/datepicker/positioning/utils/getFixedPositionOffsetParent.mjs +17 -0
  400. package/esm2020/datepicker/positioning/utils/getOffsetParent.mjs +32 -0
  401. package/esm2020/datepicker/positioning/utils/getOffsetRectRelativeToArbitraryNode.mjs +51 -0
  402. package/esm2020/datepicker/positioning/utils/getOffsets.mjs +11 -0
  403. package/esm2020/datepicker/positioning/utils/getOppositePlacement.mjs +8 -0
  404. package/esm2020/datepicker/positioning/utils/getOppositeVariation.mjs +13 -0
  405. package/esm2020/datepicker/positioning/utils/getOuterSizes.mjs +14 -0
  406. package/esm2020/datepicker/positioning/utils/getParentNode.mjs +10 -0
  407. package/esm2020/datepicker/positioning/utils/getReferenceOffsets.mjs +13 -0
  408. package/esm2020/datepicker/positioning/utils/getRoot.mjs +10 -0
  409. package/esm2020/datepicker/positioning/utils/getScroll.mjs +14 -0
  410. package/esm2020/datepicker/positioning/utils/getScrollParent.mjs +26 -0
  411. package/esm2020/datepicker/positioning/utils/getStyleComputedProperty.mjs +13 -0
  412. package/esm2020/datepicker/positioning/utils/getTargetOffsets.mjs +30 -0
  413. package/esm2020/datepicker/positioning/utils/getViewportOffsetRectRelativeToArtbitraryNode.mjs +19 -0
  414. package/esm2020/datepicker/positioning/utils/getWindowSizes.mjs +18 -0
  415. package/esm2020/datepicker/positioning/utils/includeScroll.mjs +15 -0
  416. package/esm2020/datepicker/positioning/utils/index.mjs +24 -0
  417. package/esm2020/datepicker/positioning/utils/isBrowser.mjs +2 -0
  418. package/esm2020/datepicker/positioning/utils/isFixed.mjs +16 -0
  419. package/esm2020/datepicker/positioning/utils/isIE.mjs +16 -0
  420. package/esm2020/datepicker/positioning/utils/isModifierEnabled.mjs +10 -0
  421. package/esm2020/datepicker/positioning/utils/isNumeric.mjs +7 -0
  422. package/esm2020/datepicker/positioning/utils/isOffsetContainer.mjs +9 -0
  423. package/esm2020/datepicker/positioning/utils/setStyles.mjs +17 -0
  424. package/esm2020/datepicker/positioning/utils/updateContainerClass.mjs +22 -0
  425. package/esm2020/datepicker/public_api.mjs +25 -0
  426. package/esm2020/datepicker/reducer/_defaults.mjs +5 -0
  427. package/esm2020/datepicker/reducer/bs-datepicker.actions.mjs +136 -0
  428. package/esm2020/datepicker/reducer/bs-datepicker.effects.mjs +169 -0
  429. package/esm2020/datepicker/reducer/bs-datepicker.reducer.mjs +302 -0
  430. package/esm2020/datepicker/reducer/bs-datepicker.state.mjs +12 -0
  431. package/esm2020/datepicker/reducer/bs-datepicker.store.mjs +21 -0
  432. package/esm2020/datepicker/themes/bs/bs-calendar-layout.component.mjs +54 -0
  433. package/esm2020/datepicker/themes/bs/bs-current-date-view.component.mjs +23 -0
  434. package/esm2020/datepicker/themes/bs/bs-custom-dates-view.component.mjs +78 -0
  435. package/esm2020/datepicker/themes/bs/bs-datepicker-container.component.mjs +319 -0
  436. package/esm2020/datepicker/themes/bs/bs-datepicker-day-decorator.directive.mjs +52 -0
  437. package/esm2020/datepicker/themes/bs/bs-datepicker-inline-container.component.mjs +203 -0
  438. package/esm2020/datepicker/themes/bs/bs-datepicker-navigation-view.component.mjs +111 -0
  439. package/esm2020/datepicker/themes/bs/bs-daterangepicker-container.component.mjs +362 -0
  440. package/esm2020/datepicker/themes/bs/bs-daterangepicker-inline-container.component.mjs +203 -0
  441. package/esm2020/datepicker/themes/bs/bs-days-calendar-view.component.mjs +308 -0
  442. package/esm2020/datepicker/themes/bs/bs-months-calendar-view.component.mjs +106 -0
  443. package/esm2020/datepicker/themes/bs/bs-timepicker-view.component.mjs +64 -0
  444. package/esm2020/datepicker/themes/bs/bs-years-calendar-view.component.mjs +107 -0
  445. package/esm2020/datepicker/utils/bs-calendar-utils.mjs +43 -0
  446. package/esm2020/datepicker/utils/matrix-utils.mjs +14 -0
  447. package/esm2020/datepicker/utils-v2/decorators.mjs +25 -0
  448. package/esm2020/datepicker/utils-v2/facade/browser.mjs +24 -0
  449. package/esm2020/datepicker/utils-v2/index.mjs +2 -0
  450. package/esm2020/datepicker/utils-v2/linked-list.class.mjs +240 -0
  451. package/esm2020/datepicker/utils-v2/public_api.mjs +11 -0
  452. package/esm2020/datepicker/utils-v2/theme-provider.mjs +35 -0
  453. package/esm2020/datepicker/utils-v2/trigger.class.mjs +10 -0
  454. package/esm2020/datepicker/utils-v2/triggers.mjs +110 -0
  455. package/esm2020/datepicker/utils-v2/utils.class.mjs +21 -0
  456. package/esm2020/datepicker/utils-v2/warn-once.mjs +12 -0
  457. package/esm2020/datepicker/yearpicker.component.mjs +147 -0
  458. package/esm2020/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +14 -24
  459. package/esm2020/daterangepicker_v2/models/drp-config.model.mjs +1 -1
  460. package/esm2020/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +35 -43
  461. package/esm2020/dynamic-form/dynamic-form.component.mjs +6 -11
  462. package/esm2020/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +41 -55
  463. package/esm2020/table/table.component.mjs +2 -2
  464. package/esm2020/timepicker/timepicker.component.mjs +48 -54
  465. package/esm2020/timerangepicker/timerangepicker.component.mjs +42 -46
  466. package/fesm2015/mis-crystal-design-system-datepicker.mjs +14950 -0
  467. package/fesm2015/mis-crystal-design-system-datepicker.mjs.map +1 -0
  468. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs +13 -23
  469. package/fesm2015/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  470. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs +34 -43
  471. package/fesm2015/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  472. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs +4 -10
  473. package/fesm2015/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  474. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs +40 -54
  475. package/fesm2015/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  476. package/fesm2015/mis-crystal-design-system-table.mjs +2 -2
  477. package/fesm2015/mis-crystal-design-system-table.mjs.map +1 -1
  478. package/fesm2015/mis-crystal-design-system-timepicker.mjs +47 -53
  479. package/fesm2015/mis-crystal-design-system-timepicker.mjs.map +1 -1
  480. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs +41 -45
  481. package/fesm2015/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  482. package/fesm2020/mis-crystal-design-system-datepicker.mjs +14572 -0
  483. package/fesm2020/mis-crystal-design-system-datepicker.mjs.map +1 -0
  484. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs +13 -23
  485. package/fesm2020/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
  486. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs +33 -42
  487. package/fesm2020/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
  488. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs +4 -10
  489. package/fesm2020/mis-crystal-design-system-dynamic-form.mjs.map +1 -1
  490. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs +40 -54
  491. package/fesm2020/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
  492. package/fesm2020/mis-crystal-design-system-table.mjs +2 -2
  493. package/fesm2020/mis-crystal-design-system-table.mjs.map +1 -1
  494. package/fesm2020/mis-crystal-design-system-timepicker.mjs +47 -53
  495. package/fesm2020/mis-crystal-design-system-timepicker.mjs.map +1 -1
  496. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs +41 -45
  497. package/fesm2020/mis-crystal-design-system-timerangepicker.mjs.map +1 -1
  498. package/package.json +9 -1
  499. package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +1 -1
  500. package/timepicker/timepicker.component.d.ts +2 -2
@@ -0,0 +1,136 @@
1
+ import { DATE, HOUR, MILLISECOND, MINUTE, MONTH, SECOND, YEAR } from '../units/constants';
2
+ import { daysInYear } from '../units/year';
3
+ import { getParsingFlags } from './parsing-flags';
4
+ import { createUTCDate } from './date-from-array';
5
+ import { createDate } from './date-from-array';
6
+ import { dayOfYearFromWeeks, weekOfYear, weeksInYear } from '../units/week-calendar-utils';
7
+ import { defaults } from '../utils/defaults';
8
+ function currentDateArray(config) {
9
+ const nowValue = new Date();
10
+ if (config._useUTC) {
11
+ return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];
12
+ }
13
+ return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
14
+ }
15
+ // convert an array to a date.
16
+ // the array should mirror the parameters below
17
+ // note: all values past the year are optional and will default to the lowest possible value.
18
+ // [year, month, day , hour, minute, second, millisecond]
19
+ export function configFromArray(config) {
20
+ const input = [];
21
+ let i;
22
+ let date;
23
+ let currentDate;
24
+ let expectedWeekday;
25
+ let yearToUse;
26
+ if (config._d) {
27
+ return config;
28
+ }
29
+ currentDate = currentDateArray(config);
30
+ // compute day of the year from weeks and weekdays
31
+ if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
32
+ dayOfYearFromWeekInfo(config);
33
+ }
34
+ // if the day of the year is set, figure out what it is
35
+ if (config._dayOfYear != null) {
36
+ yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
37
+ if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {
38
+ getParsingFlags(config)._overflowDayOfYear = true;
39
+ }
40
+ date = new Date(Date.UTC(yearToUse, 0, config._dayOfYear));
41
+ config._a[MONTH] = date.getUTCMonth();
42
+ config._a[DATE] = date.getUTCDate();
43
+ }
44
+ // Default to current date.
45
+ // * if no year, month, day of month are given, default to today
46
+ // * if day of month is given, default month and year
47
+ // * if month is given, default only year
48
+ // * if year is given, don't default anything
49
+ for (i = 0; i < 3 && config._a[i] == null; ++i) {
50
+ config._a[i] = input[i] = currentDate[i];
51
+ }
52
+ // Zero out whatever was not defaulted, including time
53
+ for (; i < 7; i++) {
54
+ config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
55
+ }
56
+ // Check for 24:00:00.000
57
+ if (config._a[HOUR] === 24 &&
58
+ config._a[MINUTE] === 0 &&
59
+ config._a[SECOND] === 0 &&
60
+ config._a[MILLISECOND] === 0) {
61
+ config._nextDay = true;
62
+ config._a[HOUR] = 0;
63
+ }
64
+ config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);
65
+ expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();
66
+ // Apply timezone offset from input. The actual utcOffset can be changed
67
+ // with parseZone.
68
+ if (config._tzm != null) {
69
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
70
+ }
71
+ if (config._nextDay) {
72
+ config._a[HOUR] = 24;
73
+ }
74
+ // check for mismatching day of week
75
+ if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {
76
+ getParsingFlags(config).weekdayMismatch = true;
77
+ }
78
+ return config;
79
+ }
80
+ function dayOfYearFromWeekInfo(config) {
81
+ let w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;
82
+ w = config._w;
83
+ if (w.GG != null || w.W != null || w.E != null) {
84
+ dow = 1;
85
+ doy = 4;
86
+ // TODO: We need to take the current isoWeekYear, but that depends on
87
+ // how we interpret now (local, utc, fixed offset). So create
88
+ // a now version of current config (take local/utc/offset flags, and
89
+ // create now).
90
+ weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(new Date(), 1, 4).year);
91
+ week = defaults(w.W, 1);
92
+ weekday = defaults(w.E, 1);
93
+ if (weekday < 1 || weekday > 7) {
94
+ weekdayOverflow = true;
95
+ }
96
+ }
97
+ else {
98
+ dow = config._locale._week.dow;
99
+ doy = config._locale._week.doy;
100
+ const curWeek = weekOfYear(new Date(), dow, doy);
101
+ weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
102
+ // Default to current week.
103
+ week = defaults(w.w, curWeek.week);
104
+ if (w.d != null) {
105
+ // weekday -- low day numbers are considered next week
106
+ weekday = w.d;
107
+ if (weekday < 0 || weekday > 6) {
108
+ weekdayOverflow = true;
109
+ }
110
+ }
111
+ else if (w.e != null) {
112
+ // local weekday -- counting starts from begining of week
113
+ weekday = w.e + dow;
114
+ if (w.e < 0 || w.e > 6) {
115
+ weekdayOverflow = true;
116
+ }
117
+ }
118
+ else {
119
+ // default to begining of week
120
+ weekday = dow;
121
+ }
122
+ }
123
+ if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {
124
+ getParsingFlags(config)._overflowWeeks = true;
125
+ }
126
+ else if (weekdayOverflow != null) {
127
+ getParsingFlags(config)._overflowWeekday = true;
128
+ }
129
+ else {
130
+ temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);
131
+ config._a[YEAR] = temp.year;
132
+ config._dayOfYear = temp.dayOfYear;
133
+ }
134
+ return config;
135
+ }
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1hcnJheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvY2hyb25vcy9jcmVhdGUvZnJvbS1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDMUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxTQUFTLGdCQUFnQixDQUFDLE1BQXlCO0lBQ2pELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7SUFFNUIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ2xCLE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEVBQUUsUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0tBQ25GO0lBRUQsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDM0UsQ0FBQztBQUVELDhCQUE4QjtBQUM5QiwrQ0FBK0M7QUFDL0MsNkZBQTZGO0FB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NUIsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO0tBQ3BDO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQYXJzaW5nQ29uZmlnIH0gZnJvbSAnLi9wYXJzaW5nLnR5cGVzJztcbmltcG9ydCB7IERhdGVBcnJheSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IERBVEUsIEhPVVIsIE1JTExJU0VDT05ELCBNSU5VVEUsIE1PTlRILCBTRUNPTkQsIFlFQVIgfSBmcm9tICcuLi91bml0cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgZGF5c0luWWVhciB9IGZyb20gJy4uL3VuaXRzL3llYXInO1xuaW1wb3J0IHsgZ2V0UGFyc2luZ0ZsYWdzIH0gZnJvbSAnLi9wYXJzaW5nLWZsYWdzJztcbmltcG9ydCB7IGNyZWF0ZVVUQ0RhdGUgfSBmcm9tICcuL2RhdGUtZnJvbS1hcnJheSc7XG5pbXBvcnQgeyBjcmVhdGVEYXRlIH0gZnJvbSAnLi9kYXRlLWZyb20tYXJyYXknO1xuaW1wb3J0IHsgZGF5T2ZZZWFyRnJvbVdlZWtzLCB3ZWVrT2ZZZWFyLCB3ZWVrc0luWWVhciB9IGZyb20gJy4uL3VuaXRzL3dlZWstY2FsZW5kYXItdXRpbHMnO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tICcuLi91dGlscy9kZWZhdWx0cyc7XG5cbmZ1bmN0aW9uIGN1cnJlbnREYXRlQXJyYXkoY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVBcnJheSB7XG4gIGNvbnN0IG5vd1ZhbHVlID0gbmV3IERhdGUoKTtcblxuICBpZiAoY29uZmlnLl91c2VVVEMpIHtcbiAgICByZXR1cm4gW25vd1ZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIG5vd1ZhbHVlLmdldFVUQ01vbnRoKCksIG5vd1ZhbHVlLmdldFVUQ0RhdGUoKV07XG4gIH1cblxuICByZXR1cm4gW25vd1ZhbHVlLmdldEZ1bGxZZWFyKCksIG5vd1ZhbHVlLmdldE1vbnRoKCksIG5vd1ZhbHVlLmdldERhdGUoKV07XG59XG5cbi8vIGNvbnZlcnQgYW4gYXJyYXkgdG8gYSBkYXRlLlxuLy8gdGhlIGFycmF5IHNob3VsZCBtaXJyb3IgdGhlIHBhcmFtZXRlcnMgYmVsb3dcbi8vIG5vdGU6IGFsbCB2YWx1ZXMgcGFzdCB0aGUgeWVhciBhcmUgb3B0aW9uYWwgYW5kIHdpbGwgZGVmYXVsdCB0byB0aGUgbG93ZXN0IHBvc3NpYmxlIHZhbHVlLlxuLy8gW3llYXIsIG1vbnRoLCBkYXkgLCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRnJvbUFycmF5KGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gIGNvbnN0IGlucHV0ID0gW107XG4gIGxldCBpO1xuICBsZXQgZGF0ZTtcbiAgbGV0IGN1cnJlbnREYXRlO1xuICBsZXQgZXhwZWN0ZWRXZWVrZGF5O1xuICBsZXQgeWVhclRvVXNlO1xuXG4gIGlmIChjb25maWcuX2QpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgY3VycmVudERhdGUgPSBjdXJyZW50RGF0ZUFycmF5KGNvbmZpZyk7XG5cbiAgLy8gY29tcHV0ZSBkYXkgb2YgdGhlIHllYXIgZnJvbSB3ZWVrcyBhbmQgd2Vla2RheXNcbiAgaWYgKGNvbmZpZy5fdyAmJiBjb25maWcuX2FbREFURV0gPT0gbnVsbCAmJiBjb25maWcuX2FbTU9OVEhdID09IG51bGwpIHtcbiAgICBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKTtcbiAgfVxuXG4gIC8vIGlmIHRoZSBkYXkgb2YgdGhlIHllYXIgaXMgc2V0LCBmaWd1cmUgb3V0IHdoYXQgaXQgaXNcbiAgaWYgKGNvbmZpZy5fZGF5T2ZZZWFyICE9IG51bGwpIHtcbiAgICB5ZWFyVG9Vc2UgPSBkZWZhdWx0cyhjb25maWcuX2FbWUVBUl0sIGN1cnJlbnREYXRlW1lFQVJdKTtcblxuICAgIGlmIChjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSB8fCBjb25maWcuX2RheU9mWWVhciA9PT0gMCkge1xuICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93RGF5T2ZZZWFyID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBkYXRlID0gbmV3IERhdGUoRGF0ZS5VVEMoeWVhclRvVXNlLCAwLCBjb25maWcuX2RheU9mWWVhcikpO1xuICAgIGNvbmZpZy5fYVtNT05USF0gPSBkYXRlLmdldFVUQ01vbnRoKCk7XG4gICAgY29uZmlnLl9hW0RBVEVdID0gZGF0ZS5nZXRVVENEYXRlKCk7XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgZGF0ZS5cbiAgLy8gKiBpZiBubyB5ZWFyLCBtb250aCwgZGF5IG9mIG1vbnRoIGFyZSBnaXZlbiwgZGVmYXVsdCB0byB0b2RheVxuICAvLyAqIGlmIGRheSBvZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBtb250aCBhbmQgeWVhclxuICAvLyAqIGlmIG1vbnRoIGlzIGdpdmVuLCBkZWZhdWx0IG9ubHkgeWVhclxuICAvLyAqIGlmIHllYXIgaXMgZ2l2ZW4sIGRvbid0IGRlZmF1bHQgYW55dGhpbmdcbiAgZm9yIChpID0gMDsgaSA8IDMgJiYgY29uZmlnLl9hW2ldID09IG51bGw7ICsraSkge1xuICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07XG4gIH1cblxuICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWVcbiAgZm9yICg7IGkgPCA3OyBpKyspIHtcbiAgICBjb25maWcuX2FbaV0gPSBpbnB1dFtpXSA9IChjb25maWcuX2FbaV0gPT0gbnVsbCkgPyAoaSA9PT0gMiA/IDEgOiAwKSA6IGNvbmZpZy5fYVtpXTtcbiAgfVxuXG4gIC8vIENoZWNrIGZvciAyNDowMDowMC4wMDBcbiAgaWYgKGNvbmZpZy5fYVtIT1VSXSA9PT0gMjQgJiZcbiAgICBjb25maWcuX2FbTUlOVVRFXSA9PT0gMCAmJlxuICAgIGNvbmZpZy5fYVtTRUNPTkRdID09PSAwICYmXG4gICAgY29uZmlnLl9hW01JTExJU0VDT05EXSA9PT0gMCkge1xuICAgIGNvbmZpZy5fbmV4dERheSA9IHRydWU7XG4gICAgY29uZmlnLl9hW0hPVVJdID0gMDtcbiAgfVxuXG4gIGNvbmZpZy5fZCA9IChjb25maWcuX3VzZVVUQyA/IGNyZWF0ZVVUQ0RhdGUgOiBjcmVhdGVEYXRlKS5hcHBseShudWxsLCBpbnB1dCk7XG4gIGV4cGVjdGVkV2Vla2RheSA9IGNvbmZpZy5fdXNlVVRDID8gY29uZmlnLl9kLmdldFVUQ0RheSgpIDogY29uZmlnLl9kLmdldERheSgpO1xuXG4gIC8vIEFwcGx5IHRpbWV6b25lIG9mZnNldCBmcm9tIGlucHV0LiBUaGUgYWN0dWFsIHV0Y09mZnNldCBjYW4gYmUgY2hhbmdlZFxuICAvLyB3aXRoIHBhcnNlWm9uZS5cbiAgaWYgKGNvbmZpZy5fdHptICE9IG51bGwpIHtcbiAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuICB9XG5cbiAgaWYgKGNvbmZpZy5fbmV4dERheSkge1xuICAgIGNvbmZpZy5fYVtIT1VSXSA9IDI0O1xuICB9XG5cbiAgLy8gY2hlY2sgZm9yIG1pc21hdGNoaW5nIGRheSBvZiB3ZWVrXG4gIGlmIChjb25maWcuX3cgJiYgdHlwZW9mIGNvbmZpZy5fdy5kICE9PSAndW5kZWZpbmVkJyAmJiBjb25maWcuX3cuZCAhPT0gZXhwZWN0ZWRXZWVrZGF5KSB7XG4gICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG5cbmZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICBsZXQgdywgd2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95LCB0ZW1wLCB3ZWVrZGF5T3ZlcmZsb3c7XG5cbiAgdyA9IGNvbmZpZy5fdztcbiAgaWYgKHcuR0cgIT0gbnVsbCB8fCB3LlcgIT0gbnVsbCB8fCB3LkUgIT0gbnVsbCkge1xuICAgIGRvdyA9IDE7XG4gICAgZG95ID0gNDtcblxuICAgIC8vIFRPRE86IFdlIG5lZWQgdG8gdGFrZSB0aGUgY3VycmVudCBpc29XZWVrWWVhciwgYnV0IHRoYXQgZGVwZW5kcyBvblxuICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGVcbiAgICAvLyBhIG5vdyB2ZXJzaW9uIG9mIGN1cnJlbnQgY29uZmlnICh0YWtlIGxvY2FsL3V0Yy9vZmZzZXQgZmxhZ3MsIGFuZFxuICAgIC8vIGNyZWF0ZSBub3cpLlxuICAgIHdlZWtZZWFyID0gZGVmYXVsdHMody5HRywgY29uZmlnLl9hW1lFQVJdLCB3ZWVrT2ZZZWFyKG5ldyBEYXRlKCksIDEsIDQpLnllYXIpO1xuICAgIHdlZWsgPSBkZWZhdWx0cyh3LlcsIDEpO1xuICAgIHdlZWtkYXkgPSBkZWZhdWx0cyh3LkUsIDEpO1xuICAgIGlmICh3ZWVrZGF5IDwgMSB8fCB3ZWVrZGF5ID4gNykge1xuICAgICAgd2Vla2RheU92ZXJmbG93ID0gdHJ1ZTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZG93ID0gY29uZmlnLl9sb2NhbGUuX3dlZWsuZG93O1xuICAgIGRveSA9IGNvbmZpZy5fbG9jYWxlLl93ZWVrLmRveTtcblxuICAgIGNvbnN0IGN1cldlZWsgPSB3ZWVrT2ZZZWFyKG5ldyBEYXRlKCksIGRvdywgZG95KTtcblxuICAgIHdlZWtZZWFyID0gZGVmYXVsdHMody5nZywgY29uZmlnLl9hW1lFQVJdLCBjdXJXZWVrLnllYXIpO1xuXG4gICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IHdlZWsuXG4gICAgd2VlayA9IGRlZmF1bHRzKHcudywgY3VyV2Vlay53ZWVrKTtcblxuICAgIGlmICh3LmQgIT0gbnVsbCkge1xuICAgICAgLy8gd2Vla2RheSAtLSBsb3cgZGF5IG51bWJlcnMgYXJlIGNvbnNpZGVyZWQgbmV4dCB3ZWVrXG4gICAgICB3ZWVrZGF5ID0gdy5kO1xuICAgICAgaWYgKHdlZWtkYXkgPCAwIHx8IHdlZWtkYXkgPiA2KSB7XG4gICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh3LmUgIT0gbnVsbCkge1xuICAgICAgLy8gbG9jYWwgd2Vla2RheSAtLSBjb3VudGluZyBzdGFydHMgZnJvbSBiZWdpbmluZyBvZiB3ZWVrXG4gICAgICB3ZWVrZGF5ID0gdy5lICsgZG93O1xuICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBkZWZhdWx0IHRvIGJlZ2luaW5nIG9mIHdlZWtcbiAgICAgIHdlZWtkYXkgPSBkb3c7XG4gICAgfVxuICB9XG4gIGlmICh3ZWVrIDwgMSB8fCB3ZWVrID4gd2Vla3NJblllYXIod2Vla1llYXIsIGRvdywgZG95KSkge1xuICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtzID0gdHJ1ZTtcbiAgfSBlbHNlIGlmICh3ZWVrZGF5T3ZlcmZsb3cgIT0gbnVsbCkge1xuICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtkYXkgPSB0cnVlO1xuICB9IGVsc2Uge1xuICAgIHRlbXAgPSBkYXlPZlllYXJGcm9tV2Vla3Mod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KTtcbiAgICBjb25maWcuX2FbWUVBUl0gPSB0ZW1wLnllYXI7XG4gICAgY29uZmlnLl9kYXlPZlllYXIgPSB0ZW1wLmRheU9mWWVhcjtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iXX0=
@@ -0,0 +1,17 @@
1
+ import { normalizeObjectUnits } from '../units/aliases';
2
+ import { configFromArray } from './from-array';
3
+ import { isObject, isString } from '../utils/type-checks';
4
+ export function configFromObject(config) {
5
+ if (config._d) {
6
+ return config;
7
+ }
8
+ const input = config._i;
9
+ if (isObject(input)) {
10
+ const i = normalizeObjectUnits(input);
11
+ config._a = [i.year, i.month, i.day, i.hours, i.minutes, i.seconds, i.milliseconds]
12
+ // todo: obsolete -> remove it
13
+ .map(obj => isString(obj) ? parseInt(obj, 10) : obj);
14
+ }
15
+ return configFromArray(config);
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1vYmplY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2Nocm9ub3MvY3JlYXRlL2Zyb20tb2JqZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUxRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBeUI7SUFDeEQsSUFBSSxNQUFNLENBQUMsRUFBRSxFQUFFO1FBQ2IsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDeEIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDbkIsTUFBTSxDQUFDLEdBQUcsb0JBQW9CLENBQUMsS0FBWSxDQUFDLENBQUM7UUFDN0MsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUM7WUFDbkYsOEJBQThCO2FBQzNCLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7S0FDeEQ7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbm9ybWFsaXplT2JqZWN0VW5pdHMgfSBmcm9tICcuLi91bml0cy9hbGlhc2VzJztcbmltcG9ydCB7IGNvbmZpZ0Zyb21BcnJheSB9IGZyb20gJy4vZnJvbS1hcnJheSc7XG5pbXBvcnQgeyBEYXRlUGFyc2luZ0NvbmZpZyB9IGZyb20gJy4vcGFyc2luZy50eXBlcyc7XG5pbXBvcnQgeyBpc09iamVjdCwgaXNTdHJpbmcgfSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjb25maWdGcm9tT2JqZWN0KGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gIGlmIChjb25maWcuX2QpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgY29uc3QgaW5wdXQgPSBjb25maWcuX2k7XG4gIGlmIChpc09iamVjdChpbnB1dCkpIHtcbiAgICBjb25zdCBpID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoaW5wdXQgYXMgYW55KTtcbiAgICBjb25maWcuX2EgPSBbaS55ZWFyLCBpLm1vbnRoLCBpLmRheSwgaS5ob3VycywgaS5taW51dGVzLCBpLnNlY29uZHMsIGkubWlsbGlzZWNvbmRzXVxuICAgIC8vIHRvZG86IG9ic29sZXRlIC0+IHJlbW92ZSBpdFxuICAgICAgLm1hcChvYmogPT4gaXNTdHJpbmcob2JqKSA/IHBhcnNlSW50KG9iaiwgMTApIDogb2JqKTtcbiAgfVxuXG4gIHJldHVybiBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { createInvalid, isValid } from './valid';
2
+ import { getParsingFlags } from './parsing-flags';
3
+ import { configFromStringAndFormat } from './from-string-and-format';
4
+ // date from string and array of format strings
5
+ export function configFromStringAndArray(config) {
6
+ let tempConfig;
7
+ let bestMoment;
8
+ let scoreToBeat;
9
+ let currentScore;
10
+ if (!config._f || config._f.length === 0) {
11
+ getParsingFlags(config).invalidFormat = true;
12
+ return createInvalid(config);
13
+ }
14
+ let i;
15
+ for (i = 0; i < config._f.length; i++) {
16
+ currentScore = 0;
17
+ tempConfig = Object.assign({}, config);
18
+ if (config._useUTC != null) {
19
+ tempConfig._useUTC = config._useUTC;
20
+ }
21
+ tempConfig._f = config._f[i];
22
+ configFromStringAndFormat(tempConfig);
23
+ if (!isValid(tempConfig)) {
24
+ continue;
25
+ }
26
+ // if there is any input that was not parsed add a penalty for that format
27
+ currentScore += getParsingFlags(tempConfig).charsLeftOver;
28
+ // or tokens
29
+ currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;
30
+ getParsingFlags(tempConfig).score = currentScore;
31
+ if (scoreToBeat == null || currentScore < scoreToBeat) {
32
+ scoreToBeat = currentScore;
33
+ bestMoment = tempConfig;
34
+ }
35
+ }
36
+ return Object.assign(config, bestMoment || tempConfig);
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1zdHJpbmctYW5kLWFycmF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWlzLWNvbXBvbmVudHMvZGF0ZXBpY2tlci9jaHJvbm9zL2NyZWF0ZS9mcm9tLXN0cmluZy1hbmQtYXJyYXkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJFLCtDQUErQztBQUMvQyxNQUFNLFVBQVUsd0JBQXdCLENBQUMsTUFBeUI7SUFDaEUsSUFBSSxVQUFVLENBQUM7SUFDZixJQUFJLFVBQVUsQ0FBQztJQUNmLElBQUksV0FBVyxDQUFDO0lBQ2hCLElBQUksWUFBWSxDQUFDO0lBRWpCLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUN4QyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUU3QyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUM5QjtJQUVELElBQUksQ0FBQyxDQUFDO0lBQ04sS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxZQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUN2QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFO1lBQzFCLFVBQVUsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNyQztRQUNELFVBQVUsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3Qix5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1lBQ3hCLFNBQVM7U0FDVjtRQUVELDBFQUEwRTtRQUMxRSxZQUFZLElBQUksZUFBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDLGFBQWEsQ0FBQztRQUUxRCxZQUFZO1FBQ1osWUFBWSxJQUFJLGVBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVyRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUVqRCxJQUFJLFdBQVcsSUFBSSxJQUFJLElBQUksWUFBWSxHQUFHLFdBQVcsRUFBRTtZQUNyRCxXQUFXLEdBQUcsWUFBWSxDQUFDO1lBQzNCLFVBQVUsR0FBRyxVQUFVLENBQUM7U0FDekI7S0FDRjtJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxJQUFJLFVBQVUsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRlUGFyc2luZ0NvbmZpZyB9IGZyb20gJy4vcGFyc2luZy50eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVJbnZhbGlkLCBpc1ZhbGlkIH0gZnJvbSAnLi92YWxpZCc7XG5pbXBvcnQgeyBnZXRQYXJzaW5nRmxhZ3MgfSBmcm9tICcuL3BhcnNpbmctZmxhZ3MnO1xuaW1wb3J0IHsgY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdCB9IGZyb20gJy4vZnJvbS1zdHJpbmctYW5kLWZvcm1hdCc7XG5cbi8vIGRhdGUgZnJvbSBzdHJpbmcgYW5kIGFycmF5IG9mIGZvcm1hdCBzdHJpbmdzXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBEYXRlUGFyc2luZ0NvbmZpZyB7XG4gIGxldCB0ZW1wQ29uZmlnO1xuICBsZXQgYmVzdE1vbWVudDtcbiAgbGV0IHNjb3JlVG9CZWF0O1xuICBsZXQgY3VycmVudFNjb3JlO1xuXG4gIGlmICghY29uZmlnLl9mIHx8IGNvbmZpZy5fZi5sZW5ndGggPT09IDApIHtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkRm9ybWF0ID0gdHJ1ZTtcblxuICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKGNvbmZpZyk7XG4gIH1cblxuICBsZXQgaTtcbiAgZm9yIChpID0gMDsgaSA8IGNvbmZpZy5fZi5sZW5ndGg7IGkrKykge1xuICAgIGN1cnJlbnRTY29yZSA9IDA7XG4gICAgdGVtcENvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIGNvbmZpZyk7XG4gICAgaWYgKGNvbmZpZy5fdXNlVVRDICE9IG51bGwpIHtcbiAgICAgIHRlbXBDb25maWcuX3VzZVVUQyA9IGNvbmZpZy5fdXNlVVRDO1xuICAgIH1cbiAgICB0ZW1wQ29uZmlnLl9mID0gY29uZmlnLl9mW2ldO1xuICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQodGVtcENvbmZpZyk7XG5cbiAgICBpZiAoIWlzVmFsaWQodGVtcENvbmZpZykpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZXJlIGlzIGFueSBpbnB1dCB0aGF0IHdhcyBub3QgcGFyc2VkIGFkZCBhIHBlbmFsdHkgZm9yIHRoYXQgZm9ybWF0XG4gICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5jaGFyc0xlZnRPdmVyO1xuXG4gICAgLy8gb3IgdG9rZW5zXG4gICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7XG5cbiAgICBnZXRQYXJzaW5nRmxhZ3ModGVtcENvbmZpZykuc2NvcmUgPSBjdXJyZW50U2NvcmU7XG5cbiAgICBpZiAoc2NvcmVUb0JlYXQgPT0gbnVsbCB8fCBjdXJyZW50U2NvcmUgPCBzY29yZVRvQmVhdCkge1xuICAgICAgc2NvcmVUb0JlYXQgPSBjdXJyZW50U2NvcmU7XG4gICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gT2JqZWN0LmFzc2lnbihjb25maWcsIGJlc3RNb21lbnQgfHwgdGVtcENvbmZpZyk7XG59XG4iXX0=
@@ -0,0 +1,106 @@
1
+ import { configFromISO, configFromRFC2822 } from './from-string';
2
+ import { expandFormat } from '../format';
3
+ import { formattingTokens, formatTokenFunctions } from '../format/format';
4
+ import { isArray } from '../utils/type-checks';
5
+ import { getParseRegexForToken } from '../parse/regex';
6
+ import { addTimeToArrayFromToken } from '../parse/token';
7
+ import { HOUR } from '../units/constants';
8
+ import { configFromArray } from './from-array';
9
+ import { getParsingFlags } from './parsing-flags';
10
+ import { checkOverflow } from './check-overflow';
11
+ // constant that refers to the ISO standard
12
+ // hooks.ISO_8601 = function () {};
13
+ export const ISO_8601 = 'ISO_8601';
14
+ // constant that refers to the RFC 2822 form
15
+ // hooks.RFC_2822 = function () {};
16
+ export const RFC_2822 = 'RFC_2822';
17
+ // date from string and format string
18
+ export function configFromStringAndFormat(config) {
19
+ // TODO: Move this to another part of the creation flow to prevent circular deps
20
+ if (config._f === ISO_8601) {
21
+ return configFromISO(config);
22
+ }
23
+ if (config._f === RFC_2822) {
24
+ return configFromRFC2822(config);
25
+ }
26
+ config._a = [];
27
+ getParsingFlags(config).empty = true;
28
+ if (isArray(config._f) || (!config._i && config._i !== 0)) {
29
+ return config;
30
+ }
31
+ // This array is used to make a Date, either with `new Date` or `Date.UTC`
32
+ let input = config._i.toString();
33
+ let totalParsedInputLength = 0;
34
+ const inputLength = input.length;
35
+ const tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];
36
+ let i;
37
+ let token;
38
+ let parsedInput;
39
+ let skipped;
40
+ for (i = 0; i < tokens.length; i++) {
41
+ token = tokens[i];
42
+ parsedInput = (input.match(getParseRegexForToken(token, config._locale)) || [])[0];
43
+ if (parsedInput) {
44
+ skipped = input.substr(0, input.indexOf(parsedInput));
45
+ if (skipped.length > 0) {
46
+ getParsingFlags(config).unusedInput.push(skipped);
47
+ }
48
+ input = input.slice(input.indexOf(parsedInput) + parsedInput.length);
49
+ totalParsedInputLength += parsedInput.length;
50
+ }
51
+ // don't parse if it's not a known token
52
+ if (formatTokenFunctions[token]) {
53
+ if (parsedInput) {
54
+ getParsingFlags(config).empty = false;
55
+ }
56
+ else {
57
+ getParsingFlags(config).unusedTokens.push(token);
58
+ }
59
+ addTimeToArrayFromToken(token, parsedInput, config);
60
+ }
61
+ else if (config._strict && !parsedInput) {
62
+ getParsingFlags(config).unusedTokens.push(token);
63
+ }
64
+ }
65
+ // add remaining unparsed input length to the string
66
+ getParsingFlags(config).charsLeftOver = inputLength - totalParsedInputLength;
67
+ if (input.length > 0) {
68
+ getParsingFlags(config).unusedInput.push(input);
69
+ }
70
+ // clear _12h flag if hour is <= 12
71
+ if (config._a[HOUR] <= 12 &&
72
+ getParsingFlags(config).bigHour === true &&
73
+ config._a[HOUR] > 0) {
74
+ getParsingFlags(config).bigHour = void 0;
75
+ }
76
+ getParsingFlags(config).parsedDateParts = config._a.slice(0);
77
+ getParsingFlags(config).meridiem = config._meridiem;
78
+ // handle meridiem
79
+ config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);
80
+ configFromArray(config);
81
+ return checkOverflow(config);
82
+ }
83
+ function meridiemFixWrap(locale, _hour, meridiem) {
84
+ let hour = _hour;
85
+ if (meridiem == null) {
86
+ // nothing to do
87
+ return hour;
88
+ }
89
+ if (locale.meridiemHour != null) {
90
+ return locale.meridiemHour(hour, meridiem);
91
+ }
92
+ if (locale.isPM == null) {
93
+ // this is not supposed to happen
94
+ return hour;
95
+ }
96
+ // Fallback
97
+ const isPm = locale.isPM(meridiem);
98
+ if (isPm && hour < 12) {
99
+ hour += 12;
100
+ }
101
+ if (!isPm && hour === 12) {
102
+ hour = 0;
103
+ }
104
+ return hour;
105
+ }
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1zdHJpbmctYW5kLWZvcm1hdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL2RhdGVwaWNrZXIvY2hyb25vcy9jcmVhdGUvZnJvbS1zdHJpbmctYW5kLWZvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBWSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHakQsMkNBQTJDO0FBQzNDLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0FBRW5DLDRDQUE0QztBQUM1QyxtQ0FBbUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztBQUVuQyxxQ0FBcUM7QUFDckMsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQXlCO0lBQ2pFLGdGQUFnRjtJQUNoRixJQUFJLE1BQU0sQ0FBQyxFQUFFLEtBQUssUUFBUSxFQUFFO1FBQzFCLE9BQU8sYUFBYSxD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QUFJLElBQUksSUFBSSxFQUFFO1FBQ3ZCLGlDQUFpQztRQUNqQyxPQUFPLElBQUksQ0FBQztLQUNiO0lBQ0QsV0FBVztJQUNYLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbkMsSUFBSSxJQUFJLElBQUksSUFBSSxHQUFHLEVBQUUsRUFBRTtRQUNyQixJQUFJLElBQUksRUFBRSxDQUFDO0tBQ1o7SUFFRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxHQUFHLENBQUMsQ0FBQztLQUNWO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0ZVBhcnNpbmdDb25maWcgfSBmcm9tICcuL3BhcnNpbmcudHlwZXMnO1xuaW1wb3J0IHsgY29uZmlnRnJvbUlTTywgY29uZmlnRnJvbVJGQzI4MjIgfSBmcm9tICcuL2Zyb20tc3RyaW5nJztcbmltcG9ydCB7IGV4cGFuZEZvcm1hdCB9IGZyb20gJy4uL2Zvcm1hdCc7XG5pbXBvcnQgeyBmb3JtYXR0aW5nVG9rZW5zLCBmb3JtYXRUb2tlbkZ1bmN0aW9ucyB9IGZyb20gJy4uL2Zvcm1hdC9mb3JtYXQnO1xuaW1wb3J0IHsgaXNBcnJheSwgaXNTdHJpbmcgfSBmcm9tICcuLi91dGlscy90eXBlLWNoZWNrcyc7XG5pbXBvcnQgeyBnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4gfSBmcm9tICcuLi9wYXJzZS9yZWdleCc7XG5pbXBvcnQgeyBhZGRUaW1lVG9BcnJheUZyb21Ub2tlbiB9IGZyb20gJy4uL3BhcnNlL3Rva2VuJztcbmltcG9ydCB7IEhPVVIgfSBmcm9tICcuLi91bml0cy9jb25zdGFudHMnO1xuaW1wb3J0IHsgY29uZmlnRnJvbUFycmF5IH0gZnJvbSAnLi9mcm9tLWFycmF5JztcbmltcG9ydCB7IGdldFBhcnNpbmdGbGFncyB9IGZyb20gJy4vcGFyc2luZy1mbGFncyc7XG5pbXBvcnQgeyBjaGVja092ZXJmbG93IH0gZnJvbSAnLi9jaGVjay1vdmVyZmxvdyc7XG5pbXBvcnQgeyBMb2NhbGUgfSBmcm9tICcuLi9sb2NhbGUvbG9jYWxlLmNsYXNzJztcblxuLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIElTTyBzdGFuZGFyZFxuLy8gaG9va3MuSVNPXzg2MDEgPSBmdW5jdGlvbiAoKSB7fTtcbmV4cG9ydCBjb25zdCBJU09fODYwMSA9ICdJU09fODYwMSc7XG5cbi8vIGNvbnN0YW50IHRoYXQgcmVmZXJzIHRvIHRoZSBSRkMgMjgyMiBmb3JtXG4vLyBob29rcy5SRkNfMjgyMiA9IGZ1bmN0aW9uICgpIHt9O1xuZXhwb3J0IGNvbnN0IFJGQ18yODIyID0gJ1JGQ18yODIyJztcblxuLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgZm9ybWF0IHN0cmluZ1xuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQoY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIGFub3RoZXIgcGFydCBvZiB0aGUgY3JlYXRpb24gZmxvdyB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcHNcbiAgaWYgKGNvbmZpZy5fZiA9PT0gSVNPXzg2MDEpIHtcbiAgICByZXR1cm4gY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICB9XG4gIGlmIChjb25maWcuX2YgPT09IFJGQ18yODIyKSB7XG4gICAgcmV0dXJuIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gIH1cbiAgY29uZmlnLl9hID0gW107XG4gIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gdHJ1ZTtcblxuICBpZiAoaXNBcnJheShjb25maWcuX2YpIHx8ICghY29uZmlnLl9pICYmIGNvbmZpZy5faSAhPT0gMCkpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8gVGhpcyBhcnJheSBpcyB1c2VkIHRvIG1ha2UgYSBEYXRlLCBlaXRoZXIgd2l0aCBgbmV3IERhdGVgIG9yIGBEYXRlLlVUQ2BcblxuICBsZXQgaW5wdXQgPSBjb25maWcuX2kudG9TdHJpbmcoKTtcbiAgbGV0IHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggPSAwO1xuICBjb25zdCBpbnB1dExlbmd0aCA9IGlucHV0Lmxlbmd0aDtcbiAgY29uc3QgdG9rZW5zID0gZXhwYW5kRm9ybWF0KGNvbmZpZy5fZiwgY29uZmlnLl9sb2NhbGUpLm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpIHx8IFtdO1xuXG4gIGxldCBpO1xuICBsZXQgdG9rZW47XG4gIGxldCBwYXJzZWRJbnB1dDtcbiAgbGV0IHNraXBwZWQ7XG4gIGZvciAoaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyBpKyspIHtcbiAgICB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICBwYXJzZWRJbnB1dCA9IChpbnB1dC5tYXRjaChnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZy5fbG9jYWxlKSkgfHwgW10pWzBdO1xuICAgIGlmIChwYXJzZWRJbnB1dCkge1xuICAgICAgc2tpcHBlZCA9IGlucHV0LnN1YnN0cigwLCBpbnB1dC5pbmRleE9mKHBhcnNlZElucHV0KSk7XG4gICAgICBpZiAoc2tpcHBlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZElucHV0LnB1c2goc2tpcHBlZCk7XG4gICAgICB9XG4gICAgICBpbnB1dCA9IGlucHV0LnNsaWNlKGlucHV0LmluZGV4T2YocGFyc2VkSW5wdXQpICsgcGFyc2VkSW5wdXQubGVuZ3RoKTtcbiAgICAgIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggKz0gcGFyc2VkSW5wdXQubGVuZ3RoO1xuICAgIH1cbiAgICAvLyBkb24ndCBwYXJzZSBpZiBpdCdzIG5vdCBhIGtub3duIHRva2VuXG4gICAgaWYgKGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSkge1xuICAgICAgaWYgKHBhcnNlZElucHV0KSB7XG4gICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmVtcHR5ID0gZmFsc2U7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRUb2tlbnMucHVzaCh0b2tlbik7XG4gICAgICB9XG5cbiAgICAgIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBwYXJzZWRJbnB1dCwgY29uZmlnKTtcbiAgICB9IGVsc2UgaWYgKGNvbmZpZy5fc3RyaWN0ICYmICFwYXJzZWRJbnB1dCkge1xuICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIC8vIGFkZCByZW1haW5pbmcgdW5wYXJzZWQgaW5wdXQgbGVuZ3RoIHRvIHRoZSBzdHJpbmdcbiAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuY2hhcnNMZWZ0T3ZlciA9IGlucHV0TGVuZ3RoIC0gdG90YWxQYXJzZWRJbnB1dExlbmd0aDtcbiAgaWYgKGlucHV0Lmxlbmd0aCA+IDApIHtcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRJbnB1dC5wdXNoKGlucHV0KTtcbiAgfVxuXG4gIC8vIGNsZWFyIF8xMmggZmxhZyBpZiBob3VyIGlzIDw9IDEyXG4gIGlmIChjb25maWcuX2FbSE9VUl0gPD0gMTIgJiZcbiAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID09PSB0cnVlICYmXG4gICAgY29uZmlnLl9hW0hPVVJdID4gMCkge1xuICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmJpZ0hvdXIgPSB2b2lkIDA7XG4gIH1cblxuICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5wYXJzZWREYXRlUGFydHMgPSBjb25maWcuX2Euc2xpY2UoMCk7XG4gIGdldFBhcnNpbmdGbGFncyhjb25maWcpLm1lcmlkaWVtID0gY29uZmlnLl9tZXJpZGllbTtcbiAgLy8gaGFuZGxlIG1lcmlkaWVtXG4gIGNvbmZpZy5fYVtIT1VSXSA9IG1lcmlkaWVtRml4V3JhcChjb25maWcuX2xvY2FsZSwgY29uZmlnLl9hW0hPVVJdLCBjb25maWcuX21lcmlkaWVtKTtcblxuICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcblxuICByZXR1cm4gY2hlY2tPdmVyZmxvdyhjb25maWcpO1xufVxuXG5cbmZ1bmN0aW9uIG1lcmlkaWVtRml4V3JhcChsb2NhbGU6IExvY2FsZSwgX2hvdXI6IG51bWJlciwgbWVyaWRpZW06IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBob3VyID0gX2hvdXI7XG5cbiAgaWYgKG1lcmlkaWVtID09IG51bGwpIHtcbiAgICAvLyBub3RoaW5nIHRvIGRvXG4gICAgcmV0dXJuIGhvdXI7XG4gIH1cblxuICBpZiAobG9jYWxlLm1lcmlkaWVtSG91ciAhPSBudWxsKSB7XG4gICAgcmV0dXJuIGxvY2FsZS5tZXJpZGllbUhvdXIoaG91ciwgbWVyaWRpZW0pO1xuICB9XG5cbiAgaWYgKGxvY2FsZS5pc1BNID09IG51bGwpIHtcbiAgICAvLyB0aGlzIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW5cbiAgICByZXR1cm4gaG91cjtcbiAgfVxuICAvLyBGYWxsYmFja1xuICBjb25zdCBpc1BtID0gbG9jYWxlLmlzUE0obWVyaWRpZW0pO1xuICBpZiAoaXNQbSAmJiBob3VyIDwgMTIpIHtcbiAgICBob3VyICs9IDEyO1xuICB9XG5cbiAgaWYgKCFpc1BtICYmIGhvdXIgPT09IDEyKSB7XG4gICAgaG91ciA9IDA7XG4gIH1cblxuICByZXR1cm4gaG91cjtcbn1cbiJdfQ==
@@ -0,0 +1,227 @@
1
+ // tslint:disable-next-line
2
+ import { defaultLocaleMonthsShort, defaultLocaleWeekdaysShort } from '../locale/locale.class';
3
+ import { isString } from '../utils/type-checks';
4
+ import { configFromStringAndFormat } from './from-string-and-format';
5
+ import { createUTCDate } from './date-from-array';
6
+ import { createInvalid, markInvalid } from './valid';
7
+ import { getParsingFlags } from './parsing-flags';
8
+ // iso 8601 regex
9
+ // 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)
10
+ // tslint:disable-next-line
11
+ const 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)?)?$/;
12
+ // tslint:disable-next-line
13
+ const 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)?)?$/;
14
+ const tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
15
+ const isoDates = [
16
+ ['YYYYYY-MM-DD', /[+-]\d{6}-\d\d-\d\d/, true],
17
+ ['YYYY-MM-DD', /\d{4}-\d\d-\d\d/, true],
18
+ ['GGGG-[W]WW-E', /\d{4}-W\d\d-\d/, true],
19
+ ['GGGG-[W]WW', /\d{4}-W\d\d/, false],
20
+ ['YYYY-DDD', /\d{4}-\d{3}/, true],
21
+ ['YYYY-MM', /\d{4}-\d\d/, false],
22
+ ['YYYYYYMMDD', /[+-]\d{10}/, true],
23
+ ['YYYYMMDD', /\d{8}/, true],
24
+ // YYYYMM is NOT allowed by the standard
25
+ ['GGGG[W]WWE', /\d{4}W\d{3}/, true],
26
+ ['GGGG[W]WW', /\d{4}W\d{2}/, false],
27
+ ['YYYYDDD', /\d{7}/, true]
28
+ ];
29
+ // iso time formats and regexes
30
+ const isoTimes = [
31
+ ['HH:mm:ss.SSSS', /\d\d:\d\d:\d\d\.\d+/],
32
+ ['HH:mm:ss,SSSS', /\d\d:\d\d:\d\d,\d+/],
33
+ ['HH:mm:ss', /\d\d:\d\d:\d\d/],
34
+ ['HH:mm', /\d\d:\d\d/],
35
+ ['HHmmss.SSSS', /\d\d\d\d\d\d\.\d+/],
36
+ ['HHmmss,SSSS', /\d\d\d\d\d\d,\d+/],
37
+ ['HHmmss', /\d\d\d\d\d\d/],
38
+ ['HHmm', /\d\d\d\d/],
39
+ ['HH', /\d\d/]
40
+ ];
41
+ const aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
42
+ const obsOffsets = {
43
+ UT: 0,
44
+ GMT: 0,
45
+ EDT: -4 * 60,
46
+ EST: -5 * 60,
47
+ CDT: -5 * 60,
48
+ CST: -6 * 60,
49
+ MDT: -6 * 60,
50
+ MST: -7 * 60,
51
+ PDT: -7 * 60,
52
+ PST: -8 * 60
53
+ };
54
+ // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3
55
+ // tslint:disable-next-line
56
+ const 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}))$/;
57
+ // date from iso format
58
+ export function configFromISO(config) {
59
+ if (!isString(config._i)) {
60
+ return config;
61
+ }
62
+ const input = config._i;
63
+ const match = extendedIsoRegex.exec(input) || basicIsoRegex.exec(input);
64
+ let allowTime;
65
+ let dateFormat;
66
+ let timeFormat;
67
+ let tzFormat;
68
+ if (!match) {
69
+ config._isValid = false;
70
+ return config;
71
+ }
72
+ // getParsingFlags(config).iso = true;
73
+ let i;
74
+ let l;
75
+ for (i = 0, l = isoDates.length; i < l; i++) {
76
+ if (isoDates[i][1].exec(match[1])) {
77
+ dateFormat = isoDates[i][0];
78
+ allowTime = isoDates[i][2] !== false;
79
+ break;
80
+ }
81
+ }
82
+ if (dateFormat == null) {
83
+ config._isValid = false;
84
+ return config;
85
+ }
86
+ if (match[3]) {
87
+ for (i = 0, l = isoTimes.length; i < l; i++) {
88
+ if (isoTimes[i][1].exec(match[3])) {
89
+ // match[2] should be 'T' or space
90
+ timeFormat = (match[2] || ' ') + isoTimes[i][0];
91
+ break;
92
+ }
93
+ }
94
+ if (timeFormat == null) {
95
+ config._isValid = false;
96
+ return config;
97
+ }
98
+ }
99
+ if (!allowTime && timeFormat != null) {
100
+ config._isValid = false;
101
+ return config;
102
+ }
103
+ if (match[4]) {
104
+ if (tzRegex.exec(match[4])) {
105
+ tzFormat = 'Z';
106
+ }
107
+ else {
108
+ config._isValid = false;
109
+ return config;
110
+ }
111
+ }
112
+ config._f = dateFormat + (timeFormat || '') + (tzFormat || '');
113
+ return configFromStringAndFormat(config);
114
+ }
115
+ // tslint:disable-next-line
116
+ function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {
117
+ const result = [
118
+ untruncateYear(yearStr),
119
+ defaultLocaleMonthsShort.indexOf(monthStr),
120
+ parseInt(dayStr, 10),
121
+ parseInt(hourStr, 10),
122
+ parseInt(minuteStr, 10)
123
+ ];
124
+ if (secondStr) {
125
+ result.push(parseInt(secondStr, 10));
126
+ }
127
+ return result;
128
+ }
129
+ function untruncateYear(yearStr) {
130
+ const year = parseInt(yearStr, 10);
131
+ return year <= 49 ? year + 2000 : year;
132
+ }
133
+ function preprocessRFC2822(str) {
134
+ // Remove comments and folding whitespace and replace multiple-spaces with a single space
135
+ return str
136
+ .replace(/\([^)]*\)|[\n\t]/g, ' ')
137
+ .replace(/(\s\s+)/g, ' ').trim();
138
+ }
139
+ function checkWeekday(weekdayStr, parsedInput, config) {
140
+ if (weekdayStr) {
141
+ // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.
142
+ const weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr);
143
+ const weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();
144
+ if (weekdayProvided !== weekdayActual) {
145
+ getParsingFlags(config).weekdayMismatch = true;
146
+ config._isValid = false;
147
+ return false;
148
+ }
149
+ }
150
+ return true;
151
+ }
152
+ function calculateOffset(obsOffset, militaryOffset, numOffset) {
153
+ if (obsOffset) {
154
+ return obsOffsets[obsOffset];
155
+ }
156
+ else if (militaryOffset) {
157
+ // the only allowed military tz is Z
158
+ return 0;
159
+ }
160
+ else {
161
+ const hm = parseInt(numOffset, 10);
162
+ const m = hm % 100;
163
+ const h = (hm - m) / 100;
164
+ return h * 60 + m;
165
+ }
166
+ }
167
+ // date and time from ref 2822 format
168
+ export function configFromRFC2822(config) {
169
+ if (!isString(config._i)) {
170
+ return config;
171
+ }
172
+ const match = rfc2822.exec(preprocessRFC2822(config._i));
173
+ if (!match) {
174
+ return markInvalid(config);
175
+ }
176
+ const parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);
177
+ if (!checkWeekday(match[1], parsedArray, config)) {
178
+ return config;
179
+ }
180
+ config._a = parsedArray;
181
+ config._tzm = calculateOffset(match[8], match[9], match[10]);
182
+ config._d = createUTCDate.apply(null, config._a);
183
+ config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);
184
+ getParsingFlags(config).rfc2822 = true;
185
+ return config;
186
+ }
187
+ // date from iso format or fallback
188
+ export function configFromString(config) {
189
+ if (!isString(config._i)) {
190
+ return config;
191
+ }
192
+ const matched = aspNetJsonRegex.exec(config._i);
193
+ if (matched !== null) {
194
+ config._d = new Date(+matched[1]);
195
+ return config;
196
+ }
197
+ // todo: update logic processing
198
+ // isISO -> configFromISO
199
+ // isRFC -> configFromRFC
200
+ configFromISO(config);
201
+ if (config._isValid === false) {
202
+ delete config._isValid;
203
+ }
204
+ else {
205
+ return config;
206
+ }
207
+ configFromRFC2822(config);
208
+ if (config._isValid === false) {
209
+ delete config._isValid;
210
+ }
211
+ else {
212
+ return config;
213
+ }
214
+ // Final attempt, use Input Fallback
215
+ // hooks.createFromInputFallback(config);
216
+ return createInvalid(config);
217
+ }
218
+ // hooks.createFromInputFallback = deprecate(
219
+ // 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +
220
+ // 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +
221
+ // 'discouraged and will be removed in an upcoming major release. Please refer to ' +
222
+ // 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',
223
+ // function (config) {
224
+ // config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));
225
+ // }
226
+ // );
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbS1zdHJpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2Nocm9ub3MvY3JlYXRlL2Zyb20tc3RyaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJCQUEyQjtBQUMzQixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc5RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsRCxpQkFBaUI7QUFDakIsNEdBQTRHO0FBQzVHLDJCQUEyQjtBQUMzQixNQUFNLGdCQUFnQixHQUFHLGtKQUFrSixDQUFDO0FBQzVLLDJCQUEyQjtBQUMzQixNQUFNLGFBQWEsR0FBRyw2SUFBNkksQ0FBQztBQUVwSyxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQztBQUV4QyxNQUFNLFFBQVEsR0FBZ0M7SUFDNUMsQ0FBQyxjQUFjLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxDQUFDO0lBQzdDLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztJQUN2QyxDQUFDLGNBQWMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7SUFDeEMsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLEtBQUssQ0FBQztJQUNwQyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ2pDLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUM7SUFDaEMs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TUFBeUI7SUFDeEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDeEIsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWhELElBQUksT0FBTyxLQUFLLElBQUksRUFBRTtRQUNwQixNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEMsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELGdDQUFnQztJQUNoQyx5QkFBeUI7SUFDekIseUJBQXlCO0lBRXpCLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0QixJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO1FBQzdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQztLQUN4QjtTQUFNO1FBQ0wsT0FBTyxNQUFNLENBQUM7S0FDZjtJQUVELGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLElBQUksTUFBTSxDQUFDLFFBQVEsS0FBSyxLQUFLLEVBQUU7UUFDN0IsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO0tBQ3hCO1NBQU07UUFDTCxPQUFPLE1BQU0sQ0FBQztLQUNmO0lBRUQsb0NBQW9DO0lBQ3BDLHlDQUF5QztJQUN6QyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUMvQixDQUFDO0FBRUQsNkNBQTZDO0FBQzdDLHFIQUFxSDtBQUNySCxvR0FBb0c7QUFDcEcseUZBQXlGO0FBQ3pGLHVFQUF1RTtBQUN2RSwwQkFBMEI7QUFDMUIsNEVBQTRFO0FBQzVFLFFBQVE7QUFDUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lXG5pbXBvcnQgeyBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQsIGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0IH0gZnJvbSAnLi4vbG9jYWxlL2xvY2FsZS5jbGFzcyc7XG5pbXBvcnQgeyBEYXRlQXJyYXkgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBEYXRlUGFyc2luZ0NvbmZpZyB9IGZyb20gJy4vcGFyc2luZy50eXBlcyc7XG5pbXBvcnQgeyBpc1N0cmluZyB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcbmltcG9ydCB7IGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQgfSBmcm9tICcuL2Zyb20tc3RyaW5nLWFuZC1mb3JtYXQnO1xuaW1wb3J0IHsgY3JlYXRlVVRDRGF0ZSB9IGZyb20gJy4vZGF0ZS1mcm9tLWFycmF5JztcbmltcG9ydCB7IGNyZWF0ZUludmFsaWQsIG1hcmtJbnZhbGlkIH0gZnJvbSAnLi92YWxpZCc7XG5pbXBvcnQgeyBnZXRQYXJzaW5nRmxhZ3MgfSBmcm9tICcuL3BhcnNpbmctZmxhZ3MnO1xuXG4vLyBpc28gODYwMSByZWdleFxuLy8gMDAwMC0wMC0wMCAwMDAwLVcwMCBvciAwMDAwLVcwMC0wICsgVCArIDAwIG9yIDAwOjAwIG9yIDAwOjAwOjAwIG9yIDAwOjAwOjAwLjAwMCArICswMDowMCBvciArMDAwMCBvciArMDApXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IGV4dGVuZGVkSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pLSg/OlxcZFxcZC1cXGRcXGR8V1xcZFxcZC1cXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzo6XFxkXFxkKD86OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbXFwrXFwtXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC87XG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IGJhc2ljSXNvUmVnZXggPSAvXlxccyooKD86WystXVxcZHs2fXxcXGR7NH0pKD86XFxkXFxkXFxkXFxkfFdcXGRcXGRcXGR8V1xcZFxcZHxcXGRcXGRcXGR8XFxkXFxkKSkoPzooVHwgKShcXGRcXGQoPzpcXGRcXGQoPzpcXGRcXGQoPzpbLixdXFxkKyk/KT8pPykoW1xcK1xcLV1cXGRcXGQoPzo6P1xcZFxcZCk/fFxccypaKT8pPyQvO1xuXG5jb25zdCB0elJlZ2V4ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vO1xuXG5jb25zdCBpc29EYXRlczogW3N0cmluZywgUmVnRXhwLCBib29sZWFuXVtdID0gW1xuICBbJ1lZWVlZWS1NTS1ERCcsIC9bKy1dXFxkezZ9LVxcZFxcZC1cXGRcXGQvLCB0cnVlXSxcbiAgWydZWVlZLU1NLUREJywgL1xcZHs0fS1cXGRcXGQtXFxkXFxkLywgdHJ1ZV0sXG4gIFsnR0dHRy1bV11XVy1FJywgL1xcZHs0fS1XXFxkXFxkLVxcZC8sIHRydWVdLFxuICBbJ0dHR0ctW1ddV1cnLCAvXFxkezR9LVdcXGRcXGQvLCBmYWxzZV0sXG4gIFsnWVlZWS1EREQnLCAvXFxkezR9LVxcZHszfS8sIHRydWVdLFxuICBbJ1lZWVktTU0nLCAvXFxkezR9LVxcZFxcZC8sIGZhbHNlXSxcbiAgWydZWVlZWVlNTUREJywgL1srLV1cXGR7MTB9LywgdHJ1ZV0sXG4gIFsnWVlZWU1NREQnLCAvXFxkezh9LywgdHJ1ZV0sXG4gIC8vIFlZWVlNTSBpcyBOT1QgYWxsb3dlZCBieSB0aGUgc3RhbmRhcmRcbiAgWydHR0dHW1ddV1dFJywgL1xcZHs0fVdcXGR7M30vLCB0cnVlXSxcbiAgWydHR0dHW1ddV1cnLCAvXFxkezR9V1xcZHsyfS8sIGZhbHNlXSxcbiAgWydZWVlZREREJywgL1xcZHs3fS8sIHRydWVdXG5dO1xuXG4vLyBpc28gdGltZSBmb3JtYXRzIGFuZCByZWdleGVzXG5jb25zdCBpc29UaW1lczogW3N0cmluZywgUmVnRXhwXVtdID0gW1xuICBbJ0hIOm1tOnNzLlNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGRcXC5cXGQrL10sXG4gIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sXG4gIFsnSEg6bW06c3MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQvXSxcbiAgWydISDptbScsIC9cXGRcXGQ6XFxkXFxkL10sXG4gIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLFxuICBbJ0hIbW1zcyxTU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZCxcXGQrL10sXG4gIFsnSEhtbXNzJywgL1xcZFxcZFxcZFxcZFxcZFxcZC9dLFxuICBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sXG4gIFsnSEgnLCAvXFxkXFxkL11cbl07XG5cbmNvbnN0IGFzcE5ldEpzb25SZWdleCA9IC9eXFwvP0RhdGVcXCgoXFwtP1xcZCspL2k7XG5cbmNvbnN0IG9ic09mZnNldHM6IHsgW2tleTogc3RyaW5nXTogbnVtYmVyIH0gPSB7XG4gIFVUOiAwLFxuICBHTVQ6IDAsXG4gIEVEVDogLTQgKiA2MCxcbiAgRVNUOiAtNSAqIDYwLFxuICBDRFQ6IC01ICogNjAsXG4gIENTVDogLTYgKiA2MCxcbiAgTURUOiAtNiAqIDYwLFxuICBNU1Q6IC03ICogNjAsXG4gIFBEVDogLTcgKiA2MCxcbiAgUFNUOiAtOCAqIDYwXG59O1xuXG4vLyBSRkMgMjgyMiByZWdleDogRm9yIGRldGFpbHMgc2VlIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmMyODIyI3NlY3Rpb24tMy4zXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmNvbnN0IHJmYzI4MjIgPSAvXig/OihNb258VHVlfFdlZHxUaHV8RnJpfFNhdHxTdW4pLD9cXHMpPyhcXGR7MSwyfSlcXHMoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpXFxzKFxcZHsyLDR9KVxccyhcXGRcXGQpOihcXGRcXGQpKD86OihcXGRcXGQpKT9cXHMoPzooVVR8R01UfFtFQ01QXVtTRF1UKXwoW1p6XSl8KFsrLV1cXGR7NH0pKSQvO1xuXG4vLyBkYXRlIGZyb20gaXNvIGZvcm1hdFxuZXhwb3J0IGZ1bmN0aW9uIGNvbmZpZ0Zyb21JU08oY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgaWYgKCFpc1N0cmluZyhjb25maWcuX2kpKSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGNvbnN0IGlucHV0ID0gY29uZmlnLl9pO1xuICBjb25zdCBtYXRjaCA9IGV4dGVuZGVkSXNvUmVnZXguZXhlYyhpbnB1dCkgfHwgYmFzaWNJc29SZWdleC5leGVjKGlucHV0KTtcblxuXG4gIGxldCBhbGxvd1RpbWU7XG4gIGxldCBkYXRlRm9ybWF0O1xuICBsZXQgdGltZUZvcm1hdDtcbiAgbGV0IHR6Rm9ybWF0O1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLyBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pc28gPSB0cnVlO1xuICBsZXQgaTtcbiAgbGV0IGw7XG4gIGZvciAoaSA9IDAsIGwgPSBpc29EYXRlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICBpZiAoaXNvRGF0ZXNbaV1bMV0uZXhlYyhtYXRjaFsxXSkpIHtcbiAgICAgIGRhdGVGb3JtYXQgPSBpc29EYXRlc1tpXVswXTtcbiAgICAgIGFsbG93VGltZSA9IGlzb0RhdGVzW2ldWzJdICE9PSBmYWxzZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGlmIChkYXRlRm9ybWF0ID09IG51bGwpIHtcbiAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcblxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICBpZiAobWF0Y2hbM10pIHtcbiAgICBmb3IgKGkgPSAwLCBsID0gaXNvVGltZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhtYXRjaFszXSkpIHtcbiAgICAgICAgLy8gbWF0Y2hbMl0gc2hvdWxkIGJlICdUJyBvciBzcGFjZVxuICAgICAgICB0aW1lRm9ybWF0ID0gKG1hdGNoWzJdIHx8ICcgJykgKyBpc29UaW1lc1tpXVswXTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRpbWVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG5cbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gIH1cbiAgaWYgKCFhbGxvd1RpbWUgJiYgdGltZUZvcm1hdCAhPSBudWxsKSB7XG4gICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgaWYgKG1hdGNoWzRdKSB7XG4gICAgaWYgKHR6UmVnZXguZXhlYyhtYXRjaFs0XSkpIHtcbiAgICAgIHR6Rm9ybWF0ID0gJ1onO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuIGNvbmZpZztcbiAgICB9XG4gIH1cblxuICBjb25maWcuX2YgPSBkYXRlRm9ybWF0ICsgKHRpbWVGb3JtYXQgfHwgJycpICsgKHR6Rm9ybWF0IHx8ICcnKTtcblxuICByZXR1cm4gY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpO1xufVxuXG4vLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmVcbmZ1bmN0aW9uIGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MoeWVhclN0cjogc3RyaW5nLCBtb250aFN0cjogc3RyaW5nLCBkYXlTdHI6IHN0cmluZywgaG91clN0cjogc3RyaW5nLCBtaW51dGVTdHI6IHN0cmluZywgc2Vjb25kU3RyOiBzdHJpbmcpOiBEYXRlQXJyYXkge1xuICBjb25zdCByZXN1bHQgPSBbXG4gICAgdW50cnVuY2F0ZVllYXIoeWVhclN0ciksXG4gICAgZGVmYXVsdExvY2FsZU1vbnRoc1Nob3J0LmluZGV4T2YobW9udGhTdHIpLFxuICAgIHBhcnNlSW50KGRheVN0ciwgMTApLFxuICAgIHBhcnNlSW50KGhvdXJTdHIsIDEwKSxcbiAgICBwYXJzZUludChtaW51dGVTdHIsIDEwKVxuICBdO1xuXG4gIGlmIChzZWNvbmRTdHIpIHtcbiAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB1bnRydW5jYXRlWWVhcih5ZWFyU3RyOiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCB5ZWFyID0gcGFyc2VJbnQoeWVhclN0ciwgMTApO1xuXG4gIHJldHVybiB5ZWFyIDw9IDQ5ID8geWVhciArIDIwMDAgOiB5ZWFyO1xufVxuXG5mdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gIHJldHVybiBzdHJcbiAgICAucmVwbGFjZSgvXFwoW14pXSpcXCl8W1xcblxcdF0vZywgJyAnKVxuICAgIC5yZXBsYWNlKC8oXFxzXFxzKykvZywgJyAnKS50cmltKCk7XG59XG5cbmZ1bmN0aW9uIGNoZWNrV2Vla2RheSh3ZWVrZGF5U3RyOiBzdHJpbmcsIHBhcnNlZElucHV0OiBEYXRlQXJyYXksIGNvbmZpZzogRGF0ZVBhcnNpbmdDb25maWcpOiBib29sZWFuIHtcbiAgaWYgKHdlZWtkYXlTdHIpIHtcbiAgICAvLyBUT0RPOiBSZXBsYWNlIHRoZSB2YW5pbGxhIEpTIERhdGUgb2JqZWN0IHdpdGggYW4gaW5kZXBlbnRlbnQgZGF5LW9mLXdlZWsgY2hlY2suXG4gICAgY29uc3Qgd2Vla2RheVByb3ZpZGVkID0gZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQuaW5kZXhPZih3ZWVrZGF5U3RyKTtcbiAgICBjb25zdCB3ZWVrZGF5QWN0dWFsID0gbmV3IERhdGUocGFyc2VkSW5wdXRbMF0sIHBhcnNlZElucHV0WzFdLCBwYXJzZWRJbnB1dFsyXSkuZ2V0RGF5KCk7XG4gICAgaWYgKHdlZWtkYXlQcm92aWRlZCAhPT0gd2Vla2RheUFjdHVhbCkge1xuICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuXG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZU9mZnNldChvYnNPZmZzZXQ6IHN0cmluZywgbWlsaXRhcnlPZmZzZXQ6IHN0cmluZywgbnVtT2Zmc2V0OiBzdHJpbmcpIHtcbiAgaWYgKG9ic09mZnNldCkge1xuICAgIHJldHVybiBvYnNPZmZzZXRzW29ic09mZnNldF07XG4gIH0gZWxzZSBpZiAobWlsaXRhcnlPZmZzZXQpIHtcbiAgICAvLyB0aGUgb25seSBhbGxvd2VkIG1pbGl0YXJ5IHR6IGlzIFpcbiAgICByZXR1cm4gMDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBobSA9IHBhcnNlSW50KG51bU9mZnNldCwgMTApO1xuICAgIGNvbnN0IG0gPSBobSAlIDEwMDtcbiAgICBjb25zdCBoID0gKGhtIC0gbSkgLyAxMDA7XG5cbiAgICByZXR1cm4gaCAqIDYwICsgbTtcbiAgfVxufVxuXG4vLyBkYXRlIGFuZCB0aW1lIGZyb20gcmVmIDI4MjIgZm9ybWF0XG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnOiBEYXRlUGFyc2luZ0NvbmZpZyk6IERhdGVQYXJzaW5nQ29uZmlnIHtcbiAgaWYgKCFpc1N0cmluZyhjb25maWcuX2kpKSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGNvbnN0IG1hdGNoID0gcmZjMjgyMi5leGVjKHByZXByb2Nlc3NSRkMyODIyKGNvbmZpZy5faSkpO1xuXG4gIGlmICghbWF0Y2gpIHtcbiAgICByZXR1cm4gbWFya0ludmFsaWQoY29uZmlnKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnNlZEFycmF5ID0gZXh0cmFjdEZyb21SRkMyODIyU3RyaW5ncyhtYXRjaFs0XSwgbWF0Y2hbM10sIG1hdGNoWzJdLCBtYXRjaFs1XSwgbWF0Y2hbNl0sIG1hdGNoWzddKTtcbiAgaWYgKCFjaGVja1dlZWtkYXkobWF0Y2hbMV0sIHBhcnNlZEFycmF5LCBjb25maWcpKSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGNvbmZpZy5fYSA9IHBhcnNlZEFycmF5O1xuICBjb25maWcuX3R6bSA9IGNhbGN1bGF0ZU9mZnNldChtYXRjaFs4XSwgbWF0Y2hbOV0sIG1hdGNoWzEwXSk7XG5cbiAgY29uZmlnLl9kID0gY3JlYXRlVVRDRGF0ZS5hcHBseShudWxsLCBjb25maWcuX2EpO1xuICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuXG4gIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnJmYzI4MjIgPSB0cnVlO1xuXG4gIHJldHVybiBjb25maWc7XG59XG5cbi8vIGRhdGUgZnJvbSBpc28gZm9ybWF0IG9yIGZhbGxiYWNrXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZyhjb25maWc6IERhdGVQYXJzaW5nQ29uZmlnKTogRGF0ZVBhcnNpbmdDb25maWcge1xuICBpZiAoIWlzU3RyaW5nKGNvbmZpZy5faSkpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgY29uc3QgbWF0Y2hlZCA9IGFzcE5ldEpzb25SZWdleC5leGVjKGNvbmZpZy5faSk7XG5cbiAgaWYgKG1hdGNoZWQgIT09IG51bGwpIHtcbiAgICBjb25maWcuX2QgPSBuZXcgRGF0ZSgrbWF0Y2hlZFsxXSk7XG5cbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8gdG9kbzogdXBkYXRlIGxvZ2ljIHByb2Nlc3NpbmdcbiAgLy8gaXNJU08gLT4gY29uZmlnRnJvbUlTT1xuICAvLyBpc1JGQyAtPiBjb25maWdGcm9tUkZDXG5cbiAgY29uZmlnRnJvbUlTTyhjb25maWcpO1xuICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfVxuXG4gIGNvbmZpZ0Zyb21SRkMyODIyKGNvbmZpZyk7XG4gIGlmIChjb25maWcuX2lzVmFsaWQgPT09IGZhbHNlKSB7XG4gICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8gRmluYWwgYXR0ZW1wdCwgdXNlIElucHV0IEZhbGxiYWNrXG4gIC8vIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrKGNvbmZpZyk7XG4gIHJldHVybiBjcmVhdGVJbnZhbGlkKGNvbmZpZyk7XG59XG5cbi8vIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKFxuLy8gICAgICd2YWx1ZSBwcm92aWRlZCBpcyBub3QgaW4gYSByZWNvZ25pemVkIFJGQzI4MjIgb3IgSVNPIGZvcm1hdC4gbW9tZW50IGNvbnN0cnVjdGlvbiBmYWxscyBiYWNrIHRvIGpzIERhdGUoKSwgJyArXG4vLyAgICAgJ3doaWNoIGlzIG5vdCByZWxpYWJsZSBhY3Jvc3MgYWxsIGJyb3dzZXJzIGFuZCB2ZXJzaW9ucy4gTm9uIFJGQzI4MjIvSVNPIGRhdGUgZm9ybWF0cyBhcmUgJyArXG4vLyAgICAgJ2Rpc2NvdXJhZ2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgK1xuLy8gICAgICdodHRwOi8vbW9tZW50anMuY29tL2d1aWRlcy8jL3dhcm5pbmdzL2pzLWRhdGUvIGZvciBtb3JlIGluZm8uJyxcbi8vICAgICBmdW5jdGlvbiAoY29uZmlnKSB7XG4vLyAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGNvbmZpZy5faSArIChjb25maWcuX3VzZVVUQyA/ICcgVVRDJyA6ICcnKSk7XG4vLyAgICAgfVxuLy8gKTtcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import { createLocalOrUTC } from './from-anything';
2
+ import { isDate } from '../utils/type-checks';
3
+ export function parseDate(input, format, localeKey, strict, isUTC) {
4
+ if (isDate(input)) {
5
+ return input;
6
+ }
7
+ const config = createLocalOrUTC(input, format, localeKey, strict, isUTC);
8
+ return config._d;
9
+ }
10
+ export function utcAsLocal(date) {
11
+ if (!(date instanceof Date)) {
12
+ return null;
13
+ }
14
+ return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyL2Nocm9ub3MvY3JlYXRlL2xvY2FsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QyxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQWdCLEVBQUUsTUFBMEIsRUFDNUMsU0FBa0IsRUFBRSxNQUFnQixFQUFFLEtBQWU7SUFDN0UsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDakIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV6RSxPQUFPLE1BQU0sQ0FBQyxFQUFFLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBSTtJQUM3QixJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksSUFBSSxDQUFDLEVBQUU7UUFDM0IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sSUFBSSxJQUFJLENBQ2IsSUFBSSxDQUFDLGNBQWMsRUFBRSxFQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLEVBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFDakIsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUNsQixJQUFJLENBQUMsYUFBYSxFQUFFLEVBQ3BCLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFDcEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQzFCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlTG9jYWxPclVUQyB9IGZyb20gJy4vZnJvbS1hbnl0aGluZyc7XG5pbXBvcnQgeyBEYXRlSW5wdXQgfSBmcm9tICcuLi90ZXN0L2NoYWluJztcbmltcG9ydCB7IGlzRGF0ZSB9IGZyb20gJy4uL3V0aWxzL3R5cGUtY2hlY2tzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlRGF0ZShpbnB1dDogRGF0ZUlucHV0LCBmb3JtYXQ/OiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlS2V5Pzogc3RyaW5nLCBzdHJpY3Q/OiBib29sZWFuLCBpc1VUQz86IGJvb2xlYW4pOiBEYXRlIHtcbiAgaWYgKGlzRGF0ZShpbnB1dCkpIHtcbiAgICByZXR1cm4gaW5wdXQ7XG4gIH1cblxuICBjb25zdCBjb25maWcgPSBjcmVhdGVMb2NhbE9yVVRDKGlucHV0LCBmb3JtYXQsIGxvY2FsZUtleSwgc3RyaWN0LCBpc1VUQyk7XG5cbiAgcmV0dXJuIGNvbmZpZy5fZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHV0Y0FzTG9jYWwoZGF0ZSkge1xuICBpZiAoIShkYXRlIGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBuZXcgRGF0ZShcbiAgICBkYXRlLmdldFVUQ0Z1bGxZZWFyKCksXG4gICAgZGF0ZS5nZXRVVENNb250aCgpLFxuICAgIGRhdGUuZ2V0VVRDRGF0ZSgpLFxuICAgIGRhdGUuZ2V0VVRDSG91cnMoKSxcbiAgICBkYXRlLmdldFVUQ01pbnV0ZXMoKSxcbiAgICBkYXRlLmdldFVUQ1NlY29uZHMoKSxcbiAgICBkYXRlLmdldFVUQ01pbGxpc2Vjb25kcygpXG4gICk7XG59XG4iXX0=