@limetech/lime-elements 40.6.0 → 40.6.2

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 (457) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/{adapt-color-contrast-Beo1IEl_.js → adapt-color-contrast-h6iwOfZd.js} +1 -1
  3. package/dist/cjs/{checkbox.template-BPk8WkQF.js → checkbox.template-CoNVC4Nf.js} +2 -2
  4. package/dist/cjs/{component-CFk7Dfoi.js → component-Cz24PdGy.js} +3 -3
  5. package/dist/cjs/{component-BrNWuGdj.js → component-DNiVfYHV.js} +1 -1
  6. package/dist/cjs/{component-y8swlNNR.js → component-GW2n79GH.js} +1 -1
  7. package/dist/cjs/{component-UyqdiWGc.js → component-xiw46M1b.js} +1 -1
  8. package/dist/cjs/{files-DI4jItxi.js → files-DpGigQ8k.js} +1 -1
  9. package/dist/cjs/{format-bytes-CpUKKU86.js → format-bytes-WTHVI718.js} +1 -4
  10. package/dist/cjs/{hotkeys-BtR8uxvl.js → hotkeys-D761KWnZ.js} +1 -0
  11. package/dist/cjs/{image-resize-CG2fitJT.js → image-resize-JlRLB97I.js} +1 -0
  12. package/dist/cjs/{image.template-DY7qwbuy.js → image.template-DlF-f23b.js} +1 -1
  13. package/dist/cjs/{index--B6-r0uo.js → index-BlsqxTB1.js} +1 -7
  14. package/dist/cjs/index.cjs.js +1 -1
  15. package/dist/cjs/{keycodes-k-EdzcMX.js → keycodes-BQ_AERli.js} +4 -0
  16. package/dist/cjs/{language-CaqPKPyW.js → language-v-MMS6ym.js} +1 -1
  17. package/dist/cjs/lime-elements.cjs.js +2 -2
  18. package/dist/cjs/limel-3d-hover-effect-glow.cjs.entry.js +2 -2
  19. package/dist/cjs/limel-action-bar_3.cjs.entry.js +20 -18
  20. package/dist/cjs/limel-ai-avatar.cjs.entry.js +5 -5
  21. package/dist/cjs/limel-badge.cjs.entry.js +3 -3
  22. package/dist/cjs/limel-banner.cjs.entry.js +2 -2
  23. package/dist/cjs/limel-breadcrumbs_6.cjs.entry.js +86 -86
  24. package/dist/cjs/limel-button-group.cjs.entry.js +3 -3
  25. package/dist/cjs/limel-button.cjs.entry.js +4 -4
  26. package/dist/cjs/limel-callout.cjs.entry.js +6 -6
  27. package/dist/cjs/limel-card.cjs.entry.js +8 -7
  28. package/dist/cjs/limel-chart.cjs.entry.js +5 -5
  29. package/dist/cjs/limel-checkbox.cjs.entry.js +12 -10
  30. package/dist/cjs/limel-chip-set.cjs.entry.js +35 -44
  31. package/dist/cjs/limel-chip_2.cjs.entry.js +10 -10
  32. package/dist/cjs/limel-circular-progress.cjs.entry.js +2 -2
  33. package/dist/cjs/limel-code-diff.cjs.entry.js +25 -28
  34. package/dist/cjs/limel-code-editor.cjs.entry.js +17 -12
  35. package/dist/cjs/limel-collapsible-section.cjs.entry.js +8 -8
  36. package/dist/cjs/limel-color-picker-palette.cjs.entry.js +3 -3
  37. package/dist/cjs/limel-color-picker.cjs.entry.js +6 -5
  38. package/dist/cjs/limel-config.cjs.entry.js +3 -3
  39. package/dist/cjs/limel-date-picker.cjs.entry.js +12 -15
  40. package/dist/cjs/limel-dialog.cjs.entry.js +8 -11
  41. package/dist/cjs/limel-dock-button.cjs.entry.js +6 -11
  42. package/dist/cjs/limel-dock.cjs.entry.js +3 -3
  43. package/dist/cjs/limel-drag-handle.cjs.entry.js +6 -6
  44. package/dist/cjs/limel-dynamic-label.cjs.entry.js +1 -1
  45. package/dist/cjs/limel-email-viewer.cjs.entry.js +11 -17
  46. package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +11 -12
  47. package/dist/cjs/limel-file-viewer.cjs.entry.js +1098 -1146
  48. package/dist/cjs/limel-file.cjs.entry.js +17 -16
  49. package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +100 -94
  50. package/dist/cjs/limel-flex-container.cjs.entry.js +2 -2
  51. package/dist/cjs/limel-form.cjs.entry.js +65 -50
  52. package/dist/cjs/limel-grid.cjs.entry.js +2 -2
  53. package/dist/cjs/limel-header.cjs.entry.js +2 -2
  54. package/dist/cjs/limel-help-content.cjs.entry.js +2 -2
  55. package/dist/cjs/limel-help.cjs.entry.js +3 -3
  56. package/dist/cjs/limel-helper-line_3.cjs.entry.js +14 -16
  57. package/dist/cjs/limel-hotkey_4.cjs.entry.js +23 -23
  58. package/dist/cjs/limel-icon-button.cjs.entry.js +4 -4
  59. package/dist/cjs/limel-icon.cjs.entry.js +15 -13
  60. package/dist/cjs/limel-info-tile.cjs.entry.js +10 -10
  61. package/dist/cjs/limel-list-item.cjs.entry.js +10 -10
  62. package/dist/cjs/limel-markdown.cjs.entry.js +25 -22
  63. package/dist/cjs/limel-masonry-layout.cjs.entry.js +6 -5
  64. package/dist/cjs/limel-menu-item-meta.cjs.entry.js +3 -3
  65. package/dist/cjs/limel-pagination-jump.cjs.entry.js +18 -16
  66. package/dist/cjs/limel-pagination.cjs.entry.js +10 -9
  67. package/dist/cjs/limel-picker.cjs.entry.js +32 -30
  68. package/dist/cjs/limel-popover_2.cjs.entry.js +26 -22
  69. package/dist/cjs/limel-profile-picture.cjs.entry.js +12 -11
  70. package/dist/cjs/limel-progress-flow-item.cjs.entry.js +1 -1
  71. package/dist/cjs/limel-progress-flow.cjs.entry.js +11 -10
  72. package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +475 -407
  73. package/dist/cjs/limel-radio-button-group.cjs.entry.js +2 -2
  74. package/dist/cjs/limel-radio-button.cjs.entry.js +3 -3
  75. package/dist/cjs/limel-scroller.cjs.entry.js +180 -0
  76. package/dist/cjs/limel-select.cjs.entry.js +20 -20
  77. package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
  78. package/dist/cjs/limel-slider.cjs.entry.js +18 -27
  79. package/dist/cjs/limel-snackbar.cjs.entry.js +5 -5
  80. package/dist/cjs/limel-split-button.cjs.entry.js +1 -1
  81. package/dist/cjs/limel-switch.cjs.entry.js +3 -3
  82. package/dist/cjs/limel-tab-bar.cjs.entry.js +235 -2036
  83. package/dist/cjs/limel-tab-panel.cjs.entry.js +12 -9
  84. package/dist/cjs/limel-table.cjs.entry.js +527 -106
  85. package/dist/cjs/limel-text-editor-link-menu.cjs.entry.js +16 -15
  86. package/dist/cjs/limel-text-editor.cjs.entry.js +3 -3
  87. package/dist/cjs/loader.cjs.js +2 -2
  88. package/dist/cjs/{make-enter-clickable-NuTMC9MU.js → make-enter-clickable-BZHEWIJD.js} +19 -12
  89. package/dist/cjs/{markdown-exporter-9p7d3Q76.js → markdown-exporter-C-UW43FF.js} +1 -1
  90. package/dist/cjs/{markdown-parser-Cgv5Y9Z4.js → markdown-parser-ssDij8_l.js} +24 -22
  91. package/dist/cjs/{moment-CqRdiK10.js → moment-Cfsz2WF1.js} +1062 -833
  92. package/dist/cjs/{ponyfill-BgIFyUG5.js → ponyfill-CHp7Zocr.js} +0 -1
  93. package/dist/cjs/{random-string-BTzDB2ee.js → random-string-CFCtFh5l.js} +1 -0
  94. package/dist/cjs/{render-list-component-5ZKWpCnM.js → render-list-component-BtAliHQp.js} +3 -5
  95. package/dist/cjs/{sv-BSR4W58y.js → sv-Co78RX70.js} +31 -3
  96. package/dist/cjs/{translations-DFFpR6AZ.js → translations-CNTWud2a.js} +5 -8
  97. package/dist/collection/collection-manifest.json +1 -0
  98. package/dist/collection/components/3d-hover-effect-glow/3d-hover-effect-glow.js +1 -1
  99. package/dist/collection/components/action-bar/action-bar-item/action-bar-item.js +8 -7
  100. package/dist/collection/components/action-bar/action-bar-item/action-bar-overflow-menu.js +1 -1
  101. package/dist/collection/components/action-bar/action-bar.js +6 -5
  102. package/dist/collection/components/ai-avatar/ai-avatar.js +1 -1
  103. package/dist/collection/components/badge/badge.js +2 -2
  104. package/dist/collection/components/banner/banner.js +1 -1
  105. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  106. package/dist/collection/components/button/button.js +2 -2
  107. package/dist/collection/components/button-group/button-group.js +1 -1
  108. package/dist/collection/components/callout/callout.js +1 -1
  109. package/dist/collection/components/card/card.js +6 -5
  110. package/dist/collection/components/checkbox/checkbox.js +9 -7
  111. package/dist/collection/components/checkbox/checkbox.template.js +1 -1
  112. package/dist/collection/components/chip/chip.js +1 -1
  113. package/dist/collection/components/chip-set/chip-set-input-helpers.js +18 -21
  114. package/dist/collection/components/chip-set/chip-set.js +7 -13
  115. package/dist/collection/components/circular-progress/circular-progress.js +1 -1
  116. package/dist/collection/components/code-diff/code-diff.js +19 -22
  117. package/dist/collection/components/code-diff/diff-engine.js +2 -2
  118. package/dist/collection/components/code-editor/code-editor.js +8 -3
  119. package/dist/collection/components/collapsible-section/collapsible-section.js +1 -1
  120. package/dist/collection/components/color-picker/color-picker-palette.js +2 -2
  121. package/dist/collection/components/color-picker/color-picker.js +5 -4
  122. package/dist/collection/components/config/config.js +2 -2
  123. package/dist/collection/components/date-picker/date-picker.js +3 -6
  124. package/dist/collection/components/date-picker/flatpickr-adapter/deferred-destroy.js +4 -3
  125. package/dist/collection/components/date-picker/flatpickr-adapter/flatpickr-adapter.js +1 -1
  126. package/dist/collection/components/date-picker/pickers/month-picker.js +40 -36
  127. package/dist/collection/components/date-picker/pickers/quarter-picker.js +35 -30
  128. package/dist/collection/components/date-picker/pickers/year-picker.js +16 -20
  129. package/dist/collection/components/dialog/dialog.js +4 -7
  130. package/dist/collection/components/dock/dock-button/dock-button.js +4 -9
  131. package/dist/collection/components/dock/dock.js +2 -2
  132. package/dist/collection/components/drag-handle/drag-handle.js +1 -1
  133. package/dist/collection/components/email-viewer/email-loader.js +14 -10
  134. package/dist/collection/components/email-viewer/email-viewer.js +1 -1
  135. package/dist/collection/components/email-viewer/sanitize-email-html.js +1 -4
  136. package/dist/collection/components/email-viewer/split-email-address-list.js +4 -10
  137. package/dist/collection/components/file/file.js +11 -10
  138. package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
  139. package/dist/collection/components/file-input/file-input.js +7 -8
  140. package/dist/collection/components/file-viewer/file-viewer.js +12 -9
  141. package/dist/collection/components/flex-container/flex-container.js +1 -1
  142. package/dist/collection/components/form/fields/schema-field.js +1 -1
  143. package/dist/collection/components/form/form.js +2 -5
  144. package/dist/collection/components/form/form.test-schemas.js +8 -10
  145. package/dist/collection/components/form/templates/array-field.js +7 -9
  146. package/dist/collection/components/form/templates/common.js +19 -19
  147. package/dist/collection/components/form/templates/object-field.js +1 -1
  148. package/dist/collection/components/form/validation-display.js +2 -2
  149. package/dist/collection/components/form/validators/format.js +1 -0
  150. package/dist/collection/components/form/widgets/code-editor.js +6 -9
  151. package/dist/collection/components/form/widgets/date-picker.js +1 -3
  152. package/dist/collection/components/grid/grid.js +1 -1
  153. package/dist/collection/components/header/header.js +1 -1
  154. package/dist/collection/components/help/help-content.js +1 -1
  155. package/dist/collection/components/help/help.js +2 -2
  156. package/dist/collection/components/helper-line/helper-line.js +3 -3
  157. package/dist/collection/components/hotkey/hotkey.js +1 -1
  158. package/dist/collection/components/icon/icon.js +11 -9
  159. package/dist/collection/components/icon-button/icon-button.js +1 -1
  160. package/dist/collection/components/info-tile/info-tile.js +9 -9
  161. package/dist/collection/components/input-field/input-field.js +11 -11
  162. package/dist/collection/components/list/list-renderer.js +5 -7
  163. package/dist/collection/components/list/list.js +2 -2
  164. package/dist/collection/components/list-item/list-item.js +2 -2
  165. package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
  166. package/dist/collection/components/markdown/hydrate-custom-elements.js +6 -5
  167. package/dist/collection/components/markdown/image-intersection-observer.js +9 -8
  168. package/dist/collection/components/markdown/image-markdown-plugin.js +9 -7
  169. package/dist/collection/components/markdown/link-markdown-plugin.js +11 -10
  170. package/dist/collection/components/markdown/markdown.js +6 -5
  171. package/dist/collection/components/markdown/remove-empty-paragraphs-plugin.js +4 -5
  172. package/dist/collection/components/masonry-layout/masonry-layout.js +5 -4
  173. package/dist/collection/components/menu/menu.js +48 -46
  174. package/dist/collection/components/menu-list/menu-list-renderer.js +8 -8
  175. package/dist/collection/components/menu-list/menu-list.js +1 -1
  176. package/dist/collection/components/menu-surface/menu-surface.js +6 -8
  177. package/dist/collection/components/notched-outline/notched-outline.js +1 -1
  178. package/dist/collection/components/pagination/jump/pagination-jump.js +13 -11
  179. package/dist/collection/components/pagination/pagination.js +5 -4
  180. package/dist/collection/components/picker/picker.js +25 -23
  181. package/dist/collection/components/popover/popover.js +13 -10
  182. package/dist/collection/components/popover-surface/popover-surface.js +1 -1
  183. package/dist/collection/components/portal/contains.js +9 -8
  184. package/dist/collection/components/portal/portal.js +16 -16
  185. package/dist/collection/components/profile-picture/profile-picture.js +4 -3
  186. package/dist/collection/components/progress-flow/progress-flow.js +10 -9
  187. package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
  188. package/dist/collection/components/radio-button-group/radio-button.js +2 -2
  189. package/dist/collection/components/scroller/scroller.css +317 -0
  190. package/dist/collection/components/scroller/scroller.js +284 -0
  191. package/dist/collection/components/select/select.js +13 -11
  192. package/dist/collection/components/select/select.template.js +1 -3
  193. package/dist/collection/components/slider/get-percentage-class.js +9 -18
  194. package/dist/collection/components/slider/slider.js +2 -2
  195. package/dist/collection/components/tab-bar/tab-bar.css +7 -289
  196. package/dist/collection/components/tab-bar/tab-bar.js +98 -128
  197. package/dist/collection/components/tab-panel/tab-panel.js +11 -8
  198. package/dist/collection/components/table/columns.js +1 -3
  199. package/dist/collection/components/table/element-pool.js +1 -1
  200. package/dist/collection/components/table/table-selection.js +6 -5
  201. package/dist/collection/components/table/table.css +15 -17
  202. package/dist/collection/components/table/table.js +44 -39
  203. package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +11 -10
  204. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-command-utils/list-utils.js +1 -1
  205. package/dist/collection/components/text-editor/prosemirror-adapter/menu/menu-commands.js +6 -10
  206. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/inserter.js +37 -40
  207. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/image/node.js +2 -1
  208. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/link/link-plugin.js +21 -20
  209. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/menu-state-tracking-plugin.js +6 -5
  210. package/dist/collection/components/text-editor/prosemirror-adapter/plugins/trigger/factory-helpers/detect-trigger-removal.js +15 -14
  211. package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +40 -34
  212. package/dist/collection/components/text-editor/text-editor.js +1 -1
  213. package/dist/collection/components/text-editor/utils/metadata-utils.js +1 -1
  214. package/dist/collection/components/text-editor/utils/plugin-factory.js +3 -3
  215. package/dist/collection/components/tooltip/tooltip-content.js +1 -1
  216. package/dist/collection/components/tooltip/tooltip.js +2 -2
  217. package/dist/collection/global/icon-cache/factory.js +2 -3
  218. package/dist/collection/global/icon-cache/in-memory-icon-cache.js +2 -0
  219. package/dist/collection/global/translations.js +1 -3
  220. package/dist/collection/translations/fr.js +3 -3
  221. package/dist/collection/util/adapt-color-contrast.js +1 -1
  222. package/dist/collection/util/files.js +1 -1
  223. package/dist/collection/util/format-bytes.js +1 -4
  224. package/dist/collection/util/hotkeys.js +1 -0
  225. package/dist/collection/util/image-resize.js +1 -0
  226. package/dist/collection/util/keyboard-navigation.js +144 -0
  227. package/dist/collection/util/keycodes.js +2 -0
  228. package/dist/collection/util/language.js +1 -1
  229. package/dist/collection/util/make-enter-clickable.js +19 -12
  230. package/dist/collection/util/random-string.js +1 -0
  231. package/dist/collection/util/render-list-component.js +2 -4
  232. package/dist/esm/{adapt-color-contrast-Dgcw_h7C.js → adapt-color-contrast-BQoih_t0.js} +1 -1
  233. package/dist/esm/{checkbox.template-Cx_3u92S.js → checkbox.template-IDyv2bgn.js} +2 -2
  234. package/dist/esm/{component-wGVqvUmL.js → component-CVihTrav.js} +3 -3
  235. package/dist/esm/{component-7QB0OUSF.js → component-CrjPGt1I.js} +1 -1
  236. package/dist/esm/{component-D4qgwaTf.js → component-CyFeUQ0l.js} +1 -1
  237. package/dist/esm/{component-B2Vy44Z3.js → component-kP1jCDLp.js} +1 -1
  238. package/dist/esm/{files-DnkFEKoB.js → files-CKnLqPDj.js} +1 -1
  239. package/dist/esm/{format-bytes-u_sd2HMb.js → format-bytes-24yUSW40.js} +1 -4
  240. package/dist/esm/{hotkeys-BxrRWYts.js → hotkeys-DjmlD0Mw.js} +1 -0
  241. package/dist/esm/{image-resize-BTSG--2-.js → image-resize-Dv2HOgWN.js} +1 -0
  242. package/dist/esm/{image.template-wqMwmOF-.js → image.template-BGjw97m_.js} +1 -1
  243. package/dist/esm/{index-Bnc9lzk2.js → index-BU9IJqli.js} +1 -7
  244. package/dist/esm/index.js +1 -1
  245. package/dist/esm/{keycodes-C4_9qUMP.js → keycodes-DQ5DmW_Y.js} +3 -1
  246. package/dist/esm/{language-C3hECvXE.js → language-ChagAaNf.js} +1 -1
  247. package/dist/esm/lime-elements.js +3 -3
  248. package/dist/esm/limel-3d-hover-effect-glow.entry.js +2 -2
  249. package/dist/esm/limel-action-bar_3.entry.js +20 -18
  250. package/dist/esm/limel-ai-avatar.entry.js +5 -5
  251. package/dist/esm/limel-badge.entry.js +3 -3
  252. package/dist/esm/limel-banner.entry.js +2 -2
  253. package/dist/esm/limel-breadcrumbs_6.entry.js +86 -86
  254. package/dist/esm/limel-button-group.entry.js +3 -3
  255. package/dist/esm/limel-button.entry.js +4 -4
  256. package/dist/esm/limel-callout.entry.js +6 -6
  257. package/dist/esm/limel-card.entry.js +8 -7
  258. package/dist/esm/limel-chart.entry.js +5 -5
  259. package/dist/esm/limel-checkbox.entry.js +12 -10
  260. package/dist/esm/limel-chip-set.entry.js +35 -44
  261. package/dist/esm/limel-chip_2.entry.js +10 -10
  262. package/dist/esm/limel-circular-progress.entry.js +2 -2
  263. package/dist/esm/limel-code-diff.entry.js +25 -28
  264. package/dist/esm/limel-code-editor.entry.js +17 -12
  265. package/dist/esm/limel-collapsible-section.entry.js +8 -8
  266. package/dist/esm/limel-color-picker-palette.entry.js +3 -3
  267. package/dist/esm/limel-color-picker.entry.js +6 -5
  268. package/dist/esm/limel-config.entry.js +3 -3
  269. package/dist/esm/limel-date-picker.entry.js +12 -15
  270. package/dist/esm/limel-dialog.entry.js +8 -11
  271. package/dist/esm/limel-dock-button.entry.js +6 -11
  272. package/dist/esm/limel-dock.entry.js +3 -3
  273. package/dist/esm/limel-drag-handle.entry.js +6 -6
  274. package/dist/esm/limel-dynamic-label.entry.js +1 -1
  275. package/dist/esm/limel-email-viewer.entry.js +11 -17
  276. package/dist/esm/limel-file-dropzone_2.entry.js +11 -12
  277. package/dist/esm/limel-file-viewer.entry.js +1098 -1146
  278. package/dist/esm/limel-file.entry.js +17 -16
  279. package/dist/esm/limel-flatpickr-adapter.entry.js +100 -94
  280. package/dist/esm/limel-flex-container.entry.js +2 -2
  281. package/dist/esm/limel-form.entry.js +65 -50
  282. package/dist/esm/limel-grid.entry.js +2 -2
  283. package/dist/esm/limel-header.entry.js +2 -2
  284. package/dist/esm/limel-help-content.entry.js +2 -2
  285. package/dist/esm/limel-help.entry.js +3 -3
  286. package/dist/esm/limel-helper-line_3.entry.js +14 -16
  287. package/dist/esm/limel-hotkey_4.entry.js +23 -23
  288. package/dist/esm/limel-icon-button.entry.js +4 -4
  289. package/dist/esm/limel-icon.entry.js +15 -13
  290. package/dist/esm/limel-info-tile.entry.js +10 -10
  291. package/dist/esm/limel-list-item.entry.js +10 -10
  292. package/dist/esm/limel-markdown.entry.js +25 -22
  293. package/dist/esm/limel-masonry-layout.entry.js +6 -5
  294. package/dist/esm/limel-menu-item-meta.entry.js +3 -3
  295. package/dist/esm/limel-pagination-jump.entry.js +18 -16
  296. package/dist/esm/limel-pagination.entry.js +10 -9
  297. package/dist/esm/limel-picker.entry.js +32 -30
  298. package/dist/esm/limel-popover_2.entry.js +26 -22
  299. package/dist/esm/limel-profile-picture.entry.js +12 -11
  300. package/dist/esm/limel-progress-flow-item.entry.js +1 -1
  301. package/dist/esm/limel-progress-flow.entry.js +11 -10
  302. package/dist/esm/limel-prosemirror-adapter.entry.js +475 -407
  303. package/dist/esm/limel-radio-button-group.entry.js +2 -2
  304. package/dist/esm/limel-radio-button.entry.js +3 -3
  305. package/dist/esm/limel-scroller.entry.js +178 -0
  306. package/dist/esm/limel-select.entry.js +20 -20
  307. package/dist/esm/limel-shortcut.entry.js +1 -1
  308. package/dist/esm/limel-slider.entry.js +18 -27
  309. package/dist/esm/limel-snackbar.entry.js +5 -5
  310. package/dist/esm/limel-split-button.entry.js +1 -1
  311. package/dist/esm/limel-switch.entry.js +3 -3
  312. package/dist/esm/limel-tab-bar.entry.js +235 -2036
  313. package/dist/esm/limel-tab-panel.entry.js +12 -9
  314. package/dist/esm/limel-table.entry.js +527 -106
  315. package/dist/esm/limel-text-editor-link-menu.entry.js +16 -15
  316. package/dist/esm/limel-text-editor.entry.js +3 -3
  317. package/dist/esm/loader.js +3 -3
  318. package/dist/esm/{make-enter-clickable-BgTwPGeH.js → make-enter-clickable-CIf8aGSd.js} +19 -12
  319. package/dist/esm/{markdown-exporter--3_MaqwD.js → markdown-exporter-DblYRMhY.js} +1 -1
  320. package/dist/esm/{markdown-parser-DCf-3dKZ.js → markdown-parser-CAPDx7i8.js} +24 -22
  321. package/dist/esm/{moment-DQRNe8qq.js → moment-_DadZLWp.js} +1062 -833
  322. package/dist/esm/{ponyfill-ChRGk668.js → ponyfill-6YuZiAPi.js} +1 -1
  323. package/dist/esm/{random-string-JbKhhoXs.js → random-string-BrjD-ITe.js} +1 -0
  324. package/dist/esm/{render-list-component-cicbMp0l.js → render-list-component-J1IzNpbv.js} +3 -5
  325. package/dist/esm/{sv-CY-6-yEp.js → sv-DpsDSi7k.js} +31 -3
  326. package/dist/esm/{translations-DMtX4tTX.js → translations-Y4i8PVc9.js} +5 -8
  327. package/dist/lime-elements/index.esm.js +1 -1
  328. package/dist/lime-elements/lime-elements.esm.js +1 -1
  329. package/dist/lime-elements/p-02a06cf7.entry.js +1 -0
  330. package/dist/lime-elements/{p-3916b316.entry.js → p-03cb609e.entry.js} +1 -1
  331. package/dist/lime-elements/p-05038bbb.entry.js +1 -0
  332. package/dist/lime-elements/{p-835149c4.entry.js → p-0d6925f4.entry.js} +1 -1
  333. package/dist/lime-elements/p-0e13ec91.entry.js +1 -0
  334. package/dist/lime-elements/p-0ece667e.entry.js +1 -0
  335. package/dist/lime-elements/{p-19344984.entry.js → p-107654bb.entry.js} +4 -4
  336. package/dist/lime-elements/p-120ca628.entry.js +1 -0
  337. package/dist/lime-elements/{p-BwJGg-WI.js → p-1CgnIGyd.js} +4 -4
  338. package/dist/lime-elements/p-22fd1c87.entry.js +1 -0
  339. package/dist/lime-elements/p-24yUSW40.js +1 -0
  340. package/dist/lime-elements/{p-f717cd7a.entry.js → p-271662d4.entry.js} +1 -1
  341. package/dist/lime-elements/{p-c2a60508.entry.js → p-29c73bdf.entry.js} +1 -1
  342. package/dist/lime-elements/{p-deceda00.entry.js → p-2a902e77.entry.js} +1 -1
  343. package/dist/lime-elements/{p-d0cec424.entry.js → p-2b033dfa.entry.js} +1 -1
  344. package/dist/lime-elements/{p-acba5700.entry.js → p-2b2253d4.entry.js} +1 -1
  345. package/dist/lime-elements/p-2e33d2a4.entry.js +1 -0
  346. package/dist/lime-elements/p-32a050a3.entry.js +1 -0
  347. package/dist/lime-elements/{p-3735111e.entry.js → p-3cfe0eaf.entry.js} +1 -1
  348. package/dist/lime-elements/{p-fbcd99a3.entry.js → p-3d3bdf45.entry.js} +1 -1
  349. package/dist/lime-elements/p-45461ec5.entry.js +1 -0
  350. package/dist/lime-elements/p-45c39fb4.entry.js +1 -0
  351. package/dist/lime-elements/p-45fde7a1.entry.js +1 -0
  352. package/dist/lime-elements/p-48afa6b7.entry.js +1 -0
  353. package/dist/lime-elements/{p-f04f7c8e.entry.js → p-4a88d365.entry.js} +1 -1
  354. package/dist/lime-elements/p-4b75e653.entry.js +1 -0
  355. package/dist/lime-elements/{p-5698e493.entry.js → p-4ecbc9f4.entry.js} +1 -1
  356. package/dist/lime-elements/{p-2e568c56.entry.js → p-54a9f48f.entry.js} +1 -1
  357. package/dist/lime-elements/{p-0fba64eb.entry.js → p-5df21b25.entry.js} +2 -2
  358. package/dist/lime-elements/p-5e448070.entry.js +1 -0
  359. package/dist/lime-elements/{p-408c4dcb.entry.js → p-5f5c6e7d.entry.js} +1 -1
  360. package/dist/lime-elements/{p-052c3bc6.entry.js → p-681cb6de.entry.js} +1 -1
  361. package/dist/lime-elements/{p-ChRGk668.js → p-6YuZiAPi.js} +3 -3
  362. package/dist/lime-elements/{p-90df3e1b.entry.js → p-6d9961f7.entry.js} +1 -1
  363. package/dist/lime-elements/p-74060535.entry.js +159 -0
  364. package/dist/lime-elements/{p-74bd0c1a.entry.js → p-7b4351f6.entry.js} +1 -1
  365. package/dist/lime-elements/{p-3fd7e8aa.entry.js → p-7eab1341.entry.js} +1 -1
  366. package/dist/lime-elements/p-7fa85785.entry.js +23 -0
  367. package/dist/lime-elements/{p-35fa1063.entry.js → p-85318636.entry.js} +1 -1
  368. package/dist/lime-elements/{p-4ffbfc79.entry.js → p-8ac79ef5.entry.js} +1 -1
  369. package/dist/lime-elements/{p-4902fb3f.entry.js → p-9218fa6a.entry.js} +1 -1
  370. package/dist/lime-elements/{p-38b09f87.entry.js → p-9415411e.entry.js} +1 -1
  371. package/dist/lime-elements/{p-be8610ff.entry.js → p-958396b5.entry.js} +1 -1
  372. package/dist/lime-elements/p-95ccd9e7.entry.js +1 -0
  373. package/dist/lime-elements/p-970e0810.entry.js +1 -0
  374. package/dist/lime-elements/{p-cb407bef.entry.js → p-9afa4721.entry.js} +1 -1
  375. package/dist/lime-elements/{p-54dcf46f.entry.js → p-9c8c2fb7.entry.js} +1 -1
  376. package/dist/lime-elements/p-9e084e7c.entry.js +1 -0
  377. package/dist/lime-elements/{p-B8hoCfhT.js → p-B3YP9GOq.js} +1 -1
  378. package/dist/lime-elements/{p-Dgcw_h7C.js → p-BQoih_t0.js} +1 -1
  379. package/dist/lime-elements/{p-Bnc9lzk2.js → p-BU9IJqli.js} +1 -1
  380. package/dist/lime-elements/{p-BN1-aIOw.js → p-BZXGwiAr.js} +1 -1
  381. package/dist/lime-elements/{p-CGVVDGcv.js → p-Bkvc4sus.js} +1 -1
  382. package/dist/lime-elements/{p-BPzhuHcl.js → p-Bvyt2bmV.js} +1 -1
  383. package/dist/lime-elements/{p-DZkKQUDM.js → p-C1FFnUvf.js} +3 -3
  384. package/dist/lime-elements/{p-BgTwPGeH.js → p-CIf8aGSd.js} +1 -1
  385. package/dist/lime-elements/{p-C3hECvXE.js → p-ChagAaNf.js} +1 -1
  386. package/dist/lime-elements/{p-C9yTLqR8.js → p-CmtleG1y.js} +1 -1
  387. package/dist/lime-elements/{p-C4_9qUMP.js → p-DQ5DmW_Y.js} +1 -1
  388. package/dist/lime-elements/p-DTcfed02.js +3 -0
  389. package/dist/lime-elements/{p-BY85K-4J.js → p-DqQOawxc.js} +1 -1
  390. package/dist/lime-elements/{p-CC4Usa-Q.js → p-I0PrvthC.js} +1 -1
  391. package/dist/lime-elements/p-N9vxZMhe.js +1 -0
  392. package/dist/lime-elements/{p-DsDkl4Sy.js → p-ZDFVISfu.js} +3 -3
  393. package/dist/lime-elements/p-a1c69e0c.entry.js +1 -0
  394. package/dist/lime-elements/{p-2daf0482.entry.js → p-a1d1470c.entry.js} +1 -1
  395. package/dist/lime-elements/{p-cef66e53.entry.js → p-a2e6f16e.entry.js} +1 -1
  396. package/dist/lime-elements/{p-36ce4fbc.entry.js → p-a42f8c2d.entry.js} +1 -1
  397. package/dist/lime-elements/p-a550ba18.entry.js +1 -0
  398. package/dist/lime-elements/{p-d146feda.entry.js → p-a65eb58e.entry.js} +1 -1
  399. package/dist/lime-elements/{p-03fb2603.entry.js → p-b22b52a1.entry.js} +1 -1
  400. package/dist/lime-elements/{p-c2a3ca7c.entry.js → p-b6d39581.entry.js} +1 -1
  401. package/dist/lime-elements/{p-8475a3b8.entry.js → p-c439b68b.entry.js} +1 -1
  402. package/dist/lime-elements/p-d19c7a3a.entry.js +1 -0
  403. package/dist/lime-elements/{p-d3bd4b80.entry.js → p-d1b7cc55.entry.js} +3 -3
  404. package/dist/lime-elements/{p-7cbf50fc.entry.js → p-d1e5dd12.entry.js} +1 -1
  405. package/dist/lime-elements/p-de4719a6.entry.js +1 -0
  406. package/dist/lime-elements/{p-b81a2728.entry.js → p-e02e2c5f.entry.js} +1 -1
  407. package/dist/lime-elements/{p-d351b9ae.entry.js → p-e6a34047.entry.js} +1 -1
  408. package/dist/lime-elements/p-eF09GxA_.js +1 -0
  409. package/dist/lime-elements/{p-8fa9c9ea.entry.js → p-ee719744.entry.js} +1 -1
  410. package/dist/lime-elements/p-f3cae1e7.entry.js +1 -0
  411. package/dist/lime-elements/{p-8115da75.entry.js → p-f4a0b1bc.entry.js} +1 -1
  412. package/dist/lime-elements/{p-4855dc9b.entry.js → p-f82f72e7.entry.js} +1 -1
  413. package/dist/lime-elements/{p-2d84ea04.entry.js → p-f97ec7a5.entry.js} +1 -1
  414. package/dist/lime-elements/{p-21109d9b.entry.js → p-fdd674fc.entry.js} +1 -1
  415. package/dist/lime-elements/{p-459eea13.entry.js → p-fdec09e9.entry.js} +1 -1
  416. package/dist/lime-elements/{p-2f57c3fa.entry.js → p-fe492ff3.entry.js} +1 -1
  417. package/dist/lime-elements/{p-65cded0e.entry.js → p-ff1a8b2e.entry.js} +1 -1
  418. package/dist/types/components/chip-set/chip-set-input-helpers.d.ts +1 -1
  419. package/dist/types/components/pagination/jump/pagination-jump.d.ts +1 -1
  420. package/dist/types/components/scroller/scroller.d.ts +67 -0
  421. package/dist/types/components/tab-bar/tab-bar.d.ts +23 -21
  422. package/dist/types/components.d.ts +132 -0
  423. package/dist/types/global/icon-cache/factory.d.ts +2 -2
  424. package/dist/types/global/translations.d.ts +2 -2
  425. package/dist/types/util/keyboard-navigation.d.ts +105 -0
  426. package/dist/types/util/keycodes.d.ts +2 -0
  427. package/package.json +12 -12
  428. package/dist/lime-elements/p-1e93473a.entry.js +0 -1
  429. package/dist/lime-elements/p-20658306.entry.js +0 -1
  430. package/dist/lime-elements/p-26c5c6b9.entry.js +0 -1
  431. package/dist/lime-elements/p-452b9b01.entry.js +0 -1
  432. package/dist/lime-elements/p-4aae63bd.entry.js +0 -1
  433. package/dist/lime-elements/p-507cc8a1.entry.js +0 -159
  434. package/dist/lime-elements/p-531b6a64.entry.js +0 -1
  435. package/dist/lime-elements/p-54793c06.entry.js +0 -1
  436. package/dist/lime-elements/p-5d974afa.entry.js +0 -1
  437. package/dist/lime-elements/p-66b125f2.entry.js +0 -1
  438. package/dist/lime-elements/p-7e212fa7.entry.js +0 -1
  439. package/dist/lime-elements/p-82696d24.entry.js +0 -1
  440. package/dist/lime-elements/p-9ac39039.entry.js +0 -1
  441. package/dist/lime-elements/p-9b631363.entry.js +0 -1
  442. package/dist/lime-elements/p-DQJU9gzh.js +0 -1
  443. package/dist/lime-elements/p-DpJgXIWf.js +0 -1
  444. package/dist/lime-elements/p-a1de9bbe.entry.js +0 -1
  445. package/dist/lime-elements/p-a71f6e87.entry.js +0 -67
  446. package/dist/lime-elements/p-bd7b3f8e.entry.js +0 -1
  447. package/dist/lime-elements/p-c72e5007.entry.js +0 -1
  448. package/dist/lime-elements/p-cafec335.entry.js +0 -1
  449. package/dist/lime-elements/p-d6dadc61.entry.js +0 -1
  450. package/dist/lime-elements/p-d93b7b9f.entry.js +0 -23
  451. package/dist/lime-elements/p-dc9cd793.entry.js +0 -1
  452. package/dist/lime-elements/p-dd62042a.entry.js +0 -1
  453. package/dist/lime-elements/p-u_sd2HMb.js +0 -1
  454. package/dist/lime-elements/p-zo6O9LC9.js +0 -3
  455. /package/dist/lime-elements/{p-JbKhhoXs.js → p-BrjD-ITe.js} +0 -0
  456. /package/dist/lime-elements/{p-BxrRWYts.js → p-DjmlD0Mw.js} +0 -0
  457. /package/dist/lime-elements/{p-BTSG--2-.js → p-Dv2HOgWN.js} +0 -0
