voyager-ionic-core 7.5.1 → 7.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1918) hide show
  1. package/components/action-sheet.js +299 -289
  2. package/components/alert.js +477 -467
  3. package/components/animation.js +992 -976
  4. package/components/backdrop.js +56 -56
  5. package/components/button-active.js +56 -56
  6. package/components/button.js +236 -236
  7. package/components/buttons.js +29 -29
  8. package/components/capacitor.js +4 -4
  9. package/components/checkbox.js +172 -170
  10. package/components/config.js +142 -142
  11. package/components/cubic-bezier.js +49 -49
  12. package/components/data.js +1055 -1055
  13. package/components/dir.js +5 -5
  14. package/components/focus-visible.js +63 -63
  15. package/components/form-controller.js +45 -49
  16. package/components/framework-delegate.js +121 -121
  17. package/components/gesture-controller.js +182 -182
  18. package/components/haptic.js +150 -150
  19. package/components/hardware-back-button.js +48 -48
  20. package/components/helpers.js +257 -257
  21. package/components/icon.js +133 -133
  22. package/components/index.js +95 -95
  23. package/components/index2.js +163 -163
  24. package/components/index3.js +417 -417
  25. package/components/index4.js +257 -259
  26. package/components/index5.js +0 -22
  27. package/components/index6.js +3 -3
  28. package/components/index8.js +58 -59
  29. package/components/index9.js +171 -171
  30. package/components/input-shims.js +488 -475
  31. package/components/input.utils.js +107 -106
  32. package/components/ion-accordion-group.d.ts +2 -2
  33. package/components/ion-accordion-group.js +223 -213
  34. package/components/ion-accordion.d.ts +2 -2
  35. package/components/ion-accordion.js +326 -326
  36. package/components/ion-action-sheet.d.ts +2 -2
  37. package/components/ion-alert.d.ts +2 -2
  38. package/components/ion-app.d.ts +2 -2
  39. package/components/ion-app.js +93 -93
  40. package/components/ion-avatar.d.ts +2 -2
  41. package/components/ion-avatar.js +23 -23
  42. package/components/ion-back-button.d.ts +2 -2
  43. package/components/ion-back-button.js +102 -102
  44. package/components/ion-backdrop.d.ts +2 -2
  45. package/components/ion-badge.d.ts +2 -2
  46. package/components/ion-badge.js +29 -29
  47. package/components/ion-breadcrumb.d.ts +2 -2
  48. package/components/ion-breadcrumb.js +111 -111
  49. package/components/ion-breadcrumbs.d.ts +2 -2
  50. package/components/ion-breadcrumbs.js +139 -139
  51. package/components/ion-button.d.ts +2 -2
  52. package/components/ion-buttons.d.ts +2 -2
  53. package/components/ion-card-content.d.ts +2 -2
  54. package/components/ion-card-content.js +27 -27
  55. package/components/ion-card-header.d.ts +2 -2
  56. package/components/ion-card-header.js +33 -33
  57. package/components/ion-card-subtitle.d.ts +2 -2
  58. package/components/ion-card-subtitle.js +30 -30
  59. package/components/ion-card-title.d.ts +2 -2
  60. package/components/ion-card-title.js +30 -30
  61. package/components/ion-card.d.ts +2 -2
  62. package/components/ion-card.js +78 -78
  63. package/components/ion-checkbox.d.ts +2 -2
  64. package/components/ion-chip.d.ts +2 -2
  65. package/components/ion-chip.js +41 -41
  66. package/components/ion-col.d.ts +2 -2
  67. package/components/ion-col.js +156 -156
  68. package/components/ion-content.d.ts +2 -2
  69. package/components/ion-content.js +394 -394
  70. package/components/ion-datetime-button.d.ts +2 -2
  71. package/components/ion-datetime-button.js +348 -348
  72. package/components/ion-datetime.d.ts +2 -2
  73. package/components/ion-datetime.js +1722 -1684
  74. package/components/ion-fab-button.d.ts +2 -2
  75. package/components/ion-fab-button.js +109 -109
  76. package/components/ion-fab-list.d.ts +2 -2
  77. package/components/ion-fab-list.js +45 -45
  78. package/components/ion-fab.d.ts +2 -2
  79. package/components/ion-fab.js +76 -76
  80. package/components/ion-footer.d.ts +2 -2
  81. package/components/ion-footer.js +124 -124
  82. package/components/ion-grid.d.ts +2 -2
  83. package/components/ion-grid.js +27 -27
  84. package/components/ion-header.d.ts +2 -2
  85. package/components/ion-header.js +299 -299
  86. package/components/ion-img.d.ts +2 -2
  87. package/components/ion-img.js +97 -97
  88. package/components/ion-infinite-scroll-content.d.ts +2 -2
  89. package/components/ion-infinite-scroll-content.js +49 -49
  90. package/components/ion-infinite-scroll.d.ts +2 -2
  91. package/components/ion-infinite-scroll.js +187 -179
  92. package/components/ion-input.d.ts +2 -2
  93. package/components/ion-input.js +482 -450
  94. package/components/ion-item-divider.d.ts +2 -2
  95. package/components/ion-item-divider.js +36 -36
  96. package/components/ion-item-group.d.ts +2 -2
  97. package/components/ion-item-group.js +28 -28
  98. package/components/ion-item-option.d.ts +2 -2
  99. package/components/ion-item-option.js +69 -69
  100. package/components/ion-item-options.d.ts +2 -2
  101. package/components/ion-item-options.js +50 -50
  102. package/components/ion-item-sliding.d.ts +2 -2
  103. package/components/ion-item-sliding.js +404 -404
  104. package/components/ion-item.d.ts +2 -2
  105. package/components/ion-label.d.ts +2 -2
  106. package/components/ion-list-header.d.ts +2 -2
  107. package/components/ion-list.d.ts +2 -2
  108. package/components/ion-loading.d.ts +2 -2
  109. package/components/ion-loading.js +257 -247
  110. package/components/ion-menu-button.d.ts +2 -2
  111. package/components/ion-menu-button.js +77 -77
  112. package/components/ion-menu-toggle.d.ts +2 -2
  113. package/components/ion-menu-toggle.js +41 -41
  114. package/components/ion-menu.d.ts +2 -2
  115. package/components/ion-menu.js +631 -619
  116. package/components/ion-modal.d.ts +2 -2
  117. package/components/ion-modal.js +1451 -1441
  118. package/components/ion-nav-link.d.ts +2 -2
  119. package/components/ion-nav-link.js +47 -47
  120. package/components/ion-nav.d.ts +2 -2
  121. package/components/ion-nav.js +910 -910
  122. package/components/ion-note.d.ts +2 -2
  123. package/components/ion-picker-column-internal.d.ts +2 -2
  124. package/components/ion-picker-column.d.ts +2 -2
  125. package/components/ion-picker-internal.d.ts +2 -2
  126. package/components/ion-picker.d.ts +2 -2
  127. package/components/ion-picker.js +263 -253
  128. package/components/ion-popover.d.ts +2 -2
  129. package/components/ion-progress-bar.d.ts +2 -2
  130. package/components/ion-progress-bar.js +57 -57
  131. package/components/ion-radio-group.d.ts +2 -2
  132. package/components/ion-radio.d.ts +2 -2
  133. package/components/ion-range.d.ts +2 -2
  134. package/components/ion-range.js +593 -591
  135. package/components/ion-refresher-content.d.ts +2 -2
  136. package/components/ion-refresher-content.js +63 -63
  137. package/components/ion-refresher.d.ts +2 -2
  138. package/components/ion-refresher.js +747 -740
  139. package/components/ion-reorder-group.d.ts +2 -2
  140. package/components/ion-reorder-group.js +259 -259
  141. package/components/ion-reorder.d.ts +2 -2
  142. package/components/ion-reorder.js +41 -41
  143. package/components/ion-ripple-effect.d.ts +2 -2
  144. package/components/ion-route-redirect.d.ts +2 -2
  145. package/components/ion-route-redirect.js +34 -34
  146. package/components/ion-route.d.ts +2 -2
  147. package/components/ion-route.js +56 -56
  148. package/components/ion-router-link.d.ts +2 -2
  149. package/components/ion-router-link.js +45 -45
  150. package/components/ion-router-outlet.d.ts +2 -2
  151. package/components/ion-router-outlet.js +193 -193
  152. package/components/ion-router.d.ts +2 -2
  153. package/components/ion-router.js +632 -632
  154. package/components/ion-row.d.ts +2 -2
  155. package/components/ion-row.js +20 -20
  156. package/components/ion-searchbar.d.ts +2 -2
  157. package/components/ion-searchbar.js +406 -397
  158. package/components/ion-segment-button.d.ts +2 -2
  159. package/components/ion-segment-button.js +117 -117
  160. package/components/ion-segment.d.ts +2 -2
  161. package/components/ion-segment.js +427 -401
  162. package/components/ion-select-option.d.ts +2 -2
  163. package/components/ion-select-option.js +27 -27
  164. package/components/ion-select-popover.d.ts +2 -2
  165. package/components/ion-select.d.ts +2 -2
  166. package/components/ion-select.js +778 -763
  167. package/components/ion-skeleton-text.d.ts +2 -2
  168. package/components/ion-skeleton-text.js +45 -32
  169. package/components/ion-spinner.d.ts +2 -2
  170. package/components/ion-split-pane.d.ts +2 -2
  171. package/components/ion-split-pane.js +145 -145
  172. package/components/ion-tab-bar.d.ts +2 -2
  173. package/components/ion-tab-bar.js +79 -79
  174. package/components/ion-tab-button.d.ts +2 -2
  175. package/components/ion-tab-button.js +106 -106
  176. package/components/ion-tab.d.ts +2 -2
  177. package/components/ion-tab.js +72 -72
  178. package/components/ion-tabs.d.ts +2 -2
  179. package/components/ion-tabs.js +160 -160
  180. package/components/ion-text.d.ts +2 -2
  181. package/components/ion-text.js +26 -26
  182. package/components/ion-textarea.d.ts +2 -2
  183. package/components/ion-textarea.js +424 -392
  184. package/components/ion-thumbnail.d.ts +2 -2
  185. package/components/ion-thumbnail.js +20 -20
  186. package/components/ion-title.d.ts +2 -2
  187. package/components/ion-title.js +57 -57
  188. package/components/ion-toast.d.ts +2 -2
  189. package/components/ion-toast.js +819 -464
  190. package/components/ion-toggle.d.ts +2 -2
  191. package/components/ion-toggle.js +243 -241
  192. package/components/ion-toolbar.d.ts +2 -2
  193. package/components/ion-toolbar.js +71 -71
  194. package/components/ionic-global.js +163 -163
  195. package/components/ios.transition.js +598 -598
  196. package/components/item.js +301 -301
  197. package/components/keyboard-controller.js +128 -128
  198. package/components/keyboard.js +62 -62
  199. package/components/keyboard2.js +59 -59
  200. package/components/label.js +85 -85
  201. package/components/list-header.js +35 -35
  202. package/components/list.js +52 -52
  203. package/components/lock-controller.js +24 -24
  204. package/components/md.transition.js +44 -44
  205. package/components/menu-toggle-util.js +2 -2
  206. package/components/notch-controller.js +120 -120
  207. package/components/note.js +29 -29
  208. package/components/overlays.js +496 -495
  209. package/components/picker-column-internal.js +350 -345
  210. package/components/picker-column.js +334 -334
  211. package/components/picker-internal.js +470 -470
  212. package/components/popover.js +1156 -1146
  213. package/components/radio-group.js +162 -151
  214. package/components/radio.js +248 -209
  215. package/components/ripple-effect.js +81 -81
  216. package/components/select-popover.js +163 -163
  217. package/components/spinner.js +182 -182
  218. package/components/status-tap.js +26 -26
  219. package/components/swipe-back.js +65 -65
  220. package/components/theme.js +23 -23
  221. package/components/watch-options.js +37 -26
  222. package/css/core.css +66 -0
  223. package/css/core.css.map +1 -1
  224. package/css/display.css +44 -0
  225. package/css/display.css.map +1 -1
  226. package/css/float-elements.css +44 -0
  227. package/css/float-elements.css.map +1 -1
  228. package/css/global.bundle.css +88 -0
  229. package/css/global.bundle.css.map +1 -1
  230. package/css/ionic-swiper.css +22 -0
  231. package/css/ionic-swiper.css.map +1 -1
  232. package/css/ionic.bundle.css.map +1 -1
  233. package/css/padding.css +44 -0
  234. package/css/padding.css.map +1 -1
  235. package/css/structure.css +44 -0
  236. package/css/structure.css.map +1 -1
  237. package/css/text-alignment.css +44 -0
  238. package/css/text-alignment.css.map +1 -1
  239. package/css/text-transformation.css +44 -0
  240. package/css/text-transformation.css.map +1 -1
  241. package/css/typography.css +44 -0
  242. package/css/typography.css.map +1 -1
  243. package/css/utils.bundle.css +220 -0
  244. package/css/utils.bundle.css.map +1 -1
  245. package/dist/cjs/animation-9b401d39.js +1062 -0
  246. package/dist/cjs/{app-globals-fe1ad535.js → app-globals-0af482c7.js} +1 -1
  247. package/dist/cjs/button-active-a5185907.js +69 -0
  248. package/dist/cjs/{capacitor-2ffba62a.js → capacitor-c04564bf.js} +5 -5
  249. package/dist/cjs/compare-with-utils-df1001d7.js +44 -0
  250. package/dist/cjs/config-4f60b98a.js +199 -0
  251. package/dist/cjs/cubic-bezier-f2dccc53.js +92 -0
  252. package/dist/cjs/data-36b9094e.js +1622 -0
  253. package/dist/cjs/{dir-f1e0ca26.js → dir-94c21456.js} +5 -5
  254. package/dist/cjs/focus-visible-7a0ce04f.js +77 -0
  255. package/dist/cjs/form-controller-7d42a722.js +66 -0
  256. package/dist/cjs/framework-delegate-1c29b14a.js +144 -0
  257. package/dist/cjs/gesture-controller-c40c045a.js +197 -0
  258. package/dist/cjs/haptic-b882e0bb.js +212 -0
  259. package/dist/cjs/hardware-back-button-76833cac.js +76 -0
  260. package/dist/cjs/helpers-76bb7efb.js +441 -0
  261. package/dist/cjs/{index-cc7dfb7c.js → index-5915f9b3.js} +3 -3
  262. package/dist/cjs/index-b4f986cd.js +198 -0
  263. package/dist/cjs/{index-305a23dc.js → index-bbb4336c.js} +184 -63
  264. package/dist/cjs/index-c8d52405.js +10 -0
  265. package/dist/cjs/index-ce101dc9.js +308 -0
  266. package/dist/cjs/index-d1b59ffa.js +459 -0
  267. package/dist/cjs/{index-10873539.js → index-da15e99c.js} +60 -61
  268. package/dist/cjs/index-f8f13389.js +243 -0
  269. package/dist/cjs/index.cjs.js +113 -113
  270. package/dist/cjs/input-shims-a23bb0f4.js +601 -0
  271. package/dist/cjs/input.utils-3d0166a2.js +138 -0
  272. package/dist/cjs/ion-accordion_2.cjs.entry.js +491 -481
  273. package/dist/cjs/ion-action-sheet.cjs.entry.js +262 -252
  274. package/dist/cjs/ion-alert.cjs.entry.js +442 -432
  275. package/dist/cjs/ion-app_8.cjs.entry.js +1153 -1153
  276. package/dist/cjs/ion-avatar_3.cjs.entry.js +29 -29
  277. package/dist/cjs/ion-back-button.cjs.entry.js +73 -73
  278. package/dist/cjs/ion-backdrop.cjs.entry.js +40 -40
  279. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +194 -194
  280. package/dist/cjs/ion-button_2.cjs.entry.js +303 -303
  281. package/dist/cjs/ion-card_5.cjs.entry.js +105 -105
  282. package/dist/cjs/ion-checkbox.cjs.entry.js +149 -147
  283. package/dist/cjs/ion-chip.cjs.entry.js +20 -20
  284. package/dist/cjs/ion-col_3.cjs.entry.js +136 -136
  285. package/dist/cjs/ion-datetime-button.cjs.entry.js +325 -325
  286. package/dist/cjs/ion-datetime_3.cjs.entry.js +2185 -2137
  287. package/dist/cjs/ion-fab_3.cjs.entry.js +152 -152
  288. package/dist/cjs/ion-img.cjs.entry.js +79 -79
  289. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +198 -190
  290. package/dist/cjs/ion-input.cjs.entry.js +426 -394
  291. package/dist/cjs/ion-item-option_3.cjs.entry.js +459 -459
  292. package/dist/cjs/ion-item_8.cjs.entry.js +447 -434
  293. package/dist/cjs/ion-loading.cjs.entry.js +220 -210
  294. package/dist/cjs/ion-menu_3.cjs.entry.js +670 -658
  295. package/dist/cjs/ion-modal.cjs.entry.js +1415 -1405
  296. package/dist/cjs/ion-nav_2.cjs.entry.js +904 -904
  297. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +331 -327
  298. package/dist/cjs/ion-picker-internal.cjs.entry.js +455 -455
  299. package/dist/cjs/ion-popover.cjs.entry.js +1110 -1100
  300. package/dist/cjs/ion-progress-bar.cjs.entry.js +40 -40
  301. package/dist/cjs/ion-radio_2.cjs.entry.js +322 -309
  302. package/dist/cjs/ion-range.cjs.entry.js +558 -556
  303. package/dist/cjs/ion-refresher_2.cjs.entry.js +786 -779
  304. package/dist/cjs/ion-reorder_2.cjs.entry.js +269 -269
  305. package/dist/cjs/ion-ripple-effect.cjs.entry.js +66 -66
  306. package/dist/cjs/ion-route_4.cjs.entry.js +693 -693
  307. package/dist/cjs/ion-searchbar.cjs.entry.js +363 -354
  308. package/dist/cjs/ion-segment_2.cjs.entry.js +509 -483
  309. package/dist/cjs/ion-select_3.cjs.entry.js +784 -768
  310. package/dist/cjs/ion-spinner.cjs.entry.js +46 -46
  311. package/dist/cjs/ion-split-pane.cjs.entry.js +117 -117
  312. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +142 -142
  313. package/dist/cjs/ion-tab_2.cjs.entry.js +187 -187
  314. package/dist/cjs/ion-text.cjs.entry.js +13 -13
  315. package/dist/cjs/ion-textarea.cjs.entry.js +381 -349
  316. package/dist/cjs/ion-toast.cjs.entry.js +771 -419
  317. package/dist/cjs/ion-toggle.cjs.entry.js +227 -225
  318. package/dist/cjs/ionic-global-f4a2093b.js +230 -0
  319. package/dist/cjs/ionic.cjs.js +5 -5
  320. package/dist/cjs/ios.transition-6787b799.js +654 -0
  321. package/dist/cjs/keyboard-0272231f.js +81 -0
  322. package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-af1bb365.js} +62 -62
  323. package/dist/cjs/keyboard-controller-c05e747a.js +167 -0
  324. package/dist/cjs/loader.cjs.js +4 -4
  325. package/dist/cjs/lock-controller-6585a42a.js +40 -0
  326. package/dist/cjs/md.transition-e033d20a.js +59 -0
  327. package/dist/cjs/notch-controller-9735e7ac.js +155 -0
  328. package/dist/cjs/overlays-27a6fb16.js +716 -0
  329. package/dist/cjs/spinner-configs-282fd50a.js +147 -0
  330. package/dist/cjs/status-tap-415acac6.js +42 -0
  331. package/dist/cjs/swipe-back-e37a1a5c.js +81 -0
  332. package/dist/cjs/theme-d1c573d2.js +48 -0
  333. package/dist/cjs/watch-options-f5f3e158.js +49 -0
  334. package/dist/collection/collection-manifest.json +7 -7
  335. package/dist/collection/components/accordion/accordion.ios.css +44 -0
  336. package/dist/collection/components/accordion/accordion.js +410 -410
  337. package/dist/collection/components/accordion/accordion.md.css +22 -0
  338. package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +31 -31
  339. package/dist/collection/components/accordion/test/accordion.e2e.js +24 -24
  340. package/dist/collection/components/accordion/test/accordion.spec.js +195 -0
  341. package/dist/collection/components/accordion/test/basic/accordion.e2e.js +26 -26
  342. package/dist/collection/components/accordion/test/multiple/accordion.e2e.js +18 -18
  343. package/dist/collection/components/accordion/test/nested/accordion.e2e.js +16 -16
  344. package/dist/collection/components/accordion/test/standalone/accordion.e2e.js +6 -6
  345. package/dist/collection/components/accordion-group/accordion-group.ios.css +44 -0
  346. package/dist/collection/components/accordion-group/accordion-group.js +422 -412
  347. package/dist/collection/components/accordion-group/accordion-group.md.css +68 -2
  348. package/dist/collection/components/action-sheet/action-sheet.ios.css +62 -5
  349. package/dist/collection/components/action-sheet/action-sheet.js +739 -729
  350. package/dist/collection/components/action-sheet/action-sheet.md.css +62 -5
  351. package/dist/collection/components/action-sheet/animations/ios.enter.js +18 -18
  352. package/dist/collection/components/action-sheet/animations/ios.leave.js +12 -12
  353. package/dist/collection/components/action-sheet/animations/md.enter.js +18 -18
  354. package/dist/collection/components/action-sheet/animations/md.leave.js +12 -12
  355. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +59 -59
  356. package/dist/collection/components/action-sheet/test/action-sheet-id.spec.js +32 -0
  357. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +33 -33
  358. package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +118 -59
  359. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +18 -0
  360. package/dist/collection/components/action-sheet/test/basic/fixture.js +23 -23
  361. package/dist/collection/components/action-sheet/test/is-open/action-sheet.e2e.js +25 -25
  362. package/dist/collection/components/action-sheet/test/translucent/action-sheet.e2e.js +10 -10
  363. package/dist/collection/components/action-sheet/test/trigger/action-sheet.e2e.js +21 -21
  364. package/dist/collection/components/alert/alert.ios.css +122 -5
  365. package/dist/collection/components/alert/alert.js +977 -967
  366. package/dist/collection/components/alert/alert.md.css +152 -7
  367. package/dist/collection/components/alert/animations/ios.enter.js +19 -19
  368. package/dist/collection/components/alert/animations/ios.leave.js +13 -13
  369. package/dist/collection/components/alert/animations/md.enter.js +19 -19
  370. package/dist/collection/components/alert/animations/md.leave.js +10 -10
  371. package/dist/collection/components/alert/test/a11y/alert.e2e.js +139 -91
  372. package/dist/collection/components/alert/test/alert-id.spec.js +32 -0
  373. package/dist/collection/components/alert/test/alert.spec.js +37 -0
  374. package/dist/collection/components/alert/test/basic/alert-tablet.e2e.js +40 -0
  375. package/dist/collection/components/alert/test/basic/alert.e2e.js +96 -96
  376. package/dist/collection/components/alert/test/is-open/alert.e2e.js +25 -25
  377. package/dist/collection/components/alert/test/standalone/alert.e2e.js +9 -9
  378. package/dist/collection/components/alert/test/trigger/alert.e2e.js +21 -21
  379. package/dist/collection/components/app/app.js +116 -116
  380. package/dist/collection/components/app/test/safe-area/app.e2e.js +24 -24
  381. package/dist/collection/components/avatar/avatar.ios.css +44 -0
  382. package/dist/collection/components/avatar/avatar.js +17 -17
  383. package/dist/collection/components/avatar/avatar.md.css +44 -0
  384. package/dist/collection/components/avatar/test/basic/avatar.e2e.js +12 -12
  385. package/dist/collection/components/back-button/back-button.ios.css +44 -0
  386. package/dist/collection/components/back-button/back-button.js +214 -214
  387. package/dist/collection/components/back-button/back-button.md.css +44 -0
  388. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +6 -6
  389. package/dist/collection/components/back-button/test/back-button.spec.js +86 -0
  390. package/dist/collection/components/back-button/test/basic/back-button.e2e.js +6 -6
  391. package/dist/collection/components/back-button/test/toolbar/back-button.e2e.js +6 -6
  392. package/dist/collection/components/backdrop/backdrop.ios.css +44 -0
  393. package/dist/collection/components/backdrop/backdrop.js +131 -131
  394. package/dist/collection/components/backdrop/backdrop.md.css +44 -0
  395. package/dist/collection/components/badge/badge.ios.css +44 -0
  396. package/dist/collection/components/badge/badge.js +49 -49
  397. package/dist/collection/components/badge/badge.md.css +44 -0
  398. package/dist/collection/components/badge/test/a11y/badge.e2e.js +6 -6
  399. package/dist/collection/components/badge/test/basic/badge.e2e.js +6 -6
  400. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +44 -0
  401. package/dist/collection/components/breadcrumb/breadcrumb.js +395 -395
  402. package/dist/collection/components/breadcrumb/breadcrumb.md.css +44 -0
  403. package/dist/collection/components/breadcrumb/test/aria.spec.js +22 -0
  404. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +22 -0
  405. package/dist/collection/components/breadcrumbs/breadcrumbs.js +247 -247
  406. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +22 -0
  407. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +12 -12
  408. package/dist/collection/components/breadcrumbs/test/basic/breadcrumbs.e2e.js +6 -6
  409. package/dist/collection/components/breadcrumbs/test/breadcrumbs.spec.js +58 -0
  410. package/dist/collection/components/breadcrumbs/test/collapsed/breadcrumbs.e2e.js +6 -6
  411. package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +43 -43
  412. package/dist/collection/components/button/button.ios.css +66 -0
  413. package/dist/collection/components/button/button.js +541 -541
  414. package/dist/collection/components/button/button.md.css +44 -0
  415. package/dist/collection/components/button/test/a11y/button.e2e.js +21 -21
  416. package/dist/collection/components/button/test/basic/button.e2e.js +32 -32
  417. package/dist/collection/components/button/test/clear/button.e2e.js +6 -6
  418. package/dist/collection/components/button/test/expand/button.e2e.js +6 -6
  419. package/dist/collection/components/button/test/form-reference/button.e2e.js +84 -84
  420. package/dist/collection/components/button/test/form-reference/button.spec.js +26 -0
  421. package/dist/collection/components/button/test/icon/button.e2e.js +6 -6
  422. package/dist/collection/components/button/test/outline/button.e2e.js +6 -6
  423. package/dist/collection/components/button/test/round/button.e2e.js +6 -6
  424. package/dist/collection/components/button/test/size/button.e2e.js +22 -22
  425. package/dist/collection/components/button/test/strong/button.e2e.js +22 -22
  426. package/dist/collection/components/button/test/wrap/button.e2e.js +73 -73
  427. package/dist/collection/components/buttons/buttons.ios.css +66 -0
  428. package/dist/collection/components/buttons/buttons.js +46 -46
  429. package/dist/collection/components/buttons/buttons.md.css +66 -0
  430. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +21 -21
  431. package/dist/collection/components/card/card.ios.css +44 -0
  432. package/dist/collection/components/card/card.js +251 -251
  433. package/dist/collection/components/card/card.md.css +44 -0
  434. package/dist/collection/components/card/test/a11y/card.e2e.js +6 -6
  435. package/dist/collection/components/card/test/aria.spec.js +16 -0
  436. package/dist/collection/components/card/test/basic/card.e2e.js +38 -38
  437. package/dist/collection/components/card-content/card-content.ios.css +44 -0
  438. package/dist/collection/components/card-content/card-content.js +21 -21
  439. package/dist/collection/components/card-content/card-content.md.css +44 -0
  440. package/dist/collection/components/card-header/card-header.ios.css +44 -0
  441. package/dist/collection/components/card-header/card-header.js +70 -70
  442. package/dist/collection/components/card-header/card-header.md.css +44 -0
  443. package/dist/collection/components/card-header/test/basic/card-header.e2e.js +6 -6
  444. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +44 -0
  445. package/dist/collection/components/card-subtitle/card-subtitle.js +50 -50
  446. package/dist/collection/components/card-subtitle/card-subtitle.md.css +44 -0
  447. package/dist/collection/components/card-title/card-title.ios.css +44 -0
  448. package/dist/collection/components/card-title/card-title.js +50 -50
  449. package/dist/collection/components/card-title/card-title.md.css +44 -0
  450. package/dist/collection/components/checkbox/checkbox.ios.css +69 -9
  451. package/dist/collection/components/checkbox/checkbox.js +418 -415
  452. package/dist/collection/components/checkbox/checkbox.md.css +69 -9
  453. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +14 -14
  454. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +50 -50
  455. package/dist/collection/components/checkbox/test/checkbox.spec.js +34 -0
  456. package/dist/collection/components/checkbox/test/color/checkbox.e2e.js +11 -11
  457. package/dist/collection/components/checkbox/test/indeterminate/checkbox.e2e.js +6 -6
  458. package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +29 -29
  459. package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +75 -75
  460. package/dist/collection/components/checkbox/test/legacy/basic/checkbox.e2e.js +45 -45
  461. package/dist/collection/components/checkbox/test/legacy/indeterminate/checkbox.e2e.js +6 -6
  462. package/dist/collection/components/checkbox/test/states/checkbox.e2e.js +21 -21
  463. package/dist/collection/components/chip/chip.ios.css +22 -0
  464. package/dist/collection/components/chip/chip.js +90 -90
  465. package/dist/collection/components/chip/chip.md.css +22 -0
  466. package/dist/collection/components/chip/test/a11y/chip.e2e.js +19 -19
  467. package/dist/collection/components/chip/test/basic/chip.e2e.js +42 -42
  468. package/dist/collection/components/chip/test/states/chip.e2e.js +14 -14
  469. package/dist/collection/components/col/col.css +66 -0
  470. package/dist/collection/components/col/col.js +536 -536
  471. package/dist/collection/components/content/content.css +22 -0
  472. package/dist/collection/components/content/content.js +745 -745
  473. package/dist/collection/components/content/test/basic/content.e2e.js +6 -6
  474. package/dist/collection/components/content/test/fixed/content.e2e.js +6 -6
  475. package/dist/collection/components/content/test/fullscreen/content.e2e.js +6 -6
  476. package/dist/collection/components/content/test/standalone/content.e2e.js +5 -5
  477. package/dist/collection/components/datetime/datetime.ios.css +69 -4
  478. package/dist/collection/components/datetime/datetime.js +2246 -2208
  479. package/dist/collection/components/datetime/datetime.md.css +69 -8
  480. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +73 -7
  481. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +43 -0
  482. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +241 -241
  483. package/dist/collection/components/datetime/test/color/datetime.e2e.js +9 -9
  484. package/dist/collection/components/datetime/test/comparison.spec.js +43 -0
  485. package/dist/collection/components/datetime/test/custom/datetime.e2e.js +37 -37
  486. package/dist/collection/components/datetime/test/data.spec.js +456 -0
  487. package/dist/collection/components/datetime/test/datetime.e2e.js +29 -29
  488. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +119 -119
  489. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +68 -0
  490. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +33 -0
  491. package/dist/collection/components/datetime/test/display/datetime.e2e.js +86 -86
  492. package/dist/collection/components/datetime/test/first-day-of-week/datetime.e2e.js +6 -6
  493. package/dist/collection/components/datetime/test/format.spec.js +124 -0
  494. package/dist/collection/components/datetime/test/helpers.spec.js +72 -0
  495. package/dist/collection/components/datetime/test/highlighted-dates/datetime.e2e.js +76 -76
  496. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +21 -21
  497. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +98 -98
  498. package/dist/collection/components/datetime/test/manipulation.spec.js +433 -0
  499. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +178 -178
  500. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +17 -17
  501. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +170 -170
  502. package/dist/collection/components/datetime/test/parse.spec.js +222 -0
  503. package/dist/collection/components/datetime/test/position/datetime.e2e.js +14 -14
  504. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +263 -263
  505. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +137 -137
  506. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +113 -0
  507. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +40 -40
  508. package/dist/collection/components/datetime/test/state.spec.js +114 -0
  509. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +13 -13
  510. package/dist/collection/components/datetime/test/values/datetime.e2e.js +77 -77
  511. package/dist/collection/components/datetime/utils/comparison.js +22 -22
  512. package/dist/collection/components/datetime/utils/data.js +394 -394
  513. package/dist/collection/components/datetime/utils/format.js +143 -143
  514. package/dist/collection/components/datetime/utils/helpers.js +74 -74
  515. package/dist/collection/components/datetime/utils/manipulation.js +274 -274
  516. package/dist/collection/components/datetime/utils/parse.js +139 -139
  517. package/dist/collection/components/datetime/utils/state.js +123 -123
  518. package/dist/collection/components/datetime-button/datetime-button.css +22 -0
  519. package/dist/collection/components/datetime-button/datetime-button.js +399 -399
  520. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +11 -11
  521. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +123 -123
  522. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +13 -13
  523. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +38 -38
  524. package/dist/collection/components/datetime-button/test/overlays/datetime-button.e2e.js +102 -102
  525. package/dist/collection/components/fab/fab.css +112 -36
  526. package/dist/collection/components/fab/fab.js +179 -179
  527. package/dist/collection/components/fab/test/basic/fab.e2e.js +50 -50
  528. package/dist/collection/components/fab/test/custom-size/fab.e2e.js +6 -6
  529. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +63 -0
  530. package/dist/collection/components/fab/test/states/fab.e2e.js +6 -6
  531. package/dist/collection/components/fab/test/translucent/fab.e2e.js +17 -17
  532. package/dist/collection/components/fab-button/fab-button.ios.css +44 -0
  533. package/dist/collection/components/fab-button/fab-button.js +374 -374
  534. package/dist/collection/components/fab-button/fab-button.md.css +44 -0
  535. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +6 -6
  536. package/dist/collection/components/fab-list/fab-list.css +46 -2
  537. package/dist/collection/components/fab-list/fab-list.js +79 -79
  538. package/dist/collection/components/footer/footer.ios.css +44 -0
  539. package/dist/collection/components/footer/footer.js +135 -135
  540. package/dist/collection/components/footer/footer.md.css +44 -0
  541. package/dist/collection/components/footer/footer.utils.js +25 -25
  542. package/dist/collection/components/footer/test/basic/footer.e2e.js +18 -18
  543. package/dist/collection/components/footer/test/fade/footer.e2e.js +10 -10
  544. package/dist/collection/components/footer/test/scroll-target/footer.e2e.js +15 -15
  545. package/dist/collection/components/footer/test/with-tabs/footer.e2e.js +6 -6
  546. package/dist/collection/components/grid/grid.css +66 -0
  547. package/dist/collection/components/grid/grid.js +44 -44
  548. package/dist/collection/components/grid/test/basic/grid.e2e.js +6 -6
  549. package/dist/collection/components/grid/test/offsets/grid.e2e.js +6 -6
  550. package/dist/collection/components/grid/test/padding/grid.e2e.js +6 -6
  551. package/dist/collection/components/grid/test/sizes/grid.e2e.js +6 -6
  552. package/dist/collection/components/header/header.ios.css +48 -1
  553. package/dist/collection/components/header/header.js +181 -181
  554. package/dist/collection/components/header/header.md.css +44 -0
  555. package/dist/collection/components/header/header.utils.js +148 -148
  556. package/dist/collection/components/header/test/a11y/header.e2e.js +18 -18
  557. package/dist/collection/components/header/test/basic/header.e2e.js +23 -23
  558. package/dist/collection/components/header/test/condense/header.e2e.js +25 -25
  559. package/dist/collection/components/header/test/fade/header.e2e.js +10 -10
  560. package/dist/collection/components/header/test/scroll-target/header.e2e.js +15 -15
  561. package/dist/collection/components/icon/test/basic/icon.e2e.js +6 -6
  562. package/dist/collection/components/icon/test/dir/icon.e2e.js +11 -11
  563. package/dist/collection/components/img/img.js +177 -177
  564. package/dist/collection/components/img/test/basic/img.e2e.js +62 -62
  565. package/dist/collection/components/img/test/draggable/img.e2e.js +10 -10
  566. package/dist/collection/components/infinite-scroll/infinite-scroll.js +279 -271
  567. package/dist/collection/components/infinite-scroll/test/basic/infinite-scroll.e2e.js +11 -11
  568. package/dist/collection/components/infinite-scroll/test/scroll-target/infinite-scroll.e2e.js +11 -11
  569. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +31 -0
  570. package/dist/collection/components/infinite-scroll/test/top/infinite-scroll.e2e.js +11 -11
  571. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +44 -0
  572. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +86 -86
  573. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +44 -0
  574. package/dist/collection/components/infinite-scroll-content/test/infinite-scroll-content.spec.js +37 -0
  575. package/dist/collection/components/input/input.ios.css +91 -18
  576. package/dist/collection/components/input/input.js +1234 -1200
  577. package/dist/collection/components/input/input.md.css +167 -22
  578. package/dist/collection/components/input/input.utils.js +22 -22
  579. package/dist/collection/components/input/test/a11y/input.e2e.js +12 -12
  580. package/dist/collection/components/input/test/basic/input.e2e.js +63 -63
  581. package/dist/collection/components/input/test/bottom-content/input.e2e.js +89 -89
  582. package/dist/collection/components/input/test/card/input.e2e.js +6 -6
  583. package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +25 -25
  584. package/dist/collection/components/input/test/color/input.e2e.js +88 -88
  585. package/dist/collection/components/input/test/fill/input.e2e.js +63 -63
  586. package/dist/collection/components/input/test/highlight/input.e2e.js +52 -52
  587. package/dist/collection/components/input/test/input.e2e.js +6 -6
  588. package/dist/collection/components/input/test/input.spec.js +85 -0
  589. package/dist/collection/components/input/test/item/input.e2e.js +11 -11
  590. package/dist/collection/components/input/test/item/input.spec.js +24 -0
  591. package/dist/collection/components/input/test/label-placement/input.e2e.js +104 -104
  592. package/dist/collection/components/input/test/legacy/a11y/input.e2e.js +15 -15
  593. package/dist/collection/components/input/test/legacy/basic/input.e2e.js +102 -102
  594. package/dist/collection/components/input/test/legacy/clear-on-edit/input.e2e.js +44 -44
  595. package/dist/collection/components/input/test/legacy/input-events.e2e.js +56 -56
  596. package/dist/collection/components/input/test/legacy/masking/input.e2e.js +15 -15
  597. package/dist/collection/components/input/test/legacy/spec/input.e2e.js +8 -8
  598. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  599. package/dist/collection/components/input/test/states/input.e2e.js +11 -11
  600. package/dist/collection/components/item/item.ios.css +145 -15
  601. package/dist/collection/components/item/item.js +614 -614
  602. package/dist/collection/components/item/item.md.css +192 -18
  603. package/dist/collection/components/item/test/a11y/item.e2e.js +47 -47
  604. package/dist/collection/components/item/test/a11y/item.spec.js +48 -0
  605. package/dist/collection/components/item/test/alignment/item.e2e.js +6 -6
  606. package/dist/collection/components/item/test/basic/item.e2e.js +32 -6
  607. package/dist/collection/components/item/test/buttons/item.e2e.js +18 -18
  608. package/dist/collection/components/item/test/colors/item.e2e.js +6 -6
  609. package/dist/collection/components/item/test/counter/item.e2e.js +34 -34
  610. package/dist/collection/components/item/test/css-variables/item.e2e.js +6 -6
  611. package/dist/collection/components/item/test/disabled/item.e2e.js +6 -7
  612. package/dist/collection/components/item/test/dividers/item.e2e.js +6 -6
  613. package/dist/collection/components/item/test/groups/item.e2e.js +8 -8
  614. package/dist/collection/components/item/test/highlight/item.e2e.js +6 -6
  615. package/dist/collection/components/item/test/icons/item.e2e.js +6 -6
  616. package/dist/collection/components/item/test/images/item.e2e.js +6 -6
  617. package/dist/collection/components/item/test/inputs/item.e2e.js +139 -139
  618. package/dist/collection/components/item/test/legacy/alignment/item.e2e.js +6 -6
  619. package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +6 -6
  620. package/dist/collection/components/item/test/legacy/fill/item.e2e.js +6 -6
  621. package/dist/collection/components/item/test/legacy/form/item.e2e.js +6 -6
  622. package/dist/collection/components/item/test/lines/item.e2e.js +6 -6
  623. package/dist/collection/components/item/test/media/item.e2e.js +6 -6
  624. package/dist/collection/components/item/test/reorder/item.e2e.js +8 -8
  625. package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +6 -6
  626. package/dist/collection/components/item/test/states/item.e2e.js +6 -6
  627. package/dist/collection/components/item-divider/item-divider.ios.css +101 -8
  628. package/dist/collection/components/item-divider/item-divider.js +71 -71
  629. package/dist/collection/components/item-divider/item-divider.md.css +101 -8
  630. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +11 -11
  631. package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +38 -16
  632. package/dist/collection/components/item-divider/test/spec/item-divider.e2e.js +8 -8
  633. package/dist/collection/components/item-group/item-group.ios.css +44 -0
  634. package/dist/collection/components/item-group/item-group.js +22 -22
  635. package/dist/collection/components/item-group/item-group.md.css +44 -0
  636. package/dist/collection/components/item-option/item-option.ios.css +44 -10
  637. package/dist/collection/components/item-option/item-option.js +197 -197
  638. package/dist/collection/components/item-option/item-option.md.css +44 -10
  639. package/dist/collection/components/item-options/item-options.ios.css +66 -0
  640. package/dist/collection/components/item-options/item-options.js +110 -110
  641. package/dist/collection/components/item-options/item-options.md.css +66 -0
  642. package/dist/collection/components/item-sliding/item-sliding.css +22 -0
  643. package/dist/collection/components/item-sliding/item-sliding.js +538 -538
  644. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +5 -5
  645. package/dist/collection/components/item-sliding/test/async/item-sliding.e2e.js +25 -25
  646. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +140 -63
  647. package/dist/collection/components/item-sliding/test/icons/item-sliding.e2e.js +20 -20
  648. package/dist/collection/components/item-sliding/test/scroll-target/item-sliding.e2e.js +18 -18
  649. package/dist/collection/components/item-sliding/test/test.utils.js +20 -20
  650. package/dist/collection/components/label/label.ios.css +81 -4
  651. package/dist/collection/components/label/label.js +174 -174
  652. package/dist/collection/components/label/label.md.css +80 -3
  653. package/dist/collection/components/label/test/a11y/label.e2e.js +21 -21
  654. package/dist/collection/components/label/test/basic/label.e2e.js +21 -21
  655. package/dist/collection/components/label/test/color/label.e2e.js +21 -21
  656. package/dist/collection/components/label/test/headings/label.e2e.js +5 -5
  657. package/dist/collection/components/list/list.ios.css +81 -1
  658. package/dist/collection/components/list/list.js +101 -101
  659. package/dist/collection/components/list/list.md.css +107 -3
  660. package/dist/collection/components/list/test/a11y/list.e2e.js +6 -6
  661. package/dist/collection/components/list/test/basic/list.e2e.js +6 -6
  662. package/dist/collection/components/list/test/inset/list.e2e.js +16 -16
  663. package/dist/collection/components/list/test/lines/list.e2e.js +158 -15
  664. package/dist/collection/components/list-header/list-header.ios.css +81 -2
  665. package/dist/collection/components/list-header/list-header.js +69 -69
  666. package/dist/collection/components/list-header/list-header.md.css +81 -2
  667. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +6 -6
  668. package/dist/collection/components/list-header/test/basic/list-header.e2e.js +34 -6
  669. package/dist/collection/components/loading/animations/ios.enter.js +19 -19
  670. package/dist/collection/components/loading/animations/ios.leave.js +13 -13
  671. package/dist/collection/components/loading/animations/md.enter.js +19 -19
  672. package/dist/collection/components/loading/animations/md.leave.js +13 -13
  673. package/dist/collection/components/loading/loading.ios.css +44 -0
  674. package/dist/collection/components/loading/loading.js +730 -720
  675. package/dist/collection/components/loading/loading.md.css +44 -0
  676. package/dist/collection/components/loading/test/a11y/loading.e2e.js +26 -26
  677. package/dist/collection/components/loading/test/basic/loading.e2e.js +60 -60
  678. package/dist/collection/components/loading/test/basic/loading.spec.js +16 -0
  679. package/dist/collection/components/loading/test/is-open/loading.e2e.js +17 -17
  680. package/dist/collection/components/loading/test/loading-id.spec.js +32 -0
  681. package/dist/collection/components/loading/test/loading.spec.js +37 -0
  682. package/dist/collection/components/loading/test/standalone/loading.e2e.js +13 -13
  683. package/dist/collection/components/loading/test/trigger/loading.e2e.js +21 -21
  684. package/dist/collection/components/menu/menu.ios.css +48 -4
  685. package/dist/collection/components/menu/menu.js +956 -944
  686. package/dist/collection/components/menu/menu.md.css +48 -4
  687. package/dist/collection/components/menu/test/a11y/menu.e2e.js +13 -13
  688. package/dist/collection/components/menu/test/basic/menu.e2e.js +102 -102
  689. package/dist/collection/components/menu/test/disable/menu.e2e.js +44 -44
  690. package/dist/collection/components/menu/test/focus-trap/menu.e2e.js +61 -61
  691. package/dist/collection/components/menu/test/multiple/menu.e2e.js +49 -49
  692. package/dist/collection/components/menu/test/safe-area/menu.e2e.js +54 -54
  693. package/dist/collection/components/menu-button/menu-button.ios.css +44 -0
  694. package/dist/collection/components/menu-button/menu-button.js +173 -173
  695. package/dist/collection/components/menu-button/menu-button.md.css +44 -0
  696. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +12 -12
  697. package/dist/collection/components/menu-button/test/async/menu-button.e2e.js +12 -12
  698. package/dist/collection/components/menu-button/test/basic/menu-button.e2e.js +6 -6
  699. package/dist/collection/components/menu-toggle/menu-toggle-util.js +2 -2
  700. package/dist/collection/components/menu-toggle/menu-toggle.js +93 -93
  701. package/dist/collection/components/menu-toggle/test/basic/menu-toggle.e2e.js +33 -33
  702. package/dist/collection/components/modal/animations/ios.enter.js +81 -81
  703. package/dist/collection/components/modal/animations/ios.leave.js +74 -74
  704. package/dist/collection/components/modal/animations/md.enter.js +21 -21
  705. package/dist/collection/components/modal/animations/md.leave.js +15 -15
  706. package/dist/collection/components/modal/animations/sheet.js +43 -43
  707. package/dist/collection/components/modal/gestures/sheet.js +289 -289
  708. package/dist/collection/components/modal/gestures/swipe-to-close.js +248 -247
  709. package/dist/collection/components/modal/gestures/utils.js +39 -39
  710. package/dist/collection/components/modal/modal.ios.css +46 -2
  711. package/dist/collection/components/modal/modal.js +1290 -1280
  712. package/dist/collection/components/modal/modal.md.css +44 -0
  713. package/dist/collection/components/modal/test/a11y/modal.e2e.js +12 -12
  714. package/dist/collection/components/modal/test/a11y/modal.spec.js +22 -0
  715. package/dist/collection/components/modal/test/basic/modal.e2e.js +110 -110
  716. package/dist/collection/components/modal/test/basic/modal.spec.js +16 -0
  717. package/dist/collection/components/modal/test/can-dismiss/modal-card.e2e.js +44 -44
  718. package/dist/collection/components/modal/test/can-dismiss/modal-sheet.e2e.js +62 -62
  719. package/dist/collection/components/modal/test/can-dismiss/modal.e2e.js +16 -16
  720. package/dist/collection/components/modal/test/can-dismiss/modal.spec.js +191 -0
  721. package/dist/collection/components/modal/test/card/modal-card.e2e.js +69 -69
  722. package/dist/collection/components/modal/test/card/modal-tablet.e2e.js +67 -67
  723. package/dist/collection/components/modal/test/card-nav/modal.e2e.js +26 -26
  724. package/dist/collection/components/modal/test/card-refresher/modal.e2e.js +14 -14
  725. package/dist/collection/components/modal/test/card-scroll-target/modal.e2e.js +34 -34
  726. package/dist/collection/components/modal/test/custom/modal.e2e.js +16 -16
  727. package/dist/collection/components/modal/test/custom-dialog/modal.e2e.js +12 -12
  728. package/dist/collection/components/modal/test/dark-mode/model.e2e.js +12 -12
  729. package/dist/collection/components/modal/test/fixtures.js +21 -21
  730. package/dist/collection/components/modal/test/inline/modal.e2e.js +34 -34
  731. package/dist/collection/components/modal/test/is-open/modal.e2e.js +17 -17
  732. package/dist/collection/components/modal/test/modal-id.spec.js +32 -0
  733. package/dist/collection/components/modal/test/sheet/modal.e2e.js +178 -178
  734. package/dist/collection/components/modal/test/standalone/modal.e2e.js +12 -12
  735. package/dist/collection/components/modal/test/trigger/modal.e2e.js +23 -23
  736. package/dist/collection/components/modal/utils.js +55 -55
  737. package/dist/collection/components/modal/utils.spec.js +7 -7
  738. package/dist/collection/components/nav/nav.css +22 -0
  739. package/dist/collection/components/nav/nav.js +1748 -1748
  740. package/dist/collection/components/nav/test/basic/nav.e2e.js +58 -58
  741. package/dist/collection/components/nav/test/modal-navigation/nav.e2e.js +52 -52
  742. package/dist/collection/components/nav/test/nav-controller.spec.js +749 -0
  743. package/dist/collection/components/nav/test/nested/nav.e2e.js +54 -54
  744. package/dist/collection/components/nav/test/routing/nav.e2e.js +75 -75
  745. package/dist/collection/components/nav/view-controller.js +52 -52
  746. package/dist/collection/components/nav-link/nav-link-utils.js +16 -16
  747. package/dist/collection/components/nav-link/nav-link.js +106 -106
  748. package/dist/collection/components/note/note.ios.css +44 -0
  749. package/dist/collection/components/note/note.js +49 -49
  750. package/dist/collection/components/note/note.md.css +44 -0
  751. package/dist/collection/components/note/test/a11y/note.e2e.js +59 -16
  752. package/dist/collection/components/note/test/basic/note.e2e.js +33 -33
  753. package/dist/collection/components/picker/animations/ios.enter.js +18 -18
  754. package/dist/collection/components/picker/animations/ios.leave.js +14 -14
  755. package/dist/collection/components/picker/picker.ios.css +45 -1
  756. package/dist/collection/components/picker/picker.js +782 -772
  757. package/dist/collection/components/picker/picker.md.css +45 -1
  758. package/dist/collection/components/picker/test/basic/picker.e2e.js +17 -17
  759. package/dist/collection/components/picker/test/is-open/picker.e2e.js +17 -17
  760. package/dist/collection/components/picker/test/picker-id.spec.js +32 -0
  761. package/dist/collection/components/picker/test/trigger/picker.e2e.js +21 -21
  762. package/dist/collection/components/picker-column/picker-column.ios.css +44 -0
  763. package/dist/collection/components/picker-column/picker-column.js +377 -377
  764. package/dist/collection/components/picker-column/picker-column.md.css +44 -0
  765. package/dist/collection/components/picker-column/test/picker-column-aria.spec.js +35 -0
  766. package/dist/collection/components/picker-column/test/picker-column-dynamic.spec.js +29 -0
  767. package/dist/collection/components/picker-column/test/picker-column.spec.js +17 -0
  768. package/dist/collection/components/picker-column/test/standalone/picker-column.e2e.js +27 -27
  769. package/dist/collection/components/picker-column/test/test.utils.js +29 -29
  770. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -3
  771. package/dist/collection/components/picker-column-internal/picker-column-internal.js +523 -501
  772. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +55 -3
  773. package/dist/collection/components/picker-column-internal/test/basic/picker-column-internal.e2e.js +53 -53
  774. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +66 -37
  775. package/dist/collection/components/picker-internal/picker-internal.ios.css +46 -2
  776. package/dist/collection/components/picker-internal/picker-internal.js +517 -517
  777. package/dist/collection/components/picker-internal/picker-internal.md.css +46 -2
  778. package/dist/collection/components/picker-internal/test/a11y/picker-internal.e2e.js +6 -6
  779. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +76 -71
  780. package/dist/collection/components/picker-internal/test/keyboard-entry/picker-internal.e2e.js +39 -39
  781. package/dist/collection/components/popover/animations/ios.enter.js +79 -79
  782. package/dist/collection/components/popover/animations/ios.leave.js +28 -28
  783. package/dist/collection/components/popover/animations/md.enter.js +58 -58
  784. package/dist/collection/components/popover/animations/md.leave.js +19 -19
  785. package/dist/collection/components/popover/popover.ios.css +48 -4
  786. package/dist/collection/components/popover/popover.js +1189 -1179
  787. package/dist/collection/components/popover/popover.md.css +46 -2
  788. package/dist/collection/components/popover/test/adjustment/popover.e2e.js +22 -22
  789. package/dist/collection/components/popover/test/arrow/popover.e2e.js +15 -15
  790. package/dist/collection/components/popover/test/async/popover.e2e.js +29 -29
  791. package/dist/collection/components/popover/test/basic/popover.e2e.js +108 -108
  792. package/dist/collection/components/popover/test/basic/popover.spec.js +16 -0
  793. package/dist/collection/components/popover/test/dismiss-on-select/popover.e2e.js +26 -26
  794. package/dist/collection/components/popover/test/fixture.js +16 -16
  795. package/dist/collection/components/popover/test/inline/popover.e2e.js +18 -18
  796. package/dist/collection/components/popover/test/is-open/popover.e2e.js +5 -5
  797. package/dist/collection/components/popover/test/nested/popover.e2e.js +81 -81
  798. package/dist/collection/components/popover/test/popover-id.spec.js +32 -0
  799. package/dist/collection/components/popover/test/position/popover.e2e.js +18 -18
  800. package/dist/collection/components/popover/test/reference/popover.e2e.js +14 -14
  801. package/dist/collection/components/popover/test/size/popover.e2e.js +29 -29
  802. package/dist/collection/components/popover/test/standalone/popover.e2e.js +7 -7
  803. package/dist/collection/components/popover/test/test.utils.js +23 -23
  804. package/dist/collection/components/popover/test/trigger/popover.e2e.js +35 -35
  805. package/dist/collection/components/popover/test/util.spec.js +53 -0
  806. package/dist/collection/components/popover/utils.js +606 -606
  807. package/dist/collection/components/progress-bar/progress-bar.ios.css +22 -0
  808. package/dist/collection/components/progress-bar/progress-bar.js +145 -145
  809. package/dist/collection/components/progress-bar/progress-bar.md.css +22 -0
  810. package/dist/collection/components/progress-bar/test/basic/progress-bar.e2e.js +6 -6
  811. package/dist/collection/components/progress-bar/test/buffer/progress-bar.e2e.js +10 -10
  812. package/dist/collection/components/progress-bar/test/determinate/progress-bar.e2e.js +10 -10
  813. package/dist/collection/components/radio/radio.ios.css +70 -10
  814. package/dist/collection/components/radio/radio.js +454 -447
  815. package/dist/collection/components/radio/radio.md.css +70 -10
  816. package/dist/collection/components/radio/test/a11y/radio.e2e.js +40 -40
  817. package/dist/collection/components/radio/test/color/radio.e2e.js +11 -11
  818. package/dist/collection/components/radio/test/item/radio.e2e.js +37 -37
  819. package/dist/collection/components/radio/test/label-placement/radio.e2e.js +70 -70
  820. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +29 -29
  821. package/dist/collection/components/radio/test/legacy/basic/radio.e2e.js +43 -43
  822. package/dist/collection/components/radio/test/radio.spec.js +60 -0
  823. package/dist/collection/components/radio/test/states/radio.e2e.js +21 -21
  824. package/dist/collection/components/radio-group/radio-group.js +280 -247
  825. package/dist/collection/components/radio-group/test/basic/radio-group.e2e.js +35 -35
  826. package/dist/collection/components/radio-group/test/fixtures.js +22 -22
  827. package/dist/collection/components/radio-group/test/form/radio-group.e2e.js +39 -39
  828. package/dist/collection/components/radio-group/test/legacy/basic/radio-group.e2e.js +59 -59
  829. package/dist/collection/components/radio-group/test/legacy/form/radio-group.e2e.js +22 -22
  830. package/dist/collection/components/radio-group/test/legacy/search/radio-group.e2e.js +27 -27
  831. package/dist/collection/components/radio-group/test/radio-group-events.e2e.js +42 -42
  832. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  833. package/dist/collection/components/radio-group/test/search/radio-group.e2e.js +23 -23
  834. package/dist/collection/components/range/range.ios.css +45 -7
  835. package/dist/collection/components/range/range.js +1001 -998
  836. package/dist/collection/components/range/range.md.css +45 -7
  837. package/dist/collection/components/range/test/a11y/range.e2e.js +46 -46
  838. package/dist/collection/components/range/test/active-bar-start/range.e2e.js +6 -6
  839. package/dist/collection/components/range/test/basic/range.e2e.js +23 -23
  840. package/dist/collection/components/range/test/color/range.e2e.js +6 -6
  841. package/dist/collection/components/range/test/custom/range.e2e.js +6 -6
  842. package/dist/collection/components/range/test/item/range.e2e.js +28 -28
  843. package/dist/collection/components/range/test/label/range.e2e.js +99 -99
  844. package/dist/collection/components/range/test/label/range.spec.js +23 -0
  845. package/dist/collection/components/range/test/legacy/a11y/range.e2e.js +25 -25
  846. package/dist/collection/components/range/test/legacy/active-bar-start/range.e2e.js +6 -6
  847. package/dist/collection/components/range/test/legacy/basic/range.e2e.js +61 -61
  848. package/dist/collection/components/range/test/legacy/range-events.e2e.js +80 -80
  849. package/dist/collection/components/range/test/legacy/scroll-target/range.e2e.js +23 -23
  850. package/dist/collection/components/range/test/range-events.e2e.js +135 -135
  851. package/dist/collection/components/range/test/range.spec.js +221 -0
  852. package/dist/collection/components/range/test/scroll-target/range.e2e.js +23 -23
  853. package/dist/collection/components/range/test/states/range.e2e.js +21 -21
  854. package/dist/collection/components/refresher/refresher.ios.css +44 -0
  855. package/dist/collection/components/refresher/refresher.js +806 -806
  856. package/dist/collection/components/refresher/refresher.md.css +44 -0
  857. package/dist/collection/components/refresher/refresher.utils.js +148 -141
  858. package/dist/collection/components/refresher/test/basic/refresher.e2e.js +25 -25
  859. package/dist/collection/components/refresher/test/scroll-target/refresher.e2e.js +25 -25
  860. package/dist/collection/components/refresher/test/test.utils.js +5 -5
  861. package/dist/collection/components/refresher-content/refresher-content.js +131 -131
  862. package/dist/collection/components/refresher-content/test/refresher-content.spec.js +46 -0
  863. package/dist/collection/components/reorder/reorder.ios.css +23 -34
  864. package/dist/collection/components/reorder/reorder.js +37 -37
  865. package/dist/collection/components/reorder/reorder.md.css +23 -34
  866. package/dist/collection/components/reorder-group/reorder-group.css +22 -0
  867. package/dist/collection/components/reorder-group/reorder-group.js +327 -327
  868. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +6 -6
  869. package/dist/collection/components/reorder-group/test/basic/reorder-group.e2e.js +11 -11
  870. package/dist/collection/components/reorder-group/test/interactive/reorder-group.e2e.js +21 -21
  871. package/dist/collection/components/reorder-group/test/nested/reorder-group.e2e.js +21 -21
  872. package/dist/collection/components/reorder-group/test/scroll-target/reorder-group.e2e.js +21 -21
  873. package/dist/collection/components/ripple-effect/ripple-effect.css +22 -0
  874. package/dist/collection/components/ripple-effect/ripple-effect.js +135 -135
  875. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +48 -48
  876. package/dist/collection/components/route/route.js +151 -151
  877. package/dist/collection/components/route-redirect/route-redirect.js +76 -76
  878. package/dist/collection/components/router/router.js +472 -472
  879. package/dist/collection/components/router/test/basic/router.e2e.js +55 -55
  880. package/dist/collection/components/router/test/guards/href/router.e2e.js +51 -51
  881. package/dist/collection/components/router/test/guards/link/router.e2e.js +51 -51
  882. package/dist/collection/components/router/test/guards/push/router.e2e.js +51 -51
  883. package/dist/collection/components/router/test/guards/router.e2e.js +5 -5
  884. package/dist/collection/components/router/test/guards/test.utils.js +2 -2
  885. package/dist/collection/components/router/test/matching.spec.js +250 -0
  886. package/dist/collection/components/router/test/parser.spec.js +133 -0
  887. package/dist/collection/components/router/test/path.spec.js +218 -0
  888. package/dist/collection/components/router/test/router.spec.js +55 -0
  889. package/dist/collection/components/router/utils/debug.js +14 -14
  890. package/dist/collection/components/router/utils/dom.js +56 -56
  891. package/dist/collection/components/router/utils/matching.js +150 -150
  892. package/dist/collection/components/router/utils/parser.js +52 -52
  893. package/dist/collection/components/router/utils/path.js +66 -66
  894. package/dist/collection/components/router-link/router-link.css +22 -0
  895. package/dist/collection/components/router-link/router-link.js +157 -157
  896. package/dist/collection/components/router-outlet/router-outlet.css +22 -0
  897. package/dist/collection/components/router-outlet/router-outlet.js +459 -459
  898. package/dist/collection/components/router-outlet/test/basic/router-outlet.e2e.js +31 -31
  899. package/dist/collection/components/row/row.css +66 -0
  900. package/dist/collection/components/row/row.js +15 -15
  901. package/dist/collection/components/searchbar/searchbar.ios.css +44 -0
  902. package/dist/collection/components/searchbar/searchbar.js +893 -884
  903. package/dist/collection/components/searchbar/searchbar.md.css +56 -6
  904. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +11 -11
  905. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +116 -91
  906. package/dist/collection/components/searchbar/test/events/searchbar.e2e.js +55 -55
  907. package/dist/collection/components/searchbar/test/searchbar.spec.js +15 -0
  908. package/dist/collection/components/segment/segment.ios.css +66 -0
  909. package/dist/collection/components/segment/segment.js +633 -607
  910. package/dist/collection/components/segment/segment.md.css +66 -0
  911. package/dist/collection/components/segment/test/a11y/segment.e2e.js +37 -37
  912. package/dist/collection/components/segment/test/basic/segment.e2e.js +22 -22
  913. package/dist/collection/components/segment/test/custom/segment.e2e.js +6 -6
  914. package/dist/collection/components/segment/test/icon/segment.e2e.js +6 -6
  915. package/dist/collection/components/segment/test/modes/segment.e2e.js +15 -15
  916. package/dist/collection/components/segment/test/scrollable/segment.e2e.js +12 -12
  917. package/dist/collection/components/segment/test/segment-events.e2e.js +97 -97
  918. package/dist/collection/components/segment/test/segment.spec.js +37 -0
  919. package/dist/collection/components/segment/test/toolbar/segment.e2e.js +21 -21
  920. package/dist/collection/components/segment/test/wrap/segment.e2e.js +21 -21
  921. package/dist/collection/components/segment-button/segment-button.ios.css +44 -0
  922. package/dist/collection/components/segment-button/segment-button.js +217 -217
  923. package/dist/collection/components/segment-button/segment-button.md.css +44 -0
  924. package/dist/collection/components/select/select.ios.css +138 -22
  925. package/dist/collection/components/select/select.js +1201 -1184
  926. package/dist/collection/components/select/select.md.css +189 -26
  927. package/dist/collection/components/select/test/a11y/select.e2e.js +14 -14
  928. package/dist/collection/components/select/test/async/select.e2e.js +14 -14
  929. package/dist/collection/components/select/test/basic/select.e2e.js +140 -140
  930. package/dist/collection/components/select/test/card/select.e2e.js +6 -6
  931. package/dist/collection/components/select/test/color/select.e2e.js +22 -22
  932. package/dist/collection/components/select/test/compare-with/select.e2e.js +33 -33
  933. package/dist/collection/components/select/test/custom/select.e2e.js +19 -19
  934. package/dist/collection/components/select/test/disabled/select.e2e.js +17 -17
  935. package/dist/collection/components/select/test/fill/select.e2e.js +63 -63
  936. package/dist/collection/components/select/test/highlight/select.e2e.js +74 -74
  937. package/dist/collection/components/select/test/item/select.e2e.js +26 -11
  938. package/dist/collection/components/select/test/label/select.e2e.js +141 -141
  939. package/dist/collection/components/select/test/legacy/async/select.e2e.js +8 -8
  940. package/dist/collection/components/select/test/legacy/basic/select.e2e.js +108 -108
  941. package/dist/collection/components/select/test/legacy/compare-with/select.e2e.js +33 -33
  942. package/dist/collection/components/select/test/legacy/custom/custom.e2e.js +5 -5
  943. package/dist/collection/components/select/test/legacy/single-value/select.e2e.js +8 -8
  944. package/dist/collection/components/select/test/legacy/spec/select.e2e.js +6 -6
  945. package/dist/collection/components/select/test/legacy/standalone/select.e2e.js +11 -11
  946. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +17 -17
  947. package/dist/collection/components/select/test/popover-size/select.e2e.js +63 -63
  948. package/dist/collection/components/select/test/select.spec.js +59 -0
  949. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  950. package/dist/collection/components/select/test/states/select.e2e.js +21 -21
  951. package/dist/collection/components/select/test/toggle-icon/select.e2e.js +14 -14
  952. package/dist/collection/components/select/test/wrapping/select.e2e.js +16 -16
  953. package/dist/collection/components/select-option/select-option.js +60 -60
  954. package/dist/collection/components/select-popover/select-popover.ios.css +66 -0
  955. package/dist/collection/components/select-popover/select-popover.js +197 -197
  956. package/dist/collection/components/select-popover/select-popover.md.css +66 -0
  957. package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +52 -52
  958. package/dist/collection/components/select-popover/test/fixtures.js +33 -33
  959. package/dist/collection/components/skeleton-text/skeleton-text.css +22 -0
  960. package/dist/collection/components/skeleton-text/skeleton-text.js +87 -48
  961. package/dist/collection/components/skeleton-text/test/basic/skeleton-text.e2e.js +6 -6
  962. package/dist/collection/components/skeleton-text/test/custom/skeleton-text.e2e.js +6 -6
  963. package/dist/collection/components/slides/IonicSlides.js +95 -95
  964. package/dist/collection/components/spinner/spinner-configs.js +121 -121
  965. package/dist/collection/components/spinner/spinner.css +22 -0
  966. package/dist/collection/components/spinner/spinner.js +137 -137
  967. package/dist/collection/components/spinner/test/basic/spinner.e2e.js +10 -10
  968. package/dist/collection/components/spinner/test/color/spinner.e2e.js +10 -10
  969. package/dist/collection/components/spinner/test/resize/spinner.e2e.js +8 -8
  970. package/dist/collection/components/split-pane/split-pane.ios.css +66 -0
  971. package/dist/collection/components/split-pane/split-pane.js +225 -225
  972. package/dist/collection/components/split-pane/split-pane.md.css +66 -0
  973. package/dist/collection/components/split-pane/test/basic/split-pane.e2e.js +18 -18
  974. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +31 -0
  975. package/dist/collection/components/tab/tab.js +170 -170
  976. package/dist/collection/components/tab-bar/tab-bar.ios.css +70 -4
  977. package/dist/collection/components/tab-bar/tab-bar.js +177 -177
  978. package/dist/collection/components/tab-bar/tab-bar.md.css +70 -4
  979. package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +43 -0
  980. package/dist/collection/components/tab-bar/test/custom/tab-bar.e2e.js +6 -6
  981. package/dist/collection/components/tab-bar/test/translucent/tab-bar.e2e.js +14 -14
  982. package/dist/collection/components/tab-button/tab-button.ios.css +47 -3
  983. package/dist/collection/components/tab-button/tab-button.js +267 -267
  984. package/dist/collection/components/tab-button/tab-button.md.css +47 -3
  985. package/dist/collection/components/tab-button/test/a11y/tab-button.e2e.js +6 -6
  986. package/dist/collection/components/tab-button/test/basic/tab-button.e2e.js +16 -16
  987. package/dist/collection/components/tab-button/test/layout/tab-button.e2e.js +26 -26
  988. package/dist/collection/components/tab-button/test/states/tab-button.e2e.js +26 -26
  989. package/dist/collection/components/tabs/tabs.css +22 -0
  990. package/dist/collection/components/tabs/tabs.js +344 -344
  991. package/dist/collection/components/tabs/test/basic/tabs.e2e.js +24 -24
  992. package/dist/collection/components/tabs/test/placements/tabs.e2e.js +17 -17
  993. package/dist/collection/components/text/test/basic/text.e2e.js +11 -11
  994. package/dist/collection/components/text/text.css +22 -0
  995. package/dist/collection/components/text/text.js +47 -47
  996. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +12 -12
  997. package/dist/collection/components/textarea/test/autogrow/textarea.e2e.js +31 -31
  998. package/dist/collection/components/textarea/test/bottom-content/textarea.e2e.js +82 -82
  999. package/dist/collection/components/textarea/test/card/textarea.e2e.js +6 -6
  1000. package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +17 -17
  1001. package/dist/collection/components/textarea/test/color/textarea.e2e.js +88 -88
  1002. package/dist/collection/components/textarea/test/cols/textarea.e2e.js +11 -11
  1003. package/dist/collection/components/textarea/test/fill/textarea.e2e.js +63 -63
  1004. package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +52 -52
  1005. package/dist/collection/components/textarea/test/item/textarea.e2e.js +11 -11
  1006. package/dist/collection/components/textarea/test/label-placement/textarea.e2e.js +150 -150
  1007. package/dist/collection/components/textarea/test/legacy/a11y/textarea.e2e.js +15 -15
  1008. package/dist/collection/components/textarea/test/legacy/autogrow/textarea.e2e.js +31 -31
  1009. package/dist/collection/components/textarea/test/legacy/basic/textarea.e2e.js +30 -30
  1010. package/dist/collection/components/textarea/test/legacy/clear-on-edit/textarea.e2e.js +17 -17
  1011. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  1012. package/dist/collection/components/textarea/test/states/textarea.e2e.js +11 -11
  1013. package/dist/collection/components/textarea/test/textarea-events.e2e.js +57 -57
  1014. package/dist/collection/components/textarea/test/textarea.spec.js +59 -0
  1015. package/dist/collection/components/textarea/textarea.ios.css +144 -24
  1016. package/dist/collection/components/textarea/textarea.js +1050 -1016
  1017. package/dist/collection/components/textarea/textarea.md.css +205 -34
  1018. package/dist/collection/components/thumbnail/test/basic/thumbnail.e2e.js +28 -28
  1019. package/dist/collection/components/thumbnail/thumbnail.css +22 -0
  1020. package/dist/collection/components/thumbnail/thumbnail.js +15 -15
  1021. package/dist/collection/components/title/test/a11y/title.e2e.js +17 -17
  1022. package/dist/collection/components/title/test/basic/title.e2e.js +13 -13
  1023. package/dist/collection/components/title/title.ios.css +24 -2
  1024. package/dist/collection/components/title/title.js +119 -119
  1025. package/dist/collection/components/title/title.md.css +22 -0
  1026. package/dist/collection/components/toast/animations/ios.enter.js +21 -20
  1027. package/dist/collection/components/toast/animations/ios.leave.js +18 -18
  1028. package/dist/collection/components/toast/animations/md.enter.js +23 -22
  1029. package/dist/collection/components/toast/animations/md.leave.js +6 -6
  1030. package/dist/collection/components/toast/animations/utils.js +62 -56
  1031. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  1032. package/dist/collection/components/toast/test/a11y/toast.e2e.js +92 -92
  1033. package/dist/collection/components/toast/test/basic/toast.e2e.js +101 -101
  1034. package/dist/collection/components/toast/test/is-open/toast.e2e.js +17 -17
  1035. package/dist/collection/components/toast/test/layout/toast.e2e.js +9 -9
  1036. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +37 -37
  1037. package/dist/collection/components/toast/test/standalone/toast.e2e.js +10 -10
  1038. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  1039. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  1040. package/dist/collection/components/toast/test/toast-id.spec.js +32 -0
  1041. package/dist/collection/components/toast/test/toast.spec.js +200 -0
  1042. package/dist/collection/components/toast/test/trigger/toast.e2e.js +21 -21
  1043. package/dist/collection/components/toast/toast.ios.css +55 -11
  1044. package/dist/collection/components/toast/toast.js +1065 -952
  1045. package/dist/collection/components/toast/toast.md.css +55 -1
  1046. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +6 -6
  1047. package/dist/collection/components/toggle/test/color/toggle.e2e.js +11 -11
  1048. package/dist/collection/components/toggle/test/enable-on-off-labels/toggle.e2e.js +27 -27
  1049. package/dist/collection/components/toggle/test/item/toggle.e2e.js +52 -52
  1050. package/dist/collection/components/toggle/test/label/toggle.e2e.js +65 -65
  1051. package/dist/collection/components/toggle/test/legacy/basic/toggle.e2e.js +69 -69
  1052. package/dist/collection/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.js +23 -23
  1053. package/dist/collection/components/toggle/test/legacy/sizes/toggle.e2e.js +6 -6
  1054. package/dist/collection/components/toggle/test/sizes/toggle.e2e.js +6 -6
  1055. package/dist/collection/components/toggle/test/states/toggle.e2e.js +16 -16
  1056. package/dist/collection/components/toggle/test/toggle.spec.js +67 -0
  1057. package/dist/collection/components/toggle/toggle.ios.css +69 -9
  1058. package/dist/collection/components/toggle/toggle.js +487 -484
  1059. package/dist/collection/components/toggle/toggle.md.css +69 -9
  1060. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +7 -7
  1061. package/dist/collection/components/toolbar/test/colors/toolbar.e2e.js +6 -6
  1062. package/dist/collection/components/toolbar/toolbar.ios.css +44 -0
  1063. package/dist/collection/components/toolbar/toolbar.js +100 -100
  1064. package/dist/collection/components/toolbar/toolbar.md.css +44 -0
  1065. package/dist/collection/css/test/a11y/typography.e2e.js +6 -6
  1066. package/dist/collection/global/config.js +51 -51
  1067. package/dist/collection/global/ionic-global.js +54 -54
  1068. package/dist/collection/global/test/config-controller.spec.js +77 -0
  1069. package/dist/collection/utils/animation/animation-utils.js +91 -91
  1070. package/dist/collection/utils/animation/animation.js +906 -890
  1071. package/dist/collection/utils/animation/cubic-bezier.js +49 -49
  1072. package/dist/collection/utils/animation/test/animation.spec.js +447 -0
  1073. package/dist/collection/utils/animation/test/animationbuilder/animation.e2e.js +26 -26
  1074. package/dist/collection/utils/animation/test/basic/animation.e2e.js +12 -12
  1075. package/dist/collection/utils/animation/test/display/animation.e2e.js +18 -18
  1076. package/dist/collection/utils/animation/test/hooks/animation.e2e.js +39 -39
  1077. package/dist/collection/utils/animation/test/multiple/animation.e2e.js +27 -27
  1078. package/dist/collection/utils/browser/index.js +0 -22
  1079. package/dist/collection/utils/config.js +20 -20
  1080. package/dist/collection/utils/content/content.utils.spec.js +121 -121
  1081. package/dist/collection/utils/content/index.js +58 -59
  1082. package/dist/collection/utils/floating-point/floating-point.spec.js +14 -14
  1083. package/dist/collection/utils/floating-point/index.js +5 -5
  1084. package/dist/collection/utils/focus-visible.js +63 -63
  1085. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  1086. package/dist/collection/utils/forms/form-controller.js +45 -49
  1087. package/dist/collection/utils/forms/index.js +1 -0
  1088. package/dist/collection/utils/forms/notch-controller.js +120 -120
  1089. package/dist/collection/utils/framework-delegate.js +121 -121
  1090. package/dist/collection/utils/gesture/button-active.js +56 -56
  1091. package/dist/collection/utils/gesture/gesture-controller.js +182 -182
  1092. package/dist/collection/utils/gesture/index.js +222 -222
  1093. package/dist/collection/utils/gesture/listener.js +36 -36
  1094. package/dist/collection/utils/gesture/pointer-events.js +113 -113
  1095. package/dist/collection/utils/gesture/recognizers.js +46 -46
  1096. package/dist/collection/utils/gesture/swipe-back.js +65 -65
  1097. package/dist/collection/utils/hardware-back-button.js +48 -48
  1098. package/dist/collection/utils/helpers.js +258 -258
  1099. package/dist/collection/utils/helpers.spec.js +28 -28
  1100. package/dist/collection/utils/input-shims/hacks/common.js +61 -53
  1101. package/dist/collection/utils/input-shims/hacks/hide-caret.js +19 -19
  1102. package/dist/collection/utils/input-shims/hacks/input-blurring.js +47 -47
  1103. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +225 -225
  1104. package/dist/collection/utils/input-shims/hacks/scroll-data.js +29 -29
  1105. package/dist/collection/utils/input-shims/hacks/scroll-padding.js +21 -21
  1106. package/dist/collection/utils/input-shims/hacks/test/scroll-assist.e2e.js +97 -97
  1107. package/dist/collection/utils/input-shims/input-shims.js +87 -81
  1108. package/dist/collection/utils/keyboard/keyboard-controller.js +128 -128
  1109. package/dist/collection/utils/keyboard/keyboard.js +59 -59
  1110. package/dist/collection/utils/keyboard/test/keyboard-controller.spec.js +21 -0
  1111. package/dist/collection/utils/keyboard/test/keyboard.spec.js +214 -0
  1112. package/dist/collection/utils/lock-controller.js +24 -24
  1113. package/dist/collection/utils/logging/index.js +3 -3
  1114. package/dist/collection/utils/media.js +13 -13
  1115. package/dist/collection/utils/menu-controller/animations/base.js +8 -8
  1116. package/dist/collection/utils/menu-controller/animations/overlay.js +21 -21
  1117. package/dist/collection/utils/menu-controller/animations/push.js +20 -20
  1118. package/dist/collection/utils/menu-controller/animations/reveal.js +6 -6
  1119. package/dist/collection/utils/menu-controller/index.js +204 -206
  1120. package/dist/collection/utils/native/capacitor.js +4 -4
  1121. package/dist/collection/utils/native/haptic.js +151 -151
  1122. package/dist/collection/utils/native/keyboard.js +47 -47
  1123. package/dist/collection/utils/native/native-interface.js +15 -15
  1124. package/dist/collection/utils/native/status-bar.js +36 -36
  1125. package/dist/collection/utils/overlays.js +495 -494
  1126. package/dist/collection/utils/platform.js +56 -56
  1127. package/dist/collection/utils/rtl/dir.js +5 -5
  1128. package/dist/collection/utils/rtl/dir.spec.js +17 -17
  1129. package/dist/collection/utils/sanitization/index.js +122 -122
  1130. package/dist/collection/utils/sanitization/test/sanitization.spec.js +43 -0
  1131. package/dist/collection/utils/slot-mutation-controller.js +86 -85
  1132. package/dist/collection/utils/status-tap.js +26 -26
  1133. package/dist/collection/utils/tap-click/index.js +171 -171
  1134. package/dist/collection/utils/tap-click/test/tap-click.e2e.js +12 -12
  1135. package/dist/collection/utils/test/aria.spec.js +79 -0
  1136. package/dist/collection/utils/test/attributes.spec.js +53 -0
  1137. package/dist/collection/utils/test/framework-delegate/framework-delegate.e2e.js +25 -25
  1138. package/dist/collection/utils/test/hardware-back-button.spec.js +53 -0
  1139. package/dist/collection/utils/test/overlays/overlays.e2e.js +137 -137
  1140. package/dist/collection/utils/test/overlays/overlays.spec.js +102 -0
  1141. package/dist/collection/utils/test/platform.spec.js +132 -0
  1142. package/dist/collection/utils/test/platform.utils.js +77 -77
  1143. package/dist/collection/utils/test/playwright/drag-element.js +69 -69
  1144. package/dist/collection/utils/test/playwright/generator.js +48 -25
  1145. package/dist/collection/utils/test/playwright/matchers/index.js +3 -3
  1146. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEvent.js +21 -21
  1147. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventDetail.js +28 -28
  1148. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventTimes.js +22 -22
  1149. package/dist/collection/utils/test/playwright/page/event-spy.js +110 -110
  1150. package/dist/collection/utils/test/playwright/page/utils/goto.js +52 -52
  1151. package/dist/collection/utils/test/playwright/page/utils/locator.js +8 -8
  1152. package/dist/collection/utils/test/playwright/page/utils/set-content.js +44 -35
  1153. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +19 -19
  1154. package/dist/collection/utils/test/playwright/page/utils/spy-on-event.js +4 -4
  1155. package/dist/collection/utils/test/playwright/page/utils/wait-for-changes.js +48 -48
  1156. package/dist/collection/utils/test/playwright/playwright-page.js +35 -35
  1157. package/dist/collection/utils/test/playwright/viewports/index.js +13 -13
  1158. package/dist/collection/utils/test/press-keys.js +77 -77
  1159. package/dist/collection/utils/test/ready.spec.js +39 -0
  1160. package/dist/collection/utils/test/theme.spec.js +56 -0
  1161. package/dist/collection/utils/theme.js +23 -23
  1162. package/dist/collection/utils/transition/index.js +163 -163
  1163. package/dist/collection/utils/transition/ios.transition.js +598 -598
  1164. package/dist/collection/utils/transition/md.transition.js +44 -44
  1165. package/dist/collection/utils/watch-options.js +37 -26
  1166. package/dist/docs.json +196 -39
  1167. package/dist/esm/animation-dde8cc0d.js +1060 -0
  1168. package/dist/esm/{app-globals-ec816a70.js → app-globals-722340c4.js} +1 -1
  1169. package/dist/esm/button-active-c6ee4f50.js +67 -0
  1170. package/dist/esm/capacitor-59395cbd.js +13 -0
  1171. package/dist/esm/compare-with-utils-a96ff2ea.js +41 -0
  1172. package/dist/esm/config-49c88215.js +193 -0
  1173. package/dist/esm/cubic-bezier-fe2083dc.js +90 -0
  1174. package/dist/esm/data-f5c75b4e.js +1575 -0
  1175. package/dist/esm/{dir-912e3e13.js → dir-babeabeb.js} +5 -5
  1176. package/dist/esm/focus-visible-dd40d69f.js +75 -0
  1177. package/dist/esm/form-controller-548aa79c.js +64 -0
  1178. package/dist/esm/framework-delegate-bc1fd82a.js +140 -0
  1179. package/dist/esm/gesture-controller-1bf57181.js +195 -0
  1180. package/dist/esm/haptic-554688a5.js +206 -0
  1181. package/dist/esm/hardware-back-button-b2bc76db.js +71 -0
  1182. package/dist/esm/helpers-ae653409.js +418 -0
  1183. package/dist/esm/{index-b49b173c.js → index-08d686eb.js} +184 -63
  1184. package/dist/esm/index-0c12c22b.js +306 -0
  1185. package/dist/esm/index-1932b201.js +231 -0
  1186. package/dist/esm/index-2cf77112.js +457 -0
  1187. package/dist/esm/index-82eeb47f.js +196 -0
  1188. package/dist/esm/{index-595d62c9.js → index-9b0d46f4.js} +3 -3
  1189. package/dist/esm/index-a5d50daf.js +7 -0
  1190. package/dist/esm/{index-746a238e.js → index-b9e742e5.js} +60 -61
  1191. package/dist/esm/index.js +113 -113
  1192. package/dist/esm/input-shims-6539ce13.js +599 -0
  1193. package/dist/esm/input.utils-a5a2d164.js +135 -0
  1194. package/dist/esm/ion-accordion_2.entry.js +491 -481
  1195. package/dist/esm/ion-action-sheet.entry.js +262 -252
  1196. package/dist/esm/ion-alert.entry.js +442 -432
  1197. package/dist/esm/ion-app_8.entry.js +1153 -1153
  1198. package/dist/esm/ion-avatar_3.entry.js +29 -29
  1199. package/dist/esm/ion-back-button.entry.js +73 -73
  1200. package/dist/esm/ion-backdrop.entry.js +40 -40
  1201. package/dist/esm/ion-breadcrumb_2.entry.js +194 -194
  1202. package/dist/esm/ion-button_2.entry.js +303 -303
  1203. package/dist/esm/ion-card_5.entry.js +105 -105
  1204. package/dist/esm/ion-checkbox.entry.js +149 -147
  1205. package/dist/esm/ion-chip.entry.js +20 -20
  1206. package/dist/esm/ion-col_3.entry.js +136 -136
  1207. package/dist/esm/ion-datetime-button.entry.js +325 -325
  1208. package/dist/esm/ion-datetime_3.entry.js +2185 -2137
  1209. package/dist/esm/ion-fab_3.entry.js +152 -152
  1210. package/dist/esm/ion-img.entry.js +79 -79
  1211. package/dist/esm/ion-infinite-scroll_2.entry.js +198 -190
  1212. package/dist/esm/ion-input.entry.js +426 -394
  1213. package/dist/esm/ion-item-option_3.entry.js +459 -459
  1214. package/dist/esm/ion-item_8.entry.js +447 -434
  1215. package/dist/esm/ion-loading.entry.js +220 -210
  1216. package/dist/esm/ion-menu_3.entry.js +670 -658
  1217. package/dist/esm/ion-modal.entry.js +1415 -1405
  1218. package/dist/esm/ion-nav_2.entry.js +904 -904
  1219. package/dist/esm/ion-picker-column-internal.entry.js +331 -327
  1220. package/dist/esm/ion-picker-internal.entry.js +455 -455
  1221. package/dist/esm/ion-popover.entry.js +1110 -1100
  1222. package/dist/esm/ion-progress-bar.entry.js +40 -40
  1223. package/dist/esm/ion-radio_2.entry.js +322 -309
  1224. package/dist/esm/ion-range.entry.js +558 -556
  1225. package/dist/esm/ion-refresher_2.entry.js +786 -779
  1226. package/dist/esm/ion-reorder_2.entry.js +269 -269
  1227. package/dist/esm/ion-ripple-effect.entry.js +66 -66
  1228. package/dist/esm/ion-route_4.entry.js +693 -693
  1229. package/dist/esm/ion-searchbar.entry.js +363 -354
  1230. package/dist/esm/ion-segment_2.entry.js +509 -483
  1231. package/dist/esm/ion-select_3.entry.js +784 -768
  1232. package/dist/esm/ion-spinner.entry.js +46 -46
  1233. package/dist/esm/ion-split-pane.entry.js +117 -117
  1234. package/dist/esm/ion-tab-bar_2.entry.js +142 -142
  1235. package/dist/esm/ion-tab_2.entry.js +187 -187
  1236. package/dist/esm/ion-text.entry.js +13 -13
  1237. package/dist/esm/ion-textarea.entry.js +381 -349
  1238. package/dist/esm/ion-toast.entry.js +771 -419
  1239. package/dist/esm/ion-toggle.entry.js +227 -225
  1240. package/dist/esm/ionic-global-c0cda98e.js +224 -0
  1241. package/dist/esm/ionic.js +6 -6
  1242. package/dist/esm/ios.transition-802a84a6.js +651 -0
  1243. package/dist/esm/keyboard-52278bd7.js +146 -0
  1244. package/dist/esm/keyboard-73175e24.js +79 -0
  1245. package/dist/esm/keyboard-controller-ec5c2bfa.js +165 -0
  1246. package/dist/esm/loader.js +5 -5
  1247. package/dist/esm/lock-controller-316928be.js +38 -0
  1248. package/dist/esm/md.transition-43c2874d.js +57 -0
  1249. package/dist/esm/notch-controller-fea7f9c5.js +153 -0
  1250. package/dist/esm/overlays-32ef481d.js +693 -0
  1251. package/dist/esm/spinner-configs-964f7cf3.js +145 -0
  1252. package/dist/esm/status-tap-2b93b1b5.js +40 -0
  1253. package/dist/esm/swipe-back-18cb49f7.js +79 -0
  1254. package/dist/esm/theme-01f3f29c.js +43 -0
  1255. package/dist/esm/watch-options-c2911ace.js +47 -0
  1256. package/dist/esm-es5/animation-dde8cc0d.js +4 -0
  1257. package/dist/esm-es5/app-globals-722340c4.js +4 -0
  1258. package/dist/esm-es5/{button-active-d926d4f4.js → button-active-c6ee4f50.js} +1 -1
  1259. package/dist/esm-es5/{capacitor-b4979570.js → capacitor-59395cbd.js} +1 -1
  1260. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +4 -0
  1261. package/dist/esm-es5/config-49c88215.js +4 -0
  1262. package/dist/esm-es5/cubic-bezier-fe2083dc.js +4 -0
  1263. package/dist/esm-es5/data-f5c75b4e.js +4 -0
  1264. package/dist/esm-es5/{dir-912e3e13.js → dir-babeabeb.js} +1 -1
  1265. package/dist/esm-es5/focus-visible-dd40d69f.js +4 -0
  1266. package/dist/esm-es5/form-controller-548aa79c.js +4 -0
  1267. package/dist/esm-es5/framework-delegate-bc1fd82a.js +4 -0
  1268. package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-1bf57181.js} +1 -1
  1269. package/dist/esm-es5/{haptic-1243b917.js → haptic-554688a5.js} +1 -1
  1270. package/dist/esm-es5/hardware-back-button-b2bc76db.js +4 -0
  1271. package/dist/esm-es5/helpers-ae653409.js +4 -0
  1272. package/dist/esm-es5/index-08d686eb.js +5 -0
  1273. package/dist/esm-es5/index-0c12c22b.js +4 -0
  1274. package/dist/esm-es5/{index-a09eac70.js → index-1932b201.js} +1 -1
  1275. package/dist/esm-es5/index-2cf77112.js +4 -0
  1276. package/dist/esm-es5/index-82eeb47f.js +4 -0
  1277. package/dist/esm-es5/index-b9e742e5.js +4 -0
  1278. package/dist/esm-es5/index.js +1 -1
  1279. package/dist/esm-es5/input-shims-6539ce13.js +4 -0
  1280. package/dist/esm-es5/input.utils-a5a2d164.js +4 -0
  1281. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  1282. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  1283. package/dist/esm-es5/ion-alert.entry.js +1 -1
  1284. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  1285. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  1286. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  1287. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  1288. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  1289. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  1290. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  1291. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  1292. package/dist/esm-es5/ion-chip.entry.js +1 -1
  1293. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  1294. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  1295. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  1296. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  1297. package/dist/esm-es5/ion-img.entry.js +1 -1
  1298. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  1299. package/dist/esm-es5/ion-input.entry.js +1 -1
  1300. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  1301. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  1302. package/dist/esm-es5/ion-loading.entry.js +1 -1
  1303. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  1304. package/dist/esm-es5/ion-modal.entry.js +1 -1
  1305. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  1306. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  1307. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  1308. package/dist/esm-es5/ion-popover.entry.js +1 -1
  1309. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  1310. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  1311. package/dist/esm-es5/ion-range.entry.js +1 -1
  1312. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  1313. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  1314. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  1315. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  1316. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  1317. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  1318. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  1319. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  1320. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  1321. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  1322. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  1323. package/dist/esm-es5/ion-text.entry.js +1 -1
  1324. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  1325. package/dist/esm-es5/ion-toast.entry.js +1 -1
  1326. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  1327. package/dist/esm-es5/ionic-global-c0cda98e.js +4 -0
  1328. package/dist/esm-es5/ionic.js +1 -1
  1329. package/dist/esm-es5/{ios.transition-4d1322d6.js → ios.transition-802a84a6.js} +1 -1
  1330. package/dist/esm-es5/{keyboard-b551279d.js → keyboard-52278bd7.js} +1 -1
  1331. package/dist/esm-es5/{keyboard-b063f012.js → keyboard-73175e24.js} +1 -1
  1332. package/dist/esm-es5/keyboard-controller-ec5c2bfa.js +4 -0
  1333. package/dist/esm-es5/loader.js +1 -1
  1334. package/dist/esm-es5/md.transition-43c2874d.js +4 -0
  1335. package/dist/esm-es5/notch-controller-fea7f9c5.js +4 -0
  1336. package/dist/esm-es5/overlays-32ef481d.js +4 -0
  1337. package/dist/esm-es5/spinner-configs-964f7cf3.js +4 -0
  1338. package/dist/esm-es5/status-tap-2b93b1b5.js +4 -0
  1339. package/dist/esm-es5/swipe-back-18cb49f7.js +4 -0
  1340. package/dist/esm-es5/watch-options-c2911ace.js +4 -0
  1341. package/dist/html.html-data.json +17 -4
  1342. package/dist/ionic/index.esm.js +1 -1
  1343. package/dist/ionic/ionic.esm.js +1 -1
  1344. package/dist/ionic/ionic.js +15 -15
  1345. package/dist/ionic/p-012c3ceb.system.js +4 -0
  1346. package/dist/ionic/p-013013a3.js +4 -0
  1347. package/dist/ionic/p-01d14eba.system.entry.js +4 -0
  1348. package/dist/ionic/p-042e6f4b.entry.js +4 -0
  1349. package/dist/ionic/{p-819ff3b9.system.js → p-08e01816.system.js} +1 -1
  1350. package/dist/ionic/{p-f919c026.entry.js → p-0add7211.entry.js} +1 -1
  1351. package/dist/ionic/p-0bd51c34.system.js +4 -0
  1352. package/dist/ionic/{p-6f6646bf.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
  1353. package/dist/ionic/{p-6ea2e653.entry.js → p-1161a793.entry.js} +1 -1
  1354. package/dist/ionic/{p-96ba8eac.entry.js → p-1208f939.entry.js} +1 -1
  1355. package/dist/ionic/p-16756e94.system.entry.js +4 -0
  1356. package/dist/ionic/p-1786bc72.js +4 -0
  1357. package/dist/ionic/{p-1ecba429.entry.js → p-17da5ed1.entry.js} +1 -1
  1358. package/dist/ionic/p-18ba8221.entry.js +4 -0
  1359. package/dist/ionic/p-1b19c04b.entry.js +4 -0
  1360. package/dist/ionic/p-1cca10d6.system.js +4 -0
  1361. package/dist/ionic/p-1e4371bd.js +4 -0
  1362. package/dist/ionic/{p-fcf47f80.entry.js → p-2092f39f.entry.js} +1 -1
  1363. package/dist/ionic/p-251666e2.entry.js +4 -0
  1364. package/dist/ionic/{p-7423746f.entry.js → p-270e1a1d.entry.js} +1 -1
  1365. package/dist/ionic/{p-419eb426.js → p-27281edd.js} +1 -1
  1366. package/dist/ionic/p-28249b10.system.entry.js +4 -0
  1367. package/dist/ionic/p-28a2c2a2.entry.js +4 -0
  1368. package/dist/ionic/{p-6129af0a.system.entry.js → p-2938823a.system.entry.js} +1 -1
  1369. package/dist/ionic/p-29d03b3a.js +4 -0
  1370. package/dist/ionic/{p-17240d90.js → p-2aea8b1e.js} +1 -1
  1371. package/dist/ionic/p-2b7827c7.js +4 -0
  1372. package/dist/ionic/p-2d3b9fa3.system.entry.js +4 -0
  1373. package/dist/ionic/p-2d539df1.entry.js +4 -0
  1374. package/dist/ionic/p-31b2326e.system.js +4 -0
  1375. package/dist/ionic/{p-e028178a.system.js → p-31fcb233.system.js} +1 -1
  1376. package/dist/ionic/p-32ad210f.system.js +4 -0
  1377. package/dist/ionic/{p-aa377971.system.js → p-33a37fad.system.js} +1 -1
  1378. package/dist/ionic/p-350f7292.system.entry.js +4 -0
  1379. package/dist/ionic/{p-cabd2c6d.entry.js → p-353b349d.entry.js} +1 -1
  1380. package/dist/ionic/p-36d187af.js +4 -0
  1381. package/dist/ionic/p-376a6063.js +4 -0
  1382. package/dist/ionic/p-38c337e7.system.js +4 -0
  1383. package/dist/ionic/p-38f2c6bb.system.js +4 -0
  1384. package/dist/ionic/{p-9e106f58.entry.js → p-3a45a82b.entry.js} +1 -1
  1385. package/dist/ionic/{p-3bad5c1a.js → p-3a75d7fd.js} +1 -1
  1386. package/dist/ionic/p-3dd98a73.entry.js +4 -0
  1387. package/dist/ionic/p-3e6b47e8.system.entry.js +4 -0
  1388. package/dist/ionic/p-3f5179b5.entry.js +4 -0
  1389. package/dist/ionic/p-40f68333.system.js +4 -0
  1390. package/dist/ionic/p-4155f352.system.js +4 -0
  1391. package/dist/ionic/{p-b287ab05.js → p-4180a747.js} +1 -1
  1392. package/dist/ionic/p-4233cc1e.system.entry.js +4 -0
  1393. package/dist/ionic/{p-b923f3d7.js → p-42f189f4.js} +1 -1
  1394. package/dist/ionic/p-459d13d5.js +4 -0
  1395. package/dist/ionic/p-4609d030.system.js +4 -0
  1396. package/dist/ionic/p-46d400b4.system.entry.js +4 -0
  1397. package/dist/ionic/{p-cf62e1c8.js → p-47b6ba5b.js} +1 -1
  1398. package/dist/ionic/p-4d67d27a.entry.js +4 -0
  1399. package/dist/ionic/p-4f255d5a.system.js +4 -0
  1400. package/dist/ionic/p-4fb51e61.system.entry.js +4 -0
  1401. package/dist/ionic/{p-c575a7b8.system.entry.js → p-517a9885.system.entry.js} +1 -1
  1402. package/dist/ionic/{p-8083aadb.entry.js → p-51a087d6.entry.js} +1 -1
  1403. package/dist/ionic/p-53ec4f1c.system.js +4 -0
  1404. package/dist/ionic/{p-6f8a95a3.system.entry.js → p-564af202.system.entry.js} +2 -2
  1405. package/dist/ionic/{p-0ac3fb2c.entry.js → p-588fdf40.entry.js} +1 -1
  1406. package/dist/ionic/p-5b365ca7.system.js +4 -0
  1407. package/dist/ionic/{p-c42c86c0.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  1408. package/dist/ionic/p-5e4eec2e.entry.js +4 -0
  1409. package/dist/ionic/{p-2a8eeef7.system.js → p-5e745192.system.js} +1 -1
  1410. package/dist/ionic/{p-76378400.js → p-5ecae037.js} +1 -1
  1411. package/dist/ionic/{p-c679fcb5.entry.js → p-5eda1d7d.entry.js} +1 -1
  1412. package/dist/ionic/{p-1289b3b5.system.entry.js → p-6577aea9.system.entry.js} +2 -2
  1413. package/dist/ionic/p-66d633fb.js +4 -0
  1414. package/dist/ionic/{p-0bbede6a.system.entry.js → p-6ad34705.system.entry.js} +1 -1
  1415. package/dist/ionic/p-6de472cb.js +4 -0
  1416. package/dist/ionic/{p-ce7d67a7.system.entry.js → p-6de62649.system.entry.js} +2 -2
  1417. package/dist/ionic/{p-8a2801f1.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
  1418. package/dist/ionic/{p-61b192a4.system.entry.js → p-6f8dbe92.system.entry.js} +1 -1
  1419. package/dist/ionic/{p-0b00b937.entry.js → p-6fbecbda.entry.js} +1 -1
  1420. package/dist/ionic/p-72f6ff89.js +4 -0
  1421. package/dist/ionic/p-765f4dde.entry.js +4 -0
  1422. package/dist/ionic/p-7798c78a.system.js +4 -0
  1423. package/dist/ionic/p-78aadecb.entry.js +4 -0
  1424. package/dist/ionic/p-790220fd.system.js +4 -0
  1425. package/dist/ionic/p-7d92bf15.system.entry.js +4 -0
  1426. package/dist/ionic/p-80fa068e.entry.js +4 -0
  1427. package/dist/ionic/p-82e3d633.system.js +4 -0
  1428. package/dist/ionic/p-8314281e.system.js +4 -0
  1429. package/dist/ionic/p-8804a472.system.entry.js +4 -0
  1430. package/dist/ionic/p-888db766.system.js +4 -0
  1431. package/dist/ionic/p-88d5fbd3.js +4 -0
  1432. package/dist/ionic/p-88fde0e0.entry.js +4 -0
  1433. package/dist/ionic/p-8985cdb6.system.js +4 -0
  1434. package/dist/ionic/p-8aa1d0b7.system.js +4 -0
  1435. package/dist/ionic/p-8acae6b0.system.entry.js +4 -0
  1436. package/dist/ionic/p-8d69a624.entry.js +4 -0
  1437. package/dist/ionic/p-8f5d30f5.entry.js +4 -0
  1438. package/dist/ionic/{p-beb864e4.system.entry.js → p-908475e7.system.entry.js} +1 -1
  1439. package/dist/ionic/p-91d33c4a.js +4 -0
  1440. package/dist/ionic/p-953009b1.entry.js +4 -0
  1441. package/dist/ionic/{p-eb8dc56f.system.entry.js → p-958d6ebe.system.entry.js} +2 -2
  1442. package/dist/ionic/{p-78030c1f.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
  1443. package/dist/ionic/p-9738fd82.js +5 -0
  1444. package/dist/ionic/p-979d4f5c.system.js +4 -0
  1445. package/dist/ionic/{p-c4a5de01.entry.js → p-98f3d827.entry.js} +1 -1
  1446. package/dist/ionic/p-9b7f0b0f.entry.js +4 -0
  1447. package/dist/ionic/p-9e447eb1.system.js +4 -0
  1448. package/dist/ionic/p-9eec42cc.system.entry.js +4 -0
  1449. package/dist/ionic/p-9f6ee2c0.system.entry.js +4 -0
  1450. package/dist/ionic/p-a0bb7b92.system.entry.js +4 -0
  1451. package/dist/ionic/p-a0d7bb5e.system.js +4 -0
  1452. package/dist/ionic/p-a1987850.entry.js +4 -0
  1453. package/dist/ionic/{p-8209372c.entry.js → p-a3277a67.entry.js} +1 -1
  1454. package/dist/ionic/{p-4e6e43c1.entry.js → p-a4afcc88.entry.js} +1 -1
  1455. package/dist/ionic/p-a9978d08.entry.js +4 -0
  1456. package/dist/ionic/p-ada96dd0.system.entry.js +4 -0
  1457. package/dist/ionic/p-afd6ca9d.entry.js +4 -0
  1458. package/dist/ionic/p-b3b3efba.system.entry.js +4 -0
  1459. package/dist/ionic/p-b4a51c42.system.js +4 -0
  1460. package/dist/ionic/p-b56d0866.system.entry.js +4 -0
  1461. package/dist/ionic/{p-4e50b8d1.entry.js → p-b5f9f14c.entry.js} +1 -1
  1462. package/dist/ionic/{p-eab10949.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
  1463. package/dist/ionic/p-b6f9d32a.entry.js +4 -0
  1464. package/dist/ionic/p-b7010c69.system.entry.js +4 -0
  1465. package/dist/ionic/{p-181b7c2a.js → p-c3c3333a.js} +1 -1
  1466. package/dist/ionic/p-c468af8a.system.js +4 -0
  1467. package/dist/ionic/p-c61cc894.js +4 -0
  1468. package/dist/ionic/p-c7c8429a.system.js +4 -0
  1469. package/dist/ionic/p-c847fb35.system.entry.js +4 -0
  1470. package/dist/ionic/{p-e0f52215.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
  1471. package/dist/ionic/p-c9a21dfd.system.entry.js +4 -0
  1472. package/dist/ionic/p-cabad15b.system.js +4 -0
  1473. package/dist/ionic/{p-8c1805f4.system.entry.js → p-caf21b46.system.entry.js} +1 -1
  1474. package/dist/ionic/p-cce9f61a.system.entry.js +4 -0
  1475. package/dist/ionic/{p-de68588d.js → p-cdbeaadc.js} +1 -1
  1476. package/dist/ionic/{p-108f9d49.entry.js → p-cfe57b1b.entry.js} +1 -1
  1477. package/dist/ionic/p-d032f825.system.entry.js +4 -0
  1478. package/dist/ionic/{p-31119a15.entry.js → p-d37b441e.entry.js} +1 -1
  1479. package/dist/ionic/p-d3b030b8.system.js +5 -0
  1480. package/dist/ionic/p-d51674c5.system.js +4 -0
  1481. package/dist/ionic/p-d8d84afa.system.js +4 -0
  1482. package/dist/ionic/p-dc6af8e9.entry.js +4 -0
  1483. package/dist/ionic/{p-3818f63f.entry.js → p-ddb30596.entry.js} +1 -1
  1484. package/dist/ionic/p-ddbb2d5b.system.js +4 -0
  1485. package/dist/ionic/p-de6f8b28.system.js +4 -0
  1486. package/dist/ionic/p-de756e5c.js +4 -0
  1487. package/dist/ionic/p-dee7c1d0.system.entry.js +4 -0
  1488. package/dist/ionic/{p-e0f0d55f.system.js → p-e24ce1e5.system.js} +1 -1
  1489. package/dist/ionic/p-e3584231.system.js +4 -0
  1490. package/dist/ionic/{p-c4f2dce7.system.js → p-e673a0a2.system.js} +1 -1
  1491. package/dist/ionic/p-e6d68e02.system.entry.js +4 -0
  1492. package/dist/ionic/{p-012952cd.system.entry.js → p-e7ea9815.system.entry.js} +2 -2
  1493. package/dist/ionic/{p-db1a1e00.entry.js → p-e94c392d.entry.js} +1 -1
  1494. package/dist/ionic/{p-a04bfada.entry.js → p-ea69616e.entry.js} +1 -1
  1495. package/dist/ionic/p-eef72e06.js +4 -0
  1496. package/dist/ionic/p-ef126ae8.system.entry.js +4 -0
  1497. package/dist/ionic/p-f0445d82.system.entry.js +4 -0
  1498. package/dist/ionic/p-f233f1e0.system.js +4 -0
  1499. package/dist/ionic/p-f5d2dc9b.js +4 -0
  1500. package/dist/ionic/p-f656e032.system.entry.js +4 -0
  1501. package/dist/ionic/p-f70970cf.js +4 -0
  1502. package/dist/ionic/p-f8a5bb89.entry.js +4 -0
  1503. package/dist/ionic/p-fba0a6e7.system.entry.js +4 -0
  1504. package/dist/ionic/p-feae5133.entry.js +4 -0
  1505. package/dist/ionic/p-ff4b7e40.system.js +4 -0
  1506. package/dist/types/components/accordion/accordion.d.ts +62 -62
  1507. package/dist/types/components/accordion-group/accordion-group-interface.d.ts +3 -3
  1508. package/dist/types/components/accordion-group/accordion-group.d.ts +76 -76
  1509. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +25 -25
  1510. package/dist/types/components/action-sheet/action-sheet.d.ts +149 -149
  1511. package/dist/types/components/action-sheet/test/basic/fixture.d.ts +7 -7
  1512. package/dist/types/components/alert/alert-interface.d.ts +45 -45
  1513. package/dist/types/components/alert/alert.d.ts +181 -181
  1514. package/dist/types/components/app/app.d.ts +15 -15
  1515. package/dist/types/components/avatar/avatar.d.ts +1 -1
  1516. package/dist/types/components/back-button/back-button.d.ts +41 -41
  1517. package/dist/types/components/backdrop/backdrop.d.ts +22 -22
  1518. package/dist/types/components/badge/badge.d.ts +7 -7
  1519. package/dist/types/components/breadcrumb/breadcrumb-interface.d.ts +4 -4
  1520. package/dist/types/components/breadcrumb/breadcrumb.d.ts +87 -87
  1521. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +39 -39
  1522. package/dist/types/components/button/button.d.ts +121 -121
  1523. package/dist/types/components/buttons/buttons.d.ts +14 -14
  1524. package/dist/types/components/card/card.d.ts +57 -57
  1525. package/dist/types/components/card-content/card-content.d.ts +1 -1
  1526. package/dist/types/components/card-header/card-header.d.ts +13 -13
  1527. package/dist/types/components/card-subtitle/card-subtitle.d.ts +7 -7
  1528. package/dist/types/components/card-title/card-title.d.ts +7 -7
  1529. package/dist/types/components/checkbox/checkbox-interface.d.ts +4 -4
  1530. package/dist/types/components/checkbox/checkbox.d.ts +112 -111
  1531. package/dist/types/components/chip/chip.d.ts +15 -15
  1532. package/dist/types/components/col/col.d.ts +128 -128
  1533. package/dist/types/components/content/content-interface.d.ts +6 -6
  1534. package/dist/types/components/content/content.d.ts +129 -129
  1535. package/dist/types/components/datetime/datetime-interface.d.ts +15 -15
  1536. package/dist/types/components/datetime/datetime.d.ts +407 -407
  1537. package/dist/types/components/datetime/utils/data.d.ts +11 -11
  1538. package/dist/types/components/datetime/utils/manipulation.d.ts +25 -25
  1539. package/dist/types/components/datetime/utils/state.d.ts +8 -8
  1540. package/dist/types/components/datetime-button/datetime-button.d.ts +59 -59
  1541. package/dist/types/components/fab/fab.d.ts +33 -33
  1542. package/dist/types/components/fab-button/fab-button.d.ts +88 -88
  1543. package/dist/types/components/fab-list/fab-list.d.ts +11 -11
  1544. package/dist/types/components/footer/footer.d.ts +27 -27
  1545. package/dist/types/components/grid/grid.d.ts +5 -5
  1546. package/dist/types/components/header/header.d.ts +31 -31
  1547. package/dist/types/components/header/header.utils.d.ts +7 -7
  1548. package/dist/types/components/img/img.d.ts +30 -30
  1549. package/dist/types/components/infinite-scroll/infinite-scroll-interface.d.ts +1 -1
  1550. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +65 -58
  1551. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +23 -23
  1552. package/dist/types/components/input/input-interface.d.ts +6 -6
  1553. package/dist/types/components/input/input.d.ts +321 -315
  1554. package/dist/types/components/item/item.d.ts +111 -111
  1555. package/dist/types/components/item-divider/item-divider.d.ts +16 -16
  1556. package/dist/types/components/item-group/item-group.d.ts +1 -1
  1557. package/dist/types/components/item-option/item-option.d.ts +44 -44
  1558. package/dist/types/components/item-options/item-options.d.ts +13 -13
  1559. package/dist/types/components/item-sliding/item-sliding-interface.d.ts +1 -1
  1560. package/dist/types/components/item-sliding/item-sliding.d.ts +75 -75
  1561. package/dist/types/components/label/label.d.ts +30 -30
  1562. package/dist/types/components/list/list.d.ts +17 -17
  1563. package/dist/types/components/list-header/list-header.d.ts +11 -11
  1564. package/dist/types/components/loading/loading-interface.d.ts +16 -16
  1565. package/dist/types/components/loading/loading.d.ts +152 -152
  1566. package/dist/types/components/menu/menu-interface.d.ts +39 -39
  1567. package/dist/types/components/menu/menu.d.ts +140 -140
  1568. package/dist/types/components/menu-button/menu-button.d.ts +30 -30
  1569. package/dist/types/components/menu-toggle/menu-toggle.d.ts +21 -21
  1570. package/dist/types/components/modal/animations/sheet.d.ts +4 -4
  1571. package/dist/types/components/modal/gestures/sheet.d.ts +30 -30
  1572. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  1573. package/dist/types/components/modal/modal-interface.d.ts +27 -27
  1574. package/dist/types/components/modal/modal.d.ts +265 -265
  1575. package/dist/types/components/modal/test/fixtures.d.ts +7 -7
  1576. package/dist/types/components/nav/nav-interface.d.ts +40 -40
  1577. package/dist/types/components/nav/nav.d.ts +247 -247
  1578. package/dist/types/components/nav/view-controller.d.ts +13 -13
  1579. package/dist/types/components/nav-link/nav-link.d.ts +19 -19
  1580. package/dist/types/components/note/note.d.ts +7 -7
  1581. package/dist/types/components/picker/picker-interface.d.ts +43 -43
  1582. package/dist/types/components/picker/picker.d.ts +149 -149
  1583. package/dist/types/components/picker-column/picker-column.d.ts +39 -39
  1584. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +3 -3
  1585. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +93 -89
  1586. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +4 -4
  1587. package/dist/types/components/picker-internal/picker-internal.d.ts +94 -94
  1588. package/dist/types/components/popover/popover-interface.d.ts +26 -26
  1589. package/dist/types/components/popover/popover.d.ts +279 -279
  1590. package/dist/types/components/popover/test/fixture.d.ts +5 -5
  1591. package/dist/types/components/popover/utils.d.ts +25 -25
  1592. package/dist/types/components/progress-bar/progress-bar.d.ts +27 -27
  1593. package/dist/types/components/radio/radio.d.ts +100 -99
  1594. package/dist/types/components/radio-group/radio-group-interface.d.ts +5 -4
  1595. package/dist/types/components/radio-group/radio-group.d.ts +51 -44
  1596. package/dist/types/components/radio-group/test/fixtures.d.ts +5 -5
  1597. package/dist/types/components/range/range-interface.d.ts +7 -7
  1598. package/dist/types/components/range/range.d.ts +193 -192
  1599. package/dist/types/components/refresher/refresher-interface.d.ts +3 -3
  1600. package/dist/types/components/refresher/refresher.d.ts +132 -132
  1601. package/dist/types/components/refresher-content/refresher-content.d.ts +44 -44
  1602. package/dist/types/components/reorder/reorder.d.ts +3 -3
  1603. package/dist/types/components/reorder-group/reorder-group-interface.d.ts +5 -5
  1604. package/dist/types/components/reorder-group/reorder-group.d.ts +53 -53
  1605. package/dist/types/components/ripple-effect/ripple-effect.d.ts +20 -20
  1606. package/dist/types/components/route/route-interface.d.ts +1 -1
  1607. package/dist/types/components/route/route.d.ts +43 -43
  1608. package/dist/types/components/route-redirect/route-redirect.d.ts +33 -33
  1609. package/dist/types/components/router/router.d.ts +74 -73
  1610. package/dist/types/components/router/utils/dom.d.ts +2 -2
  1611. package/dist/types/components/router/utils/interface.d.ts +31 -31
  1612. package/dist/types/components/router/utils/matching.d.ts +6 -6
  1613. package/dist/types/components/router-link/router-link.d.ts +34 -34
  1614. package/dist/types/components/router-outlet/router-outlet.d.ts +41 -41
  1615. package/dist/types/components/row/row.d.ts +1 -1
  1616. package/dist/types/components/searchbar/searchbar-interface.d.ts +6 -6
  1617. package/dist/types/components/searchbar/searchbar.d.ts +235 -233
  1618. package/dist/types/components/segment/segment-interface.d.ts +3 -3
  1619. package/dist/types/components/segment/segment.d.ts +82 -82
  1620. package/dist/types/components/segment-button/segment-button.d.ts +36 -36
  1621. package/dist/types/components/select/select-interface.d.ts +3 -3
  1622. package/dist/types/components/select/select.d.ts +238 -233
  1623. package/dist/types/components/select-option/select-option.d.ts +11 -11
  1624. package/dist/types/components/select-popover/select-popover-interface.d.ts +8 -8
  1625. package/dist/types/components/select-popover/select-popover.d.ts +39 -39
  1626. package/dist/types/components/select-popover/test/fixtures.d.ts +12 -12
  1627. package/dist/types/components/skeleton-text/skeleton-text.d.ts +15 -7
  1628. package/dist/types/components/spinner/spinner-configs.d.ts +96 -96
  1629. package/dist/types/components/spinner/spinner-interface.d.ts +14 -14
  1630. package/dist/types/components/spinner/spinner.d.ts +21 -21
  1631. package/dist/types/components/split-pane/split-pane.d.ts +33 -33
  1632. package/dist/types/components/tab/tab.d.ts +21 -21
  1633. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +4 -4
  1634. package/dist/types/components/tab-bar/tab-bar.d.ts +34 -34
  1635. package/dist/types/components/tab-button/tab-button.d.ts +56 -56
  1636. package/dist/types/components/tabs/tabs-interface.d.ts +4 -4
  1637. package/dist/types/components/tabs/tabs.d.ts +52 -52
  1638. package/dist/types/components/text/text.d.ts +7 -7
  1639. package/dist/types/components/textarea/textarea-interface.d.ts +6 -6
  1640. package/dist/types/components/textarea/textarea.d.ts +275 -269
  1641. package/dist/types/components/thumbnail/thumbnail.d.ts +1 -1
  1642. package/dist/types/components/title/title.d.ts +21 -21
  1643. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  1644. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  1645. package/dist/types/components/toast/toast-interface.d.ts +37 -35
  1646. package/dist/types/components/toast/toast.d.ts +241 -214
  1647. package/dist/types/components/toggle/toggle-interface.d.ts +4 -4
  1648. package/dist/types/components/toggle/toggle.d.ts +117 -116
  1649. package/dist/types/components/toolbar/toolbar.d.ts +11 -11
  1650. package/dist/types/components.d.ts +679 -16
  1651. package/dist/types/global/config.d.ts +6 -6
  1652. package/dist/types/interface.d.ts +1 -5
  1653. package/dist/types/jest.d.ts +5 -0
  1654. package/dist/types/stencil-public-runtime.d.ts +10 -0
  1655. package/dist/types/utils/animation/animation-interface.d.ts +205 -205
  1656. package/dist/types/utils/browser/index.d.ts +17 -8
  1657. package/dist/types/utils/config.d.ts +175 -175
  1658. package/dist/types/utils/content/index.d.ts +1 -1
  1659. package/dist/types/utils/element-interface.d.ts +6 -6
  1660. package/dist/types/utils/focus-visible.d.ts +5 -4
  1661. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  1662. package/dist/types/utils/forms/form-controller.d.ts +3 -3
  1663. package/dist/types/utils/forms/index.d.ts +1 -0
  1664. package/dist/types/utils/forms/notch-controller.d.ts +2 -2
  1665. package/dist/types/utils/framework-delegate.d.ts +3 -3
  1666. package/dist/types/utils/gesture/gesture-controller.d.ts +49 -49
  1667. package/dist/types/utils/gesture/index.d.ts +31 -31
  1668. package/dist/types/utils/gesture/listener.d.ts +2 -2
  1669. package/dist/types/utils/gesture/pointer-events.d.ts +12 -12
  1670. package/dist/types/utils/gesture/recognizers.d.ts +4 -4
  1671. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  1672. package/dist/types/utils/helpers.d.ts +8 -8
  1673. package/dist/types/utils/input-shims/hacks/scroll-data.d.ts +4 -4
  1674. package/dist/types/utils/keyboard/keyboard-controller.d.ts +3 -3
  1675. package/dist/types/utils/lock-controller.d.ts +1 -1
  1676. package/dist/types/utils/native/haptic.d.ts +38 -38
  1677. package/dist/types/utils/native/keyboard.d.ts +29 -29
  1678. package/dist/types/utils/native/native-interface.d.ts +15 -15
  1679. package/dist/types/utils/native/status-bar.d.ts +8 -8
  1680. package/dist/types/utils/overlays-interface.d.ts +27 -27
  1681. package/dist/types/utils/overlays.d.ts +29 -28
  1682. package/dist/types/utils/platform.d.ts +16 -16
  1683. package/dist/types/utils/sanitization/index.d.ts +2 -2
  1684. package/dist/types/utils/slot-mutation-controller.d.ts +3 -3
  1685. package/dist/types/utils/test/platform.utils.d.ts +67 -67
  1686. package/dist/types/utils/test/playwright/generator.d.ts +16 -7
  1687. package/dist/types/utils/test/playwright/matchers/index.d.ts +3 -3
  1688. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEvent.d.ts +2 -2
  1689. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventDetail.d.ts +2 -2
  1690. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventTimes.d.ts +2 -2
  1691. package/dist/types/utils/test/playwright/page/event-spy.d.ts +15 -15
  1692. package/dist/types/utils/test/playwright/page/utils/goto.d.ts +3 -3
  1693. package/dist/types/utils/test/playwright/page/utils/locator.d.ts +15 -15
  1694. package/dist/types/utils/test/playwright/playwright-declarations.d.ts +92 -92
  1695. package/dist/types/utils/test/playwright/playwright-page.d.ts +3 -3
  1696. package/dist/types/utils/test/playwright/viewports/index.d.ts +12 -12
  1697. package/dist/types/utils/test/press-keys.d.ts +14 -14
  1698. package/dist/types/utils/transition/index.d.ts +6 -6
  1699. package/dist/types/utils/watch-options.d.ts +9 -1
  1700. package/hydrate/index.d.ts +1 -1
  1701. package/hydrate/index.js +30673 -29948
  1702. package/package.json +10 -12
  1703. package/dist/cjs/animation-c8bdd3c7.js +0 -1046
  1704. package/dist/cjs/button-active-c0ff1915.js +0 -69
  1705. package/dist/cjs/config-d5882735.js +0 -199
  1706. package/dist/cjs/cubic-bezier-6b9222ad.js +0 -92
  1707. package/dist/cjs/data-c8d21093.js +0 -1622
  1708. package/dist/cjs/focus-visible-a7545600.js +0 -77
  1709. package/dist/cjs/form-controller-5e223b54.js +0 -70
  1710. package/dist/cjs/framework-delegate-c0873a6f.js +0 -144
  1711. package/dist/cjs/gesture-controller-b46721be.js +0 -197
  1712. package/dist/cjs/haptic-678abc9f.js +0 -212
  1713. package/dist/cjs/hardware-back-button-b67c8e75.js +0 -76
  1714. package/dist/cjs/helpers-ea4ccbcb.js +0 -441
  1715. package/dist/cjs/index-0ee995e4.js +0 -459
  1716. package/dist/cjs/index-306a7476.js +0 -32
  1717. package/dist/cjs/index-5e7529f6.js +0 -310
  1718. package/dist/cjs/index-9f379eaa.js +0 -198
  1719. package/dist/cjs/index-eccba000.js +0 -243
  1720. package/dist/cjs/input-shims-da7dc0de.js +0 -588
  1721. package/dist/cjs/input.utils-0fe3097c.js +0 -137
  1722. package/dist/cjs/ionic-global-fb752503.js +0 -230
  1723. package/dist/cjs/ios.transition-5af5991e.js +0 -654
  1724. package/dist/cjs/keyboard-controller-50beb83a.js +0 -167
  1725. package/dist/cjs/keyboard-fd7db491.js +0 -81
  1726. package/dist/cjs/lock-controller-4ae2eb59.js +0 -40
  1727. package/dist/cjs/md.transition-1e740a6a.js +0 -59
  1728. package/dist/cjs/notch-controller-f4f6af5d.js +0 -155
  1729. package/dist/cjs/overlays-1a734051.js +0 -714
  1730. package/dist/cjs/spinner-configs-f7b5105b.js +0 -147
  1731. package/dist/cjs/status-tap-778e8054.js +0 -42
  1732. package/dist/cjs/swipe-back-7e843e77.js +0 -81
  1733. package/dist/cjs/theme-fbc56b3b.js +0 -48
  1734. package/dist/cjs/watch-options-f3f77e54.js +0 -38
  1735. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  1736. package/dist/esm/animation-92066c62.js +0 -1044
  1737. package/dist/esm/button-active-d926d4f4.js +0 -67
  1738. package/dist/esm/capacitor-b4979570.js +0 -13
  1739. package/dist/esm/config-96c9ace3.js +0 -193
  1740. package/dist/esm/cubic-bezier-66542bc5.js +0 -90
  1741. package/dist/esm/data-44d9e816.js +0 -1575
  1742. package/dist/esm/focus-visible-85493433.js +0 -75
  1743. package/dist/esm/form-controller-ed77647a.js +0 -68
  1744. package/dist/esm/framework-delegate-aa433dea.js +0 -140
  1745. package/dist/esm/gesture-controller-0fa396c4.js +0 -195
  1746. package/dist/esm/haptic-1243b917.js +0 -206
  1747. package/dist/esm/hardware-back-button-39299f84.js +0 -71
  1748. package/dist/esm/helpers-3379ba19.js +0 -418
  1749. package/dist/esm/index-7a14ecec.js +0 -29
  1750. package/dist/esm/index-a09eac70.js +0 -231
  1751. package/dist/esm/index-df55802d.js +0 -308
  1752. package/dist/esm/index-f0cc4e14.js +0 -196
  1753. package/dist/esm/index-ff313b19.js +0 -457
  1754. package/dist/esm/input-shims-d78a3c77.js +0 -586
  1755. package/dist/esm/input.utils-ec063df4.js +0 -134
  1756. package/dist/esm/ionic-global-246ca78f.js +0 -224
  1757. package/dist/esm/ios.transition-4d1322d6.js +0 -651
  1758. package/dist/esm/keyboard-b063f012.js +0 -79
  1759. package/dist/esm/keyboard-b551279d.js +0 -146
  1760. package/dist/esm/keyboard-controller-0c2dce71.js +0 -165
  1761. package/dist/esm/lock-controller-e8c6c051.js +0 -38
  1762. package/dist/esm/md.transition-66b425d0.js +0 -57
  1763. package/dist/esm/notch-controller-8c9c0e54.js +0 -153
  1764. package/dist/esm/overlays-cec6bac8.js +0 -692
  1765. package/dist/esm/spinner-configs-d09fbbbb.js +0 -145
  1766. package/dist/esm/status-tap-9aeeaca5.js +0 -40
  1767. package/dist/esm/swipe-back-cd4295f3.js +0 -79
  1768. package/dist/esm/theme-17531cdf.js +0 -43
  1769. package/dist/esm/watch-options-355a920a.js +0 -36
  1770. package/dist/esm-es5/animation-92066c62.js +0 -4
  1771. package/dist/esm-es5/app-globals-ec816a70.js +0 -4
  1772. package/dist/esm-es5/config-96c9ace3.js +0 -4
  1773. package/dist/esm-es5/cubic-bezier-66542bc5.js +0 -4
  1774. package/dist/esm-es5/data-44d9e816.js +0 -4
  1775. package/dist/esm-es5/focus-visible-85493433.js +0 -4
  1776. package/dist/esm-es5/form-controller-ed77647a.js +0 -4
  1777. package/dist/esm-es5/framework-delegate-aa433dea.js +0 -4
  1778. package/dist/esm-es5/hardware-back-button-39299f84.js +0 -4
  1779. package/dist/esm-es5/helpers-3379ba19.js +0 -4
  1780. package/dist/esm-es5/index-746a238e.js +0 -4
  1781. package/dist/esm-es5/index-b49b173c.js +0 -5
  1782. package/dist/esm-es5/index-df55802d.js +0 -4
  1783. package/dist/esm-es5/index-f0cc4e14.js +0 -4
  1784. package/dist/esm-es5/index-ff313b19.js +0 -4
  1785. package/dist/esm-es5/input-shims-d78a3c77.js +0 -4
  1786. package/dist/esm-es5/input.utils-ec063df4.js +0 -4
  1787. package/dist/esm-es5/ionic-global-246ca78f.js +0 -4
  1788. package/dist/esm-es5/keyboard-controller-0c2dce71.js +0 -4
  1789. package/dist/esm-es5/md.transition-66b425d0.js +0 -4
  1790. package/dist/esm-es5/notch-controller-8c9c0e54.js +0 -4
  1791. package/dist/esm-es5/overlays-cec6bac8.js +0 -4
  1792. package/dist/esm-es5/spinner-configs-d09fbbbb.js +0 -4
  1793. package/dist/esm-es5/status-tap-9aeeaca5.js +0 -4
  1794. package/dist/esm-es5/swipe-back-cd4295f3.js +0 -4
  1795. package/dist/esm-es5/watch-options-355a920a.js +0 -4
  1796. package/dist/ionic/p-015187e5.system.js +0 -4
  1797. package/dist/ionic/p-06ac429a.js +0 -5
  1798. package/dist/ionic/p-091c8792.system.js +0 -4
  1799. package/dist/ionic/p-0b7c25ee.system.entry.js +0 -4
  1800. package/dist/ionic/p-0f1f59da.system.entry.js +0 -4
  1801. package/dist/ionic/p-19fba51c.entry.js +0 -4
  1802. package/dist/ionic/p-1a463b1e.system.entry.js +0 -4
  1803. package/dist/ionic/p-1edb53a1.entry.js +0 -4
  1804. package/dist/ionic/p-1f260a7b.entry.js +0 -4
  1805. package/dist/ionic/p-1f81b5be.entry.js +0 -4
  1806. package/dist/ionic/p-276afddd.js +0 -4
  1807. package/dist/ionic/p-28ea45b9.js +0 -4
  1808. package/dist/ionic/p-29073efe.system.entry.js +0 -4
  1809. package/dist/ionic/p-2b89ea1b.system.js +0 -4
  1810. package/dist/ionic/p-303bf1e8.system.entry.js +0 -4
  1811. package/dist/ionic/p-32083c2d.js +0 -4
  1812. package/dist/ionic/p-33a8349a.system.entry.js +0 -4
  1813. package/dist/ionic/p-34259245.system.entry.js +0 -4
  1814. package/dist/ionic/p-35b26732.entry.js +0 -4
  1815. package/dist/ionic/p-35e399bd.entry.js +0 -4
  1816. package/dist/ionic/p-3632220b.system.js +0 -4
  1817. package/dist/ionic/p-38089641.entry.js +0 -4
  1818. package/dist/ionic/p-38c5fe2b.system.entry.js +0 -4
  1819. package/dist/ionic/p-3a58e3a4.system.entry.js +0 -4
  1820. package/dist/ionic/p-3d726a67.system.js +0 -4
  1821. package/dist/ionic/p-3f3da911.system.entry.js +0 -4
  1822. package/dist/ionic/p-41477ad9.system.js +0 -4
  1823. package/dist/ionic/p-4215652f.system.entry.js +0 -4
  1824. package/dist/ionic/p-446230d7.js +0 -4
  1825. package/dist/ionic/p-44bc8b45.system.js +0 -4
  1826. package/dist/ionic/p-479cdbf8.system.js +0 -4
  1827. package/dist/ionic/p-4f97c112.entry.js +0 -4
  1828. package/dist/ionic/p-54200074.entry.js +0 -4
  1829. package/dist/ionic/p-54f6cd27.system.entry.js +0 -4
  1830. package/dist/ionic/p-56dc022e.system.js +0 -4
  1831. package/dist/ionic/p-572cce26.system.entry.js +0 -4
  1832. package/dist/ionic/p-5b976d70.entry.js +0 -4
  1833. package/dist/ionic/p-5bf16a18.js +0 -4
  1834. package/dist/ionic/p-613d4042.system.js +0 -4
  1835. package/dist/ionic/p-629aa3fd.system.js +0 -5
  1836. package/dist/ionic/p-62e7d4fa.js +0 -4
  1837. package/dist/ionic/p-64475ab5.system.js +0 -4
  1838. package/dist/ionic/p-673846f6.entry.js +0 -4
  1839. package/dist/ionic/p-6ce0a709.system.entry.js +0 -4
  1840. package/dist/ionic/p-755b2917.system.js +0 -4
  1841. package/dist/ionic/p-772f6c84.system.js +0 -4
  1842. package/dist/ionic/p-815c2fba.system.js +0 -4
  1843. package/dist/ionic/p-818b2e75.entry.js +0 -4
  1844. package/dist/ionic/p-81c818e7.js +0 -4
  1845. package/dist/ionic/p-81ef7437.system.entry.js +0 -4
  1846. package/dist/ionic/p-87411e39.system.js +0 -4
  1847. package/dist/ionic/p-8b1be026.js +0 -4
  1848. package/dist/ionic/p-8c15eda7.system.js +0 -4
  1849. package/dist/ionic/p-8cf94fc1.js +0 -4
  1850. package/dist/ionic/p-8d6728a1.system.entry.js +0 -4
  1851. package/dist/ionic/p-8e24ebbc.js +0 -4
  1852. package/dist/ionic/p-8f01a9a2.system.js +0 -4
  1853. package/dist/ionic/p-939e0fa1.system.js +0 -4
  1854. package/dist/ionic/p-9ab6f3e6.system.js +0 -4
  1855. package/dist/ionic/p-9dc85536.system.entry.js +0 -4
  1856. package/dist/ionic/p-9e852ff1.system.js +0 -4
  1857. package/dist/ionic/p-9f2e0db9.js +0 -4
  1858. package/dist/ionic/p-a164e3ab.system.entry.js +0 -4
  1859. package/dist/ionic/p-a200a7fc.entry.js +0 -4
  1860. package/dist/ionic/p-a34fc12e.system.entry.js +0 -4
  1861. package/dist/ionic/p-a9c32660.entry.js +0 -4
  1862. package/dist/ionic/p-ab4cff27.system.js +0 -4
  1863. package/dist/ionic/p-ad48dd13.system.js +0 -4
  1864. package/dist/ionic/p-afb6658f.entry.js +0 -4
  1865. package/dist/ionic/p-b132c2c0.system.js +0 -4
  1866. package/dist/ionic/p-b24aa895.js +0 -4
  1867. package/dist/ionic/p-b3c68723.system.js +0 -4
  1868. package/dist/ionic/p-b4b4bb29.system.js +0 -4
  1869. package/dist/ionic/p-b61a2fa0.system.entry.js +0 -4
  1870. package/dist/ionic/p-b753ec0d.system.entry.js +0 -4
  1871. package/dist/ionic/p-b8c3f071.system.js +0 -4
  1872. package/dist/ionic/p-b912e055.system.js +0 -4
  1873. package/dist/ionic/p-bb055450.system.entry.js +0 -4
  1874. package/dist/ionic/p-bba2ce59.system.js +0 -4
  1875. package/dist/ionic/p-c105bd36.entry.js +0 -4
  1876. package/dist/ionic/p-c44fe9fd.js +0 -4
  1877. package/dist/ionic/p-c49672d8.system.js +0 -4
  1878. package/dist/ionic/p-c87827ca.system.js +0 -4
  1879. package/dist/ionic/p-c8c9d699.system.entry.js +0 -4
  1880. package/dist/ionic/p-c92f0a6d.system.entry.js +0 -4
  1881. package/dist/ionic/p-c956e82c.system.entry.js +0 -4
  1882. package/dist/ionic/p-ca5cf574.js +0 -4
  1883. package/dist/ionic/p-cc196b34.js +0 -4
  1884. package/dist/ionic/p-ccdcb022.system.js +0 -4
  1885. package/dist/ionic/p-cd2d17c3.system.entry.js +0 -4
  1886. package/dist/ionic/p-cf0c93e3.system.entry.js +0 -4
  1887. package/dist/ionic/p-d1de1188.js +0 -4
  1888. package/dist/ionic/p-d35217be.entry.js +0 -4
  1889. package/dist/ionic/p-d6e53e66.entry.js +0 -4
  1890. package/dist/ionic/p-e1d5752d.system.entry.js +0 -4
  1891. package/dist/ionic/p-e25cb483.entry.js +0 -4
  1892. package/dist/ionic/p-e65ebe96.entry.js +0 -4
  1893. package/dist/ionic/p-e74faf2a.entry.js +0 -4
  1894. package/dist/ionic/p-eac263dd.entry.js +0 -4
  1895. package/dist/ionic/p-eb7d0922.js +0 -4
  1896. package/dist/ionic/p-f4309ac7.entry.js +0 -4
  1897. package/dist/ionic/p-f5bf698b.entry.js +0 -4
  1898. package/dist/ionic/p-f7566bad.entry.js +0 -4
  1899. package/dist/ionic/p-f9fa802c.system.entry.js +0 -4
  1900. package/dist/ionic/p-fa8d4788.system.js +0 -4
  1901. package/dist/ionic/p-ff5a10f9.system.js +0 -4
  1902. /package/dist/esm-es5/{index-595d62c9.js → index-9b0d46f4.js} +0 -0
  1903. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  1904. /package/dist/esm-es5/{lock-controller-e8c6c051.js → lock-controller-316928be.js} +0 -0
  1905. /package/dist/esm-es5/{theme-17531cdf.js → theme-01f3f29c.js} +0 -0
  1906. /package/dist/ionic/{p-1b8e1d03.js → p-06fee233.js} +0 -0
  1907. /package/dist/ionic/{p-63eb0acd.js → p-23a9d086.js} +0 -0
  1908. /package/dist/ionic/{p-7c2bac85.js → p-2408c236.js} +0 -0
  1909. /package/dist/ionic/{p-7b021525.js → p-41d5544e.js} +0 -0
  1910. /package/dist/ionic/{p-1d072d3d.js → p-47794def.js} +0 -0
  1911. /package/dist/ionic/{p-185e427e.js → p-4b3623da.js} +0 -0
  1912. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  1913. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  1914. /package/dist/ionic/{p-e0b06b65.js → p-bb3615f7.js} +0 -0
  1915. /package/dist/ionic/{p-53b2a46f.js → p-ccd02320.js} +0 -0
  1916. /package/dist/ionic/{p-76fce40e.js → p-d47265c8.js} +0 -0
  1917. /package/dist/ionic/{p-c18d6eac.js → p-f0c2a614.js} +0 -0
  1918. /package/dist/ionic/{p-6dbfe5d4.js → p-fb813dab.js} +0 -0
@@ -7,41 +7,41 @@ import { p as printIonWarning } from './index6.js';
7
7
  * Returns true if the selected day is equal to the reference day
8
8
  */
9
9
  const isSameDay = (baseParts, compareParts) => {
10
- return (baseParts.month === compareParts.month && baseParts.day === compareParts.day && baseParts.year === compareParts.year);
10
+ return (baseParts.month === compareParts.month && baseParts.day === compareParts.day && baseParts.year === compareParts.year);
11
11
  };
12
12
  /**
13
13
  * Returns true is the selected day is before the reference day.
14
14
  */
15
15
  const isBefore = (baseParts, compareParts) => {
16
- return !!(baseParts.year < compareParts.year ||
17
- (baseParts.year === compareParts.year && baseParts.month < compareParts.month) ||
18
- (baseParts.year === compareParts.year &&
19
- baseParts.month === compareParts.month &&
20
- baseParts.day !== null &&
21
- baseParts.day < compareParts.day));
16
+ return !!(baseParts.year < compareParts.year ||
17
+ (baseParts.year === compareParts.year && baseParts.month < compareParts.month) ||
18
+ (baseParts.year === compareParts.year &&
19
+ baseParts.month === compareParts.month &&
20
+ baseParts.day !== null &&
21
+ baseParts.day < compareParts.day));
22
22
  };
23
23
  /**
24
24
  * Returns true is the selected day is after the reference day.
25
25
  */
26
26
  const isAfter = (baseParts, compareParts) => {
27
- return !!(baseParts.year > compareParts.year ||
28
- (baseParts.year === compareParts.year && baseParts.month > compareParts.month) ||
29
- (baseParts.year === compareParts.year &&
30
- baseParts.month === compareParts.month &&
31
- baseParts.day !== null &&
32
- baseParts.day > compareParts.day));
27
+ return !!(baseParts.year > compareParts.year ||
28
+ (baseParts.year === compareParts.year && baseParts.month > compareParts.month) ||
29
+ (baseParts.year === compareParts.year &&
30
+ baseParts.month === compareParts.month &&
31
+ baseParts.day !== null &&
32
+ baseParts.day > compareParts.day));
33
33
  };
34
34
  const warnIfValueOutOfBounds = (value, min, max) => {
35
- const valueArray = Array.isArray(value) ? value : [value];
36
- for (const val of valueArray) {
37
- if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {
38
- printIonWarning('The value provided to ion-datetime is out of bounds.\n\n' +
39
- `Min: ${JSON.stringify(min)}\n` +
40
- `Max: ${JSON.stringify(max)}\n` +
41
- `Value: ${JSON.stringify(value)}`);
42
- break;
35
+ const valueArray = Array.isArray(value) ? value : [value];
36
+ for (const val of valueArray) {
37
+ if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {
38
+ printIonWarning('The value provided to ion-datetime is out of bounds.\n\n' +
39
+ `Min: ${JSON.stringify(min)}\n` +
40
+ `Max: ${JSON.stringify(max)}\n` +
41
+ `Value: ${JSON.stringify(value)}`);
42
+ break;
43
+ }
43
44
  }
44
- }
45
45
  };
46
46
 
47
47
  /**
@@ -51,7 +51,7 @@ const warnIfValueOutOfBounds = (value, min, max) => {
51
51
  * otherwise.
52
52
  */
53
53
  const isLeapYear = (year) => {
54
- return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
54
+ return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
55
55
  };
56
56
  /**
57
57
  * Determines the hour cycle for a user.
@@ -60,53 +60,53 @@ const isLeapYear = (year) => {
60
60
  * locale extension tags or from Intl.DateTimeFormat directly.
61
61
  */
62
62
  const getHourCycle = (locale, hourCycle) => {
63
- /**
64
- * If developer has explicitly enabled 24-hour time
65
- * then return early and do not look at the system default.
66
- */
67
- if (hourCycle !== undefined) {
68
- return hourCycle;
69
- }
70
- /**
71
- * If hourCycle was not specified, check the locale
72
- * that is set on the user's device. We first check the
73
- * Intl.DateTimeFormat hourCycle option as developers can encode this
74
- * option into the locale string. Example: `en-US-u-hc-h23`
75
- */
76
- const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });
77
- const options = formatted.resolvedOptions();
78
- if (options.hourCycle !== undefined) {
79
- return options.hourCycle;
80
- }
81
- /**
82
- * If hourCycle is not specified (either through lack
83
- * of browser support or locale information) then fall
84
- * back to this slower hourCycle check.
85
- */
86
- const date = new Date('5/18/2021 00:00');
87
- const parts = formatted.formatToParts(date);
88
- const hour = parts.find((p) => p.type === 'hour');
89
- if (!hour) {
90
- throw new Error('Hour value not found from DateTimeFormat');
91
- }
92
- /**
93
- * Midnight for h11 starts at 0:00am
94
- * Midnight for h12 starts at 12:00am
95
- * Midnight for h23 starts at 00:00
96
- * Midnight for h24 starts at 24:00
97
- */
98
- switch (hour.value) {
99
- case '0':
100
- return 'h11';
101
- case '12':
102
- return 'h12';
103
- case '00':
104
- return 'h23';
105
- case '24':
106
- return 'h24';
107
- default:
108
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
109
- }
63
+ /**
64
+ * If developer has explicitly enabled 24-hour time
65
+ * then return early and do not look at the system default.
66
+ */
67
+ if (hourCycle !== undefined) {
68
+ return hourCycle;
69
+ }
70
+ /**
71
+ * If hourCycle was not specified, check the locale
72
+ * that is set on the user's device. We first check the
73
+ * Intl.DateTimeFormat hourCycle option as developers can encode this
74
+ * option into the locale string. Example: `en-US-u-hc-h23`
75
+ */
76
+ const formatted = new Intl.DateTimeFormat(locale, { hour: 'numeric' });
77
+ const options = formatted.resolvedOptions();
78
+ if (options.hourCycle !== undefined) {
79
+ return options.hourCycle;
80
+ }
81
+ /**
82
+ * If hourCycle is not specified (either through lack
83
+ * of browser support or locale information) then fall
84
+ * back to this slower hourCycle check.
85
+ */
86
+ const date = new Date('5/18/2021 00:00');
87
+ const parts = formatted.formatToParts(date);
88
+ const hour = parts.find((p) => p.type === 'hour');
89
+ if (!hour) {
90
+ throw new Error('Hour value not found from DateTimeFormat');
91
+ }
92
+ /**
93
+ * Midnight for h11 starts at 0:00am
94
+ * Midnight for h12 starts at 12:00am
95
+ * Midnight for h23 starts at 00:00
96
+ * Midnight for h24 starts at 24:00
97
+ */
98
+ switch (hour.value) {
99
+ case '0':
100
+ return 'h11';
101
+ case '12':
102
+ return 'h12';
103
+ case '00':
104
+ return 'h23';
105
+ case '24':
106
+ return 'h24';
107
+ default:
108
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
109
+ }
110
110
  };
111
111
  /**
112
112
  * Determine if the hour cycle uses a 24-hour format.
@@ -115,7 +115,7 @@ const getHourCycle = (locale, hourCycle) => {
115
115
  * and pass the result into this function.
116
116
  */
117
117
  const is24Hour = (hourCycle) => {
118
- return hourCycle === 'h23' || hourCycle === 'h24';
118
+ return hourCycle === 'h23' || hourCycle === 'h24';
119
119
  };
120
120
  /**
121
121
  * Given a date object, returns the number
@@ -124,13 +124,13 @@ const is24Hour = (hourCycle) => {
124
124
  * i.e. January = month 1.
125
125
  */
126
126
  const getNumDaysInMonth = (month, year) => {
127
- return month === 4 || month === 6 || month === 9 || month === 11
128
- ? 30
129
- : month === 2
130
- ? isLeapYear(year)
131
- ? 29
132
- : 28
133
- : 31;
127
+ return month === 4 || month === 6 || month === 9 || month === 11
128
+ ? 30
129
+ : month === 2
130
+ ? isLeapYear(year)
131
+ ? 29
132
+ : 28
133
+ : 31;
134
134
  };
135
135
  /**
136
136
  * Certain locales display month then year while
@@ -144,23 +144,23 @@ const getNumDaysInMonth = (month, year) => {
144
144
  * used for variations of the same "month first" check.
145
145
  */
146
146
  const isMonthFirstLocale = (locale, formatOptions = {
147
- month: 'numeric',
148
- year: 'numeric',
147
+ month: 'numeric',
148
+ year: 'numeric',
149
149
  }) => {
150
- /**
151
- * By setting month and year we guarantee that only
152
- * month, year, and literal (slashes '/', for example)
153
- * values are included in the formatToParts results.
154
- *
155
- * The ordering of the parts will be determined by
156
- * the locale. So if the month is the first value,
157
- * then we know month should be shown first. If the
158
- * year is the first value, then we know year should be shown first.
159
- *
160
- * This ordering can be controlled by customizing the locale property.
161
- */
162
- const parts = new Intl.DateTimeFormat(locale, formatOptions).formatToParts(new Date());
163
- return parts[0].type === 'month';
150
+ /**
151
+ * By setting month and year we guarantee that only
152
+ * month, year, and literal (slashes '/', for example)
153
+ * values are included in the formatToParts results.
154
+ *
155
+ * The ordering of the parts will be determined by
156
+ * the locale. So if the month is the first value,
157
+ * then we know month should be shown first. If the
158
+ * year is the first value, then we know year should be shown first.
159
+ *
160
+ * This ordering can be controlled by customizing the locale property.
161
+ */
162
+ const parts = new Intl.DateTimeFormat(locale, formatOptions).formatToParts(new Date());
163
+ return parts[0].type === 'month';
164
164
  };
165
165
  /**
166
166
  * Determines if the given locale formats the day period (am/pm) to the
@@ -169,8 +169,8 @@ const isMonthFirstLocale = (locale, formatOptions = {
169
169
  * @returns `true` if the locale formats the day period to the left of the hour.
170
170
  */
171
171
  const isLocaleDayPeriodRTL = (locale) => {
172
- const parts = new Intl.DateTimeFormat(locale, { hour: 'numeric' }).formatToParts(new Date());
173
- return parts[0].type === 'dayPeriod';
172
+ const parts = new Intl.DateTimeFormat(locale, { hour: 'numeric' }).formatToParts(new Date());
173
+ return parts[0].type === 'dayPeriod';
174
174
  };
175
175
 
176
176
  const ISO_8601_REGEXP =
@@ -183,24 +183,24 @@ const TIME_REGEXP = /^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(
183
183
  * an array of numbers, and clean up any user input
184
184
  */
185
185
  const convertToArrayOfNumbers = (input) => {
186
- if (input === undefined) {
187
- return;
188
- }
189
- let processedInput = input;
190
- if (typeof input === 'string') {
191
- // convert the string to an array of strings
192
- // auto remove any whitespace and [] characters
193
- processedInput = input.replace(/\[|\]|\s/g, '').split(',');
194
- }
195
- let values;
196
- if (Array.isArray(processedInput)) {
197
- // ensure each value is an actual number in the returned array
198
- values = processedInput.map((num) => parseInt(num, 10)).filter(isFinite);
199
- }
200
- else {
201
- values = [processedInput];
202
- }
203
- return values;
186
+ if (input === undefined) {
187
+ return;
188
+ }
189
+ let processedInput = input;
190
+ if (typeof input === 'string') {
191
+ // convert the string to an array of strings
192
+ // auto remove any whitespace and [] characters
193
+ processedInput = input.replace(/\[|\]|\s/g, '').split(',');
194
+ }
195
+ let values;
196
+ if (Array.isArray(processedInput)) {
197
+ // ensure each value is an actual number in the returned array
198
+ values = processedInput.map((num) => parseInt(num, 10)).filter(isFinite);
199
+ }
200
+ else {
201
+ values = [processedInput];
202
+ }
203
+ return values;
204
204
  };
205
205
  /**
206
206
  * Extracts date information
@@ -208,75 +208,75 @@ const convertToArrayOfNumbers = (input) => {
208
208
  * into DatetimeParts.
209
209
  */
210
210
  const getPartsFromCalendarDay = (el) => {
211
- return {
212
- month: parseInt(el.getAttribute('data-month'), 10),
213
- day: parseInt(el.getAttribute('data-day'), 10),
214
- year: parseInt(el.getAttribute('data-year'), 10),
215
- dayOfWeek: parseInt(el.getAttribute('data-day-of-week'), 10),
216
- };
211
+ return {
212
+ month: parseInt(el.getAttribute('data-month'), 10),
213
+ day: parseInt(el.getAttribute('data-day'), 10),
214
+ year: parseInt(el.getAttribute('data-year'), 10),
215
+ dayOfWeek: parseInt(el.getAttribute('data-day-of-week'), 10),
216
+ };
217
217
  };
218
218
  function parseDate(val) {
219
- if (Array.isArray(val)) {
220
- const parsedArray = [];
221
- for (const valStr of val) {
222
- const parsedVal = parseDate(valStr);
223
- /**
224
- * If any of the values weren't parsed correctly, consider
225
- * the entire batch incorrect. This simplifies the type
226
- * signatures by having "undefined" be a general error case
227
- * instead of returning (Datetime | undefined)[], which is
228
- * harder for TS to perform type narrowing on.
229
- */
230
- if (!parsedVal) {
219
+ if (Array.isArray(val)) {
220
+ const parsedArray = [];
221
+ for (const valStr of val) {
222
+ const parsedVal = parseDate(valStr);
223
+ /**
224
+ * If any of the values weren't parsed correctly, consider
225
+ * the entire batch incorrect. This simplifies the type
226
+ * signatures by having "undefined" be a general error case
227
+ * instead of returning (Datetime | undefined)[], which is
228
+ * harder for TS to perform type narrowing on.
229
+ */
230
+ if (!parsedVal) {
231
+ return undefined;
232
+ }
233
+ parsedArray.push(parsedVal);
234
+ }
235
+ return parsedArray;
236
+ }
237
+ // manually parse IS0 cuz Date.parse cannot be trusted
238
+ // ISO 8601 format: 1994-12-15T13:47:20Z
239
+ let parse = null;
240
+ if (val != null && val !== '') {
241
+ // try parsing for just time first, HH:MM
242
+ parse = TIME_REGEXP.exec(val);
243
+ if (parse) {
244
+ // adjust the array so it fits nicely with the datetime parse
245
+ parse.unshift(undefined, undefined);
246
+ parse[2] = parse[3] = undefined;
247
+ }
248
+ else {
249
+ // try parsing for full ISO datetime
250
+ parse = ISO_8601_REGEXP.exec(val);
251
+ }
252
+ }
253
+ if (parse === null) {
254
+ // wasn't able to parse the ISO datetime
255
+ printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
231
256
  return undefined;
232
- }
233
- parsedArray.push(parsedVal);
234
- }
235
- return parsedArray;
236
- }
237
- // manually parse IS0 cuz Date.parse cannot be trusted
238
- // ISO 8601 format: 1994-12-15T13:47:20Z
239
- let parse = null;
240
- if (val != null && val !== '') {
241
- // try parsing for just time first, HH:MM
242
- parse = TIME_REGEXP.exec(val);
243
- if (parse) {
244
- // adjust the array so it fits nicely with the datetime parse
245
- parse.unshift(undefined, undefined);
246
- parse[2] = parse[3] = undefined;
247
257
  }
248
- else {
249
- // try parsing for full ISO datetime
250
- parse = ISO_8601_REGEXP.exec(val);
251
- }
252
- }
253
- if (parse === null) {
254
- // wasn't able to parse the ISO datetime
255
- printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
256
- return undefined;
257
- }
258
- // ensure all the parse values exist with at least 0
259
- for (let i = 1; i < 8; i++) {
260
- parse[i] = parse[i] !== undefined ? parseInt(parse[i], 10) : undefined;
261
- }
262
- // can also get second and millisecond from parse[6] and parse[7] if needed
263
- return {
264
- year: parse[1],
265
- month: parse[2],
266
- day: parse[3],
267
- hour: parse[4],
268
- minute: parse[5],
269
- ampm: parse[4] < 12 ? 'am' : 'pm',
270
- };
258
+ // ensure all the parse values exist with at least 0
259
+ for (let i = 1; i < 8; i++) {
260
+ parse[i] = parse[i] !== undefined ? parseInt(parse[i], 10) : undefined;
261
+ }
262
+ // can also get second and millisecond from parse[6] and parse[7] if needed
263
+ return {
264
+ year: parse[1],
265
+ month: parse[2],
266
+ day: parse[3],
267
+ hour: parse[4],
268
+ minute: parse[5],
269
+ ampm: parse[4] < 12 ? 'am' : 'pm',
270
+ };
271
271
  }
272
272
  const clampDate = (dateParts, minParts, maxParts) => {
273
- if (minParts && isBefore(dateParts, minParts)) {
274
- return minParts;
275
- }
276
- else if (maxParts && isAfter(dateParts, maxParts)) {
277
- return maxParts;
278
- }
279
- return dateParts;
273
+ if (minParts && isBefore(dateParts, minParts)) {
274
+ return minParts;
275
+ }
276
+ else if (maxParts && isAfter(dateParts, maxParts)) {
277
+ return maxParts;
278
+ }
279
+ return dateParts;
280
280
  };
281
281
  /**
282
282
  * Parses an hour and returns if the value is in the morning (am) or afternoon (pm).
@@ -284,7 +284,7 @@ const clampDate = (dateParts, minParts, maxParts) => {
284
284
  * @returns `pm` if the hour is greater than or equal to 12, `am` if less than 12.
285
285
  */
286
286
  const parseAmPm = (hour) => {
287
- return hour >= 12 ? 'pm' : 'am';
287
+ return hour >= 12 ? 'pm' : 'am';
288
288
  };
289
289
  /**
290
290
  * Takes a max date string and creates a DatetimeParts
@@ -293,38 +293,38 @@ const parseAmPm = (hour) => {
293
293
  * month, day, hour, and minute information.
294
294
  */
295
295
  const parseMaxParts = (max, todayParts) => {
296
- const result = parseDate(max);
297
- /**
298
- * If min was not a valid date then return undefined.
299
- */
300
- if (result === undefined) {
301
- return;
302
- }
303
- const { month, day, year, hour, minute } = result;
304
- /**
305
- * When passing in `max` or `min`, developers
306
- * can pass in any ISO-8601 string. This means
307
- * that not all of the date/time fields are defined.
308
- * For example, passing max="2012" is valid even though
309
- * there is no month, day, hour, or minute data.
310
- * However, all of this data is required when clamping the date
311
- * so that the correct initial value can be selected. As a result,
312
- * we need to fill in any omitted data with the min or max values.
313
- */
314
- const yearValue = year !== null && year !== void 0 ? year : todayParts.year;
315
- const monthValue = month !== null && month !== void 0 ? month : 12;
316
- return {
317
- month: monthValue,
318
- day: day !== null && day !== void 0 ? day : getNumDaysInMonth(monthValue, yearValue),
296
+ const result = parseDate(max);
297
+ /**
298
+ * If min was not a valid date then return undefined.
299
+ */
300
+ if (result === undefined) {
301
+ return;
302
+ }
303
+ const { month, day, year, hour, minute } = result;
319
304
  /**
320
- * Passing in "HH:mm" is a valid ISO-8601
321
- * string, so we just default to the current year
322
- * in this case.
305
+ * When passing in `max` or `min`, developers
306
+ * can pass in any ISO-8601 string. This means
307
+ * that not all of the date/time fields are defined.
308
+ * For example, passing max="2012" is valid even though
309
+ * there is no month, day, hour, or minute data.
310
+ * However, all of this data is required when clamping the date
311
+ * so that the correct initial value can be selected. As a result,
312
+ * we need to fill in any omitted data with the min or max values.
323
313
  */
324
- year: yearValue,
325
- hour: hour !== null && hour !== void 0 ? hour : 23,
326
- minute: minute !== null && minute !== void 0 ? minute : 59,
327
- };
314
+ const yearValue = year !== null && year !== void 0 ? year : todayParts.year;
315
+ const monthValue = month !== null && month !== void 0 ? month : 12;
316
+ return {
317
+ month: monthValue,
318
+ day: day !== null && day !== void 0 ? day : getNumDaysInMonth(monthValue, yearValue),
319
+ /**
320
+ * Passing in "HH:mm" is a valid ISO-8601
321
+ * string, so we just default to the current year
322
+ * in this case.
323
+ */
324
+ year: yearValue,
325
+ hour: hour !== null && hour !== void 0 ? hour : 23,
326
+ minute: minute !== null && minute !== void 0 ? minute : 59,
327
+ };
328
328
  };
329
329
  /**
330
330
  * Takes a min date string and creates a DatetimeParts
@@ -333,130 +333,130 @@ const parseMaxParts = (max, todayParts) => {
333
333
  * month, day, hour, and minute information.
334
334
  */
335
335
  const parseMinParts = (min, todayParts) => {
336
- const result = parseDate(min);
337
- /**
338
- * If min was not a valid date then return undefined.
339
- */
340
- if (result === undefined) {
341
- return;
342
- }
343
- const { month, day, year, hour, minute } = result;
344
- /**
345
- * When passing in `max` or `min`, developers
346
- * can pass in any ISO-8601 string. This means
347
- * that not all of the date/time fields are defined.
348
- * For example, passing max="2012" is valid even though
349
- * there is no month, day, hour, or minute data.
350
- * However, all of this data is required when clamping the date
351
- * so that the correct initial value can be selected. As a result,
352
- * we need to fill in any omitted data with the min or max values.
353
- */
354
- return {
355
- month: month !== null && month !== void 0 ? month : 1,
356
- day: day !== null && day !== void 0 ? day : 1,
336
+ const result = parseDate(min);
337
+ /**
338
+ * If min was not a valid date then return undefined.
339
+ */
340
+ if (result === undefined) {
341
+ return;
342
+ }
343
+ const { month, day, year, hour, minute } = result;
357
344
  /**
358
- * Passing in "HH:mm" is a valid ISO-8601
359
- * string, so we just default to the current year
360
- * in this case.
345
+ * When passing in `max` or `min`, developers
346
+ * can pass in any ISO-8601 string. This means
347
+ * that not all of the date/time fields are defined.
348
+ * For example, passing max="2012" is valid even though
349
+ * there is no month, day, hour, or minute data.
350
+ * However, all of this data is required when clamping the date
351
+ * so that the correct initial value can be selected. As a result,
352
+ * we need to fill in any omitted data with the min or max values.
361
353
  */
362
- year: year !== null && year !== void 0 ? year : todayParts.year,
363
- hour: hour !== null && hour !== void 0 ? hour : 0,
364
- minute: minute !== null && minute !== void 0 ? minute : 0,
365
- };
354
+ return {
355
+ month: month !== null && month !== void 0 ? month : 1,
356
+ day: day !== null && day !== void 0 ? day : 1,
357
+ /**
358
+ * Passing in "HH:mm" is a valid ISO-8601
359
+ * string, so we just default to the current year
360
+ * in this case.
361
+ */
362
+ year: year !== null && year !== void 0 ? year : todayParts.year,
363
+ hour: hour !== null && hour !== void 0 ? hour : 0,
364
+ minute: minute !== null && minute !== void 0 ? minute : 0,
365
+ };
366
366
  };
367
367
 
368
368
  const twoDigit = (val) => {
369
- return ('0' + (val !== undefined ? Math.abs(val) : '0')).slice(-2);
369
+ return ('0' + (val !== undefined ? Math.abs(val) : '0')).slice(-2);
370
370
  };
371
371
  const fourDigit = (val) => {
372
- return ('000' + (val !== undefined ? Math.abs(val) : '0')).slice(-4);
372
+ return ('000' + (val !== undefined ? Math.abs(val) : '0')).slice(-4);
373
373
  };
374
374
  function convertDataToISO(data) {
375
- if (Array.isArray(data)) {
376
- return data.map((parts) => convertDataToISO(parts));
377
- }
378
- // https://www.w3.org/TR/NOTE-datetime
379
- let rtn = '';
380
- if (data.year !== undefined) {
381
- // YYYY
382
- rtn = fourDigit(data.year);
383
- if (data.month !== undefined) {
384
- // YYYY-MM
385
- rtn += '-' + twoDigit(data.month);
386
- if (data.day !== undefined) {
387
- // YYYY-MM-DD
388
- rtn += '-' + twoDigit(data.day);
389
- if (data.hour !== undefined) {
390
- // YYYY-MM-DDTHH:mm:SS
391
- rtn += `T${twoDigit(data.hour)}:${twoDigit(data.minute)}:00`;
375
+ if (Array.isArray(data)) {
376
+ return data.map((parts) => convertDataToISO(parts));
377
+ }
378
+ // https://www.w3.org/TR/NOTE-datetime
379
+ let rtn = '';
380
+ if (data.year !== undefined) {
381
+ // YYYY
382
+ rtn = fourDigit(data.year);
383
+ if (data.month !== undefined) {
384
+ // YYYY-MM
385
+ rtn += '-' + twoDigit(data.month);
386
+ if (data.day !== undefined) {
387
+ // YYYY-MM-DD
388
+ rtn += '-' + twoDigit(data.day);
389
+ if (data.hour !== undefined) {
390
+ // YYYY-MM-DDTHH:mm:SS
391
+ rtn += `T${twoDigit(data.hour)}:${twoDigit(data.minute)}:00`;
392
+ }
393
+ }
392
394
  }
393
- }
394
- }
395
- }
396
- else if (data.hour !== undefined) {
397
- // HH:mm
398
- rtn = twoDigit(data.hour) + ':' + twoDigit(data.minute);
399
- }
400
- return rtn;
395
+ }
396
+ else if (data.hour !== undefined) {
397
+ // HH:mm
398
+ rtn = twoDigit(data.hour) + ':' + twoDigit(data.minute);
399
+ }
400
+ return rtn;
401
401
  }
402
402
  /**
403
403
  * Converts an 12 hour value to 24 hours.
404
404
  */
405
405
  const convert12HourTo24Hour = (hour, ampm) => {
406
- if (ampm === undefined) {
407
- return hour;
408
- }
409
- /**
410
- * If AM and 12am
411
- * then return 00:00.
412
- * Otherwise just return
413
- * the hour since it is
414
- * already in 24 hour format.
415
- */
416
- if (ampm === 'am') {
406
+ if (ampm === undefined) {
407
+ return hour;
408
+ }
409
+ /**
410
+ * If AM and 12am
411
+ * then return 00:00.
412
+ * Otherwise just return
413
+ * the hour since it is
414
+ * already in 24 hour format.
415
+ */
416
+ if (ampm === 'am') {
417
+ if (hour === 12) {
418
+ return 0;
419
+ }
420
+ return hour;
421
+ }
422
+ /**
423
+ * If PM and 12pm
424
+ * just return 12:00
425
+ * since it is already
426
+ * in 24 hour format.
427
+ * Otherwise add 12 hours
428
+ * to the time.
429
+ */
417
430
  if (hour === 12) {
418
- return 0;
419
- }
420
- return hour;
421
- }
422
- /**
423
- * If PM and 12pm
424
- * just return 12:00
425
- * since it is already
426
- * in 24 hour format.
427
- * Otherwise add 12 hours
428
- * to the time.
429
- */
430
- if (hour === 12) {
431
- return 12;
432
- }
433
- return hour + 12;
431
+ return 12;
432
+ }
433
+ return hour + 12;
434
434
  };
435
435
  const getStartOfWeek = (refParts) => {
436
- const { dayOfWeek } = refParts;
437
- if (dayOfWeek === null || dayOfWeek === undefined) {
438
- throw new Error('No day of week provided');
439
- }
440
- return subtractDays(refParts, dayOfWeek);
436
+ const { dayOfWeek } = refParts;
437
+ if (dayOfWeek === null || dayOfWeek === undefined) {
438
+ throw new Error('No day of week provided');
439
+ }
440
+ return subtractDays(refParts, dayOfWeek);
441
441
  };
442
442
  const getEndOfWeek = (refParts) => {
443
- const { dayOfWeek } = refParts;
444
- if (dayOfWeek === null || dayOfWeek === undefined) {
445
- throw new Error('No day of week provided');
446
- }
447
- return addDays(refParts, 6 - dayOfWeek);
443
+ const { dayOfWeek } = refParts;
444
+ if (dayOfWeek === null || dayOfWeek === undefined) {
445
+ throw new Error('No day of week provided');
446
+ }
447
+ return addDays(refParts, 6 - dayOfWeek);
448
448
  };
449
449
  const getNextDay = (refParts) => {
450
- return addDays(refParts, 1);
450
+ return addDays(refParts, 1);
451
451
  };
452
452
  const getPreviousDay = (refParts) => {
453
- return subtractDays(refParts, 1);
453
+ return subtractDays(refParts, 1);
454
454
  };
455
455
  const getPreviousWeek = (refParts) => {
456
- return subtractDays(refParts, 7);
456
+ return subtractDays(refParts, 7);
457
457
  };
458
458
  const getNextWeek = (refParts) => {
459
- return addDays(refParts, 7);
459
+ return addDays(refParts, 7);
460
460
  };
461
461
  /**
462
462
  * Given datetime parts, subtract
@@ -465,49 +465,49 @@ const getNextWeek = (refParts) => {
465
465
  * Currently can only go backward at most 1 month.
466
466
  */
467
467
  const subtractDays = (refParts, numDays) => {
468
- const { month, day, year } = refParts;
469
- if (day === null) {
470
- throw new Error('No day provided');
471
- }
472
- const workingParts = {
473
- month,
474
- day,
475
- year,
476
- };
477
- workingParts.day = day - numDays;
478
- /**
479
- * If wrapping to previous month
480
- * update days and decrement month
481
- */
482
- if (workingParts.day < 1) {
483
- workingParts.month -= 1;
484
- }
485
- /**
486
- * If moving to previous year, reset
487
- * month to December and decrement year
488
- */
489
- if (workingParts.month < 1) {
490
- workingParts.month = 12;
491
- workingParts.year -= 1;
492
- }
493
- /**
494
- * Determine how many days are in the current
495
- * month
496
- */
497
- if (workingParts.day < 1) {
498
- const daysInMonth = getNumDaysInMonth(workingParts.month, workingParts.year);
468
+ const { month, day, year } = refParts;
469
+ if (day === null) {
470
+ throw new Error('No day provided');
471
+ }
472
+ const workingParts = {
473
+ month,
474
+ day,
475
+ year,
476
+ };
477
+ workingParts.day = day - numDays;
478
+ /**
479
+ * If wrapping to previous month
480
+ * update days and decrement month
481
+ */
482
+ if (workingParts.day < 1) {
483
+ workingParts.month -= 1;
484
+ }
485
+ /**
486
+ * If moving to previous year, reset
487
+ * month to December and decrement year
488
+ */
489
+ if (workingParts.month < 1) {
490
+ workingParts.month = 12;
491
+ workingParts.year -= 1;
492
+ }
499
493
  /**
500
- * Take num days in month and add the
501
- * number of underflow days. This number will
502
- * be negative.
503
- * Example: 1 week before Jan 2, 2021 is
504
- * December 26, 2021 so:
505
- * 2 - 7 = -5
506
- * 31 + (-5) = 26
494
+ * Determine how many days are in the current
495
+ * month
507
496
  */
508
- workingParts.day = daysInMonth + workingParts.day;
509
- }
510
- return workingParts;
497
+ if (workingParts.day < 1) {
498
+ const daysInMonth = getNumDaysInMonth(workingParts.month, workingParts.year);
499
+ /**
500
+ * Take num days in month and add the
501
+ * number of underflow days. This number will
502
+ * be negative.
503
+ * Example: 1 week before Jan 2, 2021 is
504
+ * December 26, 2021 so:
505
+ * 2 - 7 = -5
506
+ * 31 + (-5) = 26
507
+ */
508
+ workingParts.day = daysInMonth + workingParts.day;
509
+ }
510
+ return workingParts;
511
511
  };
512
512
  /**
513
513
  * Given datetime parts, add
@@ -516,81 +516,81 @@ const subtractDays = (refParts, numDays) => {
516
516
  * Currently can only go forward at most 1 month.
517
517
  */
518
518
  const addDays = (refParts, numDays) => {
519
- const { month, day, year } = refParts;
520
- if (day === null) {
521
- throw new Error('No day provided');
522
- }
523
- const workingParts = {
524
- month,
525
- day,
526
- year,
527
- };
528
- const daysInMonth = getNumDaysInMonth(month, year);
529
- workingParts.day = day + numDays;
530
- /**
531
- * If wrapping to next month
532
- * update days and increment month
533
- */
534
- if (workingParts.day > daysInMonth) {
535
- workingParts.day -= daysInMonth;
536
- workingParts.month += 1;
537
- }
538
- /**
539
- * If moving to next year, reset
540
- * month to January and increment year
541
- */
542
- if (workingParts.month > 12) {
543
- workingParts.month = 1;
544
- workingParts.year += 1;
545
- }
546
- return workingParts;
519
+ const { month, day, year } = refParts;
520
+ if (day === null) {
521
+ throw new Error('No day provided');
522
+ }
523
+ const workingParts = {
524
+ month,
525
+ day,
526
+ year,
527
+ };
528
+ const daysInMonth = getNumDaysInMonth(month, year);
529
+ workingParts.day = day + numDays;
530
+ /**
531
+ * If wrapping to next month
532
+ * update days and increment month
533
+ */
534
+ if (workingParts.day > daysInMonth) {
535
+ workingParts.day -= daysInMonth;
536
+ workingParts.month += 1;
537
+ }
538
+ /**
539
+ * If moving to next year, reset
540
+ * month to January and increment year
541
+ */
542
+ if (workingParts.month > 12) {
543
+ workingParts.month = 1;
544
+ workingParts.year += 1;
545
+ }
546
+ return workingParts;
547
547
  };
548
548
  /**
549
549
  * Given DatetimeParts, generate the previous month.
550
550
  */
551
551
  const getPreviousMonth = (refParts) => {
552
- /**
553
- * If current month is January, wrap backwards
554
- * to December of the previous year.
555
- */
556
- const month = refParts.month === 1 ? 12 : refParts.month - 1;
557
- const year = refParts.month === 1 ? refParts.year - 1 : refParts.year;
558
- const numDaysInMonth = getNumDaysInMonth(month, year);
559
- const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
560
- return { month, year, day };
552
+ /**
553
+ * If current month is January, wrap backwards
554
+ * to December of the previous year.
555
+ */
556
+ const month = refParts.month === 1 ? 12 : refParts.month - 1;
557
+ const year = refParts.month === 1 ? refParts.year - 1 : refParts.year;
558
+ const numDaysInMonth = getNumDaysInMonth(month, year);
559
+ const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
560
+ return { month, year, day };
561
561
  };
562
562
  /**
563
563
  * Given DatetimeParts, generate the next month.
564
564
  */
565
565
  const getNextMonth = (refParts) => {
566
- /**
567
- * If current month is December, wrap forwards
568
- * to January of the next year.
569
- */
570
- const month = refParts.month === 12 ? 1 : refParts.month + 1;
571
- const year = refParts.month === 12 ? refParts.year + 1 : refParts.year;
572
- const numDaysInMonth = getNumDaysInMonth(month, year);
573
- const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
574
- return { month, year, day };
566
+ /**
567
+ * If current month is December, wrap forwards
568
+ * to January of the next year.
569
+ */
570
+ const month = refParts.month === 12 ? 1 : refParts.month + 1;
571
+ const year = refParts.month === 12 ? refParts.year + 1 : refParts.year;
572
+ const numDaysInMonth = getNumDaysInMonth(month, year);
573
+ const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
574
+ return { month, year, day };
575
575
  };
576
576
  const changeYear = (refParts, yearDelta) => {
577
- const month = refParts.month;
578
- const year = refParts.year + yearDelta;
579
- const numDaysInMonth = getNumDaysInMonth(month, year);
580
- const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
581
- return { month, year, day };
577
+ const month = refParts.month;
578
+ const year = refParts.year + yearDelta;
579
+ const numDaysInMonth = getNumDaysInMonth(month, year);
580
+ const day = numDaysInMonth < refParts.day ? numDaysInMonth : refParts.day;
581
+ return { month, year, day };
582
582
  };
583
583
  /**
584
584
  * Given DatetimeParts, generate the previous year.
585
585
  */
586
586
  const getPreviousYear = (refParts) => {
587
- return changeYear(refParts, -1);
587
+ return changeYear(refParts, -1);
588
588
  };
589
589
  /**
590
590
  * Given DatetimeParts, generate the next year.
591
591
  */
592
592
  const getNextYear = (refParts) => {
593
- return changeYear(refParts, 1);
593
+ return changeYear(refParts, 1);
594
594
  };
595
595
  /**
596
596
  * If PM, then internal value should
@@ -599,10 +599,10 @@ const getNextYear = (refParts) => {
599
599
  * values are already 24-hr time.
600
600
  */
601
601
  const getInternalHourValue = (hour, use24Hour, ampm) => {
602
- if (use24Hour) {
603
- return hour;
604
- }
605
- return convert12HourTo24Hour(hour, ampm);
602
+ if (use24Hour) {
603
+ return hour;
604
+ }
605
+ return convert12HourTo24Hour(hour, ampm);
606
606
  };
607
607
  /**
608
608
  * Unless otherwise stated, all month values are
@@ -618,22 +618,22 @@ const getInternalHourValue = (hour, use24Hour, ampm) => {
618
618
  * in 24-hour time format internally.
619
619
  */
620
620
  const calculateHourFromAMPM = (currentParts, newAMPM) => {
621
- const { ampm: currentAMPM, hour } = currentParts;
622
- let newHour = hour;
623
- /**
624
- * If going from AM --> PM, need to update the
625
- *
626
- */
627
- if (currentAMPM === 'am' && newAMPM === 'pm') {
628
- newHour = convert12HourTo24Hour(newHour, 'pm');
621
+ const { ampm: currentAMPM, hour } = currentParts;
622
+ let newHour = hour;
629
623
  /**
630
- * If going from PM --> AM
624
+ * If going from AM --> PM, need to update the
625
+ *
631
626
  */
632
- }
633
- else if (currentAMPM === 'pm' && newAMPM === 'am') {
634
- newHour = Math.abs(newHour - 12);
635
- }
636
- return newHour;
627
+ if (currentAMPM === 'am' && newAMPM === 'pm') {
628
+ newHour = convert12HourTo24Hour(newHour, 'pm');
629
+ /**
630
+ * If going from PM --> AM
631
+ */
632
+ }
633
+ else if (currentAMPM === 'pm' && newAMPM === 'am') {
634
+ newHour = Math.abs(newHour - 12);
635
+ }
636
+ return newHour;
637
637
  };
638
638
  /**
639
639
  * Updates parts to ensure that month and day
@@ -642,75 +642,75 @@ const calculateHourFromAMPM = (currentParts, newAMPM) => {
642
642
  * valid day is used.
643
643
  */
644
644
  const validateParts = (parts, minParts, maxParts) => {
645
- const { month, day, year } = parts;
646
- const partsCopy = clampDate(Object.assign({}, parts), minParts, maxParts);
647
- const numDays = getNumDaysInMonth(month, year);
648
- /**
649
- * If the max number of days
650
- * is greater than the day we want
651
- * to set, update the DatetimeParts
652
- * day field to be the max days.
653
- */
654
- if (day !== null && numDays < day) {
655
- partsCopy.day = numDays;
656
- }
657
- /**
658
- * If value is same day as min day,
659
- * make sure the time value is in bounds.
660
- */
661
- if (minParts !== undefined && isSameDay(partsCopy, minParts)) {
645
+ const { month, day, year } = parts;
646
+ const partsCopy = clampDate(Object.assign({}, parts), minParts, maxParts);
647
+ const numDays = getNumDaysInMonth(month, year);
662
648
  /**
663
- * If the hour is out of bounds,
664
- * update both the hour and minute.
665
- * This is done so that the new time
666
- * is closest to what the user selected.
649
+ * If the max number of days
650
+ * is greater than the day we want
651
+ * to set, update the DatetimeParts
652
+ * day field to be the max days.
667
653
  */
668
- if (partsCopy.hour !== undefined && minParts.hour !== undefined) {
669
- if (partsCopy.hour < minParts.hour) {
670
- partsCopy.hour = minParts.hour;
671
- partsCopy.minute = minParts.minute;
654
+ if (day !== null && numDays < day) {
655
+ partsCopy.day = numDays;
656
+ }
657
+ /**
658
+ * If value is same day as min day,
659
+ * make sure the time value is in bounds.
660
+ */
661
+ if (minParts !== undefined && isSameDay(partsCopy, minParts)) {
672
662
  /**
673
- * If only the minute is out of bounds,
674
- * set it to the min minute.
663
+ * If the hour is out of bounds,
664
+ * update both the hour and minute.
665
+ * This is done so that the new time
666
+ * is closest to what the user selected.
675
667
  */
676
- }
677
- else if (partsCopy.hour === minParts.hour &&
678
- partsCopy.minute !== undefined &&
679
- minParts.minute !== undefined &&
680
- partsCopy.minute < minParts.minute) {
681
- partsCopy.minute = minParts.minute;
682
- }
683
- }
684
- }
685
- /**
686
- * If value is same day as max day,
687
- * make sure the time value is in bounds.
688
- */
689
- if (maxParts !== undefined && isSameDay(parts, maxParts)) {
668
+ if (partsCopy.hour !== undefined && minParts.hour !== undefined) {
669
+ if (partsCopy.hour < minParts.hour) {
670
+ partsCopy.hour = minParts.hour;
671
+ partsCopy.minute = minParts.minute;
672
+ /**
673
+ * If only the minute is out of bounds,
674
+ * set it to the min minute.
675
+ */
676
+ }
677
+ else if (partsCopy.hour === minParts.hour &&
678
+ partsCopy.minute !== undefined &&
679
+ minParts.minute !== undefined &&
680
+ partsCopy.minute < minParts.minute) {
681
+ partsCopy.minute = minParts.minute;
682
+ }
683
+ }
684
+ }
690
685
  /**
691
- * If the hour is out of bounds,
692
- * update both the hour and minute.
693
- * This is done so that the new time
694
- * is closest to what the user selected.
686
+ * If value is same day as max day,
687
+ * make sure the time value is in bounds.
695
688
  */
696
- if (partsCopy.hour !== undefined && maxParts.hour !== undefined) {
697
- if (partsCopy.hour > maxParts.hour) {
698
- partsCopy.hour = maxParts.hour;
699
- partsCopy.minute = maxParts.minute;
689
+ if (maxParts !== undefined && isSameDay(parts, maxParts)) {
700
690
  /**
701
- * If only the minute is out of bounds,
702
- * set it to the max minute.
691
+ * If the hour is out of bounds,
692
+ * update both the hour and minute.
693
+ * This is done so that the new time
694
+ * is closest to what the user selected.
703
695
  */
704
- }
705
- else if (partsCopy.hour === maxParts.hour &&
706
- partsCopy.minute !== undefined &&
707
- maxParts.minute !== undefined &&
708
- partsCopy.minute > maxParts.minute) {
709
- partsCopy.minute = maxParts.minute;
710
- }
696
+ if (partsCopy.hour !== undefined && maxParts.hour !== undefined) {
697
+ if (partsCopy.hour > maxParts.hour) {
698
+ partsCopy.hour = maxParts.hour;
699
+ partsCopy.minute = maxParts.minute;
700
+ /**
701
+ * If only the minute is out of bounds,
702
+ * set it to the max minute.
703
+ */
704
+ }
705
+ else if (partsCopy.hour === maxParts.hour &&
706
+ partsCopy.minute !== undefined &&
707
+ maxParts.minute !== undefined &&
708
+ partsCopy.minute > maxParts.minute) {
709
+ partsCopy.minute = maxParts.minute;
710
+ }
711
+ }
711
712
  }
712
- }
713
- return partsCopy;
713
+ return partsCopy;
714
714
  };
715
715
  /**
716
716
  * Returns the closest date to refParts
@@ -724,26 +724,26 @@ const validateParts = (parts, minParts, maxParts) => {
724
724
  * @param minuteValues The allowed minute values
725
725
  */
726
726
  const getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourValues, minuteValues) => {
727
- const { hour, minute, day, month, year } = refParts;
728
- const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
729
- if (monthValues !== undefined) {
730
- copyParts.month = findClosestValue(month, monthValues);
731
- }
732
- // Day is nullable but cannot be undefined
733
- if (day !== null && dayValues !== undefined) {
734
- copyParts.day = findClosestValue(day, dayValues);
735
- }
736
- if (yearValues !== undefined) {
737
- copyParts.year = findClosestValue(year, yearValues);
738
- }
739
- if (hour !== undefined && hourValues !== undefined) {
740
- copyParts.hour = findClosestValue(hour, hourValues);
741
- copyParts.ampm = parseAmPm(copyParts.hour);
742
- }
743
- if (minute !== undefined && minuteValues !== undefined) {
744
- copyParts.minute = findClosestValue(minute, minuteValues);
745
- }
746
- return copyParts;
727
+ const { hour, minute, day, month, year } = refParts;
728
+ const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
729
+ if (monthValues !== undefined) {
730
+ copyParts.month = findClosestValue(month, monthValues);
731
+ }
732
+ // Day is nullable but cannot be undefined
733
+ if (day !== null && dayValues !== undefined) {
734
+ copyParts.day = findClosestValue(day, dayValues);
735
+ }
736
+ if (yearValues !== undefined) {
737
+ copyParts.year = findClosestValue(year, yearValues);
738
+ }
739
+ if (hour !== undefined && hourValues !== undefined) {
740
+ copyParts.hour = findClosestValue(hour, hourValues);
741
+ copyParts.ampm = parseAmPm(copyParts.hour);
742
+ }
743
+ if (minute !== undefined && minuteValues !== undefined) {
744
+ copyParts.minute = findClosestValue(minute, minuteValues);
745
+ }
746
+ return copyParts;
747
747
  };
748
748
  /**
749
749
  * Finds the value in "values" that is
@@ -756,85 +756,85 @@ const getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourV
756
756
  * searched to find the closest value to "reference"
757
757
  */
758
758
  const findClosestValue = (reference, values) => {
759
- let closestValue = values[0];
760
- let rank = Math.abs(closestValue - reference);
761
- for (let i = 1; i < values.length; i++) {
762
- const value = values[i];
763
- /**
764
- * This code prioritizes the first
765
- * closest result. Given two values
766
- * with the same distance from reference,
767
- * this code will prioritize the smaller of
768
- * the two values.
769
- */
770
- const valueRank = Math.abs(value - reference);
771
- if (valueRank < rank) {
772
- closestValue = value;
773
- rank = valueRank;
759
+ let closestValue = values[0];
760
+ let rank = Math.abs(closestValue - reference);
761
+ for (let i = 1; i < values.length; i++) {
762
+ const value = values[i];
763
+ /**
764
+ * This code prioritizes the first
765
+ * closest result. Given two values
766
+ * with the same distance from reference,
767
+ * this code will prioritize the smaller of
768
+ * the two values.
769
+ */
770
+ const valueRank = Math.abs(value - reference);
771
+ if (valueRank < rank) {
772
+ closestValue = value;
773
+ rank = valueRank;
774
+ }
774
775
  }
775
- }
776
- return closestValue;
776
+ return closestValue;
777
777
  };
778
778
 
779
779
  const getFormattedDayPeriod = (dayPeriod) => {
780
- if (dayPeriod === undefined) {
781
- return '';
782
- }
783
- return dayPeriod.toUpperCase();
780
+ if (dayPeriod === undefined) {
781
+ return '';
782
+ }
783
+ return dayPeriod.toUpperCase();
784
784
  };
785
785
  const getLocalizedTime = (locale, refParts, hourCycle) => {
786
- const timeParts = {
787
- hour: refParts.hour,
788
- minute: refParts.minute,
789
- };
790
- if (timeParts.hour === undefined || timeParts.minute === undefined) {
791
- return 'Invalid Time';
792
- }
793
- return new Intl.DateTimeFormat(locale, {
794
- hour: 'numeric',
795
- minute: 'numeric',
796
- /**
797
- * Setting the timeZone to UTC prevents
798
- * new Intl.DatetimeFormat from subtracting
799
- * the user's current timezone offset
800
- * when formatting the time.
801
- */
802
- timeZone: 'UTC',
803
- /**
804
- * We use hourCycle here instead of hour12 due to:
805
- * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
806
- */
807
- hourCycle,
808
- /**
809
- * Setting Z at the end indicates that this
810
- * date string is in the UTC time zone. This
811
- * prevents new Date from adding the time zone
812
- * offset when getting the ISO string.
813
- */
814
- }).format(new Date(convertDataToISO(Object.assign({
815
- /**
816
- * JS uses a simplified ISO 8601 format which allows for
817
- * date-only formats and date-time formats, but not
818
- * time-only formats: https://tc39.es/ecma262/#sec-date-time-string-format
819
- * As a result, developers who only pass a time will get
820
- * an "Invalid Date" error. To account for this, we make sure that
821
- * year/day/month values are set when passing to new Date().
822
- * The Intl.DateTimeFormat call above only uses the hour/minute
823
- * values, so passing these date values should have no impact
824
- * on the time output.
825
- */
826
- year: 2023, day: 1, month: 1 }, timeParts)) + 'Z'));
786
+ const timeParts = {
787
+ hour: refParts.hour,
788
+ minute: refParts.minute,
789
+ };
790
+ if (timeParts.hour === undefined || timeParts.minute === undefined) {
791
+ return 'Invalid Time';
792
+ }
793
+ return new Intl.DateTimeFormat(locale, {
794
+ hour: 'numeric',
795
+ minute: 'numeric',
796
+ /**
797
+ * Setting the timeZone to UTC prevents
798
+ * new Intl.DatetimeFormat from subtracting
799
+ * the user's current timezone offset
800
+ * when formatting the time.
801
+ */
802
+ timeZone: 'UTC',
803
+ /**
804
+ * We use hourCycle here instead of hour12 due to:
805
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
806
+ */
807
+ hourCycle,
808
+ /**
809
+ * Setting Z at the end indicates that this
810
+ * date string is in the UTC time zone. This
811
+ * prevents new Date from adding the time zone
812
+ * offset when getting the ISO string.
813
+ */
814
+ }).format(new Date(convertDataToISO(Object.assign({
815
+ /**
816
+ * JS uses a simplified ISO 8601 format which allows for
817
+ * date-only formats and date-time formats, but not
818
+ * time-only formats: https://tc39.es/ecma262/#sec-date-time-string-format
819
+ * As a result, developers who only pass a time will get
820
+ * an "Invalid Date" error. To account for this, we make sure that
821
+ * year/day/month values are set when passing to new Date().
822
+ * The Intl.DateTimeFormat call above only uses the hour/minute
823
+ * values, so passing these date values should have no impact
824
+ * on the time output.
825
+ */
826
+ year: 2023, day: 1, month: 1 }, timeParts)) + 'Z'));
827
827
  };
828
828
  /**
829
829
  * Adds padding to a time value so
830
830
  * that it is always 2 digits.
831
831
  */
832
832
  const addTimePadding = (value) => {
833
- const valueToString = value.toString();
834
- if (valueToString.length > 1) {
835
- return valueToString;
836
- }
837
- return `0${valueToString}`;
833
+ const valueToString = value.toString();
834
+ if (valueToString.length > 1) {
835
+ return valueToString;
836
+ }
837
+ return `0${valueToString}`;
838
838
  };
839
839
  /**
840
840
  * Formats 24 hour times so that
@@ -843,34 +843,34 @@ const addTimePadding = (value) => {
843
843
  * hour 0 is formatted as '12'.
844
844
  */
845
845
  const getFormattedHour = (hour, hourCycle) => {
846
- /**
847
- * Midnight for h11 starts at 0:00am
848
- * Midnight for h12 starts at 12:00am
849
- * Midnight for h23 starts at 00:00
850
- * Midnight for h24 starts at 24:00
851
- */
852
- if (hour === 0) {
853
- switch (hourCycle) {
854
- case 'h11':
855
- return '0';
856
- case 'h12':
857
- return '12';
858
- case 'h23':
859
- return '00';
860
- case 'h24':
861
- return '24';
862
- default:
863
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
864
- }
865
- }
866
- const use24Hour = is24Hour(hourCycle);
867
- /**
868
- * h23 and h24 use 24 hour times.
869
- */
870
- if (use24Hour) {
871
- return addTimePadding(hour);
872
- }
873
- return hour.toString();
846
+ /**
847
+ * Midnight for h11 starts at 0:00am
848
+ * Midnight for h12 starts at 12:00am
849
+ * Midnight for h23 starts at 00:00
850
+ * Midnight for h24 starts at 24:00
851
+ */
852
+ if (hour === 0) {
853
+ switch (hourCycle) {
854
+ case 'h11':
855
+ return '0';
856
+ case 'h12':
857
+ return '12';
858
+ case 'h23':
859
+ return '00';
860
+ case 'h24':
861
+ return '24';
862
+ default:
863
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
864
+ }
865
+ }
866
+ const use24Hour = is24Hour(hourCycle);
867
+ /**
868
+ * h23 and h24 use 24 hour times.
869
+ */
870
+ if (use24Hour) {
871
+ return addTimePadding(hour);
872
+ }
873
+ return hour.toString();
874
874
  };
875
875
  /**
876
876
  * Generates an aria-label to be read by screen readers
@@ -878,32 +878,32 @@ const getFormattedHour = (hour, hourCycle) => {
878
878
  * today's date.
879
879
  */
880
880
  const generateDayAriaLabel = (locale, today, refParts) => {
881
- if (refParts.day === null) {
882
- return null;
883
- }
884
- /**
885
- * MM/DD/YYYY will return midnight in the user's timezone.
886
- */
887
- const date = getNormalizedDate(refParts);
888
- const labelString = new Intl.DateTimeFormat(locale, {
889
- weekday: 'long',
890
- month: 'long',
891
- day: 'numeric',
892
- timeZone: 'UTC',
893
- }).format(date);
894
- /**
895
- * If date is today, prepend "Today" so screen readers indicate
896
- * that the date is today.
897
- */
898
- return today ? `Today, ${labelString}` : labelString;
881
+ if (refParts.day === null) {
882
+ return null;
883
+ }
884
+ /**
885
+ * MM/DD/YYYY will return midnight in the user's timezone.
886
+ */
887
+ const date = getNormalizedDate(refParts);
888
+ const labelString = new Intl.DateTimeFormat(locale, {
889
+ weekday: 'long',
890
+ month: 'long',
891
+ day: 'numeric',
892
+ timeZone: 'UTC',
893
+ }).format(date);
894
+ /**
895
+ * If date is today, prepend "Today" so screen readers indicate
896
+ * that the date is today.
897
+ */
898
+ return today ? `Today, ${labelString}` : labelString;
899
899
  };
900
900
  /**
901
901
  * Gets the day of the week, month, and day
902
902
  * Used for the header in MD mode.
903
903
  */
904
904
  const getMonthAndDay = (locale, refParts) => {
905
- const date = getNormalizedDate(refParts);
906
- return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);
905
+ const date = getNormalizedDate(refParts);
906
+ return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);
907
907
  };
908
908
  /**
909
909
  * Given a locale and a date object,
@@ -912,8 +912,8 @@ const getMonthAndDay = (locale, refParts) => {
912
912
  * Example: May 2021
913
913
  */
914
914
  const getMonthAndYear = (locale, refParts) => {
915
- const date = getNormalizedDate(refParts);
916
- return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
915
+ const date = getNormalizedDate(refParts);
916
+ return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
917
917
  };
918
918
  /**
919
919
  * Given a locale and a date object,
@@ -922,7 +922,7 @@ const getMonthAndYear = (locale, refParts) => {
922
922
  * Example: Apr 22, 2021
923
923
  */
924
924
  const getMonthDayAndYear = (locale, refParts) => {
925
- return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
925
+ return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
926
926
  };
927
927
  /**
928
928
  * Given a locale and a date object,
@@ -933,7 +933,7 @@ const getMonthDayAndYear = (locale, refParts) => {
933
933
  * Example: 29
934
934
  */
935
935
  const getDay = (locale, refParts) => {
936
- return getLocalizedDateTimeParts(locale, refParts, { day: 'numeric' }).find((obj) => obj.type === 'day').value;
936
+ return getLocalizedDateTimeParts(locale, refParts, { day: 'numeric' }).find((obj) => obj.type === 'day').value;
937
937
  };
938
938
  /**
939
939
  * Given a locale and a date object,
@@ -942,26 +942,26 @@ const getDay = (locale, refParts) => {
942
942
  * Example: 2022
943
943
  */
944
944
  const getYear = (locale, refParts) => {
945
- return getLocalizedDateTime(locale, refParts, { year: 'numeric' });
945
+ return getLocalizedDateTime(locale, refParts, { year: 'numeric' });
946
946
  };
947
947
  /**
948
948
  * Given reference parts, return a JS Date object
949
949
  * with a normalized time.
950
950
  */
951
951
  const getNormalizedDate = (refParts) => {
952
- var _a, _b, _c;
953
- const timeString = refParts.hour !== undefined && refParts.minute !== undefined ? ` ${refParts.hour}:${refParts.minute}` : '';
954
- /**
955
- * We use / notation here for the date
956
- * so we do not need to do extra work and pad values with zeroes.
957
- * Values such as YYYY-MM are still valid, so
958
- * we add fallback values so we still get
959
- * a valid date otherwise we will pass in a string
960
- * like "//2023". Some browsers, such as Chrome, will
961
- * account for this and still return a valid date. However,
962
- * this is not a consistent behavior across all browsers.
963
- */
964
- return new Date(`${(_a = refParts.month) !== null && _a !== void 0 ? _a : 1}/${(_b = refParts.day) !== null && _b !== void 0 ? _b : 1}/${(_c = refParts.year) !== null && _c !== void 0 ? _c : 2023}${timeString} GMT+0000`);
952
+ var _a, _b, _c;
953
+ const timeString = refParts.hour !== undefined && refParts.minute !== undefined ? ` ${refParts.hour}:${refParts.minute}` : '';
954
+ /**
955
+ * We use / notation here for the date
956
+ * so we do not need to do extra work and pad values with zeroes.
957
+ * Values such as YYYY-MM are still valid, so
958
+ * we add fallback values so we still get
959
+ * a valid date otherwise we will pass in a string
960
+ * like "//2023". Some browsers, such as Chrome, will
961
+ * account for this and still return a valid date. However,
962
+ * this is not a consistent behavior across all browsers.
963
+ */
964
+ return new Date(`${(_a = refParts.month) !== null && _a !== void 0 ? _a : 1}/${(_b = refParts.day) !== null && _b !== void 0 ? _b : 1}/${(_c = refParts.year) !== null && _c !== void 0 ? _c : 2023}${timeString} GMT+0000`);
965
965
  };
966
966
  /**
967
967
  * Given a locale, DatetimeParts, and options
@@ -972,8 +972,8 @@ const getNormalizedDate = (refParts) => {
972
972
  * getLocalizedDateTimeParts.
973
973
  */
974
974
  const getLocalizedDateTime = (locale, refParts, options) => {
975
- const date = getNormalizedDate(refParts);
976
- return getDateTimeFormat(locale, options).format(date);
975
+ const date = getNormalizedDate(refParts);
976
+ return getDateTimeFormat(locale, options).format(date);
977
977
  };
978
978
  /**
979
979
  * Given a locale, DatetimeParts, and options
@@ -982,8 +982,8 @@ const getLocalizedDateTime = (locale, refParts, options) => {
982
982
  * each piece of the date.
983
983
  */
984
984
  const getLocalizedDateTimeParts = (locale, refParts, options) => {
985
- const date = getNormalizedDate(refParts);
986
- return getDateTimeFormat(locale, options).formatToParts(date);
985
+ const date = getNormalizedDate(refParts);
986
+ return getDateTimeFormat(locale, options).formatToParts(date);
987
987
  };
988
988
  /**
989
989
  * Wrapper function for Intl.DateTimeFormat.
@@ -992,7 +992,7 @@ const getLocalizedDateTimeParts = (locale, refParts, options) => {
992
992
  * with Intl.DateTimeFormat.
993
993
  */
994
994
  const getDateTimeFormat = (locale, options) => {
995
- return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));
995
+ return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));
996
996
  };
997
997
  /**
998
998
  * Gets a localized version of "Today"
@@ -1000,13 +1000,13 @@ const getDateTimeFormat = (locale, options) => {
1000
1000
  * browsers that do not support RelativeTimeFormat.
1001
1001
  */
1002
1002
  const getTodayLabel = (locale) => {
1003
- if ('RelativeTimeFormat' in Intl) {
1004
- const label = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(0, 'day');
1005
- return label.charAt(0).toUpperCase() + label.slice(1);
1006
- }
1007
- else {
1008
- return 'Today';
1009
- }
1003
+ if ('RelativeTimeFormat' in Intl) {
1004
+ const label = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(0, 'day');
1005
+ return label.charAt(0).toUpperCase() + label.slice(1);
1006
+ }
1007
+ else {
1008
+ return 'Today';
1009
+ }
1010
1010
  };
1011
1011
  /**
1012
1012
  * When calling toISOString(), the browser
@@ -1038,9 +1038,9 @@ const getTodayLabel = (locale) => {
1038
1038
  * https://www.timeanddate.com/time/time-zones-interesting.html
1039
1039
  */
1040
1040
  const removeDateTzOffset = (date) => {
1041
- const tzOffset = date.getTimezoneOffset();
1042
- date.setMinutes(date.getMinutes() - tzOffset);
1043
- return date;
1041
+ const tzOffset = date.getTimezoneOffset();
1042
+ date.setMinutes(date.getMinutes() - tzOffset);
1043
+ return date;
1044
1044
  };
1045
1045
  const DATE_AM = removeDateTzOffset(new Date('2022T01:00'));
1046
1046
  const DATE_PM = removeDateTzOffset(new Date('2022T13:00'));
@@ -1053,17 +1053,17 @@ const DATE_PM = removeDateTzOffset(new Date('2022T13:00'));
1053
1053
  * @returns The localized day period (am/pm) representation of the given value.
1054
1054
  */
1055
1055
  const getLocalizedDayPeriod = (locale, dayPeriod) => {
1056
- const date = dayPeriod === 'am' ? DATE_AM : DATE_PM;
1057
- const localizedDayPeriod = new Intl.DateTimeFormat(locale, {
1058
- hour: 'numeric',
1059
- timeZone: 'UTC',
1060
- })
1061
- .formatToParts(date)
1062
- .find((part) => part.type === 'dayPeriod');
1063
- if (localizedDayPeriod) {
1064
- return localizedDayPeriod.value;
1065
- }
1066
- return getFormattedDayPeriod(dayPeriod);
1056
+ const date = dayPeriod === 'am' ? DATE_AM : DATE_PM;
1057
+ const localizedDayPeriod = new Intl.DateTimeFormat(locale, {
1058
+ hour: 'numeric',
1059
+ timeZone: 'UTC',
1060
+ })
1061
+ .formatToParts(date)
1062
+ .find((part) => part.type === 'dayPeriod');
1063
+ if (localizedDayPeriod) {
1064
+ return localizedDayPeriod.value;
1065
+ }
1066
+ return getFormattedDayPeriod(dayPeriod);
1067
1067
  };
1068
1068
  /**
1069
1069
  * Formats the datetime's value to a string, for use in the native input.
@@ -1071,7 +1071,7 @@ const getLocalizedDayPeriod = (locale, dayPeriod) => {
1071
1071
  * @param value The value to format, either an ISO string or an array thereof.
1072
1072
  */
1073
1073
  const formatValue = (value) => {
1074
- return Array.isArray(value) ? value.join(',') : value;
1074
+ return Array.isArray(value) ? value.join(',') : value;
1075
1075
  };
1076
1076
 
1077
1077
  /**
@@ -1080,28 +1080,28 @@ const formatValue = (value) => {
1080
1080
  * time zone.
1081
1081
  */
1082
1082
  const getToday = () => {
1083
- /**
1084
- * ion-datetime intentionally does not
1085
- * parse time zones/do automatic time zone
1086
- * conversion when accepting user input.
1087
- * However when we get today's date string,
1088
- * we want it formatted relative to the user's
1089
- * time zone.
1090
- *
1091
- * When calling toISOString(), the browser
1092
- * will convert the date to UTC time by either adding
1093
- * or subtracting the time zone offset.
1094
- * To work around this, we need to either add
1095
- * or subtract the time zone offset to the Date
1096
- * object prior to calling toISOString().
1097
- * This allows us to get an ISO string
1098
- * that is in the user's time zone.
1099
- */
1100
- return removeDateTzOffset(new Date()).toISOString();
1083
+ /**
1084
+ * ion-datetime intentionally does not
1085
+ * parse time zones/do automatic time zone
1086
+ * conversion when accepting user input.
1087
+ * However when we get today's date string,
1088
+ * we want it formatted relative to the user's
1089
+ * time zone.
1090
+ *
1091
+ * When calling toISOString(), the browser
1092
+ * will convert the date to UTC time by either adding
1093
+ * or subtracting the time zone offset.
1094
+ * To work around this, we need to either add
1095
+ * or subtract the time zone offset to the Date
1096
+ * object prior to calling toISOString().
1097
+ * This allows us to get an ISO string
1098
+ * that is in the user's time zone.
1099
+ */
1100
+ return removeDateTzOffset(new Date()).toISOString();
1101
1101
  };
1102
1102
  const minutes = [
1103
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1104
- 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1103
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1104
+ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
1105
1105
  ];
1106
1106
  // h11 hour system uses 0-11. Midnight starts at 0:00am.
1107
1107
  const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
@@ -1120,25 +1120,25 @@ const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1
1120
1120
  * or "T".
1121
1121
  */
1122
1122
  const getDaysOfWeek = (locale, mode, firstDayOfWeek = 0) => {
1123
- /**
1124
- * Nov 1st, 2020 starts on a Sunday.
1125
- * ion-datetime assumes weeks start on Sunday,
1126
- * but is configurable via `firstDayOfWeek`.
1127
- */
1128
- const weekdayFormat = mode === 'ios' ? 'short' : 'narrow';
1129
- const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });
1130
- const startDate = new Date('11/01/2020');
1131
- const daysOfWeek = [];
1132
- /**
1133
- * For each day of the week,
1134
- * get the day name.
1135
- */
1136
- for (let i = firstDayOfWeek; i < firstDayOfWeek + 7; i++) {
1137
- const currentDate = new Date(startDate);
1138
- currentDate.setDate(currentDate.getDate() + i);
1139
- daysOfWeek.push(intl.format(currentDate));
1140
- }
1141
- return daysOfWeek;
1123
+ /**
1124
+ * Nov 1st, 2020 starts on a Sunday.
1125
+ * ion-datetime assumes weeks start on Sunday,
1126
+ * but is configurable via `firstDayOfWeek`.
1127
+ */
1128
+ const weekdayFormat = mode === 'ios' ? 'short' : 'narrow';
1129
+ const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });
1130
+ const startDate = new Date('11/01/2020');
1131
+ const daysOfWeek = [];
1132
+ /**
1133
+ * For each day of the week,
1134
+ * get the day name.
1135
+ */
1136
+ for (let i = firstDayOfWeek; i < firstDayOfWeek + 7; i++) {
1137
+ const currentDate = new Date(startDate);
1138
+ currentDate.setDate(currentDate.getDate() + i);
1139
+ daysOfWeek.push(intl.format(currentDate));
1140
+ }
1141
+ return daysOfWeek;
1142
1142
  };
1143
1143
  /**
1144
1144
  * Returns an array containing all of the
@@ -1148,54 +1148,54 @@ const getDaysOfWeek = (locale, mode, firstDayOfWeek = 0) => {
1148
1148
  * using null values.
1149
1149
  */
1150
1150
  const getDaysOfMonth = (month, year, firstDayOfWeek) => {
1151
- const numDays = getNumDaysInMonth(month, year);
1152
- const firstOfMonth = new Date(`${month}/1/${year}`).getDay();
1153
- /**
1154
- * To get the first day of the month aligned on the correct
1155
- * day of the week, we need to determine how many "filler" days
1156
- * to generate. These filler days as empty/disabled buttons
1157
- * that fill the space of the days of the week before the first
1158
- * of the month.
1159
- *
1160
- * There are two cases here:
1161
- *
1162
- * 1. If firstOfMonth = 4, firstDayOfWeek = 0 then the offset
1163
- * is (4 - (0 + 1)) = 3. Since the offset loop goes from 0 to 3 inclusive,
1164
- * this will generate 4 filler days (0, 1, 2, 3), and then day of week 4 will have
1165
- * the first day of the month.
1166
- *
1167
- * 2. If firstOfMonth = 2, firstDayOfWeek = 4 then the offset
1168
- * is (6 - (4 - 2)) = 4. Since the offset loop goes from 0 to 4 inclusive,
1169
- * this will generate 5 filler days (0, 1, 2, 3, 4), and then day of week 5 will have
1170
- * the first day of the month.
1171
- */
1172
- const offset = firstOfMonth >= firstDayOfWeek ? firstOfMonth - (firstDayOfWeek + 1) : 6 - (firstDayOfWeek - firstOfMonth);
1173
- let days = [];
1174
- for (let i = 1; i <= numDays; i++) {
1175
- days.push({ day: i, dayOfWeek: (offset + i) % 7 });
1176
- }
1177
- for (let i = 0; i <= offset; i++) {
1178
- days = [{ day: null, dayOfWeek: null }, ...days];
1179
- }
1180
- return days;
1151
+ const numDays = getNumDaysInMonth(month, year);
1152
+ const firstOfMonth = new Date(`${month}/1/${year}`).getDay();
1153
+ /**
1154
+ * To get the first day of the month aligned on the correct
1155
+ * day of the week, we need to determine how many "filler" days
1156
+ * to generate. These filler days as empty/disabled buttons
1157
+ * that fill the space of the days of the week before the first
1158
+ * of the month.
1159
+ *
1160
+ * There are two cases here:
1161
+ *
1162
+ * 1. If firstOfMonth = 4, firstDayOfWeek = 0 then the offset
1163
+ * is (4 - (0 + 1)) = 3. Since the offset loop goes from 0 to 3 inclusive,
1164
+ * this will generate 4 filler days (0, 1, 2, 3), and then day of week 4 will have
1165
+ * the first day of the month.
1166
+ *
1167
+ * 2. If firstOfMonth = 2, firstDayOfWeek = 4 then the offset
1168
+ * is (6 - (4 - 2)) = 4. Since the offset loop goes from 0 to 4 inclusive,
1169
+ * this will generate 5 filler days (0, 1, 2, 3, 4), and then day of week 5 will have
1170
+ * the first day of the month.
1171
+ */
1172
+ const offset = firstOfMonth >= firstDayOfWeek ? firstOfMonth - (firstDayOfWeek + 1) : 6 - (firstDayOfWeek - firstOfMonth);
1173
+ let days = [];
1174
+ for (let i = 1; i <= numDays; i++) {
1175
+ days.push({ day: i, dayOfWeek: (offset + i) % 7 });
1176
+ }
1177
+ for (let i = 0; i <= offset; i++) {
1178
+ days = [{ day: null, dayOfWeek: null }, ...days];
1179
+ }
1180
+ return days;
1181
1181
  };
1182
1182
  /**
1183
1183
  * Returns an array of pre-defined hour
1184
1184
  * values based on the provided hourCycle.
1185
1185
  */
1186
1186
  const getHourData = (hourCycle) => {
1187
- switch (hourCycle) {
1188
- case 'h11':
1189
- return hour11;
1190
- case 'h12':
1191
- return hour12;
1192
- case 'h23':
1193
- return hour23;
1194
- case 'h24':
1195
- return hour24;
1196
- default:
1197
- throw new Error(`Invalid hour cycle "${hourCycle}"`);
1198
- }
1187
+ switch (hourCycle) {
1188
+ case 'h11':
1189
+ return hour11;
1190
+ case 'h12':
1191
+ return hour12;
1192
+ case 'h23':
1193
+ return hour23;
1194
+ case 'h24':
1195
+ return hour24;
1196
+ default:
1197
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
1198
+ }
1199
1199
  };
1200
1200
  /**
1201
1201
  * Given a local, reference datetime parts and option
@@ -1203,185 +1203,185 @@ const getHourData = (hourCycle) => {
1203
1203
  * hour and minute values according to the bounds and locale.
1204
1204
  */
1205
1205
  const generateTime = (locale, refParts, hourCycle = 'h12', minParts, maxParts, hourValues, minuteValues) => {
1206
- const computedHourCycle = getHourCycle(locale, hourCycle);
1207
- const use24Hour = is24Hour(computedHourCycle);
1208
- let processedHours = getHourData(computedHourCycle);
1209
- let processedMinutes = minutes;
1210
- let isAMAllowed = true;
1211
- let isPMAllowed = true;
1212
- if (hourValues) {
1213
- processedHours = processedHours.filter((hour) => hourValues.includes(hour));
1214
- }
1215
- if (minuteValues) {
1216
- processedMinutes = processedMinutes.filter((minute) => minuteValues.includes(minute));
1217
- }
1218
- if (minParts) {
1219
- /**
1220
- * If ref day is the same as the
1221
- * minimum allowed day, filter hour/minute
1222
- * values according to min hour and minute.
1223
- */
1224
- if (isSameDay(refParts, minParts)) {
1225
- /**
1226
- * Users may not always set the hour/minute for
1227
- * min value (i.e. 2021-06-02) so we should allow
1228
- * all hours/minutes in that case.
1229
- */
1230
- if (minParts.hour !== undefined) {
1231
- processedHours = processedHours.filter((hour) => {
1232
- const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1233
- return (use24Hour ? hour : convertedHour) >= minParts.hour;
1234
- });
1235
- isAMAllowed = minParts.hour < 13;
1236
- }
1237
- if (minParts.minute !== undefined) {
1206
+ const computedHourCycle = getHourCycle(locale, hourCycle);
1207
+ const use24Hour = is24Hour(computedHourCycle);
1208
+ let processedHours = getHourData(computedHourCycle);
1209
+ let processedMinutes = minutes;
1210
+ let isAMAllowed = true;
1211
+ let isPMAllowed = true;
1212
+ if (hourValues) {
1213
+ processedHours = processedHours.filter((hour) => hourValues.includes(hour));
1214
+ }
1215
+ if (minuteValues) {
1216
+ processedMinutes = processedMinutes.filter((minute) => minuteValues.includes(minute));
1217
+ }
1218
+ if (minParts) {
1238
1219
  /**
1239
- * The minimum minute range should not be enforced when
1240
- * the hour is greater than the min hour.
1241
- *
1242
- * For example with a minimum range of 09:30, users
1243
- * should be able to select 10:00-10:29 and beyond.
1220
+ * If ref day is the same as the
1221
+ * minimum allowed day, filter hour/minute
1222
+ * values according to min hour and minute.
1244
1223
  */
1245
- let isPastMinHour = false;
1246
- if (minParts.hour !== undefined && refParts.hour !== undefined) {
1247
- if (refParts.hour > minParts.hour) {
1248
- isPastMinHour = true;
1249
- }
1224
+ if (isSameDay(refParts, minParts)) {
1225
+ /**
1226
+ * Users may not always set the hour/minute for
1227
+ * min value (i.e. 2021-06-02) so we should allow
1228
+ * all hours/minutes in that case.
1229
+ */
1230
+ if (minParts.hour !== undefined) {
1231
+ processedHours = processedHours.filter((hour) => {
1232
+ const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1233
+ return (use24Hour ? hour : convertedHour) >= minParts.hour;
1234
+ });
1235
+ isAMAllowed = minParts.hour < 13;
1236
+ }
1237
+ if (minParts.minute !== undefined) {
1238
+ /**
1239
+ * The minimum minute range should not be enforced when
1240
+ * the hour is greater than the min hour.
1241
+ *
1242
+ * For example with a minimum range of 09:30, users
1243
+ * should be able to select 10:00-10:29 and beyond.
1244
+ */
1245
+ let isPastMinHour = false;
1246
+ if (minParts.hour !== undefined && refParts.hour !== undefined) {
1247
+ if (refParts.hour > minParts.hour) {
1248
+ isPastMinHour = true;
1249
+ }
1250
+ }
1251
+ processedMinutes = processedMinutes.filter((minute) => {
1252
+ if (isPastMinHour) {
1253
+ return true;
1254
+ }
1255
+ return minute >= minParts.minute;
1256
+ });
1257
+ }
1258
+ /**
1259
+ * If ref day is before minimum
1260
+ * day do not render any hours/minute values
1261
+ */
1250
1262
  }
1251
- processedMinutes = processedMinutes.filter((minute) => {
1252
- if (isPastMinHour) {
1253
- return true;
1254
- }
1255
- return minute >= minParts.minute;
1256
- });
1257
- }
1258
- /**
1259
- * If ref day is before minimum
1260
- * day do not render any hours/minute values
1261
- */
1262
- }
1263
- else if (isBefore(refParts, minParts)) {
1264
- processedHours = [];
1265
- processedMinutes = [];
1266
- isAMAllowed = isPMAllowed = false;
1267
- }
1268
- }
1269
- if (maxParts) {
1270
- /**
1271
- * If ref day is the same as the
1272
- * maximum allowed day, filter hour/minute
1273
- * values according to max hour and minute.
1274
- */
1275
- if (isSameDay(refParts, maxParts)) {
1276
- /**
1277
- * Users may not always set the hour/minute for
1278
- * max value (i.e. 2021-06-02) so we should allow
1279
- * all hours/minutes in that case.
1280
- */
1281
- if (maxParts.hour !== undefined) {
1282
- processedHours = processedHours.filter((hour) => {
1283
- const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1284
- return (use24Hour ? hour : convertedHour) <= maxParts.hour;
1285
- });
1286
- isPMAllowed = maxParts.hour >= 12;
1287
- }
1288
- if (maxParts.minute !== undefined && refParts.hour === maxParts.hour) {
1289
- // The available minutes should only be filtered when the hour is the same as the max hour.
1290
- // For example if the max hour is 10:30 and the current hour is 10:00,
1291
- // users should be able to select 00-30 minutes.
1292
- // If the current hour is 09:00, users should be able to select 00-60 minutes.
1293
- processedMinutes = processedMinutes.filter((minute) => minute <= maxParts.minute);
1294
- }
1295
- /**
1296
- * If ref day is after minimum
1297
- * day do not render any hours/minute values
1298
- */
1299
- }
1300
- else if (isAfter(refParts, maxParts)) {
1301
- processedHours = [];
1302
- processedMinutes = [];
1303
- isAMAllowed = isPMAllowed = false;
1304
- }
1305
- }
1306
- return {
1307
- hours: processedHours,
1308
- minutes: processedMinutes,
1309
- am: isAMAllowed,
1310
- pm: isPMAllowed,
1311
- };
1263
+ else if (isBefore(refParts, minParts)) {
1264
+ processedHours = [];
1265
+ processedMinutes = [];
1266
+ isAMAllowed = isPMAllowed = false;
1267
+ }
1268
+ }
1269
+ if (maxParts) {
1270
+ /**
1271
+ * If ref day is the same as the
1272
+ * maximum allowed day, filter hour/minute
1273
+ * values according to max hour and minute.
1274
+ */
1275
+ if (isSameDay(refParts, maxParts)) {
1276
+ /**
1277
+ * Users may not always set the hour/minute for
1278
+ * max value (i.e. 2021-06-02) so we should allow
1279
+ * all hours/minutes in that case.
1280
+ */
1281
+ if (maxParts.hour !== undefined) {
1282
+ processedHours = processedHours.filter((hour) => {
1283
+ const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1284
+ return (use24Hour ? hour : convertedHour) <= maxParts.hour;
1285
+ });
1286
+ isPMAllowed = maxParts.hour >= 12;
1287
+ }
1288
+ if (maxParts.minute !== undefined && refParts.hour === maxParts.hour) {
1289
+ // The available minutes should only be filtered when the hour is the same as the max hour.
1290
+ // For example if the max hour is 10:30 and the current hour is 10:00,
1291
+ // users should be able to select 00-30 minutes.
1292
+ // If the current hour is 09:00, users should be able to select 00-60 minutes.
1293
+ processedMinutes = processedMinutes.filter((minute) => minute <= maxParts.minute);
1294
+ }
1295
+ /**
1296
+ * If ref day is after minimum
1297
+ * day do not render any hours/minute values
1298
+ */
1299
+ }
1300
+ else if (isAfter(refParts, maxParts)) {
1301
+ processedHours = [];
1302
+ processedMinutes = [];
1303
+ isAMAllowed = isPMAllowed = false;
1304
+ }
1305
+ }
1306
+ return {
1307
+ hours: processedHours,
1308
+ minutes: processedMinutes,
1309
+ am: isAMAllowed,
1310
+ pm: isPMAllowed,
1311
+ };
1312
1312
  };
1313
1313
  /**
1314
1314
  * Given DatetimeParts, generate the previous,
1315
1315
  * current, and and next months.
1316
1316
  */
1317
1317
  const generateMonths = (refParts, forcedDate) => {
1318
- const current = { month: refParts.month, year: refParts.year, day: refParts.day };
1319
- /**
1320
- * If we're forcing a month to appear, and it's different from the current month,
1321
- * ensure it appears by replacing the next or previous month as appropriate.
1322
- */
1323
- if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
1324
- const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
1325
- const forcedMonthIsBefore = isBefore(forced, current);
1326
- return forcedMonthIsBefore
1327
- ? [forced, current, getNextMonth(refParts)]
1328
- : [getPreviousMonth(refParts), current, forced];
1329
- }
1330
- return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
1318
+ const current = { month: refParts.month, year: refParts.year, day: refParts.day };
1319
+ /**
1320
+ * If we're forcing a month to appear, and it's different from the current month,
1321
+ * ensure it appears by replacing the next or previous month as appropriate.
1322
+ */
1323
+ if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
1324
+ const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
1325
+ const forcedMonthIsBefore = isBefore(forced, current);
1326
+ return forcedMonthIsBefore
1327
+ ? [forced, current, getNextMonth(refParts)]
1328
+ : [getPreviousMonth(refParts), current, forced];
1329
+ }
1330
+ return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
1331
1331
  };
1332
1332
  const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {
1333
- month: 'long',
1333
+ month: 'long',
1334
1334
  }) => {
1335
- const { year } = refParts;
1336
- const months = [];
1337
- if (monthValues !== undefined) {
1338
- let processedMonths = monthValues;
1339
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.month) !== undefined) {
1340
- processedMonths = processedMonths.filter((month) => month <= maxParts.month);
1341
- }
1342
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.month) !== undefined) {
1343
- processedMonths = processedMonths.filter((month) => month >= minParts.month);
1344
- }
1345
- processedMonths.forEach((processedMonth) => {
1346
- const date = new Date(`${processedMonth}/1/${year} GMT+0000`);
1347
- const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1348
- months.push({ text: monthString, value: processedMonth });
1349
- });
1350
- }
1351
- else {
1352
- const maxMonth = maxParts && maxParts.year === year ? maxParts.month : 12;
1353
- const minMonth = minParts && minParts.year === year ? minParts.month : 1;
1354
- for (let i = minMonth; i <= maxMonth; i++) {
1355
- /**
1356
- *
1357
- * There is a bug on iOS 14 where
1358
- * Intl.DateTimeFormat takes into account
1359
- * the local timezone offset when formatting dates.
1360
- *
1361
- * Forcing the timezone to 'UTC' fixes the issue. However,
1362
- * we should keep this workaround as it is safer. In the event
1363
- * this breaks in another browser, we will not be impacted
1364
- * because all dates will be interpreted in UTC.
1365
- *
1366
- * Example:
1367
- * new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "March"
1368
- * new Intl.DateTimeFormat('en-US', { month: 'long', timeZone: 'UTC' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "April"
1369
- *
1370
- * In certain timezones, iOS 14 shows the wrong
1371
- * date for .toUTCString(). To combat this, we
1372
- * force all of the timezones to GMT+0000 (UTC).
1373
- *
1374
- * Example:
1375
- * Time Zone: Central European Standard Time
1376
- * new Date('1/1/1992').toUTCString() // "Tue, 31 Dec 1991 23:00:00 GMT"
1377
- * new Date('1/1/1992 GMT+0000').toUTCString() // "Wed, 01 Jan 1992 00:00:00 GMT"
1378
- */
1379
- const date = new Date(`${i}/1/${year} GMT+0000`);
1380
- const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1381
- months.push({ text: monthString, value: i });
1382
- }
1383
- }
1384
- return months;
1335
+ const { year } = refParts;
1336
+ const months = [];
1337
+ if (monthValues !== undefined) {
1338
+ let processedMonths = monthValues;
1339
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.month) !== undefined) {
1340
+ processedMonths = processedMonths.filter((month) => month <= maxParts.month);
1341
+ }
1342
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.month) !== undefined) {
1343
+ processedMonths = processedMonths.filter((month) => month >= minParts.month);
1344
+ }
1345
+ processedMonths.forEach((processedMonth) => {
1346
+ const date = new Date(`${processedMonth}/1/${year} GMT+0000`);
1347
+ const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1348
+ months.push({ text: monthString, value: processedMonth });
1349
+ });
1350
+ }
1351
+ else {
1352
+ const maxMonth = maxParts && maxParts.year === year ? maxParts.month : 12;
1353
+ const minMonth = minParts && minParts.year === year ? minParts.month : 1;
1354
+ for (let i = minMonth; i <= maxMonth; i++) {
1355
+ /**
1356
+ *
1357
+ * There is a bug on iOS 14 where
1358
+ * Intl.DateTimeFormat takes into account
1359
+ * the local timezone offset when formatting dates.
1360
+ *
1361
+ * Forcing the timezone to 'UTC' fixes the issue. However,
1362
+ * we should keep this workaround as it is safer. In the event
1363
+ * this breaks in another browser, we will not be impacted
1364
+ * because all dates will be interpreted in UTC.
1365
+ *
1366
+ * Example:
1367
+ * new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "March"
1368
+ * new Intl.DateTimeFormat('en-US', { month: 'long', timeZone: 'UTC' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "April"
1369
+ *
1370
+ * In certain timezones, iOS 14 shows the wrong
1371
+ * date for .toUTCString(). To combat this, we
1372
+ * force all of the timezones to GMT+0000 (UTC).
1373
+ *
1374
+ * Example:
1375
+ * Time Zone: Central European Standard Time
1376
+ * new Date('1/1/1992').toUTCString() // "Tue, 31 Dec 1991 23:00:00 GMT"
1377
+ * new Date('1/1/1992 GMT+0000').toUTCString() // "Wed, 01 Jan 1992 00:00:00 GMT"
1378
+ */
1379
+ const date = new Date(`${i}/1/${year} GMT+0000`);
1380
+ const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1381
+ months.push({ text: monthString, value: i });
1382
+ }
1383
+ }
1384
+ return months;
1385
1385
  };
1386
1386
  /**
1387
1387
  * Returns information regarding
@@ -1395,65 +1395,65 @@ const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, f
1395
1395
  * @returns Date data to be used in ion-picker-column-internal
1396
1396
  */
1397
1397
  const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
1398
- day: 'numeric',
1398
+ day: 'numeric',
1399
1399
  }) => {
1400
- const { month, year } = refParts;
1401
- const days = [];
1402
- /**
1403
- * If we have max/min bounds that in the same
1404
- * month/year as the refParts, we should
1405
- * use the define day as the max/min day.
1406
- * Otherwise, fallback to the max/min days in a month.
1407
- */
1408
- const numDaysInMonth = getNumDaysInMonth(month, year);
1409
- const maxDay = (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== null && (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== undefined && maxParts.year === year && maxParts.month === month
1410
- ? maxParts.day
1411
- : numDaysInMonth;
1412
- const minDay = (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== null && (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== undefined && minParts.year === year && minParts.month === month
1413
- ? minParts.day
1414
- : 1;
1415
- if (dayValues !== undefined) {
1416
- let processedDays = dayValues;
1417
- processedDays = processedDays.filter((day) => day >= minDay && day <= maxDay);
1418
- processedDays.forEach((processedDay) => {
1419
- const date = new Date(`${month}/${processedDay}/${year} GMT+0000`);
1420
- const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1421
- days.push({ text: dayString, value: processedDay });
1422
- });
1423
- }
1424
- else {
1425
- for (let i = minDay; i <= maxDay; i++) {
1426
- const date = new Date(`${month}/${i}/${year} GMT+0000`);
1427
- const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1428
- days.push({ text: dayString, value: i });
1400
+ const { month, year } = refParts;
1401
+ const days = [];
1402
+ /**
1403
+ * If we have max/min bounds that in the same
1404
+ * month/year as the refParts, we should
1405
+ * use the define day as the max/min day.
1406
+ * Otherwise, fallback to the max/min days in a month.
1407
+ */
1408
+ const numDaysInMonth = getNumDaysInMonth(month, year);
1409
+ const maxDay = (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== null && (maxParts === null || maxParts === void 0 ? void 0 : maxParts.day) !== undefined && maxParts.year === year && maxParts.month === month
1410
+ ? maxParts.day
1411
+ : numDaysInMonth;
1412
+ const minDay = (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== null && (minParts === null || minParts === void 0 ? void 0 : minParts.day) !== undefined && minParts.year === year && minParts.month === month
1413
+ ? minParts.day
1414
+ : 1;
1415
+ if (dayValues !== undefined) {
1416
+ let processedDays = dayValues;
1417
+ processedDays = processedDays.filter((day) => day >= minDay && day <= maxDay);
1418
+ processedDays.forEach((processedDay) => {
1419
+ const date = new Date(`${month}/${processedDay}/${year} GMT+0000`);
1420
+ const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1421
+ days.push({ text: dayString, value: processedDay });
1422
+ });
1429
1423
  }
1430
- }
1431
- return days;
1424
+ else {
1425
+ for (let i = minDay; i <= maxDay; i++) {
1426
+ const date = new Date(`${month}/${i}/${year} GMT+0000`);
1427
+ const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1428
+ days.push({ text: dayString, value: i });
1429
+ }
1430
+ }
1431
+ return days;
1432
1432
  };
1433
1433
  const getYearColumnData = (locale, refParts, minParts, maxParts, yearValues) => {
1434
- var _a, _b;
1435
- let processedYears = [];
1436
- if (yearValues !== undefined) {
1437
- processedYears = yearValues;
1438
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== undefined) {
1439
- processedYears = processedYears.filter((year) => year <= maxParts.year);
1440
- }
1441
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.year) !== undefined) {
1442
- processedYears = processedYears.filter((year) => year >= minParts.year);
1443
- }
1444
- }
1445
- else {
1446
- const { year } = refParts;
1447
- const maxYear = (_a = maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== null && _a !== void 0 ? _a : year;
1448
- const minYear = (_b = minParts === null || minParts === void 0 ? void 0 : minParts.year) !== null && _b !== void 0 ? _b : year - 100;
1449
- for (let i = minYear; i <= maxYear; i++) {
1450
- processedYears.push(i);
1434
+ var _a, _b;
1435
+ let processedYears = [];
1436
+ if (yearValues !== undefined) {
1437
+ processedYears = yearValues;
1438
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== undefined) {
1439
+ processedYears = processedYears.filter((year) => year <= maxParts.year);
1440
+ }
1441
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.year) !== undefined) {
1442
+ processedYears = processedYears.filter((year) => year >= minParts.year);
1443
+ }
1451
1444
  }
1452
- }
1453
- return processedYears.map((year) => ({
1454
- text: getYear(locale, { year, month: refParts.month, day: refParts.day }),
1455
- value: year,
1456
- }));
1445
+ else {
1446
+ const { year } = refParts;
1447
+ const maxYear = (_a = maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== null && _a !== void 0 ? _a : year;
1448
+ const minYear = (_b = minParts === null || minParts === void 0 ? void 0 : minParts.year) !== null && _b !== void 0 ? _b : year - 100;
1449
+ for (let i = minYear; i <= maxYear; i++) {
1450
+ processedYears.push(i);
1451
+ }
1452
+ }
1453
+ return processedYears.map((year) => ({
1454
+ text: getYear(locale, { year, month: refParts.month, day: refParts.day }),
1455
+ value: year,
1456
+ }));
1457
1457
  };
1458
1458
  /**
1459
1459
  * Given a starting date and an upper bound,
@@ -1461,10 +1461,10 @@ const getYearColumnData = (locale, refParts, minParts, maxParts, yearValues) =>
1461
1461
  * month objects in that range.
1462
1462
  */
1463
1463
  const getAllMonthsInRange = (currentParts, maxParts) => {
1464
- if (currentParts.month === maxParts.month && currentParts.year === maxParts.year) {
1465
- return [currentParts];
1466
- }
1467
- return [currentParts, ...getAllMonthsInRange(getNextMonth(currentParts), maxParts)];
1464
+ if (currentParts.month === maxParts.month && currentParts.year === maxParts.year) {
1465
+ return [currentParts];
1466
+ }
1467
+ return [currentParts, ...getAllMonthsInRange(getNextMonth(currentParts), maxParts)];
1468
1468
  };
1469
1469
  /**
1470
1470
  * Creates and returns picker items
@@ -1472,104 +1472,104 @@ const getAllMonthsInRange = (currentParts, maxParts) => {
1472
1472
  * Example: "Thu, Jun 2"
1473
1473
  */
1474
1474
  const getCombinedDateColumnData = (locale, todayParts, minParts, maxParts, dayValues, monthValues) => {
1475
- let items = [];
1476
- let parts = [];
1477
- /**
1478
- * Get all month objects from the min date
1479
- * to the max date. Note: Do not use getMonthColumnData
1480
- * as that function only generates dates within a
1481
- * single year.
1482
- */
1483
- let months = getAllMonthsInRange(minParts, maxParts);
1484
- /**
1485
- * Filter out any disallowed month values.
1486
- */
1487
- if (monthValues) {
1488
- months = months.filter(({ month }) => monthValues.includes(month));
1489
- }
1490
- /**
1491
- * Get all of the days in the month.
1492
- * From there, generate an array where
1493
- * each item has the month, date, and day
1494
- * of work as the text.
1495
- */
1496
- months.forEach((monthObject) => {
1497
- const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };
1498
- const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
1499
- month: 'short',
1500
- day: 'numeric',
1501
- weekday: 'short',
1502
- });
1503
- const dateParts = [];
1504
- const dateColumnItems = [];
1505
- monthDays.forEach((dayObject) => {
1506
- const isToday = isSameDay(Object.assign(Object.assign({}, referenceMonth), { day: dayObject.value }), todayParts);
1507
- /**
1508
- * Today's date should read as "Today" (localized)
1509
- * not the actual date string
1510
- */
1511
- dateColumnItems.push({
1512
- text: isToday ? getTodayLabel(locale) : dayObject.text,
1513
- value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,
1514
- });
1515
- /**
1516
- * When selecting a date in the wheel picker
1517
- * we need access to the raw datetime parts data.
1518
- * The picker column only accepts values of
1519
- * type string or number, so we need to return
1520
- * two sets of data: A data set to be passed
1521
- * to the picker column, and a data set to
1522
- * be used to reference the raw data when
1523
- * updating the picker column value.
1524
- */
1525
- dateParts.push({
1526
- month: referenceMonth.month,
1527
- year: referenceMonth.year,
1528
- day: dayObject.value,
1529
- });
1475
+ let items = [];
1476
+ let parts = [];
1477
+ /**
1478
+ * Get all month objects from the min date
1479
+ * to the max date. Note: Do not use getMonthColumnData
1480
+ * as that function only generates dates within a
1481
+ * single year.
1482
+ */
1483
+ let months = getAllMonthsInRange(minParts, maxParts);
1484
+ /**
1485
+ * Filter out any disallowed month values.
1486
+ */
1487
+ if (monthValues) {
1488
+ months = months.filter(({ month }) => monthValues.includes(month));
1489
+ }
1490
+ /**
1491
+ * Get all of the days in the month.
1492
+ * From there, generate an array where
1493
+ * each item has the month, date, and day
1494
+ * of work as the text.
1495
+ */
1496
+ months.forEach((monthObject) => {
1497
+ const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };
1498
+ const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
1499
+ month: 'short',
1500
+ day: 'numeric',
1501
+ weekday: 'short',
1502
+ });
1503
+ const dateParts = [];
1504
+ const dateColumnItems = [];
1505
+ monthDays.forEach((dayObject) => {
1506
+ const isToday = isSameDay(Object.assign(Object.assign({}, referenceMonth), { day: dayObject.value }), todayParts);
1507
+ /**
1508
+ * Today's date should read as "Today" (localized)
1509
+ * not the actual date string
1510
+ */
1511
+ dateColumnItems.push({
1512
+ text: isToday ? getTodayLabel(locale) : dayObject.text,
1513
+ value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,
1514
+ });
1515
+ /**
1516
+ * When selecting a date in the wheel picker
1517
+ * we need access to the raw datetime parts data.
1518
+ * The picker column only accepts values of
1519
+ * type string or number, so we need to return
1520
+ * two sets of data: A data set to be passed
1521
+ * to the picker column, and a data set to
1522
+ * be used to reference the raw data when
1523
+ * updating the picker column value.
1524
+ */
1525
+ dateParts.push({
1526
+ month: referenceMonth.month,
1527
+ year: referenceMonth.year,
1528
+ day: dayObject.value,
1529
+ });
1530
+ });
1531
+ parts = [...parts, ...dateParts];
1532
+ items = [...items, ...dateColumnItems];
1530
1533
  });
1531
- parts = [...parts, ...dateParts];
1532
- items = [...items, ...dateColumnItems];
1533
- });
1534
- return {
1535
- parts,
1536
- items,
1537
- };
1538
- };
1539
- const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
1540
- const computedHourCycle = getHourCycle(locale, hourCycle);
1541
- const use24Hour = is24Hour(computedHourCycle);
1542
- const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
1543
- const hoursItems = hours.map((hour) => {
1544
1534
  return {
1545
- text: getFormattedHour(hour, computedHourCycle),
1546
- value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1535
+ parts,
1536
+ items,
1547
1537
  };
1548
- });
1549
- const minutesItems = minutes.map((minute) => {
1550
- return {
1551
- text: addTimePadding(minute),
1552
- value: minute,
1553
- };
1554
- });
1555
- const dayPeriodItems = [];
1556
- if (am && !use24Hour) {
1557
- dayPeriodItems.push({
1558
- text: getLocalizedDayPeriod(locale, 'am'),
1559
- value: 'am',
1538
+ };
1539
+ const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
1540
+ const computedHourCycle = getHourCycle(locale, hourCycle);
1541
+ const use24Hour = is24Hour(computedHourCycle);
1542
+ const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
1543
+ const hoursItems = hours.map((hour) => {
1544
+ return {
1545
+ text: getFormattedHour(hour, computedHourCycle),
1546
+ value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1547
+ };
1560
1548
  });
1561
- }
1562
- if (pm && !use24Hour) {
1563
- dayPeriodItems.push({
1564
- text: getLocalizedDayPeriod(locale, 'pm'),
1565
- value: 'pm',
1549
+ const minutesItems = minutes.map((minute) => {
1550
+ return {
1551
+ text: addTimePadding(minute),
1552
+ value: minute,
1553
+ };
1566
1554
  });
1567
- }
1568
- return {
1569
- minutesData: minutesItems,
1570
- hoursData: hoursItems,
1571
- dayPeriodData: dayPeriodItems,
1572
- };
1555
+ const dayPeriodItems = [];
1556
+ if (am && !use24Hour) {
1557
+ dayPeriodItems.push({
1558
+ text: getLocalizedDayPeriod(locale, 'am'),
1559
+ value: 'am',
1560
+ });
1561
+ }
1562
+ if (pm && !use24Hour) {
1563
+ dayPeriodItems.push({
1564
+ text: getLocalizedDayPeriod(locale, 'pm'),
1565
+ value: 'pm',
1566
+ });
1567
+ }
1568
+ return {
1569
+ minutesData: minutesItems,
1570
+ hoursData: hoursItems,
1571
+ dayPeriodData: dayPeriodItems,
1572
+ };
1573
1573
  };
1574
1574
 
1575
1575
  export { getDayColumnData as A, getYearColumnData as B, isMonthFirstLocale as C, getTimeColumnsData as D, isLocaleDayPeriodRTL as E, getMonthAndYear as F, getDaysOfWeek as G, getDaysOfMonth as H, generateMonths as I, getHourCycle as J, getLocalizedTime as K, getMonthAndDay as L, formatValue as M, getNextYear as N, getPreviousYear as O, clampDate as P, parseAmPm as Q, calculateHourFromAMPM as R, getLocalizedDateTime as S, getMonthDayAndYear as T, getDay as a, isAfter as b, isSameDay as c, getPreviousMonth as d, getNextMonth as e, getPartsFromCalendarDay as f, generateDayAriaLabel as g, getEndOfWeek as h, isBefore as i, getStartOfWeek as j, getPreviousDay as k, getNextDay as l, getPreviousWeek as m, getNextWeek as n, parseMaxParts as o, parseMinParts as p, parseDate as q, convertToArrayOfNumbers as r, convertDataToISO as s, getToday as t, getClosestValidDate as u, validateParts as v, warnIfValueOutOfBounds as w, getNumDaysInMonth as x, getCombinedDateColumnData as y, getMonthColumnData as z };