voyager-ionic-core 7.5.5 → 7.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1858) hide show
  1. package/components/action-sheet.js +297 -287
  2. package/components/alert.js +477 -467
  3. package/components/animation.js +991 -990
  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 +1112 -1062
  13. package/components/dir.js +5 -5
  14. package/components/focus-visible.js +63 -63
  15. package/components/form-controller.js +45 -45
  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 -58
  29. package/components/index9.js +171 -171
  30. package/components/input-shims.js +488 -483
  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 +220 -220
  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 +1741 -1709
  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 +44 -44
  78. package/components/ion-fab.d.ts +2 -2
  79. package/components/ion-fab.js +75 -75
  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 +298 -298
  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 +498 -454
  94. package/components/ion-item-divider.d.ts +2 -2
  95. package/components/ion-item-divider.js +34 -34
  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 +67 -67
  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 -631
  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 -747
  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 +39 -39
  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 +402 -400
  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 -427
  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 +147 -147
  172. package/components/ion-tab-bar.d.ts +2 -2
  173. package/components/ion-tab-bar.js +77 -77
  174. package/components/ion-tab-button.d.ts +2 -2
  175. package/components/ion-tab-button.js +104 -104
  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 +443 -395
  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 +56 -56
  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 +33 -33
  202. package/components/list.js +50 -50
  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 +468 -468
  212. package/components/popover.js +1154 -1144
  213. package/components/radio-group.js +161 -159
  214. package/components/radio.js +248 -208
  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 +30 -30
  222. package/css/core.css +66 -8
  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 +1 -1
  233. package/css/ionic.bundle.css.map +1 -1
  234. package/css/padding.css +44 -0
  235. package/css/padding.css.map +1 -1
  236. package/css/structure.css +44 -0
  237. package/css/structure.css.map +1 -1
  238. package/css/text-alignment.css +44 -0
  239. package/css/text-alignment.css.map +1 -1
  240. package/css/text-transformation.css +44 -0
  241. package/css/text-transformation.css.map +1 -1
  242. package/css/typography.css +44 -0
  243. package/css/typography.css.map +1 -1
  244. package/css/utils.bundle.css +220 -0
  245. package/css/utils.bundle.css.map +1 -1
  246. package/dist/cjs/animation-9b401d39.js +1062 -0
  247. package/dist/cjs/{app-globals-1d4c1dbf.js → app-globals-7def22c8.js} +1 -1
  248. package/dist/cjs/button-active-962fe442.js +69 -0
  249. package/dist/cjs/{capacitor-2ffba62a.js → capacitor-c04564bf.js} +5 -5
  250. package/dist/cjs/compare-with-utils-df1001d7.js +44 -0
  251. package/dist/cjs/config-4f60b98a.js +199 -0
  252. package/dist/cjs/cubic-bezier-f2dccc53.js +92 -0
  253. package/dist/cjs/data-a5109f09.js +1672 -0
  254. package/dist/cjs/{dir-f1e0ca26.js → dir-94c21456.js} +5 -5
  255. package/dist/cjs/focus-visible-7a0ce04f.js +77 -0
  256. package/dist/cjs/form-controller-7d42a722.js +66 -0
  257. package/dist/cjs/framework-delegate-1c29b14a.js +144 -0
  258. package/dist/cjs/gesture-controller-c40c045a.js +197 -0
  259. package/dist/cjs/haptic-b882e0bb.js +212 -0
  260. package/dist/cjs/hardware-back-button-76833cac.js +76 -0
  261. package/dist/cjs/helpers-76bb7efb.js +441 -0
  262. package/dist/cjs/index-17ab7794.js +243 -0
  263. package/dist/cjs/index-3b012034.js +308 -0
  264. package/dist/cjs/{index-c2940dc1.js → index-50dcfe2f.js} +79 -15
  265. package/dist/cjs/{index-cc7dfb7c.js → index-5915f9b3.js} +3 -3
  266. package/dist/cjs/index-b4f986cd.js +198 -0
  267. package/dist/cjs/index-c8d52405.js +10 -0
  268. package/dist/cjs/index-d1b59ffa.js +459 -0
  269. package/dist/cjs/{index-da2c7a37.js → index-da15e99c.js} +60 -60
  270. package/dist/cjs/index.cjs.js +113 -113
  271. package/dist/cjs/input-shims-a23bb0f4.js +601 -0
  272. package/dist/cjs/input.utils-3d0166a2.js +138 -0
  273. package/dist/cjs/ion-accordion_2.cjs.entry.js +488 -488
  274. package/dist/cjs/ion-action-sheet.cjs.entry.js +260 -250
  275. package/dist/cjs/ion-alert.cjs.entry.js +442 -432
  276. package/dist/cjs/ion-app_8.cjs.entry.js +1151 -1151
  277. package/dist/cjs/ion-avatar_3.cjs.entry.js +29 -29
  278. package/dist/cjs/ion-back-button.cjs.entry.js +73 -73
  279. package/dist/cjs/ion-backdrop.cjs.entry.js +40 -40
  280. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +194 -194
  281. package/dist/cjs/ion-button_2.cjs.entry.js +303 -303
  282. package/dist/cjs/ion-card_5.cjs.entry.js +105 -105
  283. package/dist/cjs/ion-checkbox.cjs.entry.js +149 -147
  284. package/dist/cjs/ion-chip.cjs.entry.js +20 -20
  285. package/dist/cjs/ion-col_3.cjs.entry.js +136 -136
  286. package/dist/cjs/ion-datetime-button.cjs.entry.js +325 -325
  287. package/dist/cjs/ion-datetime_3.cjs.entry.js +2204 -2162
  288. package/dist/cjs/ion-fab_3.cjs.entry.js +150 -150
  289. package/dist/cjs/ion-img.cjs.entry.js +79 -79
  290. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +198 -190
  291. package/dist/cjs/ion-input.cjs.entry.js +443 -399
  292. package/dist/cjs/ion-item-option_3.cjs.entry.js +457 -457
  293. package/dist/cjs/ion-item_8.cjs.entry.js +441 -428
  294. package/dist/cjs/ion-loading.cjs.entry.js +220 -210
  295. package/dist/cjs/ion-menu_3.cjs.entry.js +670 -670
  296. package/dist/cjs/ion-modal.cjs.entry.js +1415 -1405
  297. package/dist/cjs/ion-nav_2.cjs.entry.js +904 -904
  298. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +331 -327
  299. package/dist/cjs/ion-picker-internal.cjs.entry.js +453 -453
  300. package/dist/cjs/ion-popover.cjs.entry.js +1108 -1098
  301. package/dist/cjs/ion-progress-bar.cjs.entry.js +40 -40
  302. package/dist/cjs/ion-radio_2.cjs.entry.js +321 -316
  303. package/dist/cjs/ion-range.cjs.entry.js +558 -556
  304. package/dist/cjs/ion-refresher_2.cjs.entry.js +786 -786
  305. package/dist/cjs/ion-reorder_2.cjs.entry.js +267 -267
  306. package/dist/cjs/ion-ripple-effect.cjs.entry.js +66 -66
  307. package/dist/cjs/ion-route_4.cjs.entry.js +693 -693
  308. package/dist/cjs/ion-searchbar.cjs.entry.js +360 -358
  309. package/dist/cjs/ion-segment_2.cjs.entry.js +507 -507
  310. package/dist/cjs/ion-select_3.cjs.entry.js +784 -768
  311. package/dist/cjs/ion-spinner.cjs.entry.js +46 -46
  312. package/dist/cjs/ion-split-pane.cjs.entry.js +119 -119
  313. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +138 -138
  314. package/dist/cjs/ion-tab_2.cjs.entry.js +187 -187
  315. package/dist/cjs/ion-text.cjs.entry.js +13 -13
  316. package/dist/cjs/ion-textarea.cjs.entry.js +401 -353
  317. package/dist/cjs/ion-toast.cjs.entry.js +771 -419
  318. package/dist/cjs/ion-toggle.cjs.entry.js +227 -225
  319. package/dist/cjs/ionic-global-a4edbf03.js +230 -0
  320. package/dist/cjs/ionic.cjs.js +5 -5
  321. package/dist/cjs/ios.transition-b5353f3e.js +654 -0
  322. package/dist/cjs/keyboard-0272231f.js +81 -0
  323. package/dist/cjs/{keyboard-38f2bb7b.js → keyboard-af1bb365.js} +62 -62
  324. package/dist/cjs/keyboard-controller-c05e747a.js +167 -0
  325. package/dist/cjs/loader.cjs.js +4 -4
  326. package/dist/cjs/lock-controller-6585a42a.js +40 -0
  327. package/dist/cjs/md.transition-67157dd9.js +59 -0
  328. package/dist/cjs/notch-controller-9735e7ac.js +155 -0
  329. package/dist/cjs/overlays-e77cc023.js +716 -0
  330. package/dist/cjs/spinner-configs-282fd50a.js +147 -0
  331. package/dist/cjs/status-tap-b5d77c08.js +42 -0
  332. package/dist/cjs/swipe-back-e37a1a5c.js +81 -0
  333. package/dist/cjs/theme-d1c573d2.js +48 -0
  334. package/dist/cjs/watch-options-f5f3e158.js +49 -0
  335. package/dist/collection/collection-manifest.json +7 -7
  336. package/dist/collection/components/accordion/accordion.ios.css +44 -0
  337. package/dist/collection/components/accordion/accordion.js +410 -410
  338. package/dist/collection/components/accordion/accordion.md.css +22 -0
  339. package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +31 -31
  340. package/dist/collection/components/accordion/test/accordion.e2e.js +24 -24
  341. package/dist/collection/components/accordion/test/accordion.spec.js +195 -0
  342. package/dist/collection/components/accordion/test/basic/accordion.e2e.js +26 -26
  343. package/dist/collection/components/accordion/test/multiple/accordion.e2e.js +18 -18
  344. package/dist/collection/components/accordion/test/nested/accordion.e2e.js +16 -16
  345. package/dist/collection/components/accordion/test/standalone/accordion.e2e.js +6 -6
  346. package/dist/collection/components/accordion-group/accordion-group.ios.css +44 -0
  347. package/dist/collection/components/accordion-group/accordion-group.js +421 -421
  348. package/dist/collection/components/accordion-group/accordion-group.md.css +66 -0
  349. package/dist/collection/components/action-sheet/action-sheet.ios.css +44 -0
  350. package/dist/collection/components/action-sheet/action-sheet.js +739 -729
  351. package/dist/collection/components/action-sheet/action-sheet.md.css +44 -0
  352. package/dist/collection/components/action-sheet/animations/ios.enter.js +18 -18
  353. package/dist/collection/components/action-sheet/animations/ios.leave.js +12 -12
  354. package/dist/collection/components/action-sheet/animations/md.enter.js +18 -18
  355. package/dist/collection/components/action-sheet/animations/md.leave.js +12 -12
  356. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +59 -59
  357. package/dist/collection/components/action-sheet/test/action-sheet-id.spec.js +32 -0
  358. package/dist/collection/components/action-sheet/test/basic/action-sheet-rendering.e2e.js +33 -33
  359. package/dist/collection/components/action-sheet/test/basic/action-sheet.e2e.js +74 -74
  360. package/dist/collection/components/action-sheet/test/basic/action-sheet.spec.js +18 -0
  361. package/dist/collection/components/action-sheet/test/basic/fixture.js +23 -23
  362. package/dist/collection/components/action-sheet/test/is-open/action-sheet.e2e.js +25 -25
  363. package/dist/collection/components/action-sheet/test/translucent/action-sheet.e2e.js +10 -10
  364. package/dist/collection/components/action-sheet/test/trigger/action-sheet.e2e.js +21 -21
  365. package/dist/collection/components/alert/alert.ios.css +85 -1
  366. package/dist/collection/components/alert/alert.js +977 -967
  367. package/dist/collection/components/alert/alert.md.css +115 -3
  368. package/dist/collection/components/alert/animations/ios.enter.js +19 -19
  369. package/dist/collection/components/alert/animations/ios.leave.js +13 -13
  370. package/dist/collection/components/alert/animations/md.enter.js +19 -19
  371. package/dist/collection/components/alert/animations/md.leave.js +10 -10
  372. package/dist/collection/components/alert/test/a11y/alert.e2e.js +116 -116
  373. package/dist/collection/components/alert/test/alert-id.spec.js +32 -0
  374. package/dist/collection/components/alert/test/alert.spec.js +37 -0
  375. package/dist/collection/components/alert/test/basic/alert-tablet.e2e.js +40 -0
  376. package/dist/collection/components/alert/test/basic/alert.e2e.js +96 -96
  377. package/dist/collection/components/alert/test/is-open/alert.e2e.js +25 -25
  378. package/dist/collection/components/alert/test/standalone/alert.e2e.js +9 -9
  379. package/dist/collection/components/alert/test/trigger/alert.e2e.js +21 -21
  380. package/dist/collection/components/app/app.js +116 -116
  381. package/dist/collection/components/app/test/safe-area/app.e2e.js +24 -24
  382. package/dist/collection/components/avatar/avatar.ios.css +44 -0
  383. package/dist/collection/components/avatar/avatar.js +17 -17
  384. package/dist/collection/components/avatar/avatar.md.css +44 -0
  385. package/dist/collection/components/avatar/test/basic/avatar.e2e.js +12 -12
  386. package/dist/collection/components/back-button/back-button.ios.css +44 -0
  387. package/dist/collection/components/back-button/back-button.js +214 -214
  388. package/dist/collection/components/back-button/back-button.md.css +44 -0
  389. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +6 -6
  390. package/dist/collection/components/back-button/test/back-button.spec.js +86 -0
  391. package/dist/collection/components/back-button/test/basic/back-button.e2e.js +6 -6
  392. package/dist/collection/components/back-button/test/toolbar/back-button.e2e.js +6 -6
  393. package/dist/collection/components/backdrop/backdrop.ios.css +44 -0
  394. package/dist/collection/components/backdrop/backdrop.js +131 -131
  395. package/dist/collection/components/backdrop/backdrop.md.css +44 -0
  396. package/dist/collection/components/badge/badge.ios.css +44 -0
  397. package/dist/collection/components/badge/badge.js +49 -49
  398. package/dist/collection/components/badge/badge.md.css +44 -0
  399. package/dist/collection/components/badge/test/a11y/badge.e2e.js +6 -6
  400. package/dist/collection/components/badge/test/basic/badge.e2e.js +6 -6
  401. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +44 -0
  402. package/dist/collection/components/breadcrumb/breadcrumb.js +395 -395
  403. package/dist/collection/components/breadcrumb/breadcrumb.md.css +44 -0
  404. package/dist/collection/components/breadcrumb/test/aria.spec.js +22 -0
  405. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +22 -0
  406. package/dist/collection/components/breadcrumbs/breadcrumbs.js +247 -247
  407. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +22 -0
  408. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +12 -12
  409. package/dist/collection/components/breadcrumbs/test/basic/breadcrumbs.e2e.js +6 -6
  410. package/dist/collection/components/breadcrumbs/test/breadcrumbs.spec.js +58 -0
  411. package/dist/collection/components/breadcrumbs/test/collapsed/breadcrumbs.e2e.js +6 -6
  412. package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +43 -43
  413. package/dist/collection/components/button/button.ios.css +66 -0
  414. package/dist/collection/components/button/button.js +541 -541
  415. package/dist/collection/components/button/button.md.css +44 -0
  416. package/dist/collection/components/button/test/a11y/button.e2e.js +21 -21
  417. package/dist/collection/components/button/test/basic/button.e2e.js +32 -32
  418. package/dist/collection/components/button/test/clear/button.e2e.js +6 -6
  419. package/dist/collection/components/button/test/expand/button.e2e.js +6 -6
  420. package/dist/collection/components/button/test/form-reference/button.e2e.js +84 -84
  421. package/dist/collection/components/button/test/form-reference/button.spec.js +26 -0
  422. package/dist/collection/components/button/test/icon/button.e2e.js +6 -6
  423. package/dist/collection/components/button/test/outline/button.e2e.js +6 -6
  424. package/dist/collection/components/button/test/round/button.e2e.js +6 -6
  425. package/dist/collection/components/button/test/size/button.e2e.js +22 -22
  426. package/dist/collection/components/button/test/strong/button.e2e.js +22 -22
  427. package/dist/collection/components/button/test/wrap/button.e2e.js +73 -73
  428. package/dist/collection/components/buttons/buttons.ios.css +66 -0
  429. package/dist/collection/components/buttons/buttons.js +46 -46
  430. package/dist/collection/components/buttons/buttons.md.css +66 -0
  431. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +21 -21
  432. package/dist/collection/components/card/card.ios.css +44 -0
  433. package/dist/collection/components/card/card.js +251 -251
  434. package/dist/collection/components/card/card.md.css +44 -0
  435. package/dist/collection/components/card/test/a11y/card.e2e.js +6 -6
  436. package/dist/collection/components/card/test/aria.spec.js +16 -0
  437. package/dist/collection/components/card/test/basic/card.e2e.js +38 -38
  438. package/dist/collection/components/card-content/card-content.ios.css +44 -0
  439. package/dist/collection/components/card-content/card-content.js +21 -21
  440. package/dist/collection/components/card-content/card-content.md.css +44 -0
  441. package/dist/collection/components/card-header/card-header.ios.css +44 -0
  442. package/dist/collection/components/card-header/card-header.js +70 -70
  443. package/dist/collection/components/card-header/card-header.md.css +44 -0
  444. package/dist/collection/components/card-header/test/basic/card-header.e2e.js +6 -6
  445. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +44 -0
  446. package/dist/collection/components/card-subtitle/card-subtitle.js +50 -50
  447. package/dist/collection/components/card-subtitle/card-subtitle.md.css +44 -0
  448. package/dist/collection/components/card-title/card-title.ios.css +44 -0
  449. package/dist/collection/components/card-title/card-title.js +50 -50
  450. package/dist/collection/components/card-title/card-title.md.css +44 -0
  451. package/dist/collection/components/checkbox/checkbox.ios.css +66 -6
  452. package/dist/collection/components/checkbox/checkbox.js +418 -415
  453. package/dist/collection/components/checkbox/checkbox.md.css +66 -6
  454. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +14 -14
  455. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +50 -50
  456. package/dist/collection/components/checkbox/test/checkbox.spec.js +34 -0
  457. package/dist/collection/components/checkbox/test/color/checkbox.e2e.js +11 -11
  458. package/dist/collection/components/checkbox/test/indeterminate/checkbox.e2e.js +6 -6
  459. package/dist/collection/components/checkbox/test/item/checkbox.e2e.js +29 -29
  460. package/dist/collection/components/checkbox/test/label/checkbox.e2e.js +75 -75
  461. package/dist/collection/components/checkbox/test/legacy/basic/checkbox.e2e.js +45 -45
  462. package/dist/collection/components/checkbox/test/legacy/indeterminate/checkbox.e2e.js +6 -6
  463. package/dist/collection/components/checkbox/test/states/checkbox.e2e.js +21 -21
  464. package/dist/collection/components/chip/chip.ios.css +22 -0
  465. package/dist/collection/components/chip/chip.js +90 -90
  466. package/dist/collection/components/chip/chip.md.css +22 -0
  467. package/dist/collection/components/chip/test/a11y/chip.e2e.js +19 -19
  468. package/dist/collection/components/chip/test/basic/chip.e2e.js +42 -42
  469. package/dist/collection/components/chip/test/states/chip.e2e.js +14 -14
  470. package/dist/collection/components/col/col.css +66 -0
  471. package/dist/collection/components/col/col.js +536 -536
  472. package/dist/collection/components/content/content.css +22 -0
  473. package/dist/collection/components/content/content.js +745 -745
  474. package/dist/collection/components/content/test/basic/content.e2e.js +6 -6
  475. package/dist/collection/components/content/test/fixed/content.e2e.js +6 -6
  476. package/dist/collection/components/content/test/fullscreen/content.e2e.js +6 -6
  477. package/dist/collection/components/content/test/standalone/content.e2e.js +5 -5
  478. package/dist/collection/components/datetime/datetime.ios.css +45 -0
  479. package/dist/collection/components/datetime/datetime.js +2264 -2232
  480. package/dist/collection/components/datetime/datetime.md.css +45 -0
  481. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +58 -58
  482. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +43 -0
  483. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +241 -241
  484. package/dist/collection/components/datetime/test/color/datetime.e2e.js +9 -9
  485. package/dist/collection/components/datetime/test/comparison.spec.js +43 -0
  486. package/dist/collection/components/datetime/test/custom/datetime.e2e.js +37 -37
  487. package/dist/collection/components/datetime/test/data.spec.js +456 -0
  488. package/dist/collection/components/datetime/test/datetime.e2e.js +29 -29
  489. package/dist/collection/components/datetime/test/disable-dates/datetime.e2e.js +119 -119
  490. package/dist/collection/components/datetime/test/disabled/datetime.e2e.js +43 -43
  491. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +33 -0
  492. package/dist/collection/components/datetime/test/display/datetime.e2e.js +86 -86
  493. package/dist/collection/components/datetime/test/first-day-of-week/datetime.e2e.js +6 -6
  494. package/dist/collection/components/datetime/test/format.spec.js +124 -0
  495. package/dist/collection/components/datetime/test/helpers.spec.js +72 -0
  496. package/dist/collection/components/datetime/test/highlighted-dates/datetime.e2e.js +76 -76
  497. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +21 -21
  498. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +98 -98
  499. package/dist/collection/components/datetime/test/manipulation.spec.js +565 -0
  500. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +178 -178
  501. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +17 -17
  502. package/dist/collection/components/datetime/test/multiple/datetime.e2e.js +170 -170
  503. package/dist/collection/components/datetime/test/parse.spec.js +222 -0
  504. package/dist/collection/components/datetime/test/position/datetime.e2e.js +14 -14
  505. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +263 -263
  506. package/dist/collection/components/datetime/test/prefer-wheel/datetime.spec.js +27 -0
  507. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +137 -137
  508. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +86 -86
  509. package/dist/collection/components/datetime/test/set-value/datetime.e2e.js +40 -40
  510. package/dist/collection/components/datetime/test/state.spec.js +114 -0
  511. package/dist/collection/components/datetime/test/time-label/datetime.e2e.js +13 -13
  512. package/dist/collection/components/datetime/test/values/datetime.e2e.js +77 -77
  513. package/dist/collection/components/datetime/utils/comparison.js +22 -22
  514. package/dist/collection/components/datetime/utils/data.js +394 -394
  515. package/dist/collection/components/datetime/utils/format.js +143 -143
  516. package/dist/collection/components/datetime/utils/helpers.js +74 -74
  517. package/dist/collection/components/datetime/utils/manipulation.js +332 -282
  518. package/dist/collection/components/datetime/utils/parse.js +139 -139
  519. package/dist/collection/components/datetime/utils/state.js +123 -123
  520. package/dist/collection/components/datetime-button/datetime-button.css +22 -0
  521. package/dist/collection/components/datetime-button/datetime-button.js +399 -399
  522. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +11 -11
  523. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +123 -123
  524. package/dist/collection/components/datetime-button/test/disabled/datetime-button.e2e.js +13 -13
  525. package/dist/collection/components/datetime-button/test/multiple/datetime-button.e2e.js +38 -38
  526. package/dist/collection/components/datetime-button/test/overlays/datetime-button.e2e.js +102 -102
  527. package/dist/collection/components/fab/fab.css +88 -0
  528. package/dist/collection/components/fab/fab.js +179 -179
  529. package/dist/collection/components/fab/test/basic/fab.e2e.js +50 -50
  530. package/dist/collection/components/fab/test/custom-size/fab.e2e.js +6 -6
  531. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +25 -25
  532. package/dist/collection/components/fab/test/states/fab.e2e.js +6 -6
  533. package/dist/collection/components/fab/test/translucent/fab.e2e.js +17 -17
  534. package/dist/collection/components/fab-button/fab-button.ios.css +44 -0
  535. package/dist/collection/components/fab-button/fab-button.js +374 -374
  536. package/dist/collection/components/fab-button/fab-button.md.css +44 -0
  537. package/dist/collection/components/fab-button/test/a11y/fab-button.e2e.js +6 -6
  538. package/dist/collection/components/fab-list/fab-list.css +44 -0
  539. package/dist/collection/components/fab-list/fab-list.js +79 -79
  540. package/dist/collection/components/footer/footer.ios.css +44 -0
  541. package/dist/collection/components/footer/footer.js +135 -135
  542. package/dist/collection/components/footer/footer.md.css +44 -0
  543. package/dist/collection/components/footer/footer.utils.js +25 -25
  544. package/dist/collection/components/footer/test/basic/footer.e2e.js +18 -18
  545. package/dist/collection/components/footer/test/fade/footer.e2e.js +10 -10
  546. package/dist/collection/components/footer/test/scroll-target/footer.e2e.js +15 -15
  547. package/dist/collection/components/footer/test/with-tabs/footer.e2e.js +6 -6
  548. package/dist/collection/components/grid/grid.css +66 -0
  549. package/dist/collection/components/grid/grid.js +44 -44
  550. package/dist/collection/components/grid/test/basic/grid.e2e.js +6 -6
  551. package/dist/collection/components/grid/test/offsets/grid.e2e.js +6 -6
  552. package/dist/collection/components/grid/test/padding/grid.e2e.js +6 -6
  553. package/dist/collection/components/grid/test/sizes/grid.e2e.js +6 -6
  554. package/dist/collection/components/header/header.ios.css +44 -0
  555. package/dist/collection/components/header/header.js +181 -181
  556. package/dist/collection/components/header/header.md.css +44 -0
  557. package/dist/collection/components/header/header.utils.js +148 -148
  558. package/dist/collection/components/header/test/a11y/header.e2e.js +18 -18
  559. package/dist/collection/components/header/test/basic/header.e2e.js +23 -23
  560. package/dist/collection/components/header/test/condense/header.e2e.js +25 -25
  561. package/dist/collection/components/header/test/fade/header.e2e.js +10 -10
  562. package/dist/collection/components/header/test/scroll-target/header.e2e.js +15 -15
  563. package/dist/collection/components/icon/test/basic/icon.e2e.js +6 -6
  564. package/dist/collection/components/icon/test/dir/icon.e2e.js +11 -11
  565. package/dist/collection/components/img/img.js +177 -177
  566. package/dist/collection/components/img/test/basic/img.e2e.js +62 -62
  567. package/dist/collection/components/img/test/draggable/img.e2e.js +10 -10
  568. package/dist/collection/components/infinite-scroll/infinite-scroll.js +279 -271
  569. package/dist/collection/components/infinite-scroll/test/basic/infinite-scroll.e2e.js +11 -11
  570. package/dist/collection/components/infinite-scroll/test/scroll-target/infinite-scroll.e2e.js +11 -11
  571. package/dist/collection/components/infinite-scroll/test/small-dom-update/infinite-scroll.e2e.js +31 -0
  572. package/dist/collection/components/infinite-scroll/test/top/infinite-scroll.e2e.js +11 -11
  573. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +44 -0
  574. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +86 -86
  575. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +44 -0
  576. package/dist/collection/components/infinite-scroll-content/test/infinite-scroll-content.spec.js +37 -0
  577. package/dist/collection/components/input/input.ios.css +76 -3
  578. package/dist/collection/components/input/input.js +1250 -1204
  579. package/dist/collection/components/input/input.md.css +145 -12
  580. package/dist/collection/components/input/input.utils.js +22 -22
  581. package/dist/collection/components/input/test/a11y/input.e2e.js +12 -12
  582. package/dist/collection/components/input/test/basic/input.e2e.js +63 -63
  583. package/dist/collection/components/input/test/bottom-content/input.e2e.js +89 -89
  584. package/dist/collection/components/input/test/card/input.e2e.js +6 -6
  585. package/dist/collection/components/input/test/clear-on-edit/input.e2e.js +45 -25
  586. package/dist/collection/components/input/test/color/input.e2e.js +88 -88
  587. package/dist/collection/components/input/test/fill/input.e2e.js +63 -63
  588. package/dist/collection/components/input/test/highlight/input.e2e.js +52 -52
  589. package/dist/collection/components/input/test/input.e2e.js +6 -6
  590. package/dist/collection/components/input/test/input.spec.js +85 -0
  591. package/dist/collection/components/input/test/item/input.e2e.js +11 -11
  592. package/dist/collection/components/input/test/item/input.spec.js +24 -0
  593. package/dist/collection/components/input/test/label-placement/input.e2e.js +104 -104
  594. package/dist/collection/components/input/test/legacy/a11y/input.e2e.js +15 -15
  595. package/dist/collection/components/input/test/legacy/basic/input.e2e.js +102 -102
  596. package/dist/collection/components/input/test/legacy/clear-on-edit/input.e2e.js +44 -44
  597. package/dist/collection/components/input/test/legacy/input-events.e2e.js +56 -56
  598. package/dist/collection/components/input/test/legacy/masking/input.e2e.js +15 -15
  599. package/dist/collection/components/input/test/legacy/spec/input.e2e.js +8 -8
  600. package/dist/collection/components/input/test/slot/input.e2e.js +51 -0
  601. package/dist/collection/components/input/test/states/input.e2e.js +11 -11
  602. package/dist/collection/components/item/item.ios.css +85 -3
  603. package/dist/collection/components/item/item.js +614 -614
  604. package/dist/collection/components/item/item.md.css +129 -3
  605. package/dist/collection/components/item/test/a11y/item.e2e.js +47 -47
  606. package/dist/collection/components/item/test/a11y/item.spec.js +48 -0
  607. package/dist/collection/components/item/test/alignment/item.e2e.js +6 -6
  608. package/dist/collection/components/item/test/basic/item.e2e.js +16 -16
  609. package/dist/collection/components/item/test/buttons/item.e2e.js +18 -18
  610. package/dist/collection/components/item/test/colors/item.e2e.js +6 -6
  611. package/dist/collection/components/item/test/counter/item.e2e.js +34 -34
  612. package/dist/collection/components/item/test/css-variables/item.e2e.js +6 -6
  613. package/dist/collection/components/item/test/disabled/item.e2e.js +6 -7
  614. package/dist/collection/components/item/test/dividers/item.e2e.js +6 -6
  615. package/dist/collection/components/item/test/groups/item.e2e.js +8 -8
  616. package/dist/collection/components/item/test/highlight/item.e2e.js +6 -6
  617. package/dist/collection/components/item/test/icons/item.e2e.js +6 -6
  618. package/dist/collection/components/item/test/images/item.e2e.js +6 -6
  619. package/dist/collection/components/item/test/inputs/item.e2e.js +139 -139
  620. package/dist/collection/components/item/test/legacy/alignment/item.e2e.js +6 -6
  621. package/dist/collection/components/item/test/legacy/disabled/item.e2e.js +6 -6
  622. package/dist/collection/components/item/test/legacy/fill/item.e2e.js +6 -6
  623. package/dist/collection/components/item/test/legacy/form/item.e2e.js +6 -6
  624. package/dist/collection/components/item/test/lines/item.e2e.js +6 -6
  625. package/dist/collection/components/item/test/media/item.e2e.js +6 -6
  626. package/dist/collection/components/item/test/reorder/item.e2e.js +8 -8
  627. package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +6 -6
  628. package/dist/collection/components/item/test/states/item.e2e.js +6 -6
  629. package/dist/collection/components/item-divider/item-divider.ios.css +66 -0
  630. package/dist/collection/components/item-divider/item-divider.js +71 -71
  631. package/dist/collection/components/item-divider/item-divider.md.css +66 -0
  632. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +11 -11
  633. package/dist/collection/components/item-divider/test/basic/item-divider.e2e.js +25 -25
  634. package/dist/collection/components/item-divider/test/spec/item-divider.e2e.js +8 -8
  635. package/dist/collection/components/item-group/item-group.ios.css +44 -0
  636. package/dist/collection/components/item-group/item-group.js +22 -22
  637. package/dist/collection/components/item-group/item-group.md.css +44 -0
  638. package/dist/collection/components/item-option/item-option.ios.css +44 -0
  639. package/dist/collection/components/item-option/item-option.js +197 -197
  640. package/dist/collection/components/item-option/item-option.md.css +44 -0
  641. package/dist/collection/components/item-options/item-options.ios.css +66 -0
  642. package/dist/collection/components/item-options/item-options.js +110 -110
  643. package/dist/collection/components/item-options/item-options.md.css +66 -0
  644. package/dist/collection/components/item-sliding/item-sliding.css +22 -0
  645. package/dist/collection/components/item-sliding/item-sliding.js +538 -538
  646. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +5 -5
  647. package/dist/collection/components/item-sliding/test/async/item-sliding.e2e.js +25 -25
  648. package/dist/collection/components/item-sliding/test/basic/item-sliding.e2e.js +87 -87
  649. package/dist/collection/components/item-sliding/test/icons/item-sliding.e2e.js +20 -20
  650. package/dist/collection/components/item-sliding/test/scroll-target/item-sliding.e2e.js +18 -18
  651. package/dist/collection/components/item-sliding/test/test.utils.js +20 -20
  652. package/dist/collection/components/label/label.ios.css +80 -3
  653. package/dist/collection/components/label/label.js +174 -174
  654. package/dist/collection/components/label/label.md.css +80 -3
  655. package/dist/collection/components/label/test/a11y/label.e2e.js +21 -21
  656. package/dist/collection/components/label/test/basic/label.e2e.js +21 -21
  657. package/dist/collection/components/label/test/color/label.e2e.js +21 -21
  658. package/dist/collection/components/label/test/headings/label.e2e.js +5 -5
  659. package/dist/collection/components/list/list.ios.css +66 -0
  660. package/dist/collection/components/list/list.js +101 -101
  661. package/dist/collection/components/list/list.md.css +66 -0
  662. package/dist/collection/components/list/test/a11y/list.e2e.js +6 -6
  663. package/dist/collection/components/list/test/basic/list.e2e.js +6 -6
  664. package/dist/collection/components/list/test/inset/list.e2e.js +16 -16
  665. package/dist/collection/components/list/test/lines/list.e2e.js +40 -40
  666. package/dist/collection/components/list-header/list-header.ios.css +66 -0
  667. package/dist/collection/components/list-header/list-header.js +69 -69
  668. package/dist/collection/components/list-header/list-header.md.css +66 -0
  669. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +6 -6
  670. package/dist/collection/components/list-header/test/basic/list-header.e2e.js +14 -14
  671. package/dist/collection/components/loading/animations/ios.enter.js +19 -19
  672. package/dist/collection/components/loading/animations/ios.leave.js +13 -13
  673. package/dist/collection/components/loading/animations/md.enter.js +19 -19
  674. package/dist/collection/components/loading/animations/md.leave.js +13 -13
  675. package/dist/collection/components/loading/loading.ios.css +44 -0
  676. package/dist/collection/components/loading/loading.js +730 -720
  677. package/dist/collection/components/loading/loading.md.css +44 -0
  678. package/dist/collection/components/loading/test/a11y/loading.e2e.js +26 -26
  679. package/dist/collection/components/loading/test/basic/loading.e2e.js +60 -60
  680. package/dist/collection/components/loading/test/basic/loading.spec.js +16 -0
  681. package/dist/collection/components/loading/test/is-open/loading.e2e.js +17 -17
  682. package/dist/collection/components/loading/test/loading-id.spec.js +32 -0
  683. package/dist/collection/components/loading/test/loading.spec.js +37 -0
  684. package/dist/collection/components/loading/test/standalone/loading.e2e.js +13 -13
  685. package/dist/collection/components/loading/test/trigger/loading.e2e.js +21 -21
  686. package/dist/collection/components/menu/menu.ios.css +47 -4
  687. package/dist/collection/components/menu/menu.js +956 -956
  688. package/dist/collection/components/menu/menu.md.css +47 -4
  689. package/dist/collection/components/menu/test/a11y/menu.e2e.js +13 -13
  690. package/dist/collection/components/menu/test/basic/menu.e2e.js +102 -102
  691. package/dist/collection/components/menu/test/custom/menu.e2e.js +61 -0
  692. package/dist/collection/components/menu/test/disable/menu.e2e.js +44 -44
  693. package/dist/collection/components/menu/test/focus-trap/menu.e2e.js +61 -61
  694. package/dist/collection/components/menu/test/multiple/menu.e2e.js +49 -49
  695. package/dist/collection/components/menu/test/safe-area/menu.e2e.js +54 -54
  696. package/dist/collection/components/menu-button/menu-button.ios.css +44 -0
  697. package/dist/collection/components/menu-button/menu-button.js +173 -173
  698. package/dist/collection/components/menu-button/menu-button.md.css +44 -0
  699. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +12 -12
  700. package/dist/collection/components/menu-button/test/async/menu-button.e2e.js +12 -12
  701. package/dist/collection/components/menu-button/test/basic/menu-button.e2e.js +6 -6
  702. package/dist/collection/components/menu-toggle/menu-toggle-util.js +2 -2
  703. package/dist/collection/components/menu-toggle/menu-toggle.js +93 -93
  704. package/dist/collection/components/menu-toggle/test/basic/menu-toggle.e2e.js +33 -33
  705. package/dist/collection/components/modal/animations/ios.enter.js +81 -81
  706. package/dist/collection/components/modal/animations/ios.leave.js +74 -74
  707. package/dist/collection/components/modal/animations/md.enter.js +21 -21
  708. package/dist/collection/components/modal/animations/md.leave.js +15 -15
  709. package/dist/collection/components/modal/animations/sheet.js +43 -43
  710. package/dist/collection/components/modal/gestures/sheet.js +289 -289
  711. package/dist/collection/components/modal/gestures/swipe-to-close.js +248 -247
  712. package/dist/collection/components/modal/gestures/utils.js +39 -39
  713. package/dist/collection/components/modal/modal.ios.css +44 -0
  714. package/dist/collection/components/modal/modal.js +1290 -1280
  715. package/dist/collection/components/modal/modal.md.css +44 -0
  716. package/dist/collection/components/modal/test/a11y/modal.e2e.js +12 -12
  717. package/dist/collection/components/modal/test/a11y/modal.spec.js +22 -0
  718. package/dist/collection/components/modal/test/basic/modal.e2e.js +110 -110
  719. package/dist/collection/components/modal/test/basic/modal.spec.js +16 -0
  720. package/dist/collection/components/modal/test/can-dismiss/modal-card.e2e.js +44 -44
  721. package/dist/collection/components/modal/test/can-dismiss/modal-sheet.e2e.js +62 -62
  722. package/dist/collection/components/modal/test/can-dismiss/modal.e2e.js +16 -16
  723. package/dist/collection/components/modal/test/can-dismiss/modal.spec.js +191 -0
  724. package/dist/collection/components/modal/test/card/modal-card.e2e.js +69 -69
  725. package/dist/collection/components/modal/test/card/modal-tablet.e2e.js +67 -67
  726. package/dist/collection/components/modal/test/card-nav/modal.e2e.js +26 -26
  727. package/dist/collection/components/modal/test/card-refresher/modal.e2e.js +14 -14
  728. package/dist/collection/components/modal/test/card-scroll-target/modal.e2e.js +34 -34
  729. package/dist/collection/components/modal/test/custom/modal.e2e.js +16 -16
  730. package/dist/collection/components/modal/test/custom-dialog/modal.e2e.js +12 -12
  731. package/dist/collection/components/modal/test/dark-mode/model.e2e.js +12 -12
  732. package/dist/collection/components/modal/test/fixtures.js +21 -21
  733. package/dist/collection/components/modal/test/inline/modal.e2e.js +34 -34
  734. package/dist/collection/components/modal/test/is-open/modal.e2e.js +17 -17
  735. package/dist/collection/components/modal/test/modal-id.spec.js +32 -0
  736. package/dist/collection/components/modal/test/sheet/modal.e2e.js +178 -178
  737. package/dist/collection/components/modal/test/standalone/modal.e2e.js +12 -12
  738. package/dist/collection/components/modal/test/trigger/modal.e2e.js +23 -23
  739. package/dist/collection/components/modal/utils.js +55 -55
  740. package/dist/collection/components/modal/utils.spec.js +7 -7
  741. package/dist/collection/components/nav/nav.css +22 -0
  742. package/dist/collection/components/nav/nav.js +1748 -1748
  743. package/dist/collection/components/nav/test/basic/nav.e2e.js +58 -58
  744. package/dist/collection/components/nav/test/modal-navigation/nav.e2e.js +52 -52
  745. package/dist/collection/components/nav/test/nav-controller.spec.js +749 -0
  746. package/dist/collection/components/nav/test/nested/nav.e2e.js +54 -54
  747. package/dist/collection/components/nav/test/routing/nav.e2e.js +75 -75
  748. package/dist/collection/components/nav/view-controller.js +52 -52
  749. package/dist/collection/components/nav-link/nav-link-utils.js +16 -16
  750. package/dist/collection/components/nav-link/nav-link.js +106 -106
  751. package/dist/collection/components/note/note.ios.css +44 -0
  752. package/dist/collection/components/note/note.js +49 -49
  753. package/dist/collection/components/note/note.md.css +44 -0
  754. package/dist/collection/components/note/test/a11y/note.e2e.js +59 -16
  755. package/dist/collection/components/note/test/basic/note.e2e.js +33 -33
  756. package/dist/collection/components/picker/animations/ios.enter.js +18 -18
  757. package/dist/collection/components/picker/animations/ios.leave.js +14 -14
  758. package/dist/collection/components/picker/picker.ios.css +44 -0
  759. package/dist/collection/components/picker/picker.js +782 -772
  760. package/dist/collection/components/picker/picker.md.css +44 -0
  761. package/dist/collection/components/picker/test/basic/picker.e2e.js +17 -17
  762. package/dist/collection/components/picker/test/is-open/picker.e2e.js +17 -17
  763. package/dist/collection/components/picker/test/picker-id.spec.js +32 -0
  764. package/dist/collection/components/picker/test/trigger/picker.e2e.js +21 -21
  765. package/dist/collection/components/picker-column/picker-column.ios.css +44 -0
  766. package/dist/collection/components/picker-column/picker-column.js +377 -377
  767. package/dist/collection/components/picker-column/picker-column.md.css +44 -0
  768. package/dist/collection/components/picker-column/test/picker-column-aria.spec.js +35 -0
  769. package/dist/collection/components/picker-column/test/picker-column-dynamic.spec.js +29 -0
  770. package/dist/collection/components/picker-column/test/picker-column.spec.js +17 -0
  771. package/dist/collection/components/picker-column/test/standalone/picker-column.e2e.js +27 -27
  772. package/dist/collection/components/picker-column/test/test.utils.js +29 -29
  773. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -3
  774. package/dist/collection/components/picker-column-internal/picker-column-internal.js +523 -501
  775. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +55 -3
  776. package/dist/collection/components/picker-column-internal/test/basic/picker-column-internal.e2e.js +53 -53
  777. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +66 -37
  778. package/dist/collection/components/picker-internal/picker-internal.ios.css +44 -0
  779. package/dist/collection/components/picker-internal/picker-internal.js +517 -517
  780. package/dist/collection/components/picker-internal/picker-internal.md.css +44 -0
  781. package/dist/collection/components/picker-internal/test/a11y/picker-internal.e2e.js +6 -6
  782. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +76 -76
  783. package/dist/collection/components/picker-internal/test/keyboard-entry/picker-internal.e2e.js +39 -39
  784. package/dist/collection/components/popover/animations/ios.enter.js +79 -79
  785. package/dist/collection/components/popover/animations/ios.leave.js +28 -28
  786. package/dist/collection/components/popover/animations/md.enter.js +58 -58
  787. package/dist/collection/components/popover/animations/md.leave.js +19 -19
  788. package/dist/collection/components/popover/popover.ios.css +44 -0
  789. package/dist/collection/components/popover/popover.js +1189 -1179
  790. package/dist/collection/components/popover/popover.md.css +44 -0
  791. package/dist/collection/components/popover/test/adjustment/popover.e2e.js +22 -22
  792. package/dist/collection/components/popover/test/arrow/popover.e2e.js +15 -15
  793. package/dist/collection/components/popover/test/async/popover.e2e.js +29 -29
  794. package/dist/collection/components/popover/test/basic/popover.e2e.js +108 -108
  795. package/dist/collection/components/popover/test/basic/popover.spec.js +16 -0
  796. package/dist/collection/components/popover/test/dismiss-on-select/popover.e2e.js +26 -26
  797. package/dist/collection/components/popover/test/fixture.js +16 -16
  798. package/dist/collection/components/popover/test/inline/popover.e2e.js +18 -18
  799. package/dist/collection/components/popover/test/is-open/popover.e2e.js +5 -5
  800. package/dist/collection/components/popover/test/nested/popover.e2e.js +81 -81
  801. package/dist/collection/components/popover/test/popover-id.spec.js +32 -0
  802. package/dist/collection/components/popover/test/position/popover.e2e.js +18 -18
  803. package/dist/collection/components/popover/test/reference/popover.e2e.js +14 -14
  804. package/dist/collection/components/popover/test/size/popover.e2e.js +29 -29
  805. package/dist/collection/components/popover/test/standalone/popover.e2e.js +7 -7
  806. package/dist/collection/components/popover/test/test.utils.js +23 -23
  807. package/dist/collection/components/popover/test/trigger/popover.e2e.js +35 -35
  808. package/dist/collection/components/popover/test/util.spec.js +53 -0
  809. package/dist/collection/components/popover/utils.js +606 -606
  810. package/dist/collection/components/progress-bar/progress-bar.ios.css +22 -0
  811. package/dist/collection/components/progress-bar/progress-bar.js +145 -145
  812. package/dist/collection/components/progress-bar/progress-bar.md.css +22 -0
  813. package/dist/collection/components/progress-bar/test/basic/progress-bar.e2e.js +6 -6
  814. package/dist/collection/components/progress-bar/test/buffer/progress-bar.e2e.js +10 -10
  815. package/dist/collection/components/progress-bar/test/determinate/progress-bar.e2e.js +10 -10
  816. package/dist/collection/components/radio/radio.ios.css +66 -6
  817. package/dist/collection/components/radio/radio.js +453 -449
  818. package/dist/collection/components/radio/radio.md.css +66 -6
  819. package/dist/collection/components/radio/test/a11y/radio.e2e.js +41 -40
  820. package/dist/collection/components/radio/test/color/radio.e2e.js +11 -11
  821. package/dist/collection/components/radio/test/item/radio.e2e.js +37 -37
  822. package/dist/collection/components/radio/test/label-placement/radio.e2e.js +70 -70
  823. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +29 -29
  824. package/dist/collection/components/radio/test/legacy/basic/radio.e2e.js +43 -43
  825. package/dist/collection/components/radio/test/radio.spec.js +60 -0
  826. package/dist/collection/components/radio/test/states/radio.e2e.js +21 -21
  827. package/dist/collection/components/radio-group/radio-group.js +279 -255
  828. package/dist/collection/components/radio-group/test/basic/radio-group.e2e.js +35 -35
  829. package/dist/collection/components/radio-group/test/fixtures.js +22 -22
  830. package/dist/collection/components/radio-group/test/form/radio-group.e2e.js +39 -39
  831. package/dist/collection/components/radio-group/test/legacy/basic/radio-group.e2e.js +59 -59
  832. package/dist/collection/components/radio-group/test/legacy/form/radio-group.e2e.js +22 -22
  833. package/dist/collection/components/radio-group/test/legacy/search/radio-group.e2e.js +27 -27
  834. package/dist/collection/components/radio-group/test/radio-group-events.e2e.js +42 -42
  835. package/dist/collection/components/radio-group/test/radio-group.spec.js +69 -0
  836. package/dist/collection/components/radio-group/test/search/radio-group.e2e.js +23 -23
  837. package/dist/collection/components/range/range.ios.css +44 -6
  838. package/dist/collection/components/range/range.js +1001 -998
  839. package/dist/collection/components/range/range.md.css +44 -6
  840. package/dist/collection/components/range/test/a11y/range.e2e.js +46 -46
  841. package/dist/collection/components/range/test/active-bar-start/range.e2e.js +6 -6
  842. package/dist/collection/components/range/test/basic/range.e2e.js +23 -23
  843. package/dist/collection/components/range/test/color/range.e2e.js +6 -6
  844. package/dist/collection/components/range/test/custom/range.e2e.js +6 -6
  845. package/dist/collection/components/range/test/item/range.e2e.js +28 -28
  846. package/dist/collection/components/range/test/label/range.e2e.js +99 -99
  847. package/dist/collection/components/range/test/label/range.spec.js +23 -0
  848. package/dist/collection/components/range/test/legacy/a11y/range.e2e.js +25 -25
  849. package/dist/collection/components/range/test/legacy/active-bar-start/range.e2e.js +6 -6
  850. package/dist/collection/components/range/test/legacy/basic/range.e2e.js +61 -61
  851. package/dist/collection/components/range/test/legacy/range-events.e2e.js +80 -80
  852. package/dist/collection/components/range/test/legacy/scroll-target/range.e2e.js +23 -23
  853. package/dist/collection/components/range/test/range-events.e2e.js +135 -135
  854. package/dist/collection/components/range/test/range.spec.js +221 -0
  855. package/dist/collection/components/range/test/scroll-target/range.e2e.js +23 -23
  856. package/dist/collection/components/range/test/states/range.e2e.js +21 -21
  857. package/dist/collection/components/refresher/refresher.ios.css +44 -0
  858. package/dist/collection/components/refresher/refresher.js +806 -806
  859. package/dist/collection/components/refresher/refresher.md.css +44 -0
  860. package/dist/collection/components/refresher/refresher.utils.js +148 -148
  861. package/dist/collection/components/refresher/test/basic/refresher.e2e.js +25 -25
  862. package/dist/collection/components/refresher/test/scroll-target/refresher.e2e.js +25 -25
  863. package/dist/collection/components/refresher/test/test.utils.js +5 -5
  864. package/dist/collection/components/refresher-content/refresher-content.js +131 -131
  865. package/dist/collection/components/refresher-content/test/refresher-content.spec.js +46 -0
  866. package/dist/collection/components/reorder/reorder.ios.css +22 -0
  867. package/dist/collection/components/reorder/reorder.js +37 -37
  868. package/dist/collection/components/reorder/reorder.md.css +22 -0
  869. package/dist/collection/components/reorder-group/reorder-group.css +22 -0
  870. package/dist/collection/components/reorder-group/reorder-group.js +327 -327
  871. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +6 -6
  872. package/dist/collection/components/reorder-group/test/basic/reorder-group.e2e.js +11 -11
  873. package/dist/collection/components/reorder-group/test/interactive/reorder-group.e2e.js +21 -21
  874. package/dist/collection/components/reorder-group/test/nested/reorder-group.e2e.js +21 -21
  875. package/dist/collection/components/reorder-group/test/scroll-target/reorder-group.e2e.js +21 -21
  876. package/dist/collection/components/ripple-effect/ripple-effect.css +22 -0
  877. package/dist/collection/components/ripple-effect/ripple-effect.js +135 -135
  878. package/dist/collection/components/ripple-effect/test/basic/ripple-effect.e2e.js +48 -48
  879. package/dist/collection/components/route/route.js +151 -151
  880. package/dist/collection/components/route-redirect/route-redirect.js +76 -76
  881. package/dist/collection/components/router/router.js +472 -472
  882. package/dist/collection/components/router/test/basic/router.e2e.js +55 -55
  883. package/dist/collection/components/router/test/guards/href/router.e2e.js +51 -51
  884. package/dist/collection/components/router/test/guards/link/router.e2e.js +51 -51
  885. package/dist/collection/components/router/test/guards/push/router.e2e.js +51 -51
  886. package/dist/collection/components/router/test/guards/router.e2e.js +5 -5
  887. package/dist/collection/components/router/test/guards/test.utils.js +2 -2
  888. package/dist/collection/components/router/test/matching.spec.js +250 -0
  889. package/dist/collection/components/router/test/parser.spec.js +133 -0
  890. package/dist/collection/components/router/test/path.spec.js +218 -0
  891. package/dist/collection/components/router/test/router.spec.js +55 -0
  892. package/dist/collection/components/router/utils/debug.js +14 -14
  893. package/dist/collection/components/router/utils/dom.js +56 -56
  894. package/dist/collection/components/router/utils/matching.js +150 -150
  895. package/dist/collection/components/router/utils/parser.js +52 -52
  896. package/dist/collection/components/router/utils/path.js +66 -66
  897. package/dist/collection/components/router-link/router-link.css +22 -0
  898. package/dist/collection/components/router-link/router-link.js +157 -157
  899. package/dist/collection/components/router-outlet/router-outlet.css +22 -0
  900. package/dist/collection/components/router-outlet/router-outlet.js +459 -459
  901. package/dist/collection/components/router-outlet/test/basic/router-outlet.e2e.js +31 -31
  902. package/dist/collection/components/row/row.css +66 -0
  903. package/dist/collection/components/row/row.js +15 -15
  904. package/dist/collection/components/searchbar/searchbar.ios.css +44 -0
  905. package/dist/collection/components/searchbar/searchbar.js +891 -889
  906. package/dist/collection/components/searchbar/searchbar.md.css +44 -0
  907. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +11 -11
  908. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +101 -101
  909. package/dist/collection/components/searchbar/test/events/searchbar.e2e.js +55 -55
  910. package/dist/collection/components/searchbar/test/searchbar.spec.js +15 -0
  911. package/dist/collection/components/segment/segment.ios.css +66 -0
  912. package/dist/collection/components/segment/segment.js +631 -631
  913. package/dist/collection/components/segment/segment.md.css +66 -0
  914. package/dist/collection/components/segment/test/a11y/segment.e2e.js +37 -37
  915. package/dist/collection/components/segment/test/basic/segment.e2e.js +22 -22
  916. package/dist/collection/components/segment/test/custom/segment.e2e.js +6 -6
  917. package/dist/collection/components/segment/test/icon/segment.e2e.js +6 -6
  918. package/dist/collection/components/segment/test/modes/segment.e2e.js +15 -15
  919. package/dist/collection/components/segment/test/scrollable/segment.e2e.js +12 -12
  920. package/dist/collection/components/segment/test/segment-events.e2e.js +97 -97
  921. package/dist/collection/components/segment/test/segment.spec.js +37 -0
  922. package/dist/collection/components/segment/test/toolbar/segment.e2e.js +21 -21
  923. package/dist/collection/components/segment/test/wrap/segment.e2e.js +21 -21
  924. package/dist/collection/components/segment-button/segment-button.ios.css +44 -0
  925. package/dist/collection/components/segment-button/segment-button.js +217 -217
  926. package/dist/collection/components/segment-button/segment-button.md.css +44 -0
  927. package/dist/collection/components/select/select.ios.css +126 -7
  928. package/dist/collection/components/select/select.js +1201 -1184
  929. package/dist/collection/components/select/select.md.css +173 -19
  930. package/dist/collection/components/select/test/a11y/select.e2e.js +14 -14
  931. package/dist/collection/components/select/test/async/select.e2e.js +14 -14
  932. package/dist/collection/components/select/test/basic/select.e2e.js +140 -140
  933. package/dist/collection/components/select/test/card/select.e2e.js +6 -6
  934. package/dist/collection/components/select/test/color/select.e2e.js +22 -22
  935. package/dist/collection/components/select/test/compare-with/select.e2e.js +33 -33
  936. package/dist/collection/components/select/test/custom/select.e2e.js +19 -19
  937. package/dist/collection/components/select/test/disabled/select.e2e.js +17 -17
  938. package/dist/collection/components/select/test/fill/select.e2e.js +63 -63
  939. package/dist/collection/components/select/test/highlight/select.e2e.js +74 -74
  940. package/dist/collection/components/select/test/item/select.e2e.js +26 -11
  941. package/dist/collection/components/select/test/label/select.e2e.js +141 -141
  942. package/dist/collection/components/select/test/legacy/async/select.e2e.js +8 -8
  943. package/dist/collection/components/select/test/legacy/basic/select.e2e.js +108 -108
  944. package/dist/collection/components/select/test/legacy/compare-with/select.e2e.js +33 -33
  945. package/dist/collection/components/select/test/legacy/custom/custom.e2e.js +5 -5
  946. package/dist/collection/components/select/test/legacy/single-value/select.e2e.js +8 -8
  947. package/dist/collection/components/select/test/legacy/spec/select.e2e.js +6 -6
  948. package/dist/collection/components/select/test/legacy/standalone/select.e2e.js +11 -11
  949. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +17 -17
  950. package/dist/collection/components/select/test/popover-size/select.e2e.js +63 -63
  951. package/dist/collection/components/select/test/select.spec.js +59 -0
  952. package/dist/collection/components/select/test/slot/select.e2e.js +67 -0
  953. package/dist/collection/components/select/test/states/select.e2e.js +21 -21
  954. package/dist/collection/components/select/test/toggle-icon/select.e2e.js +14 -14
  955. package/dist/collection/components/select/test/wrapping/select.e2e.js +16 -16
  956. package/dist/collection/components/select-option/select-option.js +60 -60
  957. package/dist/collection/components/select-popover/select-popover.ios.css +66 -0
  958. package/dist/collection/components/select-popover/select-popover.js +197 -197
  959. package/dist/collection/components/select-popover/select-popover.md.css +66 -0
  960. package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +52 -52
  961. package/dist/collection/components/select-popover/test/fixtures.js +33 -33
  962. package/dist/collection/components/skeleton-text/skeleton-text.css +22 -0
  963. package/dist/collection/components/skeleton-text/skeleton-text.js +87 -48
  964. package/dist/collection/components/skeleton-text/test/basic/skeleton-text.e2e.js +6 -6
  965. package/dist/collection/components/skeleton-text/test/custom/skeleton-text.e2e.js +6 -6
  966. package/dist/collection/components/slides/IonicSlides.js +95 -95
  967. package/dist/collection/components/spinner/spinner-configs.js +121 -121
  968. package/dist/collection/components/spinner/spinner.css +22 -0
  969. package/dist/collection/components/spinner/spinner.js +137 -137
  970. package/dist/collection/components/spinner/test/basic/spinner.e2e.js +10 -10
  971. package/dist/collection/components/spinner/test/color/spinner.e2e.js +10 -10
  972. package/dist/collection/components/spinner/test/resize/spinner.e2e.js +8 -8
  973. package/dist/collection/components/split-pane/split-pane.ios.css +67 -2
  974. package/dist/collection/components/split-pane/split-pane.js +225 -225
  975. package/dist/collection/components/split-pane/split-pane.md.css +67 -2
  976. package/dist/collection/components/split-pane/test/basic/split-pane.e2e.js +18 -18
  977. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +23 -23
  978. package/dist/collection/components/tab/tab.js +170 -170
  979. package/dist/collection/components/tab-bar/tab-bar.ios.css +66 -0
  980. package/dist/collection/components/tab-bar/tab-bar.js +177 -177
  981. package/dist/collection/components/tab-bar/tab-bar.md.css +66 -0
  982. package/dist/collection/components/tab-bar/test/basic/tab-bar.e2e.js +8 -8
  983. package/dist/collection/components/tab-bar/test/custom/tab-bar.e2e.js +6 -6
  984. package/dist/collection/components/tab-bar/test/translucent/tab-bar.e2e.js +14 -14
  985. package/dist/collection/components/tab-button/tab-button.ios.css +44 -0
  986. package/dist/collection/components/tab-button/tab-button.js +267 -267
  987. package/dist/collection/components/tab-button/tab-button.md.css +44 -0
  988. package/dist/collection/components/tab-button/test/a11y/tab-button.e2e.js +6 -6
  989. package/dist/collection/components/tab-button/test/basic/tab-button.e2e.js +16 -16
  990. package/dist/collection/components/tab-button/test/layout/tab-button.e2e.js +26 -26
  991. package/dist/collection/components/tab-button/test/states/tab-button.e2e.js +26 -26
  992. package/dist/collection/components/tabs/tabs.css +22 -0
  993. package/dist/collection/components/tabs/tabs.js +344 -344
  994. package/dist/collection/components/tabs/test/basic/tabs.e2e.js +24 -24
  995. package/dist/collection/components/tabs/test/placements/tabs.e2e.js +17 -17
  996. package/dist/collection/components/text/test/basic/text.e2e.js +11 -11
  997. package/dist/collection/components/text/text.css +22 -0
  998. package/dist/collection/components/text/text.js +47 -47
  999. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +12 -12
  1000. package/dist/collection/components/textarea/test/autogrow/textarea.e2e.js +31 -31
  1001. package/dist/collection/components/textarea/test/bottom-content/textarea.e2e.js +82 -82
  1002. package/dist/collection/components/textarea/test/card/textarea.e2e.js +6 -6
  1003. package/dist/collection/components/textarea/test/clear-on-edit/textarea.e2e.js +53 -17
  1004. package/dist/collection/components/textarea/test/color/textarea.e2e.js +88 -88
  1005. package/dist/collection/components/textarea/test/cols/textarea.e2e.js +11 -11
  1006. package/dist/collection/components/textarea/test/fill/textarea.e2e.js +63 -63
  1007. package/dist/collection/components/textarea/test/highlight/textarea.e2e.js +52 -52
  1008. package/dist/collection/components/textarea/test/item/textarea.e2e.js +11 -11
  1009. package/dist/collection/components/textarea/test/label-placement/textarea.e2e.js +150 -150
  1010. package/dist/collection/components/textarea/test/legacy/a11y/textarea.e2e.js +15 -15
  1011. package/dist/collection/components/textarea/test/legacy/autogrow/textarea.e2e.js +31 -31
  1012. package/dist/collection/components/textarea/test/legacy/basic/textarea.e2e.js +30 -30
  1013. package/dist/collection/components/textarea/test/legacy/clear-on-edit/textarea.e2e.js +17 -17
  1014. package/dist/collection/components/textarea/test/slot/textarea.e2e.js +51 -0
  1015. package/dist/collection/components/textarea/test/states/textarea.e2e.js +11 -11
  1016. package/dist/collection/components/textarea/test/textarea-events.e2e.js +57 -57
  1017. package/dist/collection/components/textarea/test/textarea.spec.js +59 -0
  1018. package/dist/collection/components/textarea/textarea.ios.css +125 -5
  1019. package/dist/collection/components/textarea/textarea.js +1069 -1019
  1020. package/dist/collection/components/textarea/textarea.md.css +179 -14
  1021. package/dist/collection/components/thumbnail/test/basic/thumbnail.e2e.js +28 -28
  1022. package/dist/collection/components/thumbnail/thumbnail.css +22 -0
  1023. package/dist/collection/components/thumbnail/thumbnail.js +15 -15
  1024. package/dist/collection/components/title/test/a11y/title.e2e.js +17 -17
  1025. package/dist/collection/components/title/test/basic/title.e2e.js +13 -13
  1026. package/dist/collection/components/title/title.ios.css +22 -0
  1027. package/dist/collection/components/title/title.js +119 -119
  1028. package/dist/collection/components/title/title.md.css +22 -0
  1029. package/dist/collection/components/toast/animations/ios.enter.js +21 -20
  1030. package/dist/collection/components/toast/animations/ios.leave.js +18 -18
  1031. package/dist/collection/components/toast/animations/md.enter.js +23 -22
  1032. package/dist/collection/components/toast/animations/md.leave.js +6 -6
  1033. package/dist/collection/components/toast/animations/utils.js +62 -56
  1034. package/dist/collection/components/toast/gestures/swipe-to-dismiss.js +267 -0
  1035. package/dist/collection/components/toast/test/a11y/toast.e2e.js +92 -92
  1036. package/dist/collection/components/toast/test/basic/toast.e2e.js +101 -101
  1037. package/dist/collection/components/toast/test/is-open/toast.e2e.js +17 -17
  1038. package/dist/collection/components/toast/test/layout/toast.e2e.js +9 -9
  1039. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +37 -37
  1040. package/dist/collection/components/toast/test/standalone/toast.e2e.js +10 -10
  1041. package/dist/collection/components/toast/test/swipe-gesture/toast.e2e.js +84 -0
  1042. package/dist/collection/components/toast/test/toast-config.spec.js +25 -0
  1043. package/dist/collection/components/toast/test/toast-id.spec.js +32 -0
  1044. package/dist/collection/components/toast/test/toast.spec.js +200 -0
  1045. package/dist/collection/components/toast/test/trigger/toast.e2e.js +21 -21
  1046. package/dist/collection/components/toast/toast.ios.css +54 -10
  1047. package/dist/collection/components/toast/toast.js +1065 -952
  1048. package/dist/collection/components/toast/toast.md.css +54 -0
  1049. package/dist/collection/components/toggle/test/a11y/toggle.e2e.js +6 -6
  1050. package/dist/collection/components/toggle/test/color/toggle.e2e.js +11 -11
  1051. package/dist/collection/components/toggle/test/enable-on-off-labels/toggle.e2e.js +27 -27
  1052. package/dist/collection/components/toggle/test/item/toggle.e2e.js +52 -52
  1053. package/dist/collection/components/toggle/test/label/toggle.e2e.js +65 -65
  1054. package/dist/collection/components/toggle/test/legacy/basic/toggle.e2e.js +69 -69
  1055. package/dist/collection/components/toggle/test/legacy/enable-on-off-labels/toggle.e2e.js +23 -23
  1056. package/dist/collection/components/toggle/test/legacy/sizes/toggle.e2e.js +6 -6
  1057. package/dist/collection/components/toggle/test/sizes/toggle.e2e.js +6 -6
  1058. package/dist/collection/components/toggle/test/states/toggle.e2e.js +16 -16
  1059. package/dist/collection/components/toggle/test/toggle.spec.js +67 -0
  1060. package/dist/collection/components/toggle/toggle.ios.css +66 -6
  1061. package/dist/collection/components/toggle/toggle.js +487 -484
  1062. package/dist/collection/components/toggle/toggle.md.css +66 -6
  1063. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +7 -7
  1064. package/dist/collection/components/toolbar/test/colors/toolbar.e2e.js +6 -6
  1065. package/dist/collection/components/toolbar/toolbar.ios.css +44 -0
  1066. package/dist/collection/components/toolbar/toolbar.js +100 -100
  1067. package/dist/collection/components/toolbar/toolbar.md.css +44 -0
  1068. package/dist/collection/css/test/a11y/typography.e2e.js +6 -6
  1069. package/dist/collection/global/config.js +51 -51
  1070. package/dist/collection/global/ionic-global.js +54 -54
  1071. package/dist/collection/global/test/config-controller.spec.js +77 -0
  1072. package/dist/collection/utils/animation/animation-utils.js +91 -91
  1073. package/dist/collection/utils/animation/animation.js +905 -904
  1074. package/dist/collection/utils/animation/cubic-bezier.js +49 -49
  1075. package/dist/collection/utils/animation/test/animation.spec.js +447 -0
  1076. package/dist/collection/utils/animation/test/animationbuilder/animation.e2e.js +26 -26
  1077. package/dist/collection/utils/animation/test/basic/animation.e2e.js +12 -12
  1078. package/dist/collection/utils/animation/test/display/animation.e2e.js +18 -18
  1079. package/dist/collection/utils/animation/test/hooks/animation.e2e.js +39 -39
  1080. package/dist/collection/utils/animation/test/multiple/animation.e2e.js +27 -27
  1081. package/dist/collection/utils/browser/index.js +0 -22
  1082. package/dist/collection/utils/config.js +20 -20
  1083. package/dist/collection/utils/content/content.utils.spec.js +121 -121
  1084. package/dist/collection/utils/content/index.js +58 -58
  1085. package/dist/collection/utils/floating-point/floating-point.spec.js +14 -14
  1086. package/dist/collection/utils/floating-point/index.js +5 -5
  1087. package/dist/collection/utils/focus-visible.js +63 -63
  1088. package/dist/collection/utils/forms/compare-with-utils.js +39 -0
  1089. package/dist/collection/utils/forms/form-controller.js +45 -45
  1090. package/dist/collection/utils/forms/index.js +1 -0
  1091. package/dist/collection/utils/forms/notch-controller.js +120 -120
  1092. package/dist/collection/utils/framework-delegate.js +121 -121
  1093. package/dist/collection/utils/gesture/button-active.js +56 -56
  1094. package/dist/collection/utils/gesture/gesture-controller.js +182 -182
  1095. package/dist/collection/utils/gesture/index.js +222 -222
  1096. package/dist/collection/utils/gesture/listener.js +36 -36
  1097. package/dist/collection/utils/gesture/pointer-events.js +113 -113
  1098. package/dist/collection/utils/gesture/recognizers.js +46 -46
  1099. package/dist/collection/utils/gesture/swipe-back.js +65 -65
  1100. package/dist/collection/utils/hardware-back-button.js +48 -48
  1101. package/dist/collection/utils/helpers.js +258 -258
  1102. package/dist/collection/utils/helpers.spec.js +28 -28
  1103. package/dist/collection/utils/input-shims/hacks/common.js +61 -61
  1104. package/dist/collection/utils/input-shims/hacks/hide-caret.js +19 -19
  1105. package/dist/collection/utils/input-shims/hacks/input-blurring.js +47 -47
  1106. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +225 -225
  1107. package/dist/collection/utils/input-shims/hacks/scroll-data.js +29 -29
  1108. package/dist/collection/utils/input-shims/hacks/scroll-padding.js +21 -21
  1109. package/dist/collection/utils/input-shims/hacks/test/scroll-assist.e2e.js +97 -97
  1110. package/dist/collection/utils/input-shims/input-shims.js +87 -81
  1111. package/dist/collection/utils/keyboard/keyboard-controller.js +128 -128
  1112. package/dist/collection/utils/keyboard/keyboard.js +59 -59
  1113. package/dist/collection/utils/keyboard/test/keyboard-controller.spec.js +21 -0
  1114. package/dist/collection/utils/keyboard/test/keyboard.spec.js +214 -0
  1115. package/dist/collection/utils/lock-controller.js +24 -24
  1116. package/dist/collection/utils/logging/index.js +3 -3
  1117. package/dist/collection/utils/media.js +13 -13
  1118. package/dist/collection/utils/menu-controller/animations/base.js +8 -8
  1119. package/dist/collection/utils/menu-controller/animations/overlay.js +21 -21
  1120. package/dist/collection/utils/menu-controller/animations/push.js +20 -20
  1121. package/dist/collection/utils/menu-controller/animations/reveal.js +6 -6
  1122. package/dist/collection/utils/menu-controller/index.js +204 -206
  1123. package/dist/collection/utils/native/capacitor.js +4 -4
  1124. package/dist/collection/utils/native/haptic.js +151 -151
  1125. package/dist/collection/utils/native/keyboard.js +47 -47
  1126. package/dist/collection/utils/native/native-interface.js +15 -15
  1127. package/dist/collection/utils/native/status-bar.js +36 -36
  1128. package/dist/collection/utils/overlays.js +495 -494
  1129. package/dist/collection/utils/platform.js +56 -56
  1130. package/dist/collection/utils/rtl/dir.js +5 -5
  1131. package/dist/collection/utils/rtl/dir.spec.js +17 -17
  1132. package/dist/collection/utils/sanitization/index.js +122 -122
  1133. package/dist/collection/utils/sanitization/test/sanitization.spec.js +43 -0
  1134. package/dist/collection/utils/slot-mutation-controller.js +86 -85
  1135. package/dist/collection/utils/status-tap.js +26 -26
  1136. package/dist/collection/utils/tap-click/index.js +171 -171
  1137. package/dist/collection/utils/tap-click/test/tap-click.e2e.js +12 -12
  1138. package/dist/collection/utils/test/aria.spec.js +79 -0
  1139. package/dist/collection/utils/test/attributes.spec.js +53 -0
  1140. package/dist/collection/utils/test/framework-delegate/framework-delegate.e2e.js +25 -25
  1141. package/dist/collection/utils/test/hardware-back-button.spec.js +53 -0
  1142. package/dist/collection/utils/test/overlays/overlays.e2e.js +137 -137
  1143. package/dist/collection/utils/test/overlays/overlays.spec.js +102 -0
  1144. package/dist/collection/utils/test/platform.spec.js +132 -0
  1145. package/dist/collection/utils/test/platform.utils.js +77 -77
  1146. package/dist/collection/utils/test/playwright/drag-element.js +69 -69
  1147. package/dist/collection/utils/test/playwright/generator.js +48 -25
  1148. package/dist/collection/utils/test/playwright/matchers/index.js +3 -3
  1149. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEvent.js +21 -21
  1150. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventDetail.js +28 -28
  1151. package/dist/collection/utils/test/playwright/matchers/toHaveReceivedEventTimes.js +22 -22
  1152. package/dist/collection/utils/test/playwright/page/event-spy.js +110 -110
  1153. package/dist/collection/utils/test/playwright/page/utils/goto.js +52 -52
  1154. package/dist/collection/utils/test/playwright/page/utils/locator.js +8 -8
  1155. package/dist/collection/utils/test/playwright/page/utils/set-content.js +44 -35
  1156. package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +19 -19
  1157. package/dist/collection/utils/test/playwright/page/utils/spy-on-event.js +4 -4
  1158. package/dist/collection/utils/test/playwright/page/utils/wait-for-changes.js +48 -48
  1159. package/dist/collection/utils/test/playwright/playwright-page.js +35 -35
  1160. package/dist/collection/utils/test/playwright/viewports/index.js +13 -13
  1161. package/dist/collection/utils/test/press-keys.js +77 -77
  1162. package/dist/collection/utils/test/ready.spec.js +39 -0
  1163. package/dist/collection/utils/test/theme.spec.js +56 -0
  1164. package/dist/collection/utils/theme.js +23 -23
  1165. package/dist/collection/utils/transition/index.js +163 -163
  1166. package/dist/collection/utils/transition/ios.transition.js +598 -598
  1167. package/dist/collection/utils/transition/md.transition.js +44 -44
  1168. package/dist/collection/utils/watch-options.js +30 -30
  1169. package/dist/docs.json +195 -38
  1170. package/dist/esm/animation-dde8cc0d.js +1060 -0
  1171. package/dist/esm/{app-globals-2398e405.js → app-globals-8c62bec2.js} +1 -1
  1172. package/dist/esm/button-active-308d3edd.js +67 -0
  1173. package/dist/esm/capacitor-59395cbd.js +13 -0
  1174. package/dist/esm/compare-with-utils-a96ff2ea.js +41 -0
  1175. package/dist/esm/config-49c88215.js +193 -0
  1176. package/dist/esm/cubic-bezier-fe2083dc.js +90 -0
  1177. package/dist/esm/data-775093f5.js +1625 -0
  1178. package/dist/esm/{dir-912e3e13.js → dir-babeabeb.js} +5 -5
  1179. package/dist/esm/focus-visible-dd40d69f.js +75 -0
  1180. package/dist/esm/form-controller-548aa79c.js +64 -0
  1181. package/dist/esm/framework-delegate-bc1fd82a.js +140 -0
  1182. package/dist/esm/gesture-controller-1bf57181.js +195 -0
  1183. package/dist/esm/haptic-554688a5.js +206 -0
  1184. package/dist/esm/hardware-back-button-b2bc76db.js +71 -0
  1185. package/dist/esm/helpers-ae653409.js +418 -0
  1186. package/dist/esm/index-1193f005.js +306 -0
  1187. package/dist/esm/index-2cf77112.js +457 -0
  1188. package/dist/esm/index-4743453d.js +231 -0
  1189. package/dist/esm/index-82eeb47f.js +196 -0
  1190. package/dist/esm/{index-595d62c9.js → index-9b0d46f4.js} +3 -3
  1191. package/dist/esm/index-a5d50daf.js +7 -0
  1192. package/dist/esm/{index-7c9b1bca.js → index-b7d870cf.js} +79 -15
  1193. package/dist/esm/{index-4392efa5.js → index-b9e742e5.js} +60 -60
  1194. package/dist/esm/index.js +113 -113
  1195. package/dist/esm/input-shims-6539ce13.js +599 -0
  1196. package/dist/esm/input.utils-a5a2d164.js +135 -0
  1197. package/dist/esm/ion-accordion_2.entry.js +488 -488
  1198. package/dist/esm/ion-action-sheet.entry.js +260 -250
  1199. package/dist/esm/ion-alert.entry.js +442 -432
  1200. package/dist/esm/ion-app_8.entry.js +1151 -1151
  1201. package/dist/esm/ion-avatar_3.entry.js +29 -29
  1202. package/dist/esm/ion-back-button.entry.js +73 -73
  1203. package/dist/esm/ion-backdrop.entry.js +40 -40
  1204. package/dist/esm/ion-breadcrumb_2.entry.js +194 -194
  1205. package/dist/esm/ion-button_2.entry.js +303 -303
  1206. package/dist/esm/ion-card_5.entry.js +105 -105
  1207. package/dist/esm/ion-checkbox.entry.js +149 -147
  1208. package/dist/esm/ion-chip.entry.js +20 -20
  1209. package/dist/esm/ion-col_3.entry.js +136 -136
  1210. package/dist/esm/ion-datetime-button.entry.js +325 -325
  1211. package/dist/esm/ion-datetime_3.entry.js +2204 -2162
  1212. package/dist/esm/ion-fab_3.entry.js +150 -150
  1213. package/dist/esm/ion-img.entry.js +79 -79
  1214. package/dist/esm/ion-infinite-scroll_2.entry.js +198 -190
  1215. package/dist/esm/ion-input.entry.js +443 -399
  1216. package/dist/esm/ion-item-option_3.entry.js +457 -457
  1217. package/dist/esm/ion-item_8.entry.js +441 -428
  1218. package/dist/esm/ion-loading.entry.js +220 -210
  1219. package/dist/esm/ion-menu_3.entry.js +670 -670
  1220. package/dist/esm/ion-modal.entry.js +1415 -1405
  1221. package/dist/esm/ion-nav_2.entry.js +904 -904
  1222. package/dist/esm/ion-picker-column-internal.entry.js +331 -327
  1223. package/dist/esm/ion-picker-internal.entry.js +453 -453
  1224. package/dist/esm/ion-popover.entry.js +1108 -1098
  1225. package/dist/esm/ion-progress-bar.entry.js +40 -40
  1226. package/dist/esm/ion-radio_2.entry.js +321 -316
  1227. package/dist/esm/ion-range.entry.js +558 -556
  1228. package/dist/esm/ion-refresher_2.entry.js +786 -786
  1229. package/dist/esm/ion-reorder_2.entry.js +267 -267
  1230. package/dist/esm/ion-ripple-effect.entry.js +66 -66
  1231. package/dist/esm/ion-route_4.entry.js +693 -693
  1232. package/dist/esm/ion-searchbar.entry.js +360 -358
  1233. package/dist/esm/ion-segment_2.entry.js +507 -507
  1234. package/dist/esm/ion-select_3.entry.js +784 -768
  1235. package/dist/esm/ion-spinner.entry.js +46 -46
  1236. package/dist/esm/ion-split-pane.entry.js +119 -119
  1237. package/dist/esm/ion-tab-bar_2.entry.js +138 -138
  1238. package/dist/esm/ion-tab_2.entry.js +187 -187
  1239. package/dist/esm/ion-text.entry.js +13 -13
  1240. package/dist/esm/ion-textarea.entry.js +401 -353
  1241. package/dist/esm/ion-toast.entry.js +771 -419
  1242. package/dist/esm/ion-toggle.entry.js +227 -225
  1243. package/dist/esm/ionic-global-1f99b929.js +224 -0
  1244. package/dist/esm/ionic.js +6 -6
  1245. package/dist/esm/ios.transition-3376ccb2.js +651 -0
  1246. package/dist/esm/keyboard-52278bd7.js +146 -0
  1247. package/dist/esm/keyboard-73175e24.js +79 -0
  1248. package/dist/esm/keyboard-controller-ec5c2bfa.js +165 -0
  1249. package/dist/esm/loader.js +5 -5
  1250. package/dist/esm/lock-controller-316928be.js +38 -0
  1251. package/dist/esm/md.transition-f992779f.js +57 -0
  1252. package/dist/esm/notch-controller-fea7f9c5.js +153 -0
  1253. package/dist/esm/overlays-b33f6bca.js +693 -0
  1254. package/dist/esm/spinner-configs-964f7cf3.js +145 -0
  1255. package/dist/esm/status-tap-16fd8f3d.js +40 -0
  1256. package/dist/esm/swipe-back-18cb49f7.js +79 -0
  1257. package/dist/esm/theme-01f3f29c.js +43 -0
  1258. package/dist/esm/watch-options-c2911ace.js +47 -0
  1259. package/dist/esm-es5/{animation-8aa13916.js → animation-dde8cc0d.js} +1 -1
  1260. package/dist/esm-es5/app-globals-8c62bec2.js +4 -0
  1261. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-308d3edd.js} +1 -1
  1262. package/dist/esm-es5/{capacitor-b4979570.js → capacitor-59395cbd.js} +1 -1
  1263. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +4 -0
  1264. package/dist/esm-es5/data-775093f5.js +4 -0
  1265. package/dist/esm-es5/{form-controller-64edeaad.js → form-controller-548aa79c.js} +1 -1
  1266. package/dist/esm-es5/{framework-delegate-aa433dea.js → framework-delegate-bc1fd82a.js} +1 -1
  1267. package/dist/esm-es5/{haptic-1243b917.js → haptic-554688a5.js} +1 -1
  1268. package/dist/esm-es5/index-1193f005.js +4 -0
  1269. package/dist/esm-es5/{index-ff313b19.js → index-2cf77112.js} +1 -1
  1270. package/dist/esm-es5/{index-6a0ccabb.js → index-4743453d.js} +1 -1
  1271. package/dist/esm-es5/{index-f0cc4e14.js → index-82eeb47f.js} +1 -1
  1272. package/dist/esm-es5/index-b7d870cf.js +5 -0
  1273. package/dist/esm-es5/{index-4392efa5.js → index-b9e742e5.js} +1 -1
  1274. package/dist/esm-es5/index.js +1 -1
  1275. package/dist/esm-es5/input-shims-6539ce13.js +4 -0
  1276. package/dist/esm-es5/input.utils-a5a2d164.js +4 -0
  1277. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  1278. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  1279. package/dist/esm-es5/ion-alert.entry.js +1 -1
  1280. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  1281. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  1282. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  1283. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  1284. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  1285. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  1286. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  1287. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  1288. package/dist/esm-es5/ion-chip.entry.js +1 -1
  1289. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  1290. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  1291. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  1292. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  1293. package/dist/esm-es5/ion-img.entry.js +1 -1
  1294. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  1295. package/dist/esm-es5/ion-input.entry.js +1 -1
  1296. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  1297. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  1298. package/dist/esm-es5/ion-loading.entry.js +1 -1
  1299. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  1300. package/dist/esm-es5/ion-modal.entry.js +1 -1
  1301. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  1302. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  1303. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  1304. package/dist/esm-es5/ion-popover.entry.js +1 -1
  1305. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  1306. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  1307. package/dist/esm-es5/ion-range.entry.js +1 -1
  1308. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  1309. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  1310. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  1311. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  1312. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  1313. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  1314. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  1315. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  1316. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  1317. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  1318. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  1319. package/dist/esm-es5/ion-text.entry.js +1 -1
  1320. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  1321. package/dist/esm-es5/ion-toast.entry.js +1 -1
  1322. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  1323. package/dist/esm-es5/{ionic-global-40e42e7f.js → ionic-global-1f99b929.js} +1 -1
  1324. package/dist/esm-es5/ionic.js +1 -1
  1325. package/dist/esm-es5/{ios.transition-1651c430.js → ios.transition-3376ccb2.js} +1 -1
  1326. package/dist/esm-es5/{keyboard-b551279d.js → keyboard-52278bd7.js} +1 -1
  1327. package/dist/esm-es5/{keyboard-b063f012.js → keyboard-73175e24.js} +1 -1
  1328. package/dist/esm-es5/{keyboard-controller-0c2dce71.js → keyboard-controller-ec5c2bfa.js} +1 -1
  1329. package/dist/esm-es5/loader.js +1 -1
  1330. package/dist/esm-es5/md.transition-f992779f.js +4 -0
  1331. package/dist/esm-es5/{notch-controller-8c9c0e54.js → notch-controller-fea7f9c5.js} +1 -1
  1332. package/dist/esm-es5/{overlays-6c9feb7e.js → overlays-b33f6bca.js} +1 -1
  1333. package/dist/esm-es5/{status-tap-9ce68758.js → status-tap-16fd8f3d.js} +1 -1
  1334. package/dist/esm-es5/{swipe-back-cd4295f3.js → swipe-back-18cb49f7.js} +1 -1
  1335. package/dist/html.html-data.json +16 -3
  1336. package/dist/ionic/index.esm.js +1 -1
  1337. package/dist/ionic/ionic.esm.js +1 -1
  1338. package/dist/ionic/ionic.js +15 -15
  1339. package/dist/ionic/p-013013a3.js +4 -0
  1340. package/dist/ionic/p-0235067a.js +4 -0
  1341. package/dist/ionic/{p-a0b6d438.js → p-04377cfa.js} +1 -1
  1342. package/dist/ionic/p-043aa6cc.system.entry.js +4 -0
  1343. package/dist/ionic/{p-5d711127.js → p-0509fd34.js} +1 -1
  1344. package/dist/ionic/p-0550f802.entry.js +4 -0
  1345. package/dist/ionic/p-06abe918.system.entry.js +4 -0
  1346. package/dist/ionic/{p-702d85d8.system.js → p-0aa78a8d.system.js} +1 -1
  1347. package/dist/ionic/{p-41477ad9.system.js → p-0bd51c34.system.js} +1 -1
  1348. package/dist/ionic/p-0dfa4ab4.system.entry.js +4 -0
  1349. package/dist/ionic/p-0ebc87b7.system.entry.js +4 -0
  1350. package/dist/ionic/{p-bed722c4.system.entry.js → p-10ec9af7.system.entry.js} +1 -1
  1351. package/dist/ionic/{p-f4cc91f6.entry.js → p-11786dc7.entry.js} +1 -1
  1352. package/dist/ionic/{p-0dc0d9b5.entry.js → p-11a3973f.entry.js} +1 -1
  1353. package/dist/ionic/{p-a545b4f1.system.js → p-1501b945.system.js} +1 -1
  1354. package/dist/ionic/{p-4e6a1efb.system.entry.js → p-158efe8d.system.entry.js} +1 -1
  1355. package/dist/ionic/p-164aa69c.entry.js +4 -0
  1356. package/dist/ionic/p-17d283b9.system.entry.js +4 -0
  1357. package/dist/ionic/p-18cae04f.js +4 -0
  1358. package/dist/ionic/{p-abacb44b.system.entry.js → p-19c379da.system.entry.js} +1 -1
  1359. package/dist/ionic/p-19d9ceb8.system.js +4 -0
  1360. package/dist/ionic/p-1b27ac67.entry.js +4 -0
  1361. package/dist/ionic/{p-b91fe549.entry.js → p-1c249831.entry.js} +1 -1
  1362. package/dist/ionic/{p-b4b4bb29.system.js → p-1cca10d6.system.js} +1 -1
  1363. package/dist/ionic/p-1e4371bd.js +4 -0
  1364. package/dist/ionic/{p-c7b8c2ef.system.entry.js → p-20e0e75d.system.entry.js} +1 -1
  1365. package/dist/ionic/{p-34d2de14.system.entry.js → p-22827063.system.entry.js} +1 -1
  1366. package/dist/ionic/{p-64ed03a3.entry.js → p-26c4bf85.entry.js} +1 -1
  1367. package/dist/ionic/{p-419eb426.js → p-27281edd.js} +1 -1
  1368. package/dist/ionic/{p-965677f1.entry.js → p-2894d5f6.entry.js} +1 -1
  1369. package/dist/ionic/p-290d3fe9.js +5 -0
  1370. package/dist/ionic/p-29d03b3a.js +4 -0
  1371. package/dist/ionic/p-2a583966.entry.js +4 -0
  1372. package/dist/ionic/p-2b7827c7.js +4 -0
  1373. package/dist/ionic/{p-3d7fea9b.system.entry.js → p-2ba9a9bd.system.entry.js} +1 -1
  1374. package/dist/ionic/p-2cf21a15.system.entry.js +4 -0
  1375. package/dist/ionic/p-2df97906.system.entry.js +4 -0
  1376. package/dist/ionic/{p-fa8d4788.system.js → p-31b2326e.system.js} +1 -1
  1377. package/dist/ionic/{p-744973f3.entry.js → p-3313c481.entry.js} +1 -1
  1378. package/dist/ionic/{p-ffb876b0.system.entry.js → p-332ea4d3.system.entry.js} +1 -1
  1379. package/dist/ionic/{p-97e31c0a.system.js → p-3671f1b9.system.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-38531958.system.entry.js +4 -0
  1383. package/dist/ionic/{p-55ed230e.system.js → p-38c337e7.system.js} +1 -1
  1384. package/dist/ionic/p-38f2c6bb.system.js +4 -0
  1385. package/dist/ionic/{p-3bad5c1a.js → p-3a75d7fd.js} +1 -1
  1386. package/dist/ionic/{p-8b29691f.entry.js → p-3dfc522b.entry.js} +1 -1
  1387. package/dist/ionic/{p-3de79805.entry.js → p-3e8d5e53.entry.js} +1 -1
  1388. package/dist/ionic/p-40f68333.system.js +4 -0
  1389. package/dist/ionic/{p-a6d83a03.system.entry.js → p-41208f54.system.entry.js} +1 -1
  1390. package/dist/ionic/{p-b287ab05.js → p-4180a747.js} +1 -1
  1391. package/dist/ionic/{p-b923f3d7.js → p-42f189f4.js} +1 -1
  1392. package/dist/ionic/{p-d7ea6a0d.system.entry.js → p-4489dd20.system.entry.js} +1 -1
  1393. package/dist/ionic/p-44a56556.js +4 -0
  1394. package/dist/ionic/{p-e76a4bc8.entry.js → p-44dc52e5.entry.js} +1 -1
  1395. package/dist/ionic/{p-f5a750e4.system.entry.js → p-4685218a.system.entry.js} +1 -1
  1396. package/dist/ionic/p-469dd571.system.entry.js +4 -0
  1397. package/dist/ionic/{p-5bd4e009.entry.js → p-47bb15a1.entry.js} +1 -1
  1398. package/dist/ionic/{p-664d2b07.system.entry.js → p-4981ea0a.system.entry.js} +1 -1
  1399. package/dist/ionic/{p-cf425ec5.system.entry.js → p-507ddbfe.system.entry.js} +1 -1
  1400. package/dist/ionic/{p-14aca3fb.entry.js → p-529b24fb.entry.js} +1 -1
  1401. package/dist/ionic/p-52cfafe9.system.js +5 -0
  1402. package/dist/ionic/p-53ec4f1c.system.js +4 -0
  1403. package/dist/ionic/{p-c0c81820.system.js → p-5ad1fe3b.system.js} +1 -1
  1404. package/dist/ionic/{p-7cee75c0.entry.js → p-60959b71.entry.js} +1 -1
  1405. package/dist/ionic/p-61e4d3ec.entry.js +4 -0
  1406. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-648ad047.system.entry.js} +1 -1
  1407. package/dist/ionic/p-66d633fb.js +4 -0
  1408. package/dist/ionic/{p-63f08fe3.entry.js → p-6855f26a.entry.js} +1 -1
  1409. package/dist/ionic/{p-1a8ae7a7.system.entry.js → p-69641343.system.entry.js} +1 -1
  1410. package/dist/ionic/{p-800ef057.js → p-6ab03751.js} +1 -1
  1411. package/dist/ionic/{p-18e01b30.system.entry.js → p-6c277fa2.system.entry.js} +1 -1
  1412. package/dist/ionic/{p-0e23256e.system.entry.js → p-6e0539ea.system.entry.js} +1 -1
  1413. package/dist/ionic/p-6fba0ce1.system.entry.js +4 -0
  1414. package/dist/ionic/{p-4c80afe1.system.entry.js → p-745e3339.system.entry.js} +1 -1
  1415. package/dist/ionic/p-767f1a92.entry.js +4 -0
  1416. package/dist/ionic/{p-8a308596.system.js → p-7798c78a.system.js} +2 -2
  1417. package/dist/ionic/p-7dc892f8.entry.js +4 -0
  1418. package/dist/ionic/{p-6c3d5383.js → p-7fae5c36.js} +1 -1
  1419. package/dist/ionic/{p-48d9faa7.entry.js → p-803efb5d.entry.js} +1 -1
  1420. package/dist/ionic/{p-a8e68fd9.entry.js → p-806a9810.entry.js} +1 -1
  1421. package/dist/ionic/p-84b567a6.entry.js +4 -0
  1422. package/dist/ionic/p-85f48531.entry.js +4 -0
  1423. package/dist/ionic/p-87bb3735.system.js +4 -0
  1424. package/dist/ionic/{p-613d4042.system.js → p-888db766.system.js} +1 -1
  1425. package/dist/ionic/p-88d5fbd3.js +4 -0
  1426. package/dist/ionic/{p-ccdcb022.system.js → p-8985cdb6.system.js} +1 -1
  1427. package/dist/ionic/p-8aa1d0b7.system.js +4 -0
  1428. package/dist/ionic/{p-a9c3699b.system.entry.js → p-8f301ac5.system.entry.js} +1 -1
  1429. package/dist/ionic/{p-174f3446.entry.js → p-928ee57a.entry.js} +1 -1
  1430. package/dist/ionic/p-932f2259.system.entry.js +4 -0
  1431. package/dist/ionic/p-93390f78.entry.js +4 -0
  1432. package/dist/ionic/p-950c05ad.entry.js +4 -0
  1433. package/dist/ionic/{p-3fb57e1b.system.entry.js → p-96d4814f.system.entry.js} +1 -1
  1434. package/dist/ionic/p-97174c1e.js +4 -0
  1435. package/dist/ionic/p-979d4f5c.system.js +4 -0
  1436. package/dist/ionic/p-98f35d98.js +4 -0
  1437. package/dist/ionic/{p-14b4348c.system.js → p-9a68d8ef.system.js} +1 -1
  1438. package/dist/ionic/p-9ba72fdb.system.entry.js +4 -0
  1439. package/dist/ionic/{p-41122cd6.system.js → p-9f94c72e.system.js} +1 -1
  1440. package/dist/ionic/{p-92800752.entry.js → p-9fb45814.entry.js} +1 -1
  1441. package/dist/ionic/p-9fda6824.system.entry.js +4 -0
  1442. package/dist/ionic/{p-1dc91702.entry.js → p-a06501e3.entry.js} +1 -1
  1443. package/dist/ionic/{p-c4042875.system.js → p-a074be82.system.js} +1 -1
  1444. package/dist/ionic/{p-c7d30db9.entry.js → p-a3013394.entry.js} +1 -1
  1445. package/dist/ionic/p-a42ef163.system.entry.js +4 -0
  1446. package/dist/ionic/p-a49931aa.system.js +4 -0
  1447. package/dist/ionic/{p-db5043df.system.entry.js → p-a821750c.system.entry.js} +1 -1
  1448. package/dist/ionic/{p-1d269117.system.entry.js → p-abd5d0d5.system.entry.js} +1 -1
  1449. package/dist/ionic/{p-9209d90c.entry.js → p-ade3cf46.entry.js} +1 -1
  1450. package/dist/ionic/{p-1e86a71b.entry.js → p-ae4b7df8.entry.js} +1 -1
  1451. package/dist/ionic/p-aee39e06.entry.js +4 -0
  1452. package/dist/ionic/{p-09d142b3.system.js → p-afa9f205.system.js} +1 -1
  1453. package/dist/ionic/{p-67e18f02.system.entry.js → p-b7058a0e.system.entry.js} +1 -1
  1454. package/dist/ionic/p-b78e6a44.entry.js +4 -0
  1455. package/dist/ionic/{p-beb64be7.system.entry.js → p-b7a2ffc9.system.entry.js} +1 -1
  1456. package/dist/ionic/{p-0330f0a3.system.entry.js → p-b8a9e195.system.entry.js} +1 -1
  1457. package/dist/ionic/{p-8ad82eb3.entry.js → p-b964aba3.entry.js} +1 -1
  1458. package/dist/ionic/{p-ff5144f3.system.entry.js → p-beeed22c.system.entry.js} +1 -1
  1459. package/dist/ionic/{p-5deff017.entry.js → p-c08fe2c0.entry.js} +1 -1
  1460. package/dist/ionic/p-c1701827.entry.js +4 -0
  1461. package/dist/ionic/{p-b2a74a72.entry.js → p-c5acfeb1.entry.js} +1 -1
  1462. package/dist/ionic/p-c61cc894.js +4 -0
  1463. package/dist/ionic/{p-ab4cff27.system.js → p-cabad15b.system.js} +1 -1
  1464. package/dist/ionic/{p-07d9e9cd.system.entry.js → p-cb8dff22.system.entry.js} +1 -1
  1465. package/dist/ionic/p-cd1b920b.entry.js +4 -0
  1466. package/dist/ionic/p-cd574dfa.js +4 -0
  1467. package/dist/ionic/{p-0492946a.entry.js → p-cf235986.entry.js} +1 -1
  1468. package/dist/ionic/p-cf53213c.entry.js +4 -0
  1469. package/dist/ionic/p-d51674c5.system.js +4 -0
  1470. package/dist/ionic/{p-45da1e68.system.entry.js → p-d93eed83.system.entry.js} +1 -1
  1471. package/dist/ionic/{p-c919498d.entry.js → p-da5e2652.entry.js} +1 -1
  1472. package/dist/ionic/p-dc6d8647.entry.js +4 -0
  1473. package/dist/ionic/p-dc71e4ef.system.entry.js +4 -0
  1474. package/dist/ionic/{p-bba2ce59.system.js → p-ddbb2d5b.system.js} +1 -1
  1475. package/dist/ionic/{p-6e23777e.system.entry.js → p-ddd48faf.system.entry.js} +1 -1
  1476. package/dist/ionic/p-de6f8b28.system.js +4 -0
  1477. package/dist/ionic/p-de756e5c.js +4 -0
  1478. package/dist/ionic/{p-7ab6fc5a.system.entry.js → p-e2903cdc.system.entry.js} +1 -1
  1479. package/dist/ionic/{p-0a794e83.entry.js → p-e33d1ebc.entry.js} +1 -1
  1480. package/dist/ionic/p-ebe8bd8a.entry.js +4 -0
  1481. package/dist/ionic/p-eef72e06.js +4 -0
  1482. package/dist/ionic/{p-5da0eb3e.system.entry.js → p-f0504446.system.entry.js} +1 -1
  1483. package/dist/ionic/p-f434bcf3.system.entry.js +4 -0
  1484. package/dist/ionic/p-f5d2dc9b.js +4 -0
  1485. package/dist/ionic/{p-a936d224.system.js → p-f6e9c227.system.js} +1 -1
  1486. package/dist/ionic/p-f894e0ad.entry.js +4 -0
  1487. package/dist/types/components/accordion/accordion.d.ts +62 -62
  1488. package/dist/types/components/accordion-group/accordion-group-interface.d.ts +3 -3
  1489. package/dist/types/components/accordion-group/accordion-group.d.ts +76 -76
  1490. package/dist/types/components/action-sheet/action-sheet-interface.d.ts +25 -25
  1491. package/dist/types/components/action-sheet/action-sheet.d.ts +149 -149
  1492. package/dist/types/components/action-sheet/test/basic/fixture.d.ts +7 -7
  1493. package/dist/types/components/alert/alert-interface.d.ts +45 -45
  1494. package/dist/types/components/alert/alert.d.ts +181 -181
  1495. package/dist/types/components/app/app.d.ts +15 -15
  1496. package/dist/types/components/avatar/avatar.d.ts +1 -1
  1497. package/dist/types/components/back-button/back-button.d.ts +41 -41
  1498. package/dist/types/components/backdrop/backdrop.d.ts +22 -22
  1499. package/dist/types/components/badge/badge.d.ts +7 -7
  1500. package/dist/types/components/breadcrumb/breadcrumb-interface.d.ts +4 -4
  1501. package/dist/types/components/breadcrumb/breadcrumb.d.ts +87 -87
  1502. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +39 -39
  1503. package/dist/types/components/button/button.d.ts +121 -121
  1504. package/dist/types/components/buttons/buttons.d.ts +14 -14
  1505. package/dist/types/components/card/card.d.ts +57 -57
  1506. package/dist/types/components/card-content/card-content.d.ts +1 -1
  1507. package/dist/types/components/card-header/card-header.d.ts +13 -13
  1508. package/dist/types/components/card-subtitle/card-subtitle.d.ts +7 -7
  1509. package/dist/types/components/card-title/card-title.d.ts +7 -7
  1510. package/dist/types/components/checkbox/checkbox-interface.d.ts +4 -4
  1511. package/dist/types/components/checkbox/checkbox.d.ts +112 -111
  1512. package/dist/types/components/chip/chip.d.ts +15 -15
  1513. package/dist/types/components/col/col.d.ts +128 -128
  1514. package/dist/types/components/content/content-interface.d.ts +6 -6
  1515. package/dist/types/components/content/content.d.ts +129 -129
  1516. package/dist/types/components/datetime/datetime-interface.d.ts +15 -15
  1517. package/dist/types/components/datetime/datetime.d.ts +407 -407
  1518. package/dist/types/components/datetime/utils/data.d.ts +11 -11
  1519. package/dist/types/components/datetime/utils/manipulation.d.ts +59 -32
  1520. package/dist/types/components/datetime/utils/state.d.ts +8 -8
  1521. package/dist/types/components/datetime-button/datetime-button.d.ts +59 -59
  1522. package/dist/types/components/fab/fab.d.ts +33 -33
  1523. package/dist/types/components/fab-button/fab-button.d.ts +88 -88
  1524. package/dist/types/components/fab-list/fab-list.d.ts +11 -11
  1525. package/dist/types/components/footer/footer.d.ts +27 -27
  1526. package/dist/types/components/grid/grid.d.ts +5 -5
  1527. package/dist/types/components/header/header.d.ts +31 -31
  1528. package/dist/types/components/header/header.utils.d.ts +7 -7
  1529. package/dist/types/components/img/img.d.ts +30 -30
  1530. package/dist/types/components/infinite-scroll/infinite-scroll-interface.d.ts +1 -1
  1531. package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +65 -58
  1532. package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +23 -23
  1533. package/dist/types/components/input/input-interface.d.ts +6 -6
  1534. package/dist/types/components/input/input.d.ts +321 -315
  1535. package/dist/types/components/item/item.d.ts +111 -111
  1536. package/dist/types/components/item-divider/item-divider.d.ts +16 -16
  1537. package/dist/types/components/item-group/item-group.d.ts +1 -1
  1538. package/dist/types/components/item-option/item-option.d.ts +44 -44
  1539. package/dist/types/components/item-options/item-options.d.ts +13 -13
  1540. package/dist/types/components/item-sliding/item-sliding-interface.d.ts +1 -1
  1541. package/dist/types/components/item-sliding/item-sliding.d.ts +75 -75
  1542. package/dist/types/components/label/label.d.ts +30 -30
  1543. package/dist/types/components/list/list.d.ts +17 -17
  1544. package/dist/types/components/list-header/list-header.d.ts +11 -11
  1545. package/dist/types/components/loading/loading-interface.d.ts +16 -16
  1546. package/dist/types/components/loading/loading.d.ts +152 -152
  1547. package/dist/types/components/menu/menu-interface.d.ts +39 -39
  1548. package/dist/types/components/menu/menu.d.ts +140 -140
  1549. package/dist/types/components/menu-button/menu-button.d.ts +30 -30
  1550. package/dist/types/components/menu-toggle/menu-toggle.d.ts +21 -21
  1551. package/dist/types/components/modal/animations/sheet.d.ts +4 -4
  1552. package/dist/types/components/modal/gestures/sheet.d.ts +30 -30
  1553. package/dist/types/components/modal/gestures/swipe-to-close.d.ts +1 -1
  1554. package/dist/types/components/modal/modal-interface.d.ts +27 -27
  1555. package/dist/types/components/modal/modal.d.ts +265 -265
  1556. package/dist/types/components/modal/test/fixtures.d.ts +7 -7
  1557. package/dist/types/components/nav/nav-interface.d.ts +40 -40
  1558. package/dist/types/components/nav/nav.d.ts +247 -247
  1559. package/dist/types/components/nav/view-controller.d.ts +13 -13
  1560. package/dist/types/components/nav-link/nav-link.d.ts +19 -19
  1561. package/dist/types/components/note/note.d.ts +7 -7
  1562. package/dist/types/components/picker/picker-interface.d.ts +43 -43
  1563. package/dist/types/components/picker/picker.d.ts +149 -149
  1564. package/dist/types/components/picker-column/picker-column.d.ts +39 -39
  1565. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +3 -3
  1566. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +93 -89
  1567. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +4 -4
  1568. package/dist/types/components/picker-internal/picker-internal.d.ts +94 -94
  1569. package/dist/types/components/popover/popover-interface.d.ts +26 -26
  1570. package/dist/types/components/popover/popover.d.ts +279 -279
  1571. package/dist/types/components/popover/test/fixture.d.ts +5 -5
  1572. package/dist/types/components/popover/utils.d.ts +25 -25
  1573. package/dist/types/components/progress-bar/progress-bar.d.ts +27 -27
  1574. package/dist/types/components/radio/radio.d.ts +100 -99
  1575. package/dist/types/components/radio-group/radio-group-interface.d.ts +5 -4
  1576. package/dist/types/components/radio-group/radio-group.d.ts +51 -44
  1577. package/dist/types/components/radio-group/test/fixtures.d.ts +5 -5
  1578. package/dist/types/components/range/range-interface.d.ts +7 -7
  1579. package/dist/types/components/range/range.d.ts +193 -192
  1580. package/dist/types/components/refresher/refresher-interface.d.ts +3 -3
  1581. package/dist/types/components/refresher/refresher.d.ts +132 -132
  1582. package/dist/types/components/refresher-content/refresher-content.d.ts +44 -44
  1583. package/dist/types/components/reorder/reorder.d.ts +3 -3
  1584. package/dist/types/components/reorder-group/reorder-group-interface.d.ts +5 -5
  1585. package/dist/types/components/reorder-group/reorder-group.d.ts +53 -53
  1586. package/dist/types/components/ripple-effect/ripple-effect.d.ts +20 -20
  1587. package/dist/types/components/route/route-interface.d.ts +1 -1
  1588. package/dist/types/components/route/route.d.ts +43 -43
  1589. package/dist/types/components/route-redirect/route-redirect.d.ts +33 -33
  1590. package/dist/types/components/router/router.d.ts +74 -73
  1591. package/dist/types/components/router/utils/dom.d.ts +2 -2
  1592. package/dist/types/components/router/utils/interface.d.ts +31 -31
  1593. package/dist/types/components/router/utils/matching.d.ts +6 -6
  1594. package/dist/types/components/router-link/router-link.d.ts +34 -34
  1595. package/dist/types/components/router-outlet/router-outlet.d.ts +41 -41
  1596. package/dist/types/components/row/row.d.ts +1 -1
  1597. package/dist/types/components/searchbar/searchbar-interface.d.ts +6 -6
  1598. package/dist/types/components/searchbar/searchbar.d.ts +235 -233
  1599. package/dist/types/components/segment/segment-interface.d.ts +3 -3
  1600. package/dist/types/components/segment/segment.d.ts +82 -82
  1601. package/dist/types/components/segment-button/segment-button.d.ts +36 -36
  1602. package/dist/types/components/select/select-interface.d.ts +3 -3
  1603. package/dist/types/components/select/select.d.ts +238 -233
  1604. package/dist/types/components/select-option/select-option.d.ts +11 -11
  1605. package/dist/types/components/select-popover/select-popover-interface.d.ts +8 -8
  1606. package/dist/types/components/select-popover/select-popover.d.ts +39 -39
  1607. package/dist/types/components/select-popover/test/fixtures.d.ts +12 -12
  1608. package/dist/types/components/skeleton-text/skeleton-text.d.ts +15 -7
  1609. package/dist/types/components/spinner/spinner-configs.d.ts +96 -96
  1610. package/dist/types/components/spinner/spinner-interface.d.ts +14 -14
  1611. package/dist/types/components/spinner/spinner.d.ts +21 -21
  1612. package/dist/types/components/split-pane/split-pane.d.ts +33 -33
  1613. package/dist/types/components/tab/tab.d.ts +21 -21
  1614. package/dist/types/components/tab-bar/tab-bar-interface.d.ts +4 -4
  1615. package/dist/types/components/tab-bar/tab-bar.d.ts +34 -34
  1616. package/dist/types/components/tab-button/tab-button.d.ts +56 -56
  1617. package/dist/types/components/tabs/tabs-interface.d.ts +4 -4
  1618. package/dist/types/components/tabs/tabs.d.ts +52 -52
  1619. package/dist/types/components/text/text.d.ts +7 -7
  1620. package/dist/types/components/textarea/textarea-interface.d.ts +6 -6
  1621. package/dist/types/components/textarea/textarea.d.ts +275 -269
  1622. package/dist/types/components/thumbnail/thumbnail.d.ts +1 -1
  1623. package/dist/types/components/title/title.d.ts +21 -21
  1624. package/dist/types/components/toast/animations/utils.d.ts +15 -4
  1625. package/dist/types/components/toast/gestures/swipe-to-dismiss.d.ts +9 -0
  1626. package/dist/types/components/toast/toast-interface.d.ts +37 -35
  1627. package/dist/types/components/toast/toast.d.ts +241 -214
  1628. package/dist/types/components/toggle/toggle-interface.d.ts +4 -4
  1629. package/dist/types/components/toggle/toggle.d.ts +117 -116
  1630. package/dist/types/components/toolbar/toolbar.d.ts +11 -11
  1631. package/dist/types/components.d.ts +52 -13
  1632. package/dist/types/global/config.d.ts +6 -6
  1633. package/dist/types/interface.d.ts +1 -5
  1634. package/dist/types/jest.d.ts +5 -0
  1635. package/dist/types/stencil-public-runtime.d.ts +8 -0
  1636. package/dist/types/utils/animation/animation-interface.d.ts +205 -205
  1637. package/dist/types/utils/browser/index.d.ts +17 -8
  1638. package/dist/types/utils/config.d.ts +175 -175
  1639. package/dist/types/utils/element-interface.d.ts +6 -6
  1640. package/dist/types/utils/focus-visible.d.ts +2 -2
  1641. package/dist/types/utils/forms/compare-with-utils.d.ts +18 -0
  1642. package/dist/types/utils/forms/form-controller.d.ts +3 -3
  1643. package/dist/types/utils/forms/index.d.ts +1 -0
  1644. package/dist/types/utils/forms/notch-controller.d.ts +2 -2
  1645. package/dist/types/utils/framework-delegate.d.ts +3 -3
  1646. package/dist/types/utils/gesture/gesture-controller.d.ts +49 -49
  1647. package/dist/types/utils/gesture/index.d.ts +31 -31
  1648. package/dist/types/utils/gesture/listener.d.ts +2 -2
  1649. package/dist/types/utils/gesture/pointer-events.d.ts +12 -12
  1650. package/dist/types/utils/gesture/recognizers.d.ts +4 -4
  1651. package/dist/types/utils/hardware-back-button.d.ts +4 -0
  1652. package/dist/types/utils/helpers.d.ts +8 -8
  1653. package/dist/types/utils/input-shims/hacks/scroll-data.d.ts +4 -4
  1654. package/dist/types/utils/keyboard/keyboard-controller.d.ts +3 -3
  1655. package/dist/types/utils/lock-controller.d.ts +1 -1
  1656. package/dist/types/utils/native/haptic.d.ts +38 -38
  1657. package/dist/types/utils/native/keyboard.d.ts +29 -29
  1658. package/dist/types/utils/native/native-interface.d.ts +15 -15
  1659. package/dist/types/utils/native/status-bar.d.ts +8 -8
  1660. package/dist/types/utils/overlays-interface.d.ts +27 -27
  1661. package/dist/types/utils/overlays.d.ts +29 -28
  1662. package/dist/types/utils/platform.d.ts +16 -16
  1663. package/dist/types/utils/sanitization/index.d.ts +2 -2
  1664. package/dist/types/utils/slot-mutation-controller.d.ts +3 -3
  1665. package/dist/types/utils/test/platform.utils.d.ts +66 -66
  1666. package/dist/types/utils/test/playwright/generator.d.ts +16 -7
  1667. package/dist/types/utils/test/playwright/matchers/index.d.ts +3 -3
  1668. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEvent.d.ts +2 -2
  1669. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventDetail.d.ts +2 -2
  1670. package/dist/types/utils/test/playwright/matchers/toHaveReceivedEventTimes.d.ts +2 -2
  1671. package/dist/types/utils/test/playwright/page/event-spy.d.ts +15 -15
  1672. package/dist/types/utils/test/playwright/page/utils/goto.d.ts +3 -3
  1673. package/dist/types/utils/test/playwright/page/utils/locator.d.ts +15 -15
  1674. package/dist/types/utils/test/playwright/playwright-declarations.d.ts +92 -92
  1675. package/dist/types/utils/test/playwright/playwright-page.d.ts +3 -3
  1676. package/dist/types/utils/test/playwright/viewports/index.d.ts +12 -12
  1677. package/dist/types/utils/test/press-keys.d.ts +14 -14
  1678. package/dist/types/utils/transition/index.d.ts +6 -6
  1679. package/dist/types/utils/watch-options.d.ts +1 -1
  1680. package/hydrate/index.d.ts +1 -1
  1681. package/hydrate/index.js +30685 -30001
  1682. package/package.json +4 -3
  1683. package/dist/cjs/animation-1083855c.js +0 -1061
  1684. package/dist/cjs/button-active-af897e0e.js +0 -69
  1685. package/dist/cjs/config-d5882735.js +0 -199
  1686. package/dist/cjs/cubic-bezier-6b9222ad.js +0 -92
  1687. package/dist/cjs/data-c8d21093.js +0 -1622
  1688. package/dist/cjs/focus-visible-a7545600.js +0 -77
  1689. package/dist/cjs/form-controller-9343050c.js +0 -66
  1690. package/dist/cjs/framework-delegate-c0873a6f.js +0 -144
  1691. package/dist/cjs/gesture-controller-b46721be.js +0 -197
  1692. package/dist/cjs/haptic-678abc9f.js +0 -212
  1693. package/dist/cjs/hardware-back-button-b67c8e75.js +0 -76
  1694. package/dist/cjs/helpers-ea4ccbcb.js +0 -441
  1695. package/dist/cjs/index-0ee995e4.js +0 -459
  1696. package/dist/cjs/index-306a7476.js +0 -32
  1697. package/dist/cjs/index-573877f3.js +0 -243
  1698. package/dist/cjs/index-9f379eaa.js +0 -198
  1699. package/dist/cjs/index-d7561763.js +0 -310
  1700. package/dist/cjs/input-shims-b0a75a01.js +0 -596
  1701. package/dist/cjs/input.utils-0fe3097c.js +0 -137
  1702. package/dist/cjs/ionic-global-ea2901a3.js +0 -230
  1703. package/dist/cjs/ios.transition-ac909bc8.js +0 -654
  1704. package/dist/cjs/keyboard-controller-50beb83a.js +0 -167
  1705. package/dist/cjs/keyboard-fd7db491.js +0 -81
  1706. package/dist/cjs/lock-controller-4ae2eb59.js +0 -40
  1707. package/dist/cjs/md.transition-907af519.js +0 -59
  1708. package/dist/cjs/notch-controller-f4f6af5d.js +0 -155
  1709. package/dist/cjs/overlays-2ffc5f27.js +0 -714
  1710. package/dist/cjs/spinner-configs-f7b5105b.js +0 -147
  1711. package/dist/cjs/status-tap-3fb2391a.js +0 -42
  1712. package/dist/cjs/swipe-back-7e843e77.js +0 -81
  1713. package/dist/cjs/theme-fbc56b3b.js +0 -48
  1714. package/dist/cjs/watch-options-53bbb124.js +0 -49
  1715. package/dist/collection/components/item/test/text/item.e2e.js +0 -14
  1716. package/dist/esm/animation-8aa13916.js +0 -1059
  1717. package/dist/esm/button-active-ce5cba4c.js +0 -67
  1718. package/dist/esm/capacitor-b4979570.js +0 -13
  1719. package/dist/esm/config-96c9ace3.js +0 -193
  1720. package/dist/esm/cubic-bezier-66542bc5.js +0 -90
  1721. package/dist/esm/data-44d9e816.js +0 -1575
  1722. package/dist/esm/focus-visible-85493433.js +0 -75
  1723. package/dist/esm/form-controller-64edeaad.js +0 -64
  1724. package/dist/esm/framework-delegate-aa433dea.js +0 -140
  1725. package/dist/esm/gesture-controller-0fa396c4.js +0 -195
  1726. package/dist/esm/haptic-1243b917.js +0 -206
  1727. package/dist/esm/hardware-back-button-39299f84.js +0 -71
  1728. package/dist/esm/helpers-3379ba19.js +0 -418
  1729. package/dist/esm/index-0aa6e61f.js +0 -308
  1730. package/dist/esm/index-6a0ccabb.js +0 -231
  1731. package/dist/esm/index-7a14ecec.js +0 -29
  1732. package/dist/esm/index-f0cc4e14.js +0 -196
  1733. package/dist/esm/index-ff313b19.js +0 -457
  1734. package/dist/esm/input-shims-d0c93e5d.js +0 -594
  1735. package/dist/esm/input.utils-ec063df4.js +0 -134
  1736. package/dist/esm/ionic-global-40e42e7f.js +0 -224
  1737. package/dist/esm/ios.transition-1651c430.js +0 -651
  1738. package/dist/esm/keyboard-b063f012.js +0 -79
  1739. package/dist/esm/keyboard-b551279d.js +0 -146
  1740. package/dist/esm/keyboard-controller-0c2dce71.js +0 -165
  1741. package/dist/esm/lock-controller-e8c6c051.js +0 -38
  1742. package/dist/esm/md.transition-66f18369.js +0 -57
  1743. package/dist/esm/notch-controller-8c9c0e54.js +0 -153
  1744. package/dist/esm/overlays-6c9feb7e.js +0 -692
  1745. package/dist/esm/spinner-configs-d09fbbbb.js +0 -145
  1746. package/dist/esm/status-tap-9ce68758.js +0 -40
  1747. package/dist/esm/swipe-back-cd4295f3.js +0 -79
  1748. package/dist/esm/theme-17531cdf.js +0 -43
  1749. package/dist/esm/watch-options-02d8498b.js +0 -47
  1750. package/dist/esm-es5/app-globals-2398e405.js +0 -4
  1751. package/dist/esm-es5/data-44d9e816.js +0 -4
  1752. package/dist/esm-es5/index-0aa6e61f.js +0 -4
  1753. package/dist/esm-es5/index-7c9b1bca.js +0 -5
  1754. package/dist/esm-es5/input-shims-d0c93e5d.js +0 -4
  1755. package/dist/esm-es5/input.utils-ec063df4.js +0 -4
  1756. package/dist/esm-es5/md.transition-66f18369.js +0 -4
  1757. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  1758. package/dist/ionic/p-114a36ed.js +0 -4
  1759. package/dist/ionic/p-17240d90.js +0 -4
  1760. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  1761. package/dist/ionic/p-1f4f0d59.system.entry.js +0 -4
  1762. package/dist/ionic/p-20cf4994.js +0 -4
  1763. package/dist/ionic/p-236063ec.system.entry.js +0 -4
  1764. package/dist/ionic/p-276afddd.js +0 -4
  1765. package/dist/ionic/p-2e8e0045.js +0 -4
  1766. package/dist/ionic/p-32083c2d.js +0 -4
  1767. package/dist/ionic/p-352c0232.system.entry.js +0 -4
  1768. package/dist/ionic/p-3602001b.system.js +0 -4
  1769. package/dist/ionic/p-3632220b.system.js +0 -4
  1770. package/dist/ionic/p-377c636c.system.entry.js +0 -4
  1771. package/dist/ionic/p-39044fe6.system.entry.js +0 -4
  1772. package/dist/ionic/p-3ce8c3e3.entry.js +0 -4
  1773. package/dist/ionic/p-40903d34.system.js +0 -4
  1774. package/dist/ionic/p-4518e4c0.system.entry.js +0 -4
  1775. package/dist/ionic/p-4794e0ac.system.entry.js +0 -4
  1776. package/dist/ionic/p-4a142496.system.entry.js +0 -4
  1777. package/dist/ionic/p-4cd588b3.system.entry.js +0 -4
  1778. package/dist/ionic/p-4dbac22d.entry.js +0 -4
  1779. package/dist/ionic/p-4ecb5692.entry.js +0 -4
  1780. package/dist/ionic/p-5370e786.js +0 -4
  1781. package/dist/ionic/p-5cfb3feb.system.entry.js +0 -4
  1782. package/dist/ionic/p-63d519fb.entry.js +0 -4
  1783. package/dist/ionic/p-64296b15.entry.js +0 -4
  1784. package/dist/ionic/p-67aab78f.js +0 -4
  1785. package/dist/ionic/p-67ed452a.system.entry.js +0 -4
  1786. package/dist/ionic/p-67eecef4.system.js +0 -4
  1787. package/dist/ionic/p-7176cea3.entry.js +0 -4
  1788. package/dist/ionic/p-73411c1b.entry.js +0 -4
  1789. package/dist/ionic/p-73420380.js +0 -4
  1790. package/dist/ionic/p-77e7a9c8.entry.js +0 -4
  1791. package/dist/ionic/p-81c818e7.js +0 -4
  1792. package/dist/ionic/p-8b1be026.js +0 -4
  1793. package/dist/ionic/p-8cf94fc1.js +0 -4
  1794. package/dist/ionic/p-8e1bded3.entry.js +0 -4
  1795. package/dist/ionic/p-97c65aa5.js +0 -4
  1796. package/dist/ionic/p-9ab6f3e6.system.js +0 -4
  1797. package/dist/ionic/p-9b89cbde.js +0 -4
  1798. package/dist/ionic/p-a5c1e6ce.entry.js +0 -4
  1799. package/dist/ionic/p-af016cd3.entry.js +0 -4
  1800. package/dist/ionic/p-b0cee324.entry.js +0 -4
  1801. package/dist/ionic/p-b1142133.entry.js +0 -4
  1802. package/dist/ionic/p-b17b7c3c.system.entry.js +0 -4
  1803. package/dist/ionic/p-b203659a.system.entry.js +0 -4
  1804. package/dist/ionic/p-b6f8ee31.entry.js +0 -4
  1805. package/dist/ionic/p-b8c3f071.system.js +0 -4
  1806. package/dist/ionic/p-b906c5ca.entry.js +0 -4
  1807. package/dist/ionic/p-b912e055.system.js +0 -4
  1808. package/dist/ionic/p-c224b9a9.js +0 -5
  1809. package/dist/ionic/p-ca5219df.entry.js +0 -4
  1810. package/dist/ionic/p-cc196b34.js +0 -4
  1811. package/dist/ionic/p-d1de1188.js +0 -4
  1812. package/dist/ionic/p-d2597b3e.system.js +0 -5
  1813. package/dist/ionic/p-d3952bd5.system.entry.js +0 -4
  1814. package/dist/ionic/p-dfa756ed.system.js +0 -4
  1815. package/dist/ionic/p-e6b240a0.js +0 -4
  1816. package/dist/ionic/p-e8400078.system.entry.js +0 -4
  1817. package/dist/ionic/p-ed636a74.entry.js +0 -4
  1818. package/dist/ionic/p-f8e620f1.entry.js +0 -4
  1819. package/dist/ionic/p-ff5a10f9.system.js +0 -4
  1820. /package/dist/esm-es5/{config-96c9ace3.js → config-49c88215.js} +0 -0
  1821. /package/dist/esm-es5/{cubic-bezier-66542bc5.js → cubic-bezier-fe2083dc.js} +0 -0
  1822. /package/dist/esm-es5/{dir-912e3e13.js → dir-babeabeb.js} +0 -0
  1823. /package/dist/esm-es5/{focus-visible-85493433.js → focus-visible-dd40d69f.js} +0 -0
  1824. /package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-1bf57181.js} +0 -0
  1825. /package/dist/esm-es5/{hardware-back-button-39299f84.js → hardware-back-button-b2bc76db.js} +0 -0
  1826. /package/dist/esm-es5/{helpers-3379ba19.js → helpers-ae653409.js} +0 -0
  1827. /package/dist/esm-es5/{index-595d62c9.js → index-9b0d46f4.js} +0 -0
  1828. /package/dist/esm-es5/{index-7a14ecec.js → index-a5d50daf.js} +0 -0
  1829. /package/dist/esm-es5/{lock-controller-e8c6c051.js → lock-controller-316928be.js} +0 -0
  1830. /package/dist/esm-es5/{spinner-configs-d09fbbbb.js → spinner-configs-964f7cf3.js} +0 -0
  1831. /package/dist/esm-es5/{theme-17531cdf.js → theme-01f3f29c.js} +0 -0
  1832. /package/dist/esm-es5/{watch-options-02d8498b.js → watch-options-c2911ace.js} +0 -0
  1833. /package/dist/ionic/{p-5aac9314.system.js → p-012c3ceb.system.js} +0 -0
  1834. /package/dist/ionic/{p-1b8e1d03.js → p-06fee233.js} +0 -0
  1835. /package/dist/ionic/{p-819ff3b9.system.js → p-08e01816.system.js} +0 -0
  1836. /package/dist/ionic/{p-63eb0acd.js → p-23a9d086.js} +0 -0
  1837. /package/dist/ionic/{p-7c2bac85.js → p-2408c236.js} +0 -0
  1838. /package/dist/ionic/{p-815c2fba.system.js → p-32ad210f.system.js} +0 -0
  1839. /package/dist/ionic/{p-7b021525.js → p-41d5544e.js} +0 -0
  1840. /package/dist/ionic/{p-f10de93b.js → p-459d13d5.js} +0 -0
  1841. /package/dist/ionic/{p-44bc8b45.system.js → p-4609d030.system.js} +0 -0
  1842. /package/dist/ionic/{p-1d072d3d.js → p-47794def.js} +0 -0
  1843. /package/dist/ionic/{p-185e427e.js → p-4b3623da.js} +0 -0
  1844. /package/dist/ionic/{p-772f6c84.system.js → p-4f255d5a.system.js} +0 -0
  1845. /package/dist/ionic/{p-8c15eda7.system.js → p-790220fd.system.js} +0 -0
  1846. /package/dist/ionic/{p-0e94957a.system.js → p-792919fd.system.js} +0 -0
  1847. /package/dist/ionic/{p-b347cfd1.js → p-7b30edcc.js} +0 -0
  1848. /package/dist/ionic/{p-e0b06b65.js → p-bb3615f7.js} +0 -0
  1849. /package/dist/ionic/{p-87411e39.system.js → p-c468af8a.system.js} +0 -0
  1850. /package/dist/ionic/{p-9e852ff1.system.js → p-c7c8429a.system.js} +0 -0
  1851. /package/dist/ionic/{p-53b2a46f.js → p-ccd02320.js} +0 -0
  1852. /package/dist/ionic/{p-76fce40e.js → p-d47265c8.js} +0 -0
  1853. /package/dist/ionic/{p-56dc022e.system.js → p-d8d84afa.system.js} +0 -0
  1854. /package/dist/ionic/{p-c4f2dce7.system.js → p-e673a0a2.system.js} +0 -0
  1855. /package/dist/ionic/{p-c18d6eac.js → p-f0c2a614.js} +0 -0
  1856. /package/dist/ionic/{p-2b89ea1b.system.js → p-f233f1e0.system.js} +0 -0
  1857. /package/dist/ionic/{p-6dbfe5d4.js → p-fb813dab.js} +0 -0
  1858. /package/dist/ionic/{p-479cdbf8.system.js → p-ff4b7e40.system.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);
357
337
  /**
358
- * Passing in "HH:mm" is a valid ISO-8601
359
- * string, so we just default to the current year
360
- * in this case.
338
+ * If min was not a valid date then return undefined.
361
339
  */
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
- };
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,
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,108 +642,158 @@ 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
717
717
  * that also meets the constraints of
718
718
  * the *Values params.
719
- * @param refParts The reference date
720
- * @param monthValues The allowed month values
721
- * @param dayValues The allowed day (of the month) values
722
- * @param yearValues The allowed year values
723
- * @param hourValues The allowed hour values
724
- * @param minuteValues The allowed minute values
725
719
  */
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;
720
+ const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hourValues, minuteValues, minParts, maxParts, }) => {
721
+ const { hour, minute, day, month, year } = refParts;
722
+ const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
723
+ if (yearValues !== undefined) {
724
+ // Filters out years that are out of the min/max bounds
725
+ const filteredYears = yearValues.filter((year) => {
726
+ if (minParts !== undefined && year < minParts.year) {
727
+ return false;
728
+ }
729
+ if (maxParts !== undefined && year > maxParts.year) {
730
+ return false;
731
+ }
732
+ return true;
733
+ });
734
+ copyParts.year = findClosestValue(year, filteredYears);
735
+ }
736
+ if (monthValues !== undefined) {
737
+ // Filters out months that are out of the min/max bounds
738
+ const filteredMonths = monthValues.filter((month) => {
739
+ if (minParts !== undefined && copyParts.year === minParts.year && month < minParts.month) {
740
+ return false;
741
+ }
742
+ if (maxParts !== undefined && copyParts.year === maxParts.year && month > maxParts.month) {
743
+ return false;
744
+ }
745
+ return true;
746
+ });
747
+ copyParts.month = findClosestValue(month, filteredMonths);
748
+ }
749
+ // Day is nullable but cannot be undefined
750
+ if (day !== null && dayValues !== undefined) {
751
+ // Filters out days that are out of the min/max bounds
752
+ const filteredDays = dayValues.filter((day) => {
753
+ if (minParts !== undefined && isBefore(Object.assign(Object.assign({}, copyParts), { day }), minParts)) {
754
+ return false;
755
+ }
756
+ if (maxParts !== undefined && isAfter(Object.assign(Object.assign({}, copyParts), { day }), maxParts)) {
757
+ return false;
758
+ }
759
+ return true;
760
+ });
761
+ copyParts.day = findClosestValue(day, filteredDays);
762
+ }
763
+ if (hour !== undefined && hourValues !== undefined) {
764
+ // Filters out hours that are out of the min/max bounds
765
+ const filteredHours = hourValues.filter((hour) => {
766
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.hour) !== undefined && isSameDay(copyParts, minParts) && hour < minParts.hour) {
767
+ return false;
768
+ }
769
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.hour) !== undefined && isSameDay(copyParts, maxParts) && hour > maxParts.hour) {
770
+ return false;
771
+ }
772
+ return true;
773
+ });
774
+ copyParts.hour = findClosestValue(hour, filteredHours);
775
+ copyParts.ampm = parseAmPm(copyParts.hour);
776
+ }
777
+ if (minute !== undefined && minuteValues !== undefined) {
778
+ // Filters out minutes that are out of the min/max bounds
779
+ const filteredMinutes = minuteValues.filter((minute) => {
780
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.minute) !== undefined &&
781
+ isSameDay(copyParts, minParts) &&
782
+ copyParts.hour === minParts.hour &&
783
+ minute < minParts.minute) {
784
+ return false;
785
+ }
786
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.minute) !== undefined &&
787
+ isSameDay(copyParts, maxParts) &&
788
+ copyParts.hour === maxParts.hour &&
789
+ minute > maxParts.minute) {
790
+ return false;
791
+ }
792
+ return true;
793
+ });
794
+ copyParts.minute = findClosestValue(minute, filteredMinutes);
795
+ }
796
+ return copyParts;
747
797
  };
748
798
  /**
749
799
  * Finds the value in "values" that is
@@ -756,85 +806,85 @@ const getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourV
756
806
  * searched to find the closest value to "reference"
757
807
  */
758
808
  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;
809
+ let closestValue = values[0];
810
+ let rank = Math.abs(closestValue - reference);
811
+ for (let i = 1; i < values.length; i++) {
812
+ const value = values[i];
813
+ /**
814
+ * This code prioritizes the first
815
+ * closest result. Given two values
816
+ * with the same distance from reference,
817
+ * this code will prioritize the smaller of
818
+ * the two values.
819
+ */
820
+ const valueRank = Math.abs(value - reference);
821
+ if (valueRank < rank) {
822
+ closestValue = value;
823
+ rank = valueRank;
824
+ }
774
825
  }
775
- }
776
- return closestValue;
826
+ return closestValue;
777
827
  };
778
828
 
779
829
  const getFormattedDayPeriod = (dayPeriod) => {
780
- if (dayPeriod === undefined) {
781
- return '';
782
- }
783
- return dayPeriod.toUpperCase();
830
+ if (dayPeriod === undefined) {
831
+ return '';
832
+ }
833
+ return dayPeriod.toUpperCase();
784
834
  };
785
835
  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'));
836
+ const timeParts = {
837
+ hour: refParts.hour,
838
+ minute: refParts.minute,
839
+ };
840
+ if (timeParts.hour === undefined || timeParts.minute === undefined) {
841
+ return 'Invalid Time';
842
+ }
843
+ return new Intl.DateTimeFormat(locale, {
844
+ hour: 'numeric',
845
+ minute: 'numeric',
846
+ /**
847
+ * Setting the timeZone to UTC prevents
848
+ * new Intl.DatetimeFormat from subtracting
849
+ * the user's current timezone offset
850
+ * when formatting the time.
851
+ */
852
+ timeZone: 'UTC',
853
+ /**
854
+ * We use hourCycle here instead of hour12 due to:
855
+ * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
856
+ */
857
+ hourCycle,
858
+ /**
859
+ * Setting Z at the end indicates that this
860
+ * date string is in the UTC time zone. This
861
+ * prevents new Date from adding the time zone
862
+ * offset when getting the ISO string.
863
+ */
864
+ }).format(new Date(convertDataToISO(Object.assign({
865
+ /**
866
+ * JS uses a simplified ISO 8601 format which allows for
867
+ * date-only formats and date-time formats, but not
868
+ * time-only formats: https://tc39.es/ecma262/#sec-date-time-string-format
869
+ * As a result, developers who only pass a time will get
870
+ * an "Invalid Date" error. To account for this, we make sure that
871
+ * year/day/month values are set when passing to new Date().
872
+ * The Intl.DateTimeFormat call above only uses the hour/minute
873
+ * values, so passing these date values should have no impact
874
+ * on the time output.
875
+ */
876
+ year: 2023, day: 1, month: 1 }, timeParts)) + 'Z'));
827
877
  };
828
878
  /**
829
879
  * Adds padding to a time value so
830
880
  * that it is always 2 digits.
831
881
  */
832
882
  const addTimePadding = (value) => {
833
- const valueToString = value.toString();
834
- if (valueToString.length > 1) {
835
- return valueToString;
836
- }
837
- return `0${valueToString}`;
883
+ const valueToString = value.toString();
884
+ if (valueToString.length > 1) {
885
+ return valueToString;
886
+ }
887
+ return `0${valueToString}`;
838
888
  };
839
889
  /**
840
890
  * Formats 24 hour times so that
@@ -843,34 +893,34 @@ const addTimePadding = (value) => {
843
893
  * hour 0 is formatted as '12'.
844
894
  */
845
895
  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();
896
+ /**
897
+ * Midnight for h11 starts at 0:00am
898
+ * Midnight for h12 starts at 12:00am
899
+ * Midnight for h23 starts at 00:00
900
+ * Midnight for h24 starts at 24:00
901
+ */
902
+ if (hour === 0) {
903
+ switch (hourCycle) {
904
+ case 'h11':
905
+ return '0';
906
+ case 'h12':
907
+ return '12';
908
+ case 'h23':
909
+ return '00';
910
+ case 'h24':
911
+ return '24';
912
+ default:
913
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
914
+ }
915
+ }
916
+ const use24Hour = is24Hour(hourCycle);
917
+ /**
918
+ * h23 and h24 use 24 hour times.
919
+ */
920
+ if (use24Hour) {
921
+ return addTimePadding(hour);
922
+ }
923
+ return hour.toString();
874
924
  };
875
925
  /**
876
926
  * Generates an aria-label to be read by screen readers
@@ -878,32 +928,32 @@ const getFormattedHour = (hour, hourCycle) => {
878
928
  * today's date.
879
929
  */
880
930
  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;
931
+ if (refParts.day === null) {
932
+ return null;
933
+ }
934
+ /**
935
+ * MM/DD/YYYY will return midnight in the user's timezone.
936
+ */
937
+ const date = getNormalizedDate(refParts);
938
+ const labelString = new Intl.DateTimeFormat(locale, {
939
+ weekday: 'long',
940
+ month: 'long',
941
+ day: 'numeric',
942
+ timeZone: 'UTC',
943
+ }).format(date);
944
+ /**
945
+ * If date is today, prepend "Today" so screen readers indicate
946
+ * that the date is today.
947
+ */
948
+ return today ? `Today, ${labelString}` : labelString;
899
949
  };
900
950
  /**
901
951
  * Gets the day of the week, month, and day
902
952
  * Used for the header in MD mode.
903
953
  */
904
954
  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);
955
+ const date = getNormalizedDate(refParts);
956
+ return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);
907
957
  };
908
958
  /**
909
959
  * Given a locale and a date object,
@@ -912,8 +962,8 @@ const getMonthAndDay = (locale, refParts) => {
912
962
  * Example: May 2021
913
963
  */
914
964
  const getMonthAndYear = (locale, refParts) => {
915
- const date = getNormalizedDate(refParts);
916
- return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
965
+ const date = getNormalizedDate(refParts);
966
+ return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
917
967
  };
918
968
  /**
919
969
  * Given a locale and a date object,
@@ -922,7 +972,7 @@ const getMonthAndYear = (locale, refParts) => {
922
972
  * Example: Apr 22, 2021
923
973
  */
924
974
  const getMonthDayAndYear = (locale, refParts) => {
925
- return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
975
+ return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
926
976
  };
927
977
  /**
928
978
  * Given a locale and a date object,
@@ -933,7 +983,7 @@ const getMonthDayAndYear = (locale, refParts) => {
933
983
  * Example: 29
934
984
  */
935
985
  const getDay = (locale, refParts) => {
936
- return getLocalizedDateTimeParts(locale, refParts, { day: 'numeric' }).find((obj) => obj.type === 'day').value;
986
+ return getLocalizedDateTimeParts(locale, refParts, { day: 'numeric' }).find((obj) => obj.type === 'day').value;
937
987
  };
938
988
  /**
939
989
  * Given a locale and a date object,
@@ -942,26 +992,26 @@ const getDay = (locale, refParts) => {
942
992
  * Example: 2022
943
993
  */
944
994
  const getYear = (locale, refParts) => {
945
- return getLocalizedDateTime(locale, refParts, { year: 'numeric' });
995
+ return getLocalizedDateTime(locale, refParts, { year: 'numeric' });
946
996
  };
947
997
  /**
948
998
  * Given reference parts, return a JS Date object
949
999
  * with a normalized time.
950
1000
  */
951
1001
  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`);
1002
+ var _a, _b, _c;
1003
+ const timeString = refParts.hour !== undefined && refParts.minute !== undefined ? ` ${refParts.hour}:${refParts.minute}` : '';
1004
+ /**
1005
+ * We use / notation here for the date
1006
+ * so we do not need to do extra work and pad values with zeroes.
1007
+ * Values such as YYYY-MM are still valid, so
1008
+ * we add fallback values so we still get
1009
+ * a valid date otherwise we will pass in a string
1010
+ * like "//2023". Some browsers, such as Chrome, will
1011
+ * account for this and still return a valid date. However,
1012
+ * this is not a consistent behavior across all browsers.
1013
+ */
1014
+ 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
1015
  };
966
1016
  /**
967
1017
  * Given a locale, DatetimeParts, and options
@@ -972,8 +1022,8 @@ const getNormalizedDate = (refParts) => {
972
1022
  * getLocalizedDateTimeParts.
973
1023
  */
974
1024
  const getLocalizedDateTime = (locale, refParts, options) => {
975
- const date = getNormalizedDate(refParts);
976
- return getDateTimeFormat(locale, options).format(date);
1025
+ const date = getNormalizedDate(refParts);
1026
+ return getDateTimeFormat(locale, options).format(date);
977
1027
  };
978
1028
  /**
979
1029
  * Given a locale, DatetimeParts, and options
@@ -982,8 +1032,8 @@ const getLocalizedDateTime = (locale, refParts, options) => {
982
1032
  * each piece of the date.
983
1033
  */
984
1034
  const getLocalizedDateTimeParts = (locale, refParts, options) => {
985
- const date = getNormalizedDate(refParts);
986
- return getDateTimeFormat(locale, options).formatToParts(date);
1035
+ const date = getNormalizedDate(refParts);
1036
+ return getDateTimeFormat(locale, options).formatToParts(date);
987
1037
  };
988
1038
  /**
989
1039
  * Wrapper function for Intl.DateTimeFormat.
@@ -992,7 +1042,7 @@ const getLocalizedDateTimeParts = (locale, refParts, options) => {
992
1042
  * with Intl.DateTimeFormat.
993
1043
  */
994
1044
  const getDateTimeFormat = (locale, options) => {
995
- return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));
1045
+ return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, options), { timeZone: 'UTC' }));
996
1046
  };
997
1047
  /**
998
1048
  * Gets a localized version of "Today"
@@ -1000,13 +1050,13 @@ const getDateTimeFormat = (locale, options) => {
1000
1050
  * browsers that do not support RelativeTimeFormat.
1001
1051
  */
1002
1052
  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
- }
1053
+ if ('RelativeTimeFormat' in Intl) {
1054
+ const label = new Intl.RelativeTimeFormat(locale, { numeric: 'auto' }).format(0, 'day');
1055
+ return label.charAt(0).toUpperCase() + label.slice(1);
1056
+ }
1057
+ else {
1058
+ return 'Today';
1059
+ }
1010
1060
  };
1011
1061
  /**
1012
1062
  * When calling toISOString(), the browser
@@ -1038,9 +1088,9 @@ const getTodayLabel = (locale) => {
1038
1088
  * https://www.timeanddate.com/time/time-zones-interesting.html
1039
1089
  */
1040
1090
  const removeDateTzOffset = (date) => {
1041
- const tzOffset = date.getTimezoneOffset();
1042
- date.setMinutes(date.getMinutes() - tzOffset);
1043
- return date;
1091
+ const tzOffset = date.getTimezoneOffset();
1092
+ date.setMinutes(date.getMinutes() - tzOffset);
1093
+ return date;
1044
1094
  };
1045
1095
  const DATE_AM = removeDateTzOffset(new Date('2022T01:00'));
1046
1096
  const DATE_PM = removeDateTzOffset(new Date('2022T13:00'));
@@ -1053,17 +1103,17 @@ const DATE_PM = removeDateTzOffset(new Date('2022T13:00'));
1053
1103
  * @returns The localized day period (am/pm) representation of the given value.
1054
1104
  */
1055
1105
  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);
1106
+ const date = dayPeriod === 'am' ? DATE_AM : DATE_PM;
1107
+ const localizedDayPeriod = new Intl.DateTimeFormat(locale, {
1108
+ hour: 'numeric',
1109
+ timeZone: 'UTC',
1110
+ })
1111
+ .formatToParts(date)
1112
+ .find((part) => part.type === 'dayPeriod');
1113
+ if (localizedDayPeriod) {
1114
+ return localizedDayPeriod.value;
1115
+ }
1116
+ return getFormattedDayPeriod(dayPeriod);
1067
1117
  };
1068
1118
  /**
1069
1119
  * Formats the datetime's value to a string, for use in the native input.
@@ -1071,7 +1121,7 @@ const getLocalizedDayPeriod = (locale, dayPeriod) => {
1071
1121
  * @param value The value to format, either an ISO string or an array thereof.
1072
1122
  */
1073
1123
  const formatValue = (value) => {
1074
- return Array.isArray(value) ? value.join(',') : value;
1124
+ return Array.isArray(value) ? value.join(',') : value;
1075
1125
  };
1076
1126
 
1077
1127
  /**
@@ -1080,28 +1130,28 @@ const formatValue = (value) => {
1080
1130
  * time zone.
1081
1131
  */
1082
1132
  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();
1133
+ /**
1134
+ * ion-datetime intentionally does not
1135
+ * parse time zones/do automatic time zone
1136
+ * conversion when accepting user input.
1137
+ * However when we get today's date string,
1138
+ * we want it formatted relative to the user's
1139
+ * time zone.
1140
+ *
1141
+ * When calling toISOString(), the browser
1142
+ * will convert the date to UTC time by either adding
1143
+ * or subtracting the time zone offset.
1144
+ * To work around this, we need to either add
1145
+ * or subtract the time zone offset to the Date
1146
+ * object prior to calling toISOString().
1147
+ * This allows us to get an ISO string
1148
+ * that is in the user's time zone.
1149
+ */
1150
+ return removeDateTzOffset(new Date()).toISOString();
1101
1151
  };
1102
1152
  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,
1153
+ 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,
1154
+ 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
1155
  ];
1106
1156
  // h11 hour system uses 0-11. Midnight starts at 0:00am.
1107
1157
  const hour11 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
@@ -1120,25 +1170,25 @@ const hour24 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 1
1120
1170
  * or "T".
1121
1171
  */
1122
1172
  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;
1173
+ /**
1174
+ * Nov 1st, 2020 starts on a Sunday.
1175
+ * ion-datetime assumes weeks start on Sunday,
1176
+ * but is configurable via `firstDayOfWeek`.
1177
+ */
1178
+ const weekdayFormat = mode === 'ios' ? 'short' : 'narrow';
1179
+ const intl = new Intl.DateTimeFormat(locale, { weekday: weekdayFormat });
1180
+ const startDate = new Date('11/01/2020');
1181
+ const daysOfWeek = [];
1182
+ /**
1183
+ * For each day of the week,
1184
+ * get the day name.
1185
+ */
1186
+ for (let i = firstDayOfWeek; i < firstDayOfWeek + 7; i++) {
1187
+ const currentDate = new Date(startDate);
1188
+ currentDate.setDate(currentDate.getDate() + i);
1189
+ daysOfWeek.push(intl.format(currentDate));
1190
+ }
1191
+ return daysOfWeek;
1142
1192
  };
1143
1193
  /**
1144
1194
  * Returns an array containing all of the
@@ -1148,54 +1198,54 @@ const getDaysOfWeek = (locale, mode, firstDayOfWeek = 0) => {
1148
1198
  * using null values.
1149
1199
  */
1150
1200
  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;
1201
+ const numDays = getNumDaysInMonth(month, year);
1202
+ const firstOfMonth = new Date(`${month}/1/${year}`).getDay();
1203
+ /**
1204
+ * To get the first day of the month aligned on the correct
1205
+ * day of the week, we need to determine how many "filler" days
1206
+ * to generate. These filler days as empty/disabled buttons
1207
+ * that fill the space of the days of the week before the first
1208
+ * of the month.
1209
+ *
1210
+ * There are two cases here:
1211
+ *
1212
+ * 1. If firstOfMonth = 4, firstDayOfWeek = 0 then the offset
1213
+ * is (4 - (0 + 1)) = 3. Since the offset loop goes from 0 to 3 inclusive,
1214
+ * this will generate 4 filler days (0, 1, 2, 3), and then day of week 4 will have
1215
+ * the first day of the month.
1216
+ *
1217
+ * 2. If firstOfMonth = 2, firstDayOfWeek = 4 then the offset
1218
+ * is (6 - (4 - 2)) = 4. Since the offset loop goes from 0 to 4 inclusive,
1219
+ * this will generate 5 filler days (0, 1, 2, 3, 4), and then day of week 5 will have
1220
+ * the first day of the month.
1221
+ */
1222
+ const offset = firstOfMonth >= firstDayOfWeek ? firstOfMonth - (firstDayOfWeek + 1) : 6 - (firstDayOfWeek - firstOfMonth);
1223
+ let days = [];
1224
+ for (let i = 1; i <= numDays; i++) {
1225
+ days.push({ day: i, dayOfWeek: (offset + i) % 7 });
1226
+ }
1227
+ for (let i = 0; i <= offset; i++) {
1228
+ days = [{ day: null, dayOfWeek: null }, ...days];
1229
+ }
1230
+ return days;
1181
1231
  };
1182
1232
  /**
1183
1233
  * Returns an array of pre-defined hour
1184
1234
  * values based on the provided hourCycle.
1185
1235
  */
1186
1236
  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
- }
1237
+ switch (hourCycle) {
1238
+ case 'h11':
1239
+ return hour11;
1240
+ case 'h12':
1241
+ return hour12;
1242
+ case 'h23':
1243
+ return hour23;
1244
+ case 'h24':
1245
+ return hour24;
1246
+ default:
1247
+ throw new Error(`Invalid hour cycle "${hourCycle}"`);
1248
+ }
1199
1249
  };
1200
1250
  /**
1201
1251
  * Given a local, reference datetime parts and option
@@ -1203,185 +1253,185 @@ const getHourData = (hourCycle) => {
1203
1253
  * hour and minute values according to the bounds and locale.
1204
1254
  */
1205
1255
  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) {
1256
+ const computedHourCycle = getHourCycle(locale, hourCycle);
1257
+ const use24Hour = is24Hour(computedHourCycle);
1258
+ let processedHours = getHourData(computedHourCycle);
1259
+ let processedMinutes = minutes;
1260
+ let isAMAllowed = true;
1261
+ let isPMAllowed = true;
1262
+ if (hourValues) {
1263
+ processedHours = processedHours.filter((hour) => hourValues.includes(hour));
1264
+ }
1265
+ if (minuteValues) {
1266
+ processedMinutes = processedMinutes.filter((minute) => minuteValues.includes(minute));
1267
+ }
1268
+ if (minParts) {
1238
1269
  /**
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.
1270
+ * If ref day is the same as the
1271
+ * minimum allowed day, filter hour/minute
1272
+ * values according to min hour and minute.
1244
1273
  */
1245
- let isPastMinHour = false;
1246
- if (minParts.hour !== undefined && refParts.hour !== undefined) {
1247
- if (refParts.hour > minParts.hour) {
1248
- isPastMinHour = true;
1249
- }
1274
+ if (isSameDay(refParts, minParts)) {
1275
+ /**
1276
+ * Users may not always set the hour/minute for
1277
+ * min value (i.e. 2021-06-02) so we should allow
1278
+ * all hours/minutes in that case.
1279
+ */
1280
+ if (minParts.hour !== undefined) {
1281
+ processedHours = processedHours.filter((hour) => {
1282
+ const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1283
+ return (use24Hour ? hour : convertedHour) >= minParts.hour;
1284
+ });
1285
+ isAMAllowed = minParts.hour < 13;
1286
+ }
1287
+ if (minParts.minute !== undefined) {
1288
+ /**
1289
+ * The minimum minute range should not be enforced when
1290
+ * the hour is greater than the min hour.
1291
+ *
1292
+ * For example with a minimum range of 09:30, users
1293
+ * should be able to select 10:00-10:29 and beyond.
1294
+ */
1295
+ let isPastMinHour = false;
1296
+ if (minParts.hour !== undefined && refParts.hour !== undefined) {
1297
+ if (refParts.hour > minParts.hour) {
1298
+ isPastMinHour = true;
1299
+ }
1300
+ }
1301
+ processedMinutes = processedMinutes.filter((minute) => {
1302
+ if (isPastMinHour) {
1303
+ return true;
1304
+ }
1305
+ return minute >= minParts.minute;
1306
+ });
1307
+ }
1308
+ /**
1309
+ * If ref day is before minimum
1310
+ * day do not render any hours/minute values
1311
+ */
1250
1312
  }
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
- };
1313
+ else if (isBefore(refParts, minParts)) {
1314
+ processedHours = [];
1315
+ processedMinutes = [];
1316
+ isAMAllowed = isPMAllowed = false;
1317
+ }
1318
+ }
1319
+ if (maxParts) {
1320
+ /**
1321
+ * If ref day is the same as the
1322
+ * maximum allowed day, filter hour/minute
1323
+ * values according to max hour and minute.
1324
+ */
1325
+ if (isSameDay(refParts, maxParts)) {
1326
+ /**
1327
+ * Users may not always set the hour/minute for
1328
+ * max value (i.e. 2021-06-02) so we should allow
1329
+ * all hours/minutes in that case.
1330
+ */
1331
+ if (maxParts.hour !== undefined) {
1332
+ processedHours = processedHours.filter((hour) => {
1333
+ const convertedHour = refParts.ampm === 'pm' ? (hour + 12) % 24 : hour;
1334
+ return (use24Hour ? hour : convertedHour) <= maxParts.hour;
1335
+ });
1336
+ isPMAllowed = maxParts.hour >= 12;
1337
+ }
1338
+ if (maxParts.minute !== undefined && refParts.hour === maxParts.hour) {
1339
+ // The available minutes should only be filtered when the hour is the same as the max hour.
1340
+ // For example if the max hour is 10:30 and the current hour is 10:00,
1341
+ // users should be able to select 00-30 minutes.
1342
+ // If the current hour is 09:00, users should be able to select 00-60 minutes.
1343
+ processedMinutes = processedMinutes.filter((minute) => minute <= maxParts.minute);
1344
+ }
1345
+ /**
1346
+ * If ref day is after minimum
1347
+ * day do not render any hours/minute values
1348
+ */
1349
+ }
1350
+ else if (isAfter(refParts, maxParts)) {
1351
+ processedHours = [];
1352
+ processedMinutes = [];
1353
+ isAMAllowed = isPMAllowed = false;
1354
+ }
1355
+ }
1356
+ return {
1357
+ hours: processedHours,
1358
+ minutes: processedMinutes,
1359
+ am: isAMAllowed,
1360
+ pm: isPMAllowed,
1361
+ };
1312
1362
  };
1313
1363
  /**
1314
1364
  * Given DatetimeParts, generate the previous,
1315
1365
  * current, and and next months.
1316
1366
  */
1317
1367
  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)];
1368
+ const current = { month: refParts.month, year: refParts.year, day: refParts.day };
1369
+ /**
1370
+ * If we're forcing a month to appear, and it's different from the current month,
1371
+ * ensure it appears by replacing the next or previous month as appropriate.
1372
+ */
1373
+ if (forcedDate !== undefined && (refParts.month !== forcedDate.month || refParts.year !== forcedDate.year)) {
1374
+ const forced = { month: forcedDate.month, year: forcedDate.year, day: forcedDate.day };
1375
+ const forcedMonthIsBefore = isBefore(forced, current);
1376
+ return forcedMonthIsBefore
1377
+ ? [forced, current, getNextMonth(refParts)]
1378
+ : [getPreviousMonth(refParts), current, forced];
1379
+ }
1380
+ return [getPreviousMonth(refParts), current, getNextMonth(refParts)];
1331
1381
  };
1332
1382
  const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, formatOptions = {
1333
- month: 'long',
1383
+ month: 'long',
1334
1384
  }) => {
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
+ const { year } = refParts;
1386
+ const months = [];
1387
+ if (monthValues !== undefined) {
1388
+ let processedMonths = monthValues;
1389
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.month) !== undefined) {
1390
+ processedMonths = processedMonths.filter((month) => month <= maxParts.month);
1391
+ }
1392
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.month) !== undefined) {
1393
+ processedMonths = processedMonths.filter((month) => month >= minParts.month);
1394
+ }
1395
+ processedMonths.forEach((processedMonth) => {
1396
+ const date = new Date(`${processedMonth}/1/${year} GMT+0000`);
1397
+ const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1398
+ months.push({ text: monthString, value: processedMonth });
1399
+ });
1400
+ }
1401
+ else {
1402
+ const maxMonth = maxParts && maxParts.year === year ? maxParts.month : 12;
1403
+ const minMonth = minParts && minParts.year === year ? minParts.month : 1;
1404
+ for (let i = minMonth; i <= maxMonth; i++) {
1405
+ /**
1406
+ *
1407
+ * There is a bug on iOS 14 where
1408
+ * Intl.DateTimeFormat takes into account
1409
+ * the local timezone offset when formatting dates.
1410
+ *
1411
+ * Forcing the timezone to 'UTC' fixes the issue. However,
1412
+ * we should keep this workaround as it is safer. In the event
1413
+ * this breaks in another browser, we will not be impacted
1414
+ * because all dates will be interpreted in UTC.
1415
+ *
1416
+ * Example:
1417
+ * new Intl.DateTimeFormat('en-US', { month: 'long' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "March"
1418
+ * new Intl.DateTimeFormat('en-US', { month: 'long', timeZone: 'UTC' }).format(new Date('Sat Apr 01 2006 00:00:00 GMT-0400 (EDT)')) // "April"
1419
+ *
1420
+ * In certain timezones, iOS 14 shows the wrong
1421
+ * date for .toUTCString(). To combat this, we
1422
+ * force all of the timezones to GMT+0000 (UTC).
1423
+ *
1424
+ * Example:
1425
+ * Time Zone: Central European Standard Time
1426
+ * new Date('1/1/1992').toUTCString() // "Tue, 31 Dec 1991 23:00:00 GMT"
1427
+ * new Date('1/1/1992 GMT+0000').toUTCString() // "Wed, 01 Jan 1992 00:00:00 GMT"
1428
+ */
1429
+ const date = new Date(`${i}/1/${year} GMT+0000`);
1430
+ const monthString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1431
+ months.push({ text: monthString, value: i });
1432
+ }
1433
+ }
1434
+ return months;
1385
1435
  };
1386
1436
  /**
1387
1437
  * Returns information regarding
@@ -1395,65 +1445,65 @@ const getMonthColumnData = (locale, refParts, minParts, maxParts, monthValues, f
1395
1445
  * @returns Date data to be used in ion-picker-column-internal
1396
1446
  */
1397
1447
  const getDayColumnData = (locale, refParts, minParts, maxParts, dayValues, formatOptions = {
1398
- day: 'numeric',
1448
+ day: 'numeric',
1399
1449
  }) => {
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 });
1450
+ const { month, year } = refParts;
1451
+ const days = [];
1452
+ /**
1453
+ * If we have max/min bounds that in the same
1454
+ * month/year as the refParts, we should
1455
+ * use the define day as the max/min day.
1456
+ * Otherwise, fallback to the max/min days in a month.
1457
+ */
1458
+ const numDaysInMonth = getNumDaysInMonth(month, year);
1459
+ 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
1460
+ ? maxParts.day
1461
+ : numDaysInMonth;
1462
+ 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
1463
+ ? minParts.day
1464
+ : 1;
1465
+ if (dayValues !== undefined) {
1466
+ let processedDays = dayValues;
1467
+ processedDays = processedDays.filter((day) => day >= minDay && day <= maxDay);
1468
+ processedDays.forEach((processedDay) => {
1469
+ const date = new Date(`${month}/${processedDay}/${year} GMT+0000`);
1470
+ const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1471
+ days.push({ text: dayString, value: processedDay });
1472
+ });
1473
+ }
1474
+ else {
1475
+ for (let i = minDay; i <= maxDay; i++) {
1476
+ const date = new Date(`${month}/${i}/${year} GMT+0000`);
1477
+ const dayString = new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, formatOptions), { timeZone: 'UTC' })).format(date);
1478
+ days.push({ text: dayString, value: i });
1479
+ }
1429
1480
  }
1430
- }
1431
- return days;
1481
+ return days;
1432
1482
  };
1433
1483
  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);
1484
+ var _a, _b;
1485
+ let processedYears = [];
1486
+ if (yearValues !== undefined) {
1487
+ processedYears = yearValues;
1488
+ if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== undefined) {
1489
+ processedYears = processedYears.filter((year) => year <= maxParts.year);
1490
+ }
1491
+ if ((minParts === null || minParts === void 0 ? void 0 : minParts.year) !== undefined) {
1492
+ processedYears = processedYears.filter((year) => year >= minParts.year);
1493
+ }
1494
+ }
1495
+ else {
1496
+ const { year } = refParts;
1497
+ const maxYear = (_a = maxParts === null || maxParts === void 0 ? void 0 : maxParts.year) !== null && _a !== void 0 ? _a : year;
1498
+ const minYear = (_b = minParts === null || minParts === void 0 ? void 0 : minParts.year) !== null && _b !== void 0 ? _b : year - 100;
1499
+ for (let i = minYear; i <= maxYear; i++) {
1500
+ processedYears.push(i);
1501
+ }
1451
1502
  }
1452
- }
1453
- return processedYears.map((year) => ({
1454
- text: getYear(locale, { year, month: refParts.month, day: refParts.day }),
1455
- value: year,
1456
- }));
1503
+ return processedYears.map((year) => ({
1504
+ text: getYear(locale, { year, month: refParts.month, day: refParts.day }),
1505
+ value: year,
1506
+ }));
1457
1507
  };
1458
1508
  /**
1459
1509
  * Given a starting date and an upper bound,
@@ -1461,10 +1511,10 @@ const getYearColumnData = (locale, refParts, minParts, maxParts, yearValues) =>
1461
1511
  * month objects in that range.
1462
1512
  */
1463
1513
  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)];
1514
+ if (currentParts.month === maxParts.month && currentParts.year === maxParts.year) {
1515
+ return [currentParts];
1516
+ }
1517
+ return [currentParts, ...getAllMonthsInRange(getNextMonth(currentParts), maxParts)];
1468
1518
  };
1469
1519
  /**
1470
1520
  * Creates and returns picker items
@@ -1472,104 +1522,104 @@ const getAllMonthsInRange = (currentParts, maxParts) => {
1472
1522
  * Example: "Thu, Jun 2"
1473
1523
  */
1474
1524
  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
- });
1525
+ let items = [];
1526
+ let parts = [];
1527
+ /**
1528
+ * Get all month objects from the min date
1529
+ * to the max date. Note: Do not use getMonthColumnData
1530
+ * as that function only generates dates within a
1531
+ * single year.
1532
+ */
1533
+ let months = getAllMonthsInRange(minParts, maxParts);
1534
+ /**
1535
+ * Filter out any disallowed month values.
1536
+ */
1537
+ if (monthValues) {
1538
+ months = months.filter(({ month }) => monthValues.includes(month));
1539
+ }
1540
+ /**
1541
+ * Get all of the days in the month.
1542
+ * From there, generate an array where
1543
+ * each item has the month, date, and day
1544
+ * of work as the text.
1545
+ */
1546
+ months.forEach((monthObject) => {
1547
+ const referenceMonth = { month: monthObject.month, day: null, year: monthObject.year };
1548
+ const monthDays = getDayColumnData(locale, referenceMonth, minParts, maxParts, dayValues, {
1549
+ month: 'short',
1550
+ day: 'numeric',
1551
+ weekday: 'short',
1552
+ });
1553
+ const dateParts = [];
1554
+ const dateColumnItems = [];
1555
+ monthDays.forEach((dayObject) => {
1556
+ const isToday = isSameDay(Object.assign(Object.assign({}, referenceMonth), { day: dayObject.value }), todayParts);
1557
+ /**
1558
+ * Today's date should read as "Today" (localized)
1559
+ * not the actual date string
1560
+ */
1561
+ dateColumnItems.push({
1562
+ text: isToday ? getTodayLabel(locale) : dayObject.text,
1563
+ value: `${referenceMonth.year}-${referenceMonth.month}-${dayObject.value}`,
1564
+ });
1565
+ /**
1566
+ * When selecting a date in the wheel picker
1567
+ * we need access to the raw datetime parts data.
1568
+ * The picker column only accepts values of
1569
+ * type string or number, so we need to return
1570
+ * two sets of data: A data set to be passed
1571
+ * to the picker column, and a data set to
1572
+ * be used to reference the raw data when
1573
+ * updating the picker column value.
1574
+ */
1575
+ dateParts.push({
1576
+ month: referenceMonth.month,
1577
+ year: referenceMonth.year,
1578
+ day: dayObject.value,
1579
+ });
1580
+ });
1581
+ parts = [...parts, ...dateParts];
1582
+ items = [...items, ...dateColumnItems];
1530
1583
  });
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
1584
  return {
1545
- text: getFormattedHour(hour, computedHourCycle),
1546
- value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1585
+ parts,
1586
+ items,
1547
1587
  };
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',
1588
+ };
1589
+ const getTimeColumnsData = (locale, refParts, hourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues) => {
1590
+ const computedHourCycle = getHourCycle(locale, hourCycle);
1591
+ const use24Hour = is24Hour(computedHourCycle);
1592
+ const { hours, minutes, am, pm } = generateTime(locale, refParts, computedHourCycle, minParts, maxParts, allowedHourValues, allowedMinuteValues);
1593
+ const hoursItems = hours.map((hour) => {
1594
+ return {
1595
+ text: getFormattedHour(hour, computedHourCycle),
1596
+ value: getInternalHourValue(hour, use24Hour, refParts.ampm),
1597
+ };
1560
1598
  });
1561
- }
1562
- if (pm && !use24Hour) {
1563
- dayPeriodItems.push({
1564
- text: getLocalizedDayPeriod(locale, 'pm'),
1565
- value: 'pm',
1599
+ const minutesItems = minutes.map((minute) => {
1600
+ return {
1601
+ text: addTimePadding(minute),
1602
+ value: minute,
1603
+ };
1566
1604
  });
1567
- }
1568
- return {
1569
- minutesData: minutesItems,
1570
- hoursData: hoursItems,
1571
- dayPeriodData: dayPeriodItems,
1572
- };
1605
+ const dayPeriodItems = [];
1606
+ if (am && !use24Hour) {
1607
+ dayPeriodItems.push({
1608
+ text: getLocalizedDayPeriod(locale, 'am'),
1609
+ value: 'am',
1610
+ });
1611
+ }
1612
+ if (pm && !use24Hour) {
1613
+ dayPeriodItems.push({
1614
+ text: getLocalizedDayPeriod(locale, 'pm'),
1615
+ value: 'pm',
1616
+ });
1617
+ }
1618
+ return {
1619
+ minutesData: minutesItems,
1620
+ hoursData: hoursItems,
1621
+ dayPeriodData: dayPeriodItems,
1622
+ };
1573
1623
  };
1574
1624
 
1575
1625
  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 };