@@ -126,6 +126,7 @@ function requireMoment () {
126
126
  nullInput: false,
127
127
  invalidEra: null,
128
128
  invalidMonth: null,
129
+ invalidOffset: null,
129
130
  invalidFormat: false,
130
131
  userInvalidated: false,
131
132
  iso: false,
@@ -163,7 +164,7 @@ function requireMoment () {
163
164
  };
164
165
  }
165
166
 
166
- function isValid(m) {
167
+ function isValid$2(m) {
167
168
  var flags = null,
168
169
  parsedParts = false,
169
170
  isNowValid = m._d && !isNaN(m._d.getTime());
@@ -177,6 +178,7 @@ function requireMoment () {
177
178
  !flags.empty &&
178
179
  !flags.invalidEra &&
179
180
  !flags.invalidMonth &&
181
+ !flags.invalidOffset &&
180
182
  !flags.invalidWeekday &&
181
183
  !flags.weekdayMismatch &&
182
184
  !flags.nullInput &&
@@ -199,7 +201,7 @@ function requireMoment () {
199
201
  return m._isValid;
200
202
  }
201
203
 
202
- function createInvalid(flags) {
204
+ function createInvalid$1(flags) {
203
205
  var m = createUTC(NaN);
204
206
  if (flags != null) {
205
207
  extend(getParsingFlags(m), flags);
@@ -345,7 +347,7 @@ function requireMoment () {
345
347
  hooks.deprecationHandler(name, msg);
346
348
  }
347
349
  if (!deprecations[name]) {
348
- warn(msg);
350
+ warn(msg + '\n' + new Error().stack);
349
351
  deprecations[name] = true;
350
352
  }
351
353
  }
@@ -360,93 +362,111 @@ function requireMoment () {
360
362
  );
361
363
  }
362
364
 
363
- function set(config) {
364
- var prop, i;
365
- for (i in config) {
366
- if (hasOwnProp(config, i)) {
367
- prop = config[i];
368
- if (isFunction(prop)) {
369
- this[i] = prop;
370
- } else {
371
- this['_' + i] = prop;
372
- }
373
- }
374
- }
375
- this._config = config;
376
- // Lenient ordinal parsing accepts just a number in addition to
377
- // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
378
- // TODO: Remove "ordinalParse" fallback in next major release.
379
- this._dayOfMonthOrdinalParseLenient = new RegExp(
380
- (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
381
- '|' +
382
- /\d{1,2}/.source
383
- );
365
+ var aliases = {
366
+ D: 'date',
367
+ dates: 'date',
368
+ date: 'date',
369
+ d: 'day',
370
+ days: 'day',
371
+ day: 'day',
372
+ e: 'weekday',
373
+ weekdays: 'weekday',
374
+ weekday: 'weekday',
375
+ E: 'isoWeekday',
376
+ isoweekdays: 'isoWeekday',
377
+ isoweekday: 'isoWeekday',
378
+ DDD: 'dayOfYear',
379
+ dayofyears: 'dayOfYear',
380
+ dayofyear: 'dayOfYear',
381
+ h: 'hour',
382
+ hours: 'hour',
383
+ hour: 'hour',
384
+ ms: 'millisecond',
385
+ milliseconds: 'millisecond',
386
+ millisecond: 'millisecond',
387
+ m: 'minute',
388
+ minutes: 'minute',
389
+ minute: 'minute',
390
+ M: 'month',
391
+ months: 'month',
392
+ month: 'month',
393
+ Q: 'quarter',
394
+ quarters: 'quarter',
395
+ quarter: 'quarter',
396
+ s: 'second',
397
+ seconds: 'second',
398
+ second: 'second',
399
+ gg: 'weekYear',
400
+ weekyears: 'weekYear',
401
+ weekyear: 'weekYear',
402
+ GG: 'isoWeekYear',
403
+ isoweekyears: 'isoWeekYear',
404
+ isoweekyear: 'isoWeekYear',
405
+ w: 'week',
406
+ weeks: 'week',
407
+ week: 'week',
408
+ W: 'isoWeek',
409
+ isoweeks: 'isoWeek',
410
+ isoweek: 'isoWeek',
411
+ y: 'year',
412
+ years: 'year',
413
+ year: 'year',
414
+ };
415
+
416
+ function normalizeUnits(units) {
417
+ return typeof units === 'string'
418
+ ? aliases[units] || aliases[units.toLowerCase()]
419
+ : undefined;
384
420
  }
385
421
 
386
- function mergeConfigs(parentConfig, childConfig) {
387
- var res = extend({}, parentConfig),
422
+ function normalizeObjectUnits(inputObject) {
423
+ var normalizedInput = {},
424
+ normalizedProp,
388
425
  prop;
389
- for (prop in childConfig) {
390
- if (hasOwnProp(childConfig, prop)) {
391
- if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
392
- res[prop] = {};
393
- extend(res[prop], parentConfig[prop]);
394
- extend(res[prop], childConfig[prop]);
395
- } else if (childConfig[prop] != null) {
396
- res[prop] = childConfig[prop];
397
- } else {
398
- delete res[prop];
426
+
427
+ for (prop in inputObject) {
428
+ if (hasOwnProp(inputObject, prop)) {
429
+ normalizedProp = normalizeUnits(prop);
430
+ if (normalizedProp) {
431
+ normalizedInput[normalizedProp] = inputObject[prop];
399
432
  }
400
433
  }
401
434
  }
402
- for (prop in parentConfig) {
403
- if (
404
- hasOwnProp(parentConfig, prop) &&
405
- !hasOwnProp(childConfig, prop) &&
406
- isObject(parentConfig[prop])
407
- ) {
408
- // make sure changes to properties don't modify parent config
409
- res[prop] = extend({}, res[prop]);
410
- }
411
- }
412
- return res;
413
- }
414
-
415
- function Locale(config) {
416
- if (config != null) {
417
- this.set(config);
418
- }
419
- }
420
-
421
- var keys;
422
435
 
423
- if (Object.keys) {
424
- keys = Object.keys;
425
- } else {
426
- keys = function (obj) {
427
- var i,
428
- res = [];
429
- for (i in obj) {
430
- if (hasOwnProp(obj, i)) {
431
- res.push(i);
432
- }
433
- }
434
- return res;
435
- };
436
+ return normalizedInput;
436
437
  }
437
438
 
438
- var defaultCalendar = {
439
- sameDay: '[Today at] LT',
440
- nextDay: '[Tomorrow at] LT',
441
- nextWeek: 'dddd [at] LT',
442
- lastDay: '[Yesterday at] LT',
443
- lastWeek: '[Last] dddd [at] LT',
444
- sameElse: 'L',
439
+ var priorities = {
440
+ date: 9,
441
+ day: 11,
442
+ weekday: 11,
443
+ isoWeekday: 11,
444
+ dayOfYear: 4,
445
+ hour: 13,
446
+ millisecond: 16,
447
+ minute: 14,
448
+ month: 8,
449
+ quarter: 7,
450
+ second: 15,
451
+ weekYear: 1,
452
+ isoWeekYear: 1,
453
+ week: 5,
454
+ isoWeek: 5,
455
+ year: 1,
445
456
  };
446
457
 
447
- function calendar(key, mom, now) {
448
- var output = this._calendar[key] || this._calendar['sameElse'];
449
- return isFunction(output) ? output.call(mom, now) : output;
458
+ function getPrioritizedUnits(unitsObj) {
459
+ var units = [],
460
+ u;
461
+ for (u in unitsObj) {
462
+ if (hasOwnProp(unitsObj, u)) {
463
+ units.push({ unit: u, priority: priorities[u] });
464
+ }
465
+ }
466
+ units.sort(function (a, b) {
467
+ return a.priority - b.priority;
468
+ });
469
+ return units;
450
470
  }
451
471
 
452
472
  function zeroFill(number, targetLength, forceSign) {
@@ -461,7 +481,7 @@ function requireMoment () {
461
481
  }
462
482
 
463
483
  var formattingTokens =
464
- /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
484
+ /(\[[^\[]*\])|(\\e)|(\\)?(eHHmm|[Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,
465
485
  localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,
466
486
  formatFunctions = {},
467
487
  formatTokenFunctions = {};
@@ -534,10 +554,12 @@ function requireMoment () {
534
554
  }
535
555
 
536
556
  format = expandFormat(format, m.localeData());
537
- formatFunctions[format] =
538
- formatFunctions[format] || makeFormatFunction(format);
557
+ var cacheKey = '$' + format;
558
+ if (!hasOwnProp(formatFunctions, cacheKey)) {
559
+ formatFunctions[cacheKey] = makeFormatFunction(format);
560
+ }
539
561
 
540
- return formatFunctions[format](m);
562
+ return formatFunctions[cacheKey](m);
541
563
  }
542
564
 
543
565
  function expandFormat(format, locale) {
@@ -560,250 +582,64 @@ function requireMoment () {
560
582
  return format;
561
583
  }
562
584
 
563
- var defaultLongDateFormat = {
564
- LTS: 'h:mm:ss A',
565
- LT: 'h:mm A',
566
- L: 'MM/DD/YYYY',
567
- LL: 'MMMM D, YYYY',
568
- LLL: 'MMMM D, YYYY h:mm A',
569
- LLLL: 'dddd, MMMM D, YYYY h:mm A',
570
- };
571
-
572
- function longDateFormat(key) {
573
- var format = this._longDateFormat[key],
574
- formatUpper = this._longDateFormat[key.toUpperCase()];
575
-
576
- if (format || !formatUpper) {
577
- return format;
578
- }
585
+ var match1 = /\d/, // 0 - 9
586
+ match2 = /\d\d/, // 00 - 99
587
+ match3 = /\d{3}/, // 000 - 999
588
+ match4 = /\d{4}/, // 0000 - 9999
589
+ match6 = /[+-]?\d{6}/, // -999999 - 999999
590
+ match1to2 = /\d\d?/, // 0 - 99
591
+ match3to4 = /\d\d\d\d?/, // 999 - 9999
592
+ match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999
593
+ match1to3 = /\d{1,3}/, // 0 - 999
594
+ match1to4 = /\d{1,4}/, // 0 - 9999
595
+ match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
596
+ matchUnsigned = /\d+/, // 0 - inf
597
+ matchSigned = /[+-]?\d+/, // -inf - inf
598
+ matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
599
+ matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
600
+ matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
601
+ // any word (or two) characters or numbers including two/three word month in arabic.
602
+ // includes scottish gaelic two word and hyphenated months
603
+ matchWord =
604
+ /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
605
+ match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99
606
+ match1to2HasZero = /^([1-9]\d|\d)/, // 0-99
607
+ regexes;
579
608
 
580
- this._longDateFormat[key] = formatUpper
581
- .match(formattingTokens)
582
- .map(function (tok) {
583
- if (
584
- tok === 'MMMM' ||
585
- tok === 'MM' ||
586
- tok === 'DD' ||
587
- tok === 'dddd'
588
- ) {
589
- return tok.slice(1);
590
- }
591
- return tok;
592
- })
593
- .join('');
609
+ regexes = {};
594
610
 
595
- return this._longDateFormat[key];
611
+ function addRegexToken(token, regex, strictRegex) {
612
+ regexes[token] = isFunction(regex)
613
+ ? regex
614
+ : function (isStrict, localeData) {
615
+ return isStrict && strictRegex ? strictRegex : regex;
616
+ };
596
617
  }
597
618
 
598
- var defaultInvalidDate = 'Invalid date';
619
+ function getParseRegexForToken(token, config) {
620
+ if (!hasOwnProp(regexes, token)) {
621
+ return new RegExp(unescapeFormat(token));
622
+ }
599
623
 
600
- function invalidDate() {
601
- return this._invalidDate;
624
+ return regexes[token](config._strict, config._locale);
602
625
  }
603
626
 
604
- var defaultOrdinal = '%d',
605
- defaultDayOfMonthOrdinalParse = /\d{1,2}/;
627
+ // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
628
+ function unescapeFormat(s) {
629
+ return regexEscape(
630
+ s
631
+ .replace('\\', '')
632
+ .replace(
633
+ /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
634
+ function (matched, p1, p2, p3, p4) {
635
+ return p1 || p2 || p3 || p4;
636
+ }
637
+ )
638
+ );
639
+ }
606
640
 
607
- function ordinal(number) {
608
- return this._ordinal.replace('%d', number);
609
- }
610
-
611
- var defaultRelativeTime = {
612
- future: 'in %s',
613
- past: '%s ago',
614
- s: 'a few seconds',
615
- ss: '%d seconds',
616
- m: 'a minute',
617
- mm: '%d minutes',
618
- h: 'an hour',
619
- hh: '%d hours',
620
- d: 'a day',
621
- dd: '%d days',
622
- w: 'a week',
623
- ww: '%d weeks',
624
- M: 'a month',
625
- MM: '%d months',
626
- y: 'a year',
627
- yy: '%d years',
628
- };
629
-
630
- function relativeTime(number, withoutSuffix, string, isFuture) {
631
- var output = this._relativeTime[string];
632
- return isFunction(output)
633
- ? output(number, withoutSuffix, string, isFuture)
634
- : output.replace(/%d/i, number);
635
- }
636
-
637
- function pastFuture(diff, output) {
638
- var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
639
- return isFunction(format) ? format(output) : format.replace(/%s/i, output);
640
- }
641
-
642
- var aliases = {
643
- D: 'date',
644
- dates: 'date',
645
- date: 'date',
646
- d: 'day',
647
- days: 'day',
648
- day: 'day',
649
- e: 'weekday',
650
- weekdays: 'weekday',
651
- weekday: 'weekday',
652
- E: 'isoWeekday',
653
- isoweekdays: 'isoWeekday',
654
- isoweekday: 'isoWeekday',
655
- DDD: 'dayOfYear',
656
- dayofyears: 'dayOfYear',
657
- dayofyear: 'dayOfYear',
658
- h: 'hour',
659
- hours: 'hour',
660
- hour: 'hour',
661
- ms: 'millisecond',
662
- milliseconds: 'millisecond',
663
- millisecond: 'millisecond',
664
- m: 'minute',
665
- minutes: 'minute',
666
- minute: 'minute',
667
- M: 'month',
668
- months: 'month',
669
- month: 'month',
670
- Q: 'quarter',
671
- quarters: 'quarter',
672
- quarter: 'quarter',
673
- s: 'second',
674
- seconds: 'second',
675
- second: 'second',
676
- gg: 'weekYear',
677
- weekyears: 'weekYear',
678
- weekyear: 'weekYear',
679
- GG: 'isoWeekYear',
680
- isoweekyears: 'isoWeekYear',
681
- isoweekyear: 'isoWeekYear',
682
- w: 'week',
683
- weeks: 'week',
684
- week: 'week',
685
- W: 'isoWeek',
686
- isoweeks: 'isoWeek',
687
- isoweek: 'isoWeek',
688
- y: 'year',
689
- years: 'year',
690
- year: 'year',
691
- };
692
-
693
- function normalizeUnits(units) {
694
- return typeof units === 'string'
695
- ? aliases[units] || aliases[units.toLowerCase()]
696
- : undefined;
697
- }
698
-
699
- function normalizeObjectUnits(inputObject) {
700
- var normalizedInput = {},
701
- normalizedProp,
702
- prop;
703
-
704
- for (prop in inputObject) {
705
- if (hasOwnProp(inputObject, prop)) {
706
- normalizedProp = normalizeUnits(prop);
707
- if (normalizedProp) {
708
- normalizedInput[normalizedProp] = inputObject[prop];
709
- }
710
- }
711
- }
712
-
713
- return normalizedInput;
714
- }
715
-
716
- var priorities = {
717
- date: 9,
718
- day: 11,
719
- weekday: 11,
720
- isoWeekday: 11,
721
- dayOfYear: 4,
722
- hour: 13,
723
- millisecond: 16,
724
- minute: 14,
725
- month: 8,
726
- quarter: 7,
727
- second: 15,
728
- weekYear: 1,
729
- isoWeekYear: 1,
730
- week: 5,
731
- isoWeek: 5,
732
- year: 1,
733
- };
734
-
735
- function getPrioritizedUnits(unitsObj) {
736
- var units = [],
737
- u;
738
- for (u in unitsObj) {
739
- if (hasOwnProp(unitsObj, u)) {
740
- units.push({ unit: u, priority: priorities[u] });
741
- }
742
- }
743
- units.sort(function (a, b) {
744
- return a.priority - b.priority;
745
- });
746
- return units;
747
- }
748
-
749
- var match1 = /\d/, // 0 - 9
750
- match2 = /\d\d/, // 00 - 99
751
- match3 = /\d{3}/, // 000 - 999
752
- match4 = /\d{4}/, // 0000 - 9999
753
- match6 = /[+-]?\d{6}/, // -999999 - 999999
754
- match1to2 = /\d\d?/, // 0 - 99
755
- match3to4 = /\d\d\d\d?/, // 999 - 9999
756
- match5to6 = /\d\d\d\d\d\d?/, // 99999 - 999999
757
- match1to3 = /\d{1,3}/, // 0 - 999
758
- match1to4 = /\d{1,4}/, // 0 - 9999
759
- match1to6 = /[+-]?\d{1,6}/, // -999999 - 999999
760
- matchUnsigned = /\d+/, // 0 - inf
761
- matchSigned = /[+-]?\d+/, // -inf - inf
762
- matchOffset = /Z|[+-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
763
- matchShortOffset = /Z|[+-]\d\d(?::?\d\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z
764
- matchTimestamp = /[+-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
765
- // any word (or two) characters or numbers including two/three word month in arabic.
766
- // includes scottish gaelic two word and hyphenated months
767
- matchWord =
768
- /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,
769
- match1to2NoLeadingZero = /^[1-9]\d?/, // 1-99
770
- match1to2HasZero = /^([1-9]\d|\d)/, // 0-99
771
- regexes;
772
-
773
- regexes = {};
774
-
775
- function addRegexToken(token, regex, strictRegex) {
776
- regexes[token] = isFunction(regex)
777
- ? regex
778
- : function (isStrict, localeData) {
779
- return isStrict && strictRegex ? strictRegex : regex;
780
- };
781
- }
782
-
783
- function getParseRegexForToken(token, config) {
784
- if (!hasOwnProp(regexes, token)) {
785
- return new RegExp(unescapeFormat(token));
786
- }
787
-
788
- return regexes[token](config._strict, config._locale);
789
- }
790
-
791
- // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
792
- function unescapeFormat(s) {
793
- return regexEscape(
794
- s
795
- .replace('\\', '')
796
- .replace(
797
- /\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,
798
- function (matched, p1, p2, p3, p4) {
799
- return p1 || p2 || p3 || p4;
800
- }
801
- )
802
- );
803
- }
804
-
805
- function regexEscape(s) {
806
- return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
641
+ function regexEscape(s) {
642
+ return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
807
643
  }
808
644
 
809
645
  function absFloor(number) {
@@ -935,12 +771,12 @@ function requireMoment () {
935
771
  hooks.updateOffset(this, keepTime);
936
772
  return this;
937
773
  } else {
938
- return get(this, unit);
774
+ return get$2(this, unit);
939
775
  }
940
776
  };
941
777
  }
942
778
 
943
- function get(mom, unit) {
779
+ function get$2(mom, unit) {
944
780
  if (!mom.isValid()) {
945
781
  return NaN;
946
782
  }
@@ -1040,7 +876,7 @@ function requireMoment () {
1040
876
  return this;
1041
877
  }
1042
878
 
1043
- function mod(n, x) {
879
+ function mod$1(n, x) {
1044
880
  return ((n % x) + x) % x;
1045
881
  }
1046
882
 
@@ -1065,7 +901,7 @@ function requireMoment () {
1065
901
  if (isNaN(year) || isNaN(month)) {
1066
902
  return NaN;
1067
903
  }
1068
- var modMonth = mod(month, 12);
904
+ var modMonth = mod$1(month, 12);
1069
905
  year += (month - modMonth) / 12;
1070
906
  return modMonth === 1
1071
907
  ? isLeapYear(year)
@@ -1123,7 +959,26 @@ function requireMoment () {
1123
959
  'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),
1124
960
  MONTHS_IN_FORMAT = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,
1125
961
  defaultMonthsShortRegex = matchWord,
1126
- defaultMonthsRegex = matchWord;
962
+ defaultMonthsRegex = matchWord,
963
+ monthsParseProperties = [
964
+ 'monthsParse',
965
+ 'longMonthsParse',
966
+ 'shortMonthsParse',
967
+ 'monthsRegex',
968
+ 'monthsShortRegex',
969
+ 'monthsStrictRegex',
970
+ 'monthsShortStrictRegex',
971
+ ];
972
+
973
+ function clearMonthsParseCache(locale, config) {
974
+ var i, prop;
975
+ for (i = 0; i < monthsParseProperties.length; i++) {
976
+ prop = monthsParseProperties[i];
977
+ if (!hasOwnProp(config, prop)) {
978
+ delete locale['_' + prop];
979
+ }
980
+ }
981
+ }
1127
982
 
1128
983
  function localeMonths(m, format) {
1129
984
  if (!m) {
@@ -1153,7 +1008,7 @@ function requireMoment () {
1153
1008
  ][m.month()];
1154
1009
  }
1155
1010
 
1156
- function handleStrictParse(monthName, format, strict) {
1011
+ function handleStrictParse$1(monthName, format, strict) {
1157
1012
  var i,
1158
1013
  ii,
1159
1014
  mom,
@@ -1204,7 +1059,7 @@ function requireMoment () {
1204
1059
  var i, mom, regex;
1205
1060
 
1206
1061
  if (this._monthsParseExact) {
1207
- return handleStrictParse.call(this, monthName, format, strict);
1062
+ return handleStrictParse$1.call(this, monthName, format, strict);
1208
1063
  }
1209
1064
 
1210
1065
  if (!this._monthsParse) {
@@ -1289,7 +1144,7 @@ function requireMoment () {
1289
1144
  hooks.updateOffset(this, true);
1290
1145
  return this;
1291
1146
  } else {
1292
- return get(this, 'Month');
1147
+ return get$2(this, 'Month');
1293
1148
  }
1294
1149
  }
1295
1150
 
@@ -1377,182 +1232,39 @@ function requireMoment () {
1377
1232
  );
1378
1233
  }
1379
1234
 
1380
- function createDate(y, m, d, h, M, s, ms) {
1381
- // can't just apply() to create a date:
1382
- // https://stackoverflow.com/q/181348
1383
- var date;
1384
- // the date constructor remaps years 0-99 to 1900-1999
1385
- if (y < 100 && y >= 0) {
1386
- // preserve leap years using a full 400 year cycle, then reset
1387
- date = new Date(y + 400, m, d, h, M, s, ms);
1388
- if (isFinite(date.getFullYear())) {
1389
- date.setFullYear(y);
1390
- }
1391
- } else {
1392
- date = new Date(y, m, d, h, M, s, ms);
1393
- }
1394
-
1395
- return date;
1396
- }
1235
+ // FORMATTING
1397
1236
 
1398
- function createUTCDate(y) {
1399
- var date, args;
1400
- // the Date.UTC function remaps years 0-99 to 1900-1999
1401
- if (y < 100 && y >= 0) {
1402
- args = Array.prototype.slice.call(arguments);
1403
- // preserve leap years using a full 400 year cycle, then reset
1404
- args[0] = y + 400;
1405
- date = new Date(Date.UTC.apply(null, args));
1406
- if (isFinite(date.getUTCFullYear())) {
1407
- date.setUTCFullYear(y);
1408
- }
1409
- } else {
1410
- date = new Date(Date.UTC.apply(null, arguments));
1411
- }
1237
+ addFormatToken('d', 0, 'do', 'day');
1412
1238
 
1413
- return date;
1414
- }
1239
+ addFormatToken('dd', 0, 0, function (format) {
1240
+ return this.localeData().weekdaysMin(this, format);
1241
+ });
1415
1242
 
1416
- // start-of-first-week - start-of-year
1417
- function firstWeekOffset(year, dow, doy) {
1418
- var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1419
- fwd = 7 + dow - doy,
1420
- // first-week day local weekday -- which local weekday is fwd
1421
- fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1243
+ addFormatToken('ddd', 0, 0, function (format) {
1244
+ return this.localeData().weekdaysShort(this, format);
1245
+ });
1422
1246
 
1423
- return -fwdlw + fwd - 1;
1424
- }
1425
-
1426
- // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1427
- function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1428
- var localWeekday = (7 + weekday - dow) % 7,
1429
- weekOffset = firstWeekOffset(year, dow, doy),
1430
- dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1431
- resYear,
1432
- resDayOfYear;
1433
-
1434
- if (dayOfYear <= 0) {
1435
- resYear = year - 1;
1436
- resDayOfYear = daysInYear(resYear) + dayOfYear;
1437
- } else if (dayOfYear > daysInYear(year)) {
1438
- resYear = year + 1;
1439
- resDayOfYear = dayOfYear - daysInYear(year);
1440
- } else {
1441
- resYear = year;
1442
- resDayOfYear = dayOfYear;
1443
- }
1444
-
1445
- return {
1446
- year: resYear,
1447
- dayOfYear: resDayOfYear,
1448
- };
1449
- }
1450
-
1451
- function weekOfYear(mom, dow, doy) {
1452
- var weekOffset = firstWeekOffset(mom.year(), dow, doy),
1453
- week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,
1454
- resWeek,
1455
- resYear;
1456
-
1457
- if (week < 1) {
1458
- resYear = mom.year() - 1;
1459
- resWeek = week + weeksInYear(resYear, dow, doy);
1460
- } else if (week > weeksInYear(mom.year(), dow, doy)) {
1461
- resWeek = week - weeksInYear(mom.year(), dow, doy);
1462
- resYear = mom.year() + 1;
1463
- } else {
1464
- resYear = mom.year();
1465
- resWeek = week;
1466
- }
1467
-
1468
- return {
1469
- week: resWeek,
1470
- year: resYear,
1471
- };
1472
- }
1473
-
1474
- function weeksInYear(year, dow, doy) {
1475
- var weekOffset = firstWeekOffset(year, dow, doy),
1476
- weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
1477
- return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
1478
- }
1479
-
1480
- // FORMATTING
1481
-
1482
- addFormatToken('w', ['ww', 2], 'wo', 'week');
1483
- addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1484
-
1485
- // PARSING
1486
-
1487
- addRegexToken('w', match1to2, match1to2NoLeadingZero);
1488
- addRegexToken('ww', match1to2, match2);
1489
- addRegexToken('W', match1to2, match1to2NoLeadingZero);
1490
- addRegexToken('WW', match1to2, match2);
1491
-
1492
- addWeekParseToken(
1493
- ['w', 'ww', 'W', 'WW'],
1494
- function (input, week, config, token) {
1495
- week[token.substr(0, 1)] = toInt(input);
1496
- }
1497
- );
1498
-
1499
- // HELPERS
1500
-
1501
- // LOCALES
1502
-
1503
- function localeWeek(mom) {
1504
- return weekOfYear(mom, this._week.dow, this._week.doy).week;
1505
- }
1506
-
1507
- var defaultLocaleWeek = {
1508
- dow: 0, // Sunday is the first day of the week.
1509
- doy: 6, // The week that contains Jan 6th is the first week of the year.
1510
- };
1511
-
1512
- function localeFirstDayOfWeek() {
1513
- return this._week.dow;
1514
- }
1515
-
1516
- function localeFirstDayOfYear() {
1517
- return this._week.doy;
1518
- }
1519
-
1520
- // MOMENTS
1521
-
1522
- function getSetWeek(input) {
1523
- var week = this.localeData().week(this);
1524
- return input == null ? week : this.add((input - week) * 7, 'd');
1525
- }
1526
-
1527
- function getSetISOWeek(input) {
1528
- var week = weekOfYear(this, 1, 4).week;
1529
- return input == null ? week : this.add((input - week) * 7, 'd');
1530
- }
1531
-
1532
- // FORMATTING
1533
-
1534
- addFormatToken('d', 0, 'do', 'day');
1535
-
1536
- addFormatToken('dd', 0, 0, function (format) {
1537
- return this.localeData().weekdaysMin(this, format);
1538
- });
1539
-
1540
- addFormatToken('ddd', 0, 0, function (format) {
1541
- return this.localeData().weekdaysShort(this, format);
1542
- });
1543
-
1544
- addFormatToken('dddd', 0, 0, function (format) {
1545
- return this.localeData().weekdays(this, format);
1546
- });
1247
+ addFormatToken('dddd', 0, 0, function (format) {
1248
+ return this.localeData().weekdays(this, format);
1249
+ });
1547
1250
 
1548
1251
  addFormatToken('e', 0, 0, 'weekday');
1549
1252
  addFormatToken('E', 0, 0, 'isoWeekday');
1253
+ addFormatToken('eHHmm', 0, 0, function () {
1254
+ return (
1255
+ '' +
1256
+ this.weekday() +
1257
+ zeroFill(this.hours(), 2) +
1258
+ zeroFill(this.minutes(), 2)
1259
+ );
1260
+ });
1550
1261
 
1551
1262
  // PARSING
1552
1263
 
1553
1264
  addRegexToken('d', match1to2);
1554
1265
  addRegexToken('e', match1to2);
1555
1266
  addRegexToken('E', match1to2);
1267
+ addRegexToken('eHHmm', match5to6);
1556
1268
  addRegexToken('dd', function (isStrict, locale) {
1557
1269
  return locale.weekdaysMinRegex(isStrict);
1558
1270
  });
@@ -1577,6 +1289,14 @@ function requireMoment () {
1577
1289
  week[token] = toInt(input);
1578
1290
  });
1579
1291
 
1292
+ addWeekParseToken('eHHmm', function (input, week, config) {
1293
+ var weekdayEnd = input.length - 4;
1294
+
1295
+ week.e = toInt(input.substr(0, weekdayEnd));
1296
+ config._a[HOUR] = toInt(input.substr(weekdayEnd, 2));
1297
+ config._a[MINUTE] = toInt(input.substr(weekdayEnd + 2));
1298
+ });
1299
+
1580
1300
  // HELPERS
1581
1301
 
1582
1302
  function parseWeekday(input, locale) {
@@ -1614,7 +1334,29 @@ function requireMoment () {
1614
1334
  defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),
1615
1335
  defaultWeekdaysRegex = matchWord,
1616
1336
  defaultWeekdaysShortRegex = matchWord,
1617
- defaultWeekdaysMinRegex = matchWord;
1337
+ defaultWeekdaysMinRegex = matchWord,
1338
+ weekdaysParseProperties = [
1339
+ 'weekdaysParse',
1340
+ 'fullWeekdaysParse',
1341
+ 'shortWeekdaysParse',
1342
+ 'minWeekdaysParse',
1343
+ 'weekdaysRegex',
1344
+ 'weekdaysShortRegex',
1345
+ 'weekdaysMinRegex',
1346
+ 'weekdaysStrictRegex',
1347
+ 'weekdaysShortStrictRegex',
1348
+ 'weekdaysMinStrictRegex',
1349
+ ];
1350
+
1351
+ function clearWeekdaysParseCache(locale, config) {
1352
+ var i, prop;
1353
+ for (i = 0; i < weekdaysParseProperties.length; i++) {
1354
+ prop = weekdaysParseProperties[i];
1355
+ if (!hasOwnProp(config, prop)) {
1356
+ delete locale['_' + prop];
1357
+ }
1358
+ }
1359
+ }
1618
1360
 
1619
1361
  function localeWeekdays(m, format) {
1620
1362
  var weekdays = isArray(this._weekdays)
@@ -1647,7 +1389,7 @@ function requireMoment () {
1647
1389
  : this._weekdaysMin;
1648
1390
  }
1649
1391
 
1650
- function handleStrictParse$1(weekdayName, format, strict) {
1392
+ function handleStrictParse(weekdayName, format, strict) {
1651
1393
  var i,
1652
1394
  ii,
1653
1395
  mom,
@@ -1724,7 +1466,7 @@ function requireMoment () {
1724
1466
  var i, mom, regex;
1725
1467
 
1726
1468
  if (this._weekdaysParseExact) {
1727
- return handleStrictParse$1.call(this, weekdayName, format, strict);
1469
+ return handleStrictParse.call(this, weekdayName, format, strict);
1728
1470
  }
1729
1471
 
1730
1472
  if (!this._weekdaysParse) {
@@ -1787,157 +1529,532 @@ function requireMoment () {
1787
1529
  }
1788
1530
  }
1789
1531
 
1790
- // MOMENTS
1532
+ // MOMENTS
1533
+
1534
+ function getSetDayOfWeek(input) {
1535
+ if (!this.isValid()) {
1536
+ return input != null ? this : NaN;
1537
+ }
1538
+
1539
+ var day = get$2(this, 'Day');
1540
+ if (input != null) {
1541
+ input = parseWeekday(input, this.localeData());
1542
+ return this.add(input - day, 'd');
1543
+ } else {
1544
+ return day;
1545
+ }
1546
+ }
1547
+
1548
+ function getSetLocaleDayOfWeek(input) {
1549
+ if (!this.isValid()) {
1550
+ return input != null ? this : NaN;
1551
+ }
1552
+ var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1553
+ return input == null ? weekday : this.add(input - weekday, 'd');
1554
+ }
1555
+
1556
+ function getSetISODayOfWeek(input) {
1557
+ if (!this.isValid()) {
1558
+ return input != null ? this : NaN;
1559
+ }
1560
+
1561
+ // behaves the same as moment#day except
1562
+ // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1563
+ // as a setter, sunday should belong to the previous week.
1564
+
1565
+ if (input != null) {
1566
+ var weekday = parseIsoWeekday(input, this.localeData());
1567
+ return this.day(this.day() % 7 ? weekday : weekday - 7);
1568
+ } else {
1569
+ return this.day() || 7;
1570
+ }
1571
+ }
1572
+
1573
+ function weekdaysRegex(isStrict) {
1574
+ if (this._weekdaysParseExact) {
1575
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1576
+ computeWeekdaysParse.call(this);
1577
+ }
1578
+ if (isStrict) {
1579
+ return this._weekdaysStrictRegex;
1580
+ } else {
1581
+ return this._weekdaysRegex;
1582
+ }
1583
+ } else {
1584
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1585
+ this._weekdaysRegex = defaultWeekdaysRegex;
1586
+ }
1587
+ return this._weekdaysStrictRegex && isStrict
1588
+ ? this._weekdaysStrictRegex
1589
+ : this._weekdaysRegex;
1590
+ }
1591
+ }
1592
+
1593
+ function weekdaysShortRegex(isStrict) {
1594
+ if (this._weekdaysParseExact) {
1595
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1596
+ computeWeekdaysParse.call(this);
1597
+ }
1598
+ if (isStrict) {
1599
+ return this._weekdaysShortStrictRegex;
1600
+ } else {
1601
+ return this._weekdaysShortRegex;
1602
+ }
1603
+ } else {
1604
+ if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1605
+ this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1606
+ }
1607
+ return this._weekdaysShortStrictRegex && isStrict
1608
+ ? this._weekdaysShortStrictRegex
1609
+ : this._weekdaysShortRegex;
1610
+ }
1611
+ }
1612
+
1613
+ function weekdaysMinRegex(isStrict) {
1614
+ if (this._weekdaysParseExact) {
1615
+ if (!hasOwnProp(this, '_weekdaysRegex')) {
1616
+ computeWeekdaysParse.call(this);
1617
+ }
1618
+ if (isStrict) {
1619
+ return this._weekdaysMinStrictRegex;
1620
+ } else {
1621
+ return this._weekdaysMinRegex;
1622
+ }
1623
+ } else {
1624
+ if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1625
+ this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1626
+ }
1627
+ return this._weekdaysMinStrictRegex && isStrict
1628
+ ? this._weekdaysMinStrictRegex
1629
+ : this._weekdaysMinRegex;
1630
+ }
1631
+ }
1632
+
1633
+ function computeWeekdaysParse() {
1634
+ function cmpLenRev(a, b) {
1635
+ return b.length - a.length;
1636
+ }
1637
+
1638
+ var minPieces = [],
1639
+ shortPieces = [],
1640
+ longPieces = [],
1641
+ mixedPieces = [],
1642
+ i,
1643
+ mom,
1644
+ minp,
1645
+ shortp,
1646
+ longp;
1647
+ for (i = 0; i < 7; i++) {
1648
+ // make the regex if we don't have it already
1649
+ mom = createUTC([2000, 1]).day(i);
1650
+ minp = regexEscape(this.weekdaysMin(mom, ''));
1651
+ shortp = regexEscape(this.weekdaysShort(mom, ''));
1652
+ longp = regexEscape(this.weekdays(mom, ''));
1653
+ minPieces.push(minp);
1654
+ shortPieces.push(shortp);
1655
+ longPieces.push(longp);
1656
+ mixedPieces.push(minp);
1657
+ mixedPieces.push(shortp);
1658
+ mixedPieces.push(longp);
1659
+ }
1660
+ // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1661
+ // will match the longer piece.
1662
+ minPieces.sort(cmpLenRev);
1663
+ shortPieces.sort(cmpLenRev);
1664
+ longPieces.sort(cmpLenRev);
1665
+ mixedPieces.sort(cmpLenRev);
1666
+
1667
+ this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1668
+ this._weekdaysShortRegex = this._weekdaysRegex;
1669
+ this._weekdaysMinRegex = this._weekdaysRegex;
1670
+
1671
+ this._weekdaysStrictRegex = new RegExp(
1672
+ '^(' + longPieces.join('|') + ')',
1673
+ 'i'
1674
+ );
1675
+ this._weekdaysShortStrictRegex = new RegExp(
1676
+ '^(' + shortPieces.join('|') + ')',
1677
+ 'i'
1678
+ );
1679
+ this._weekdaysMinStrictRegex = new RegExp(
1680
+ '^(' + minPieces.join('|') + ')',
1681
+ 'i'
1682
+ );
1683
+ }
1684
+
1685
+ function set(config) {
1686
+ var prop, i;
1687
+ clearMonthsParseCache(this, config);
1688
+ clearWeekdaysParseCache(this, config);
1689
+ for (i in config) {
1690
+ if (hasOwnProp(config, i)) {
1691
+ prop = config[i];
1692
+ if (isFunction(prop)) {
1693
+ this[i] = prop;
1694
+ } else {
1695
+ this['_' + i] = prop;
1696
+ }
1697
+ }
1698
+ }
1699
+ this._config = config;
1700
+ // Lenient ordinal parsing accepts just a number in addition to
1701
+ // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.
1702
+ // TODO: Remove "ordinalParse" fallback in next major release.
1703
+ this._dayOfMonthOrdinalParseLenient = new RegExp(
1704
+ (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +
1705
+ '|' +
1706
+ /\d{1,2}/.source
1707
+ );
1708
+ }
1709
+
1710
+ function mergeConfigs(parentConfig, childConfig) {
1711
+ var res = extend({}, parentConfig),
1712
+ prop;
1713
+ for (prop in childConfig) {
1714
+ if (hasOwnProp(childConfig, prop)) {
1715
+ if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {
1716
+ res[prop] = {};
1717
+ extend(res[prop], parentConfig[prop]);
1718
+ extend(res[prop], childConfig[prop]);
1719
+ } else if (childConfig[prop] != null) {
1720
+ res[prop] = childConfig[prop];
1721
+ } else {
1722
+ delete res[prop];
1723
+ }
1724
+ }
1725
+ }
1726
+ for (prop in parentConfig) {
1727
+ if (
1728
+ hasOwnProp(parentConfig, prop) &&
1729
+ !hasOwnProp(childConfig, prop) &&
1730
+ isObject(parentConfig[prop])
1731
+ ) {
1732
+ // make sure changes to properties don't modify parent config
1733
+ res[prop] = extend({}, res[prop]);
1734
+ }
1735
+ }
1736
+ return res;
1737
+ }
1738
+
1739
+ function Locale(config) {
1740
+ if (config != null) {
1741
+ this.set(config);
1742
+ }
1743
+ }
1744
+
1745
+ var keys;
1746
+
1747
+ if (Object.keys) {
1748
+ keys = Object.keys;
1749
+ } else {
1750
+ keys = function (obj) {
1751
+ var i,
1752
+ res = [];
1753
+ for (i in obj) {
1754
+ if (hasOwnProp(obj, i)) {
1755
+ res.push(i);
1756
+ }
1757
+ }
1758
+ return res;
1759
+ };
1760
+ }
1761
+
1762
+ var defaultCalendar = {
1763
+ sameDay: '[Today at] LT',
1764
+ nextDay: '[Tomorrow at] LT',
1765
+ nextWeek: 'dddd [at] LT',
1766
+ lastDay: '[Yesterday at] LT',
1767
+ lastWeek: '[Last] dddd [at] LT',
1768
+ sameElse: 'L',
1769
+ };
1770
+
1771
+ function calendar$1(key, mom, now) {
1772
+ var output = this._calendar[key] || this._calendar['sameElse'];
1773
+ return isFunction(output) ? output.call(mom, now) : output;
1774
+ }
1775
+
1776
+ var defaultLongDateFormat = {
1777
+ LTS: 'h:mm:ss A',
1778
+ LT: 'h:mm A',
1779
+ L: 'MM/DD/YYYY',
1780
+ LL: 'MMMM D, YYYY',
1781
+ LLL: 'MMMM D, YYYY h:mm A',
1782
+ LLLL: 'dddd, MMMM D, YYYY h:mm A',
1783
+ };
1784
+
1785
+ function longDateFormat(key) {
1786
+ var format = this._longDateFormat[key],
1787
+ formatUpper = this._longDateFormat[key.toUpperCase()],
1788
+ formatCache = this._longDateFormatCache;
1789
+
1790
+ if (format || !formatUpper) {
1791
+ return format;
1792
+ }
1793
+
1794
+ if (
1795
+ formatCache &&
1796
+ formatCache[key] &&
1797
+ formatCache[key].formatUpper === formatUpper
1798
+ ) {
1799
+ return formatCache[key].format;
1800
+ }
1801
+
1802
+ format = formatUpper
1803
+ .match(formattingTokens)
1804
+ .map(function (tok) {
1805
+ if (
1806
+ tok === 'MMMM' ||
1807
+ tok === 'MM' ||
1808
+ tok === 'DD' ||
1809
+ tok === 'dddd'
1810
+ ) {
1811
+ return tok.slice(1);
1812
+ }
1813
+ return tok;
1814
+ })
1815
+ .join('');
1816
+
1817
+ if (!formatCache) {
1818
+ formatCache = this._longDateFormatCache = {};
1819
+ }
1820
+ formatCache[key] = {
1821
+ formatUpper: formatUpper,
1822
+ format: format,
1823
+ };
1824
+ return format;
1825
+ }
1826
+
1827
+ var defaultInvalidDate = 'Invalid date';
1828
+
1829
+ function invalidDate() {
1830
+ return this._invalidDate;
1831
+ }
1832
+
1833
+ var defaultOrdinal = '%d',
1834
+ defaultDayOfMonthOrdinalParse = /\d{1,2}/;
1835
+
1836
+ function ordinal(number) {
1837
+ return this._ordinal.replace('%d', number);
1838
+ }
1839
+
1840
+ var defaultRelativeTime = {
1841
+ future: 'in %s',
1842
+ past: '%s ago',
1843
+ s: 'a few seconds',
1844
+ ss: '%d seconds',
1845
+ m: 'a minute',
1846
+ mm: '%d minutes',
1847
+ h: 'an hour',
1848
+ hh: '%d hours',
1849
+ d: 'a day',
1850
+ dd: '%d days',
1851
+ w: 'a week',
1852
+ ww: '%d weeks',
1853
+ M: 'a month',
1854
+ MM: '%d months',
1855
+ y: 'a year',
1856
+ yy: '%d years',
1857
+ };
1858
+
1859
+ function relativeTimeWithoutPostformat(
1860
+ number,
1861
+ withoutSuffix,
1862
+ string,
1863
+ isFuture
1864
+ ) {
1865
+ var output = this._relativeTime[string];
1866
+ return isFunction(output)
1867
+ ? output(number, withoutSuffix, string, isFuture)
1868
+ : output.replace(/%d/i, number);
1869
+ }
1870
+
1871
+ function relativeTime$1(number, withoutSuffix, string, isFuture) {
1872
+ return this.postformat(
1873
+ relativeTimeWithoutPostformat.call(
1874
+ this,
1875
+ number,
1876
+ withoutSuffix,
1877
+ string,
1878
+ isFuture
1879
+ )
1880
+ );
1881
+ }
1882
+
1883
+ function pastFutureWithoutPostformat(diff, output) {
1884
+ var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
1885
+ return isFunction(format) ? format(output) : format.replace(/%s/i, output);
1886
+ }
1887
+
1888
+ function pastFuture(diff, output) {
1889
+ return this.postformat(
1890
+ pastFutureWithoutPostformat.call(this, diff, output)
1891
+ );
1892
+ }
1893
+
1894
+ function createDate(y, m, d, h, M, s, ms) {
1895
+ // can't just apply() to create a date:
1896
+ // https://stackoverflow.com/q/181348
1897
+ var date;
1898
+ // the date constructor remaps years 0-99 to 1900-1999
1899
+ if (y < 100 && y >= 0) {
1900
+ // preserve leap years using a full 400 year cycle, then reset
1901
+ date = new Date(y + 400, m, d, h, M, s, ms);
1902
+ if (isFinite(date.getFullYear())) {
1903
+ date.setFullYear(y);
1904
+ }
1905
+ } else {
1906
+ date = new Date(y, m, d, h, M, s, ms);
1907
+ }
1908
+
1909
+ return date;
1910
+ }
1911
+
1912
+ function createUTCDate(y) {
1913
+ var date, args;
1914
+ // the Date.UTC function remaps years 0-99 to 1900-1999
1915
+ if (y < 100 && y >= 0) {
1916
+ args = Array.prototype.slice.call(arguments);
1917
+ // preserve leap years using a full 400 year cycle, then reset
1918
+ args[0] = y + 400;
1919
+ date = new Date(Date.UTC.apply(null, args));
1920
+ if (isFinite(date.getUTCFullYear())) {
1921
+ date.setUTCFullYear(y);
1922
+ }
1923
+ } else {
1924
+ date = new Date(Date.UTC.apply(null, arguments));
1925
+ }
1926
+
1927
+ return date;
1928
+ }
1929
+
1930
+ // start-of-first-week - start-of-year
1931
+ function firstWeekOffset(year, dow, doy) {
1932
+ var // first-week day -- which january is always in the first week (4 for iso, 1 for other)
1933
+ fwd = 7 + dow - doy,
1934
+ // first-week day local weekday -- which local weekday is fwd
1935
+ fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;
1936
+
1937
+ return -fwdlw + fwd - 1;
1938
+ }
1939
+
1940
+ // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
1941
+ function dayOfYearFromWeeks(year, week, weekday, dow, doy) {
1942
+ var localWeekday = (7 + weekday - dow) % 7,
1943
+ weekOffset = firstWeekOffset(year, dow, doy),
1944
+ dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,
1945
+ resYear,
1946
+ resDayOfYear;
1947
+
1948
+ if (dayOfYear <= 0) {
1949
+ resYear = year - 1;
1950
+ resDayOfYear = daysInYear(resYear) + dayOfYear;
1951
+ } else if (dayOfYear > daysInYear(year)) {
1952
+ resYear = year + 1;
1953
+ resDayOfYear = dayOfYear - daysInYear(year);
1954
+ } else {
1955
+ resYear = year;
1956
+ resDayOfYear = dayOfYear;
1957
+ }
1958
+
1959
+ return {
1960
+ year: resYear,
1961
+ dayOfYear: resDayOfYear,
1962
+ };
1963
+ }
1964
+
1965
+ function weekOfYearFromDayOfYear(year, dayOfYear, dow, doy) {
1966
+ var weekOffset = firstWeekOffset(year, dow, doy),
1967
+ week = Math.floor((dayOfYear - weekOffset - 1) / 7) + 1,
1968
+ resWeek,
1969
+ resYear;
1970
+
1971
+ if (week < 1) {
1972
+ resYear = year - 1;
1973
+ resWeek = week + weeksInYear(resYear, dow, doy);
1974
+ } else if (week > weeksInYear(year, dow, doy)) {
1975
+ resWeek = week - weeksInYear(year, dow, doy);
1976
+ resYear = year + 1;
1977
+ } else {
1978
+ resYear = year;
1979
+ resWeek = week;
1980
+ }
1981
+
1982
+ return {
1983
+ week: resWeek,
1984
+ year: resYear,
1985
+ };
1986
+ }
1987
+
1988
+ function weekOfYear(mom, dow, doy) {
1989
+ return weekOfYearFromDayOfYear(mom.year(), mom.dayOfYear(), dow, doy);
1990
+ }
1991
+
1992
+ function weekOfYearFromDate(year, month, date, dow, doy) {
1993
+ var dayOfYear =
1994
+ Math.round(
1995
+ (createUTCDate(year, month, date) - createUTCDate(year, 0, 1)) /
1996
+ 864e5
1997
+ ) + 1;
1998
+
1999
+ return weekOfYearFromDayOfYear(year, dayOfYear, dow, doy);
2000
+ }
2001
+
2002
+ function weeksInYear(year, dow, doy) {
2003
+ var weekOffset = firstWeekOffset(year, dow, doy),
2004
+ weekOffsetNext = firstWeekOffset(year + 1, dow, doy);
2005
+ return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;
2006
+ }
2007
+
2008
+ // FORMATTING
1791
2009
 
1792
- function getSetDayOfWeek(input) {
1793
- if (!this.isValid()) {
1794
- return input != null ? this : NaN;
1795
- }
2010
+ addFormatToken('w', ['ww', 2], 'wo', 'week');
2011
+ addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');
1796
2012
 
1797
- var day = get(this, 'Day');
1798
- if (input != null) {
1799
- input = parseWeekday(input, this.localeData());
1800
- return this.add(input - day, 'd');
1801
- } else {
1802
- return day;
1803
- }
1804
- }
2013
+ // PARSING
1805
2014
 
1806
- function getSetLocaleDayOfWeek(input) {
1807
- if (!this.isValid()) {
1808
- return input != null ? this : NaN;
1809
- }
1810
- var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;
1811
- return input == null ? weekday : this.add(input - weekday, 'd');
1812
- }
2015
+ addRegexToken('w', match1to2, match1to2NoLeadingZero);
2016
+ addRegexToken('ww', match1to2, match2);
2017
+ addRegexToken('W', match1to2, match1to2NoLeadingZero);
2018
+ addRegexToken('WW', match1to2, match2);
1813
2019
 
1814
- function getSetISODayOfWeek(input) {
1815
- if (!this.isValid()) {
1816
- return input != null ? this : NaN;
2020
+ addWeekParseToken(
2021
+ ['w', 'ww', 'W', 'WW'],
2022
+ function (input, week, config, token) {
2023
+ week[token.substr(0, 1)] = toInt(input);
1817
2024
  }
2025
+ );
1818
2026
 
1819
- // behaves the same as moment#day except
1820
- // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
1821
- // as a setter, sunday should belong to the previous week.
2027
+ // HELPERS
1822
2028
 
1823
- if (input != null) {
1824
- var weekday = parseIsoWeekday(input, this.localeData());
1825
- return this.day(this.day() % 7 ? weekday : weekday - 7);
1826
- } else {
1827
- return this.day() || 7;
1828
- }
1829
- }
2029
+ // LOCALES
1830
2030
 
1831
- function weekdaysRegex(isStrict) {
1832
- if (this._weekdaysParseExact) {
1833
- if (!hasOwnProp(this, '_weekdaysRegex')) {
1834
- computeWeekdaysParse.call(this);
1835
- }
1836
- if (isStrict) {
1837
- return this._weekdaysStrictRegex;
1838
- } else {
1839
- return this._weekdaysRegex;
1840
- }
1841
- } else {
1842
- if (!hasOwnProp(this, '_weekdaysRegex')) {
1843
- this._weekdaysRegex = defaultWeekdaysRegex;
1844
- }
1845
- return this._weekdaysStrictRegex && isStrict
1846
- ? this._weekdaysStrictRegex
1847
- : this._weekdaysRegex;
1848
- }
2031
+ function localeWeek(mom) {
2032
+ return weekOfYear(mom, this._week.dow, this._week.doy).week;
1849
2033
  }
1850
2034
 
1851
- function weekdaysShortRegex(isStrict) {
1852
- if (this._weekdaysParseExact) {
1853
- if (!hasOwnProp(this, '_weekdaysRegex')) {
1854
- computeWeekdaysParse.call(this);
1855
- }
1856
- if (isStrict) {
1857
- return this._weekdaysShortStrictRegex;
1858
- } else {
1859
- return this._weekdaysShortRegex;
1860
- }
1861
- } else {
1862
- if (!hasOwnProp(this, '_weekdaysShortRegex')) {
1863
- this._weekdaysShortRegex = defaultWeekdaysShortRegex;
1864
- }
1865
- return this._weekdaysShortStrictRegex && isStrict
1866
- ? this._weekdaysShortStrictRegex
1867
- : this._weekdaysShortRegex;
1868
- }
1869
- }
2035
+ var defaultLocaleWeek = {
2036
+ dow: 0, // Sunday is the first day of the week.
2037
+ doy: 6, // The week that contains Jan 6th is the first week of the year.
2038
+ };
1870
2039
 
1871
- function weekdaysMinRegex(isStrict) {
1872
- if (this._weekdaysParseExact) {
1873
- if (!hasOwnProp(this, '_weekdaysRegex')) {
1874
- computeWeekdaysParse.call(this);
1875
- }
1876
- if (isStrict) {
1877
- return this._weekdaysMinStrictRegex;
1878
- } else {
1879
- return this._weekdaysMinRegex;
1880
- }
1881
- } else {
1882
- if (!hasOwnProp(this, '_weekdaysMinRegex')) {
1883
- this._weekdaysMinRegex = defaultWeekdaysMinRegex;
1884
- }
1885
- return this._weekdaysMinStrictRegex && isStrict
1886
- ? this._weekdaysMinStrictRegex
1887
- : this._weekdaysMinRegex;
1888
- }
2040
+ function localeFirstDayOfWeek() {
2041
+ return this._week.dow;
1889
2042
  }
1890
2043
 
1891
- function computeWeekdaysParse() {
1892
- function cmpLenRev(a, b) {
1893
- return b.length - a.length;
1894
- }
2044
+ function localeFirstDayOfYear() {
2045
+ return this._week.doy;
2046
+ }
1895
2047
 
1896
- var minPieces = [],
1897
- shortPieces = [],
1898
- longPieces = [],
1899
- mixedPieces = [],
1900
- i,
1901
- mom,
1902
- minp,
1903
- shortp,
1904
- longp;
1905
- for (i = 0; i < 7; i++) {
1906
- // make the regex if we don't have it already
1907
- mom = createUTC([2000, 1]).day(i);
1908
- minp = regexEscape(this.weekdaysMin(mom, ''));
1909
- shortp = regexEscape(this.weekdaysShort(mom, ''));
1910
- longp = regexEscape(this.weekdays(mom, ''));
1911
- minPieces.push(minp);
1912
- shortPieces.push(shortp);
1913
- longPieces.push(longp);
1914
- mixedPieces.push(minp);
1915
- mixedPieces.push(shortp);
1916
- mixedPieces.push(longp);
1917
- }
1918
- // Sorting makes sure if one weekday (or abbr) is a prefix of another it
1919
- // will match the longer piece.
1920
- minPieces.sort(cmpLenRev);
1921
- shortPieces.sort(cmpLenRev);
1922
- longPieces.sort(cmpLenRev);
1923
- mixedPieces.sort(cmpLenRev);
2048
+ // MOMENTS
1924
2049
 
1925
- this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');
1926
- this._weekdaysShortRegex = this._weekdaysRegex;
1927
- this._weekdaysMinRegex = this._weekdaysRegex;
2050
+ function getSetWeek(input) {
2051
+ var week = this.localeData().week(this);
2052
+ return input == null ? week : this.add((input - week) * 7, 'd');
2053
+ }
1928
2054
 
1929
- this._weekdaysStrictRegex = new RegExp(
1930
- '^(' + longPieces.join('|') + ')',
1931
- 'i'
1932
- );
1933
- this._weekdaysShortStrictRegex = new RegExp(
1934
- '^(' + shortPieces.join('|') + ')',
1935
- 'i'
1936
- );
1937
- this._weekdaysMinStrictRegex = new RegExp(
1938
- '^(' + minPieces.join('|') + ')',
1939
- 'i'
1940
- );
2055
+ function getSetISOWeek(input) {
2056
+ var week = weekOfYear(this, 1, 4).week;
2057
+ return input == null ? week : this.add((input - week) * 7, 'd');
1941
2058
  }
1942
2059
 
1943
2060
  // FORMATTING
@@ -2152,34 +2269,48 @@ function requireMoment () {
2152
2269
  }
2153
2270
 
2154
2271
  function isLocaleNameSane(name) {
2155
- // Prevent names that look like filesystem paths, i.e contain '/' or '\'
2156
- // Ensure name is available and function returns boolean
2157
- return !!(name && name.match('^[^/\\\\]*$'));
2272
+ // Only canonical locale module names are safe to append to the require path.
2273
+ return typeof name === 'string' && /^[a-z0-9]+(?:-[a-z0-9]+)*$/.test(name);
2158
2274
  }
2159
2275
 
2160
2276
  function loadLocale(name) {
2161
2277
  var oldLocale = null,
2162
- aliasedRequire;
2278
+ aliasedRequire,
2279
+ normalizedName;
2280
+
2281
+ // Preserve exact custom locale names before trying the canonical built-in name.
2282
+ // Use hasOwnProp rather than a plain lookup so that names like "__proto__",
2283
+ // "constructor", or "prototype" can't resolve to an inherited Object.prototype
2284
+ // property instead of a real (or missing) locale entry.
2285
+ if (hasOwnProp(locales, name)) {
2286
+ return locales[name];
2287
+ }
2288
+
2289
+ normalizedName = normalizeLocale(name);
2290
+ if (hasOwnProp(locales, normalizedName)) {
2291
+ return locales[normalizedName];
2292
+ }
2293
+
2163
2294
  // TODO: Find a better way to register and load all the locales in Node
2164
2295
  if (
2165
- locales[name] === undefined &&
2166
- 'object' !== 'undefined' &&
2167
2296
  module &&
2168
2297
  module.exports &&
2169
- isLocaleNameSane(name)
2298
+ isLocaleNameSane(normalizedName)
2170
2299
  ) {
2171
2300
  try {
2172
2301
  oldLocale = globalLocale._abbr;
2173
2302
  aliasedRequire = commonjsRequire;
2174
- aliasedRequire('./locale/' + name);
2303
+ aliasedRequire('./locale/' + normalizedName);
2175
2304
  getSetGlobalLocale(oldLocale);
2176
2305
  } catch (e) {
2177
2306
  // mark as not found to avoid repeating expensive file require call causing high CPU
2178
2307
  // when trying to find en-US, en_US, en-us for every format call
2179
- locales[name] = null; // null means not found
2308
+ locales[normalizedName] = null; // null means not found
2180
2309
  }
2181
2310
  }
2182
- return locales[name];
2311
+ if (hasOwnProp(locales, normalizedName)) {
2312
+ return locales[normalizedName];
2313
+ }
2183
2314
  }
2184
2315
 
2185
2316
  // This function will load locale and then set the global locale. If
@@ -2265,17 +2396,20 @@ function requireMoment () {
2265
2396
  }
2266
2397
 
2267
2398
  function updateLocale(name, config) {
2268
- if (config != null) {
2269
- var locale,
2270
- tmpLocale,
2271
- parentConfig = baseConfig;
2399
+ var locale,
2400
+ tmpLocale = loadLocale(name),
2401
+ parentConfig = baseConfig;
2272
2402
 
2403
+ if (tmpLocale != null) {
2404
+ name = tmpLocale._abbr;
2405
+ }
2406
+
2407
+ if (config != null) {
2273
2408
  if (locales[name] != null && locales[name].parentLocale != null) {
2274
2409
  // Update existing child locale in-place to avoid memory-leaks
2275
2410
  locales[name].set(mergeConfigs(locales[name]._config, config));
2276
2411
  } else {
2277
2412
  // MERGE
2278
- tmpLocale = loadLocale(name);
2279
2413
  if (tmpLocale != null) {
2280
2414
  parentConfig = tmpLocale._config;
2281
2415
  }
@@ -2643,9 +2777,46 @@ function requireMoment () {
2643
2777
  return c;
2644
2778
  }
2645
2779
 
2646
- function currentDateArray(config) {
2780
+ function currentDateArray(config, now, forWeek) {
2781
+ var hadWeekContext = Object.prototype.hasOwnProperty.call(
2782
+ config,
2783
+ '_isDefaultDatePartsForWeek'
2784
+ ),
2785
+ weekContext = config._isDefaultDatePartsForWeek;
2786
+
2647
2787
  // hooks is actually the exported moment object
2648
- var nowValue = new Date(hooks.now());
2788
+ config._isDefaultDatePartsForWeek = !!forWeek;
2789
+ try {
2790
+ return hooks._getDefaultDateParts(config, now, forWeek);
2791
+ } finally {
2792
+ if (hadWeekContext) {
2793
+ config._isDefaultDatePartsForWeek = weekContext;
2794
+ } else {
2795
+ delete config._isDefaultDatePartsForWeek;
2796
+ }
2797
+ }
2798
+ }
2799
+
2800
+ function currentDateNow(config) {
2801
+ var now = config._defaultDatePartsNow;
2802
+
2803
+ if (!now) {
2804
+ return hooks.now();
2805
+ }
2806
+ if (!now.hasValue) {
2807
+ now.value = hooks.now();
2808
+ now.hasValue = true;
2809
+ }
2810
+ return now.value;
2811
+ }
2812
+
2813
+ // Internal hook for extensions that supply omitted calendar fields.
2814
+ function getDefaultDateParts(config, now, forWeek) {
2815
+ var useWeekDefaults = forWeek || config._isDefaultDatePartsForWeek,
2816
+ nowValue = useWeekDefaults ? createLocal(now) : new Date(now);
2817
+ if (useWeekDefaults) {
2818
+ return [nowValue.year(), nowValue.month(), nowValue.date()];
2819
+ }
2649
2820
  if (config._useUTC) {
2650
2821
  return [
2651
2822
  nowValue.getUTCFullYear(),
@@ -2656,6 +2827,8 @@ function requireMoment () {
2656
2827
  return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];
2657
2828
  }
2658
2829
 
2830
+ hooks._getDefaultDateParts = getDefaultDateParts;
2831
+
2659
2832
  // convert an array to a date.
2660
2833
  // the array should mirror the parameters below
2661
2834
  // note: all values past the year are optional and will default to the lowest possible value.
@@ -2664,24 +2837,34 @@ function requireMoment () {
2664
2837
  var i,
2665
2838
  date,
2666
2839
  input = [],
2840
+ now,
2667
2841
  currentDate,
2668
2842
  expectedWeekday,
2669
- yearToUse;
2843
+ yearToUse,
2844
+ dateIsDefaulted;
2670
2845
 
2671
2846
  if (config._d) {
2672
2847
  return;
2673
2848
  }
2674
2849
 
2675
- currentDate = currentDateArray(config);
2850
+ if (
2851
+ config._a[YEAR] == null ||
2852
+ config._a[MONTH] == null ||
2853
+ config._a[DATE] == null
2854
+ ) {
2855
+ now = currentDateNow(config);
2856
+ currentDate = currentDateArray(config, now);
2857
+ }
2676
2858
 
2677
2859
  //compute day of the year from weeks and weekdays
2678
2860
  if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
2679
- dayOfYearFromWeekInfo(config);
2861
+ dayOfYearFromWeekInfo(config, currentDateArray(config, now, true));
2680
2862
  }
2681
2863
 
2682
2864
  //if the day of the year is set, figure out what it is
2683
2865
  if (config._dayOfYear != null) {
2684
- yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);
2866
+ yearToUse =
2867
+ config._a[YEAR] != null ? config._a[YEAR] : currentDate[YEAR];
2685
2868
 
2686
2869
  if (
2687
2870
  config._dayOfYear > daysInYear(yearToUse) ||
@@ -2695,6 +2878,11 @@ function requireMoment () {
2695
2878
  config._a[DATE] = date.getUTCDate();
2696
2879
  }
2697
2880
 
2881
+ dateIsDefaulted =
2882
+ config._a[YEAR] == null ||
2883
+ config._a[MONTH] == null ||
2884
+ config._a[DATE] == null;
2885
+
2698
2886
  // Default to current date.
2699
2887
  // * if no year, month, day of month are given, default to today
2700
2888
  // * if day of month is given, default month and year
@@ -2743,13 +2931,14 @@ function requireMoment () {
2743
2931
  if (
2744
2932
  config._w &&
2745
2933
  typeof config._w.d !== 'undefined' &&
2934
+ !dateIsDefaulted &&
2746
2935
  config._w.d !== expectedWeekday
2747
2936
  ) {
2748
2937
  getParsingFlags(config).weekdayMismatch = true;
2749
2938
  }
2750
2939
  }
2751
2940
 
2752
- function dayOfYearFromWeekInfo(config) {
2941
+ function dayOfYearFromWeekInfo(config, currentDate) {
2753
2942
  var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;
2754
2943
 
2755
2944
  w = config._w;
@@ -2764,7 +2953,13 @@ function requireMoment () {
2764
2953
  weekYear = defaults(
2765
2954
  w.GG,
2766
2955
  config._a[YEAR],
2767
- weekOfYear(createLocal(), 1, 4).year
2956
+ weekOfYearFromDate(
2957
+ currentDate[YEAR],
2958
+ currentDate[MONTH],
2959
+ currentDate[DATE],
2960
+ 1,
2961
+ 4
2962
+ ).year
2768
2963
  );
2769
2964
  week = defaults(w.W, 1);
2770
2965
  weekday = defaults(w.E, 1);
@@ -2775,7 +2970,13 @@ function requireMoment () {
2775
2970
  dow = config._locale._week.dow;
2776
2971
  doy = config._locale._week.doy;
2777
2972
 
2778
- curWeek = weekOfYear(createLocal(), dow, doy);
2973
+ curWeek = weekOfYearFromDate(
2974
+ currentDate[YEAR],
2975
+ currentDate[MONTH],
2976
+ currentDate[DATE],
2977
+ dow,
2978
+ doy
2979
+ );
2779
2980
 
2780
2981
  weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);
2781
2982
 
@@ -2941,6 +3142,7 @@ function requireMoment () {
2941
3142
  currentScore,
2942
3143
  validFormatFound,
2943
3144
  bestFormatIsValid = false,
3145
+ defaultDatePartsNow = {},
2944
3146
  configfLen = config._f.length;
2945
3147
 
2946
3148
  if (configfLen === 0) {
@@ -2956,10 +3158,11 @@ function requireMoment () {
2956
3158
  if (config._useUTC != null) {
2957
3159
  tempConfig._useUTC = config._useUTC;
2958
3160
  }
3161
+ tempConfig._defaultDatePartsNow = defaultDatePartsNow;
2959
3162
  tempConfig._f = config._f[i];
2960
3163
  configFromStringAndFormat(tempConfig);
2961
3164
 
2962
- if (isValid(tempConfig)) {
3165
+ if (isValid$2(tempConfig)) {
2963
3166
  validFormatFound = true;
2964
3167
  }
2965
3168
 
@@ -3029,7 +3232,7 @@ function requireMoment () {
3029
3232
  config._locale = config._locale || getLocale(config._l);
3030
3233
 
3031
3234
  if (input === null || (format === undefined && input === '')) {
3032
- return createInvalid({ nullInput: true });
3235
+ return createInvalid$1({ nullInput: true });
3033
3236
  }
3034
3237
 
3035
3238
  if (typeof input === 'string') {
@@ -3048,7 +3251,7 @@ function requireMoment () {
3048
3251
  configFromInput(config);
3049
3252
  }
3050
3253
 
3051
- if (!isValid(config)) {
3254
+ if (!isValid$2(config)) {
3052
3255
  config._d = null;
3053
3256
  }
3054
3257
 
@@ -3120,7 +3323,7 @@ function requireMoment () {
3120
3323
  if (this.isValid() && other.isValid()) {
3121
3324
  return other < this ? this : other;
3122
3325
  } else {
3123
- return createInvalid();
3326
+ return createInvalid$1();
3124
3327
  }
3125
3328
  }
3126
3329
  ),
@@ -3131,7 +3334,7 @@ function requireMoment () {
3131
3334
  if (this.isValid() && other.isValid()) {
3132
3335
  return other > this ? this : other;
3133
3336
  } else {
3134
- return createInvalid();
3337
+ return createInvalid$1();
3135
3338
  }
3136
3339
  }
3137
3340
  );
@@ -3149,9 +3352,20 @@ function requireMoment () {
3149
3352
  if (!moments.length) {
3150
3353
  return createLocal();
3151
3354
  }
3152
- res = moments[0];
3153
- for (i = 1; i < moments.length; ++i) {
3154
- if (!moments[i].isValid() || moments[i][fn](res)) {
3355
+ for (i = 0; i < moments.length; ++i) {
3356
+ if (isMoment(moments[i])) {
3357
+ res = moments[i];
3358
+ break;
3359
+ }
3360
+ }
3361
+ if (!res) {
3362
+ return createInvalid$1();
3363
+ }
3364
+ for (++i; i < moments.length; ++i) {
3365
+ if (
3366
+ isMoment(moments[i]) &&
3367
+ (!moments[i].isValid() || moments[i][fn](res))
3368
+ ) {
3155
3369
  res = moments[i];
3156
3370
  }
3157
3371
  }
@@ -3222,7 +3436,7 @@ function requireMoment () {
3222
3436
  return this._isValid;
3223
3437
  }
3224
3438
 
3225
- function createInvalid$1() {
3439
+ function createInvalid() {
3226
3440
  return createDuration(NaN);
3227
3441
  }
3228
3442
 
@@ -3316,8 +3530,12 @@ function requireMoment () {
3316
3530
  addRegexToken('Z', matchShortOffset);
3317
3531
  addRegexToken('ZZ', matchShortOffset);
3318
3532
  addParseToken(['Z', 'ZZ'], function (input, array, config) {
3533
+ var offset = offsetFromString(matchShortOffset, input);
3319
3534
  config._useUTC = true;
3320
- config._tzm = offsetFromString(matchShortOffset, input);
3535
+ config._tzm = offset;
3536
+ if (offset === null) {
3537
+ getParsingFlags(config).invalidOffset = input;
3538
+ }
3321
3539
  });
3322
3540
 
3323
3541
  // HELPERS
@@ -3341,6 +3559,13 @@ function requireMoment () {
3341
3559
  parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];
3342
3560
  minutes = +(parts[1] * 60) + toInt(parts[2]);
3343
3561
 
3562
+ if (
3563
+ toInt(parts[2]) > 59 ||
3564
+ (parts[0] === '+' ? minutes > 14 * 60 : minutes > 12 * 60)
3565
+ ) {
3566
+ return null;
3567
+ }
3568
+
3344
3569
  return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;
3345
3570
  }
3346
3571
 
@@ -3411,7 +3636,7 @@ function requireMoment () {
3411
3636
  }
3412
3637
  if (offset !== input) {
3413
3638
  if (!keepLocalTime || this._changeInProgress) {
3414
- addSubtract(
3639
+ addSubtract$1(
3415
3640
  this,
3416
3641
  createDuration(input - offset, 'm'),
3417
3642
  1,
@@ -3604,7 +3829,7 @@ function requireMoment () {
3604
3829
  }
3605
3830
 
3606
3831
  createDuration.fn = Duration.prototype;
3607
- createDuration.invalid = createInvalid$1;
3832
+ createDuration.invalid = createInvalid;
3608
3833
 
3609
3834
  function parseIso(inp, sign) {
3610
3835
  // We'd normally use ~~inp for this, but unfortunately it also
@@ -3668,12 +3893,12 @@ function requireMoment () {
3668
3893
  }
3669
3894
 
3670
3895
  dur = createDuration(val, period);
3671
- addSubtract(this, dur, direction);
3896
+ addSubtract$1(this, dur, direction);
3672
3897
  return this;
3673
3898
  };
3674
3899
  }
3675
3900
 
3676
- function addSubtract(mom, duration, isAdding, updateOffset) {
3901
+ function addSubtract$1(mom, duration, isAdding, updateOffset) {
3677
3902
  var milliseconds = duration._milliseconds,
3678
3903
  days = absRound(duration._days),
3679
3904
  months = absRound(duration._months);
@@ -3686,10 +3911,10 @@ function requireMoment () {
3686
3911
  updateOffset = updateOffset == null ? true : updateOffset;
3687
3912
 
3688
3913
  if (months) {
3689
- setMonth(mom, get(mom, 'Month') + months * isAdding);
3914
+ setMonth(mom, get$2(mom, 'Month') + months * isAdding);
3690
3915
  }
3691
3916
  if (days) {
3692
- set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);
3917
+ set$1(mom, 'Date', get$2(mom, 'Date') + days * isAdding);
3693
3918
  }
3694
3919
  if (milliseconds) {
3695
3920
  mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);
@@ -3699,8 +3924,8 @@ function requireMoment () {
3699
3924
  }
3700
3925
  }
3701
3926
 
3702
- var add = createAdder(1, 'add'),
3703
- subtract = createAdder(-1, 'subtract');
3927
+ var add$1 = createAdder(1, 'add'),
3928
+ subtract$1 = createAdder(-1, 'subtract');
3704
3929
 
3705
3930
  function isString(input) {
3706
3931
  return typeof input === 'string' || input instanceof String;
@@ -3812,7 +4037,7 @@ function requireMoment () {
3812
4037
  : 'sameElse';
3813
4038
  }
3814
4039
 
3815
- function calendar$1(time, formats) {
4040
+ function calendar(time, formats) {
3816
4041
  // Support for single parameter, formats only overload to the calendar function
3817
4042
  if (arguments.length === 1) {
3818
4043
  if (!arguments[0]) {
@@ -3842,7 +4067,7 @@ function requireMoment () {
3842
4067
  );
3843
4068
  }
3844
4069
 
3845
- function clone() {
4070
+ function clone$1() {
3846
4071
  return new Moment(this);
3847
4072
  }
3848
4073
 
@@ -3998,7 +4223,7 @@ function requireMoment () {
3998
4223
  return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');
3999
4224
  }
4000
4225
 
4001
- function toISOString(keepOffset) {
4226
+ function toISOString$1(keepOffset) {
4002
4227
  if (!this.isValid()) {
4003
4228
  return null;
4004
4229
  }
@@ -4138,7 +4363,7 @@ function requireMoment () {
4138
4363
  MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;
4139
4364
 
4140
4365
  // actual modulo - handles negative numbers (for dates before 1970):
4141
- function mod$1(dividend, divisor) {
4366
+ function mod(dividend, divisor) {
4142
4367
  return ((dividend % divisor) + divisor) % divisor;
4143
4368
  }
4144
4369
 
@@ -4205,18 +4430,18 @@ function requireMoment () {
4205
4430
  break;
4206
4431
  case 'hour':
4207
4432
  time = this._d.valueOf();
4208
- time -= mod$1(
4433
+ time -= mod(
4209
4434
  time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4210
4435
  MS_PER_HOUR
4211
4436
  );
4212
4437
  break;
4213
4438
  case 'minute':
4214
4439
  time = this._d.valueOf();
4215
- time -= mod$1(time, MS_PER_MINUTE);
4440
+ time -= mod(time, MS_PER_MINUTE);
4216
4441
  break;
4217
4442
  case 'second':
4218
4443
  time = this._d.valueOf();
4219
- time -= mod$1(time, MS_PER_SECOND);
4444
+ time -= mod(time, MS_PER_SECOND);
4220
4445
  break;
4221
4446
  }
4222
4447
 
@@ -4273,7 +4498,7 @@ function requireMoment () {
4273
4498
  time = this._d.valueOf();
4274
4499
  time +=
4275
4500
  MS_PER_HOUR -
4276
- mod$1(
4501
+ mod(
4277
4502
  time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),
4278
4503
  MS_PER_HOUR
4279
4504
  ) -
@@ -4281,11 +4506,11 @@ function requireMoment () {
4281
4506
  break;
4282
4507
  case 'minute':
4283
4508
  time = this._d.valueOf();
4284
- time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;
4509
+ time += MS_PER_MINUTE - mod(time, MS_PER_MINUTE) - 1;
4285
4510
  break;
4286
4511
  case 'second':
4287
4512
  time = this._d.valueOf();
4288
- time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;
4513
+ time += MS_PER_SECOND - mod(time, MS_PER_SECOND) - 1;
4289
4514
  break;
4290
4515
  }
4291
4516
 
@@ -4294,7 +4519,7 @@ function requireMoment () {
4294
4519
  return this;
4295
4520
  }
4296
4521
 
4297
- function valueOf() {
4522
+ function valueOf$1() {
4298
4523
  return this._d.valueOf() - (this._offset || 0) * 60000;
4299
4524
  }
4300
4525
 
@@ -4337,8 +4562,8 @@ function requireMoment () {
4337
4562
  return this.isValid() ? this.toISOString() : null;
4338
4563
  }
4339
4564
 
4340
- function isValid$2() {
4341
- return isValid(this);
4565
+ function isValid() {
4566
+ return isValid$2(this);
4342
4567
  }
4343
4568
 
4344
4569
  function parsingFlags() {
@@ -4913,106 +5138,106 @@ function requireMoment () {
4913
5138
  return this._isUTC ? 'Coordinated Universal Time' : '';
4914
5139
  }
4915
5140
 
4916
- var proto = Moment.prototype;
5141
+ var proto$2 = Moment.prototype;
4917
5142
 
4918
- proto.add = add;
4919
- proto.calendar = calendar$1;
4920
- proto.clone = clone;
4921
- proto.diff = diff;
4922
- proto.endOf = endOf;
4923
- proto.format = format;
4924
- proto.from = from;
4925
- proto.fromNow = fromNow;
4926
- proto.to = to;
4927
- proto.toNow = toNow;
4928
- proto.get = stringGet;
4929
- proto.invalidAt = invalidAt;
4930
- proto.isAfter = isAfter;
4931
- proto.isBefore = isBefore;
4932
- proto.isBetween = isBetween;
4933
- proto.isSame = isSame;
4934
- proto.isSameOrAfter = isSameOrAfter;
4935
- proto.isSameOrBefore = isSameOrBefore;
4936
- proto.isValid = isValid$2;
4937
- proto.lang = lang;
4938
- proto.locale = locale;
4939
- proto.localeData = localeData;
4940
- proto.max = prototypeMax;
4941
- proto.min = prototypeMin;
4942
- proto.parsingFlags = parsingFlags;
4943
- proto.set = stringSet;
4944
- proto.startOf = startOf;
4945
- proto.subtract = subtract;
4946
- proto.toArray = toArray;
4947
- proto.toObject = toObject;
4948
- proto.toDate = toDate;
4949
- proto.toISOString = toISOString;
4950
- proto.inspect = inspect;
5143
+ proto$2.add = add$1;
5144
+ proto$2.calendar = calendar;
5145
+ proto$2.clone = clone$1;
5146
+ proto$2.diff = diff;
5147
+ proto$2.endOf = endOf;
5148
+ proto$2.format = format;
5149
+ proto$2.from = from;
5150
+ proto$2.fromNow = fromNow;
5151
+ proto$2.to = to;
5152
+ proto$2.toNow = toNow;
5153
+ proto$2.get = stringGet;
5154
+ proto$2.invalidAt = invalidAt;
5155
+ proto$2.isAfter = isAfter;
5156
+ proto$2.isBefore = isBefore;
5157
+ proto$2.isBetween = isBetween;
5158
+ proto$2.isSame = isSame;
5159
+ proto$2.isSameOrAfter = isSameOrAfter;
5160
+ proto$2.isSameOrBefore = isSameOrBefore;
5161
+ proto$2.isValid = isValid;
5162
+ proto$2.lang = lang;
5163
+ proto$2.locale = locale;
5164
+ proto$2.localeData = localeData;
5165
+ proto$2.max = prototypeMax;
5166
+ proto$2.min = prototypeMin;
5167
+ proto$2.parsingFlags = parsingFlags;
5168
+ proto$2.set = stringSet;
5169
+ proto$2.startOf = startOf;
5170
+ proto$2.subtract = subtract$1;
5171
+ proto$2.toArray = toArray;
5172
+ proto$2.toObject = toObject;
5173
+ proto$2.toDate = toDate;
5174
+ proto$2.toISOString = toISOString$1;
5175
+ proto$2.inspect = inspect;
4951
5176
  if (typeof Symbol !== 'undefined' && Symbol.for != null) {
4952
- proto[Symbol.for('nodejs.util.inspect.custom')] = function () {
5177
+ proto$2[Symbol.for('nodejs.util.inspect.custom')] = function () {
4953
5178
  return 'Moment<' + this.format() + '>';
4954
5179
  };
4955
5180
  }
4956
- proto.toJSON = toJSON;
4957
- proto.toString = toString;
4958
- proto.unix = unix;
4959
- proto.valueOf = valueOf;
4960
- proto.creationData = creationData;
4961
- proto.eraName = getEraName;
4962
- proto.eraNarrow = getEraNarrow;
4963
- proto.eraAbbr = getEraAbbr;
4964
- proto.eraYear = getEraYear;
4965
- proto.year = getSetYear;
4966
- proto.isLeapYear = getIsLeapYear;
4967
- proto.weekYear = getSetWeekYear;
4968
- proto.isoWeekYear = getSetISOWeekYear;
4969
- proto.quarter = proto.quarters = getSetQuarter;
4970
- proto.month = getSetMonth;
4971
- proto.daysInMonth = getDaysInMonth;
4972
- proto.week = proto.weeks = getSetWeek;
4973
- proto.isoWeek = proto.isoWeeks = getSetISOWeek;
4974
- proto.weeksInYear = getWeeksInYear;
4975
- proto.weeksInWeekYear = getWeeksInWeekYear;
4976
- proto.isoWeeksInYear = getISOWeeksInYear;
4977
- proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
4978
- proto.date = getSetDayOfMonth;
4979
- proto.day = proto.days = getSetDayOfWeek;
4980
- proto.weekday = getSetLocaleDayOfWeek;
4981
- proto.isoWeekday = getSetISODayOfWeek;
4982
- proto.dayOfYear = getSetDayOfYear;
4983
- proto.hour = proto.hours = getSetHour;
4984
- proto.minute = proto.minutes = getSetMinute;
4985
- proto.second = proto.seconds = getSetSecond;
4986
- proto.millisecond = proto.milliseconds = getSetMillisecond;
4987
- proto.utcOffset = getSetOffset;
4988
- proto.utc = setOffsetToUTC;
4989
- proto.local = setOffsetToLocal;
4990
- proto.parseZone = setOffsetToParsedOffset;
4991
- proto.hasAlignedHourOffset = hasAlignedHourOffset;
4992
- proto.isDST = isDaylightSavingTime;
4993
- proto.isLocal = isLocal;
4994
- proto.isUtcOffset = isUtcOffset;
4995
- proto.isUtc = isUtc;
4996
- proto.isUTC = isUtc;
4997
- proto.zoneAbbr = getZoneAbbr;
4998
- proto.zoneName = getZoneName;
4999
- proto.dates = deprecate(
5181
+ proto$2.toJSON = toJSON;
5182
+ proto$2.toString = toString;
5183
+ proto$2.unix = unix;
5184
+ proto$2.valueOf = valueOf$1;
5185
+ proto$2.creationData = creationData;
5186
+ proto$2.eraName = getEraName;
5187
+ proto$2.eraNarrow = getEraNarrow;
5188
+ proto$2.eraAbbr = getEraAbbr;
5189
+ proto$2.eraYear = getEraYear;
5190
+ proto$2.year = getSetYear;
5191
+ proto$2.isLeapYear = getIsLeapYear;
5192
+ proto$2.weekYear = getSetWeekYear;
5193
+ proto$2.isoWeekYear = getSetISOWeekYear;
5194
+ proto$2.quarter = proto$2.quarters = getSetQuarter;
5195
+ proto$2.month = getSetMonth;
5196
+ proto$2.daysInMonth = getDaysInMonth;
5197
+ proto$2.week = proto$2.weeks = getSetWeek;
5198
+ proto$2.isoWeek = proto$2.isoWeeks = getSetISOWeek;
5199
+ proto$2.weeksInYear = getWeeksInYear;
5200
+ proto$2.weeksInWeekYear = getWeeksInWeekYear;
5201
+ proto$2.isoWeeksInYear = getISOWeeksInYear;
5202
+ proto$2.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;
5203
+ proto$2.date = getSetDayOfMonth;
5204
+ proto$2.day = proto$2.days = getSetDayOfWeek;
5205
+ proto$2.weekday = getSetLocaleDayOfWeek;
5206
+ proto$2.isoWeekday = getSetISODayOfWeek;
5207
+ proto$2.dayOfYear = getSetDayOfYear;
5208
+ proto$2.hour = proto$2.hours = getSetHour;
5209
+ proto$2.minute = proto$2.minutes = getSetMinute;
5210
+ proto$2.second = proto$2.seconds = getSetSecond;
5211
+ proto$2.millisecond = proto$2.milliseconds = getSetMillisecond;
5212
+ proto$2.utcOffset = getSetOffset;
5213
+ proto$2.utc = setOffsetToUTC;
5214
+ proto$2.local = setOffsetToLocal;
5215
+ proto$2.parseZone = setOffsetToParsedOffset;
5216
+ proto$2.hasAlignedHourOffset = hasAlignedHourOffset;
5217
+ proto$2.isDST = isDaylightSavingTime;
5218
+ proto$2.isLocal = isLocal;
5219
+ proto$2.isUtcOffset = isUtcOffset;
5220
+ proto$2.isUtc = isUtc;
5221
+ proto$2.isUTC = isUtc;
5222
+ proto$2.zoneAbbr = getZoneAbbr;
5223
+ proto$2.zoneName = getZoneName;
5224
+ proto$2.dates = deprecate(
5000
5225
  'dates accessor is deprecated. Use date instead.',
5001
5226
  getSetDayOfMonth
5002
5227
  );
5003
- proto.months = deprecate(
5228
+ proto$2.months = deprecate(
5004
5229
  'months accessor is deprecated. Use month instead',
5005
5230
  getSetMonth
5006
5231
  );
5007
- proto.years = deprecate(
5232
+ proto$2.years = deprecate(
5008
5233
  'years accessor is deprecated. Use year instead',
5009
5234
  getSetYear
5010
5235
  );
5011
- proto.zone = deprecate(
5236
+ proto$2.zone = deprecate(
5012
5237
  'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',
5013
5238
  getSetZone
5014
5239
  );
5015
- proto.isDSTShifted = deprecate(
5240
+ proto$2.isDSTShifted = deprecate(
5016
5241
  'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',
5017
5242
  isDaylightSavingTimeShifted
5018
5243
  );
@@ -5031,13 +5256,13 @@ function requireMoment () {
5031
5256
 
5032
5257
  var proto$1 = Locale.prototype;
5033
5258
 
5034
- proto$1.calendar = calendar;
5259
+ proto$1.calendar = calendar$1;
5035
5260
  proto$1.longDateFormat = longDateFormat;
5036
5261
  proto$1.invalidDate = invalidDate;
5037
5262
  proto$1.ordinal = ordinal;
5038
5263
  proto$1.preparse = preParsePostFormat;
5039
5264
  proto$1.postformat = preParsePostFormat;
5040
- proto$1.relativeTime = relativeTime;
5265
+ proto$1.relativeTime = relativeTime$1;
5041
5266
  proto$1.pastFuture = pastFuture;
5042
5267
  proto$1.set = set;
5043
5268
  proto$1.eras = localeEras;
@@ -5207,7 +5432,7 @@ function requireMoment () {
5207
5432
 
5208
5433
  var mathAbs = Math.abs;
5209
5434
 
5210
- function abs() {
5435
+ function abs$1() {
5211
5436
  var data = this._data;
5212
5437
 
5213
5438
  this._milliseconds = mathAbs(this._milliseconds);
@@ -5224,7 +5449,7 @@ function requireMoment () {
5224
5449
  return this;
5225
5450
  }
5226
5451
 
5227
- function addSubtract$1(duration, input, value, direction) {
5452
+ function addSubtract(duration, input, value, direction) {
5228
5453
  var other = createDuration(input, value);
5229
5454
 
5230
5455
  duration._milliseconds += direction * other._milliseconds;
@@ -5235,13 +5460,13 @@ function requireMoment () {
5235
5460
  }
5236
5461
 
5237
5462
  // supports only 2.0-style add(1, 's') or add(duration)
5238
- function add$1(input, value) {
5239
- return addSubtract$1(this, input, value, 1);
5463
+ function add(input, value) {
5464
+ return addSubtract(this, input, value, 1);
5240
5465
  }
5241
5466
 
5242
5467
  // supports only 2.0-style subtract(1, 's') or subtract(duration)
5243
- function subtract$1(input, value) {
5244
- return addSubtract$1(this, input, value, -1);
5468
+ function subtract(input, value) {
5469
+ return addSubtract(this, input, value, -1);
5245
5470
  }
5246
5471
 
5247
5472
  function absCeil(number) {
@@ -5265,12 +5490,10 @@ function requireMoment () {
5265
5490
 
5266
5491
  // if we have a mix of positive and negative values, bubble down first
5267
5492
  // check: https://github.com/moment/moment/issues/2166
5268
- if (
5269
- !(
5270
- (milliseconds >= 0 && days >= 0 && months >= 0) ||
5271
- (milliseconds <= 0 && days <= 0 && months <= 0)
5272
- )
5273
- ) {
5493
+ if (!(
5494
+ (milliseconds >= 0 && days >= 0 && months >= 0) ||
5495
+ (milliseconds <= 0 && days <= 0 && months <= 0)
5496
+ )) {
5274
5497
  milliseconds += absCeil(monthsToDays(months) + days) * 864e5;
5275
5498
  days = 0;
5276
5499
  months = 0;
@@ -5377,13 +5600,13 @@ function requireMoment () {
5377
5600
  asMonths = makeAs('M'),
5378
5601
  asQuarters = makeAs('Q'),
5379
5602
  asYears = makeAs('y'),
5380
- valueOf$1 = asMilliseconds;
5603
+ valueOf = asMilliseconds;
5381
5604
 
5382
- function clone$1() {
5605
+ function clone() {
5383
5606
  return createDuration(this);
5384
5607
  }
5385
5608
 
5386
- function get$2(units) {
5609
+ function get(units) {
5387
5610
  units = normalizeUnits(units);
5388
5611
  return this.isValid() ? this[units + 's']() : NaN;
5389
5612
  }
@@ -5419,10 +5642,16 @@ function requireMoment () {
5419
5642
 
5420
5643
  // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
5421
5644
  function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {
5422
- return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
5645
+ return relativeTimeWithoutPostformat.call(
5646
+ locale,
5647
+ number || 1,
5648
+ !!withoutSuffix,
5649
+ string,
5650
+ isFuture
5651
+ );
5423
5652
  }
5424
5653
 
5425
- function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {
5654
+ function relativeTime(posNegDuration, withoutSuffix, thresholds, locale) {
5426
5655
  var duration = createDuration(posNegDuration).abs(),
5427
5656
  seconds = round(duration.as('s')),
5428
5657
  minutes = round(duration.as('m')),
@@ -5503,29 +5732,29 @@ function requireMoment () {
5503
5732
  withSuffix = argWithSuffix;
5504
5733
  }
5505
5734
  if (typeof argThresholds === 'object') {
5506
- th = Object.assign({}, thresholds, argThresholds);
5735
+ th = extend(extend({}, thresholds), argThresholds || {});
5507
5736
  if (argThresholds.s != null && argThresholds.ss == null) {
5508
5737
  th.ss = argThresholds.s - 1;
5509
5738
  }
5510
5739
  }
5511
5740
 
5512
5741
  locale = this.localeData();
5513
- output = relativeTime$1(this, !withSuffix, th, locale);
5742
+ output = relativeTime(this, !withSuffix, th, locale);
5514
5743
 
5515
5744
  if (withSuffix) {
5516
- output = locale.pastFuture(+this, output);
5745
+ output = pastFutureWithoutPostformat.call(locale, +this, output);
5517
5746
  }
5518
5747
 
5519
5748
  return locale.postformat(output);
5520
5749
  }
5521
5750
 
5522
- var abs$1 = Math.abs;
5751
+ var abs = Math.abs;
5523
5752
 
5524
5753
  function sign(x) {
5525
5754
  return (x > 0) - (x < 0) || +x;
5526
5755
  }
5527
5756
 
5528
- function toISOString$1() {
5757
+ function toISOString() {
5529
5758
  // for ISO strings we do not use the normal bubbling rules:
5530
5759
  // * milliseconds bubble up until they become hours
5531
5760
  // * days do not bubble at all
@@ -5537,9 +5766,9 @@ function requireMoment () {
5537
5766
  return this.localeData().invalidDate();
5538
5767
  }
5539
5768
 
5540
- var seconds = abs$1(this._milliseconds) / 1000,
5541
- days = abs$1(this._days),
5542
- months = abs$1(this._months),
5769
+ var seconds = abs(this._milliseconds) / 1000,
5770
+ days = abs(this._days),
5771
+ months = abs(this._months),
5543
5772
  minutes,
5544
5773
  hours,
5545
5774
  years,
@@ -5587,46 +5816,46 @@ function requireMoment () {
5587
5816
  );
5588
5817
  }
5589
5818
 
5590
- var proto$2 = Duration.prototype;
5819
+ var proto = Duration.prototype;
5591
5820
 
5592
- proto$2.isValid = isValid$1;
5593
- proto$2.abs = abs;
5594
- proto$2.add = add$1;
5595
- proto$2.subtract = subtract$1;
5596
- proto$2.as = as;
5597
- proto$2.asMilliseconds = asMilliseconds;
5598
- proto$2.asSeconds = asSeconds;
5599
- proto$2.asMinutes = asMinutes;
5600
- proto$2.asHours = asHours;
5601
- proto$2.asDays = asDays;
5602
- proto$2.asWeeks = asWeeks;
5603
- proto$2.asMonths = asMonths;
5604
- proto$2.asQuarters = asQuarters;
5605
- proto$2.asYears = asYears;
5606
- proto$2.valueOf = valueOf$1;
5607
- proto$2._bubble = bubble;
5608
- proto$2.clone = clone$1;
5609
- proto$2.get = get$2;
5610
- proto$2.milliseconds = milliseconds;
5611
- proto$2.seconds = seconds;
5612
- proto$2.minutes = minutes;
5613
- proto$2.hours = hours;
5614
- proto$2.days = days;
5615
- proto$2.weeks = weeks;
5616
- proto$2.months = months;
5617
- proto$2.years = years;
5618
- proto$2.humanize = humanize;
5619
- proto$2.toISOString = toISOString$1;
5620
- proto$2.toString = toISOString$1;
5621
- proto$2.toJSON = toISOString$1;
5622
- proto$2.locale = locale;
5623
- proto$2.localeData = localeData;
5821
+ proto.isValid = isValid$1;
5822
+ proto.abs = abs$1;
5823
+ proto.add = add;
5824
+ proto.subtract = subtract;
5825
+ proto.as = as;
5826
+ proto.asMilliseconds = asMilliseconds;
5827
+ proto.asSeconds = asSeconds;
5828
+ proto.asMinutes = asMinutes;
5829
+ proto.asHours = asHours;
5830
+ proto.asDays = asDays;
5831
+ proto.asWeeks = asWeeks;
5832
+ proto.asMonths = asMonths;
5833
+ proto.asQuarters = asQuarters;
5834
+ proto.asYears = asYears;
5835
+ proto.valueOf = valueOf;
5836
+ proto._bubble = bubble;
5837
+ proto.clone = clone;
5838
+ proto.get = get;
5839
+ proto.milliseconds = milliseconds;
5840
+ proto.seconds = seconds;
5841
+ proto.minutes = minutes;
5842
+ proto.hours = hours;
5843
+ proto.days = days;
5844
+ proto.weeks = weeks;
5845
+ proto.months = months;
5846
+ proto.years = years;
5847
+ proto.humanize = humanize;
5848
+ proto.toISOString = toISOString;
5849
+ proto.toString = toISOString;
5850
+ proto.toJSON = toISOString;
5851
+ proto.locale = locale;
5852
+ proto.localeData = localeData;
5624
5853
 
5625
- proto$2.toIsoString = deprecate(
5854
+ proto.toIsoString = deprecate(
5626
5855
  'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',
5627
- toISOString$1
5856
+ toISOString
5628
5857
  );
5629
- proto$2.lang = lang;
5858
+ proto.lang = lang;
5630
5859
 
5631
5860
  // FORMATTING
5632
5861
 
@@ -5646,11 +5875,11 @@ function requireMoment () {
5646
5875
 
5647
5876
  //! moment.js
5648
5877
 
5649
- hooks.version = '2.30.1';
5878
+ hooks.version = '2.31.0';
5650
5879
 
5651
5880
  setHookCallback(createLocal);
5652
5881
 
5653
- hooks.fn = proto;
5882
+ hooks.fn = proto$2;
5654
5883
  hooks.min = min;
5655
5884
  hooks.max = max;
5656
5885
  hooks.now = now;
@@ -5659,7 +5888,7 @@ function requireMoment () {
5659
5888
  hooks.months = listMonths;
5660
5889
  hooks.isDate = isDate;
5661
5890
  hooks.locale = getSetGlobalLocale;
5662
- hooks.invalid = createInvalid;
5891
+ hooks.invalid = createInvalid$1;
5663
5892
  hooks.duration = createDuration;
5664
5893
  hooks.isMoment = isMoment;
5665
5894
  hooks.weekdays = listWeekdays;
@@ -5676,7 +5905,7 @@ function requireMoment () {
5676
5905
  hooks.relativeTimeRounding = getSetRelativeTimeRounding;
5677
5906
  hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;
5678
5907
  hooks.calendarFormat = getCalendarFormat;
5679
- hooks.prototype = proto;
5908
+ hooks.prototype = proto$2;
5680
5909
 
5681
5910
  // currently HTML5 input type only supports 24-hour formats
5682
5911
  hooks.HTML5_FMT = {