@ionic/core 7.7.5 → 7.8.1-dev.11710449785.14ebd5a0

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 (326) hide show
  1. package/components/data.js +23 -38
  2. package/components/ion-datetime-button.js +11 -10
  3. package/components/ion-datetime.js +75 -12
  4. package/components/ion-fab-button.js +2 -2
  5. package/components/ion-fab-list.js +2 -2
  6. package/components/ion-fab.js +2 -2
  7. package/components/ion-footer.js +2 -2
  8. package/components/ion-grid.js +2 -2
  9. package/components/ion-header.js +2 -2
  10. package/components/ion-img.js +1 -1
  11. package/components/ion-infinite-scroll-content.js +2 -2
  12. package/components/ion-infinite-scroll.js +1 -1
  13. package/components/ion-item-divider.js +2 -2
  14. package/components/ion-item-group.js +1 -1
  15. package/components/ion-item-option.js +2 -2
  16. package/components/ion-item-options.js +1 -1
  17. package/components/ion-item-sliding.js +1 -1
  18. package/components/ion-loading.js +2 -2
  19. package/components/ion-menu-button.js +2 -2
  20. package/components/ion-menu-toggle.js +2 -2
  21. package/components/ion-menu.js +2 -2
  22. package/components/ion-modal.js +3 -3
  23. package/components/ion-nav-link.js +1 -1
  24. package/components/ion-nav.js +1 -1
  25. package/components/ion-picker.js +2 -2
  26. package/components/ion-progress-bar.js +1 -1
  27. package/components/ion-refresher-content.js +1 -1
  28. package/components/ion-refresher.js +1 -1
  29. package/components/ion-reorder-group.js +1 -1
  30. package/components/ion-reorder.js +1 -1
  31. package/components/ion-router-link.js +2 -2
  32. package/components/ion-router-outlet.js +1 -1
  33. package/components/ion-row.js +1 -1
  34. package/components/ion-searchbar.js +34 -5
  35. package/components/ion-segment-button.js +3 -3
  36. package/components/ion-segment.js +2 -2
  37. package/components/ion-select-option.js +1 -1
  38. package/components/ion-skeleton-text.js +2 -2
  39. package/components/ion-split-pane.js +2 -2
  40. package/components/ion-tab-bar.js +2 -2
  41. package/components/ion-tab-button.js +2 -2
  42. package/components/ion-tab.js +2 -2
  43. package/components/ion-tabs.js +1 -1
  44. package/components/ion-text.js +2 -2
  45. package/components/ion-thumbnail.js +1 -1
  46. package/components/ion-title.js +2 -2
  47. package/components/ion-toast.js +2 -2
  48. package/components/ion-toolbar.js +2 -2
  49. package/components/label.js +1 -1
  50. package/components/list-header.js +2 -2
  51. package/components/list.js +1 -1
  52. package/components/note.js +2 -2
  53. package/components/picker-column-internal.js +8 -4
  54. package/components/picker-column.js +2 -2
  55. package/components/picker-internal.js +2 -2
  56. package/components/popover.js +2 -2
  57. package/components/radio-group.js +1 -1
  58. package/components/ripple-effect.js +1 -1
  59. package/components/select-popover.js +1 -1
  60. package/components/spinner.js +1 -1
  61. package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
  62. package/dist/cjs/ion-app_8.cjs.entry.js +9 -9
  63. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -10
  66. package/dist/cjs/ion-datetime_3.cjs.entry.js +76 -16
  67. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  68. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  69. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  71. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  72. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  74. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  75. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +8 -4
  77. package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  82. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-searchbar.cjs.entry.js +28 -4
  86. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
  87. package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  89. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  91. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  92. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  94. package/dist/cjs/ionic.cjs.js +1 -1
  95. package/dist/cjs/loader.cjs.js +1 -1
  96. package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
  97. package/dist/collection/components/datetime/datetime.js +56 -12
  98. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +77 -0
  99. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  100. package/dist/collection/components/datetime/utils/format.js +24 -37
  101. package/dist/collection/components/datetime/utils/validate.js +45 -0
  102. package/dist/collection/components/datetime-button/datetime-button.js +11 -10
  103. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  104. package/dist/collection/components/fab/fab.js +2 -2
  105. package/dist/collection/components/fab-button/fab-button.js +2 -2
  106. package/dist/collection/components/fab-list/fab-list.js +2 -2
  107. package/dist/collection/components/footer/footer.js +2 -2
  108. package/dist/collection/components/grid/grid.js +2 -2
  109. package/dist/collection/components/header/header.js +2 -2
  110. package/dist/collection/components/img/img.js +1 -1
  111. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  112. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  113. package/dist/collection/components/item-divider/item-divider.js +2 -2
  114. package/dist/collection/components/item-group/item-group.js +1 -1
  115. package/dist/collection/components/item-option/item-option.js +2 -2
  116. package/dist/collection/components/item-options/item-options.js +1 -1
  117. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  118. package/dist/collection/components/label/label.js +1 -1
  119. package/dist/collection/components/list/list.js +1 -1
  120. package/dist/collection/components/list-header/list-header.js +2 -2
  121. package/dist/collection/components/loading/loading.js +2 -2
  122. package/dist/collection/components/menu/menu.js +2 -2
  123. package/dist/collection/components/menu-button/menu-button.js +2 -2
  124. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  125. package/dist/collection/components/modal/modal.js +3 -3
  126. package/dist/collection/components/nav/nav.js +1 -1
  127. package/dist/collection/components/nav-link/nav-link.js +1 -1
  128. package/dist/collection/components/note/note.js +2 -2
  129. package/dist/collection/components/picker/picker.js +2 -2
  130. package/dist/collection/components/picker-column/picker-column.js +2 -2
  131. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  132. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  133. package/dist/collection/components/popover/popover.js +2 -2
  134. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  135. package/dist/collection/components/radio-group/radio-group.js +1 -1
  136. package/dist/collection/components/refresher/refresher.js +1 -1
  137. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  138. package/dist/collection/components/reorder/reorder.js +1 -1
  139. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  140. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  141. package/dist/collection/components/router-link/router-link.js +2 -2
  142. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  143. package/dist/collection/components/row/row.js +1 -1
  144. package/dist/collection/components/searchbar/searchbar.js +84 -5
  145. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  146. package/dist/collection/components/segment/segment.js +2 -2
  147. package/dist/collection/components/segment-button/segment-button.js +3 -3
  148. package/dist/collection/components/select-option/select-option.js +1 -1
  149. package/dist/collection/components/select-popover/select-popover.js +1 -1
  150. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  151. package/dist/collection/components/spinner/spinner.js +1 -1
  152. package/dist/collection/components/split-pane/split-pane.js +2 -2
  153. package/dist/collection/components/tab/tab.js +2 -2
  154. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  155. package/dist/collection/components/tab-button/tab-button.js +2 -2
  156. package/dist/collection/components/tabs/tabs.js +1 -1
  157. package/dist/collection/components/text/text.js +2 -2
  158. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  159. package/dist/collection/components/title/title.js +2 -2
  160. package/dist/collection/components/toast/toast.js +2 -2
  161. package/dist/collection/components/toggle/toggle.js +1 -1
  162. package/dist/collection/components/toolbar/toolbar.js +2 -2
  163. package/dist/docs.json +114 -2
  164. package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
  165. package/dist/esm/ion-app_8.entry.js +9 -9
  166. package/dist/esm/ion-avatar_3.entry.js +1 -1
  167. package/dist/esm/ion-col_3.entry.js +3 -3
  168. package/dist/esm/ion-datetime-button.entry.js +11 -10
  169. package/dist/esm/ion-datetime_3.entry.js +76 -16
  170. package/dist/esm/ion-fab_3.entry.js +6 -6
  171. package/dist/esm/ion-img.entry.js +1 -1
  172. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  173. package/dist/esm/ion-item-option_3.entry.js +4 -4
  174. package/dist/esm/ion-item_8.entry.js +11 -11
  175. package/dist/esm/ion-loading.entry.js +2 -2
  176. package/dist/esm/ion-menu_3.entry.js +6 -6
  177. package/dist/esm/ion-modal.entry.js +3 -3
  178. package/dist/esm/ion-nav_2.entry.js +2 -2
  179. package/dist/esm/ion-picker-column-internal.entry.js +8 -4
  180. package/dist/esm/ion-picker-internal.entry.js +2 -2
  181. package/dist/esm/ion-popover.entry.js +2 -2
  182. package/dist/esm/ion-progress-bar.entry.js +1 -1
  183. package/dist/esm/ion-radio_2.entry.js +1 -1
  184. package/dist/esm/ion-refresher_2.entry.js +2 -2
  185. package/dist/esm/ion-reorder_2.entry.js +2 -2
  186. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  187. package/dist/esm/ion-route_4.entry.js +2 -2
  188. package/dist/esm/ion-searchbar.entry.js +29 -5
  189. package/dist/esm/ion-segment_2.entry.js +5 -5
  190. package/dist/esm/ion-select_3.entry.js +2 -2
  191. package/dist/esm/ion-spinner.entry.js +1 -1
  192. package/dist/esm/ion-split-pane.entry.js +2 -2
  193. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  194. package/dist/esm/ion-tab_2.entry.js +3 -3
  195. package/dist/esm/ion-text.entry.js +2 -2
  196. package/dist/esm/ion-toast.entry.js +2 -2
  197. package/dist/esm/ionic.js +1 -1
  198. package/dist/esm/loader.js +1 -1
  199. package/dist/esm-es5/data-bb424ba8.js +4 -0
  200. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  201. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  202. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  204. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-img.entry.js +1 -1
  207. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  210. package/dist/esm-es5/ion-loading.entry.js +1 -1
  211. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  212. package/dist/esm-es5/ion-modal.entry.js +1 -1
  213. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  214. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  215. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  216. package/dist/esm-es5/ion-popover.entry.js +1 -1
  217. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  218. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  219. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  221. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  222. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  223. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  224. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  226. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  227. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  228. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  229. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-text.entry.js +1 -1
  231. package/dist/esm-es5/ion-toast.entry.js +1 -1
  232. package/dist/esm-es5/ionic.js +1 -1
  233. package/dist/esm-es5/loader.js +1 -1
  234. package/dist/html.html-data.json +13 -1
  235. package/dist/ionic/ionic.esm.js +1 -1
  236. package/dist/ionic/{p-08a5d8eb.entry.js → p-0188824c.entry.js} +1 -1
  237. package/dist/ionic/{p-ba385465.system.entry.js → p-079817f9.system.entry.js} +1 -1
  238. package/dist/ionic/{p-b13b7128.system.entry.js → p-0971ee6d.system.entry.js} +1 -1
  239. package/dist/ionic/{p-db6a5af3.system.entry.js → p-0dbbf52a.system.entry.js} +1 -1
  240. package/dist/ionic/{p-f5bc27d6.system.entry.js → p-0eb111e7.system.entry.js} +1 -1
  241. package/dist/ionic/{p-996922b4.system.entry.js → p-0ef05e5d.system.entry.js} +1 -1
  242. package/dist/ionic/{p-86438241.system.entry.js → p-0fa9c8f7.system.entry.js} +1 -1
  243. package/dist/ionic/{p-8f466a2c.system.entry.js → p-11d480a7.system.entry.js} +1 -1
  244. package/dist/ionic/{p-f9f7b24a.system.entry.js → p-1561982b.system.entry.js} +1 -1
  245. package/dist/ionic/{p-45ea497f.entry.js → p-15ced5aa.entry.js} +1 -1
  246. package/dist/ionic/p-2055bdba.entry.js +4 -0
  247. package/dist/ionic/{p-cf88a096.system.entry.js → p-25f56cd7.system.entry.js} +1 -1
  248. package/dist/ionic/{p-6a0a3e18.system.entry.js → p-2791b018.system.entry.js} +1 -1
  249. package/dist/ionic/{p-e59803ca.entry.js → p-2b78245e.entry.js} +1 -1
  250. package/dist/ionic/{p-72c8ca65.system.entry.js → p-2bc25d50.system.entry.js} +2 -2
  251. package/dist/ionic/{p-479402e1.entry.js → p-2c94053b.entry.js} +1 -1
  252. package/dist/ionic/{p-9074a84e.system.entry.js → p-2d88f64e.system.entry.js} +1 -1
  253. package/dist/ionic/p-2fec06f2.entry.js +4 -0
  254. package/dist/ionic/p-327f8d66.entry.js +4 -0
  255. package/dist/ionic/p-3789920e.js +4 -0
  256. package/dist/ionic/{p-c7d8cec2.entry.js → p-3b85bb44.entry.js} +1 -1
  257. package/dist/ionic/{p-059fcb53.system.entry.js → p-43438ce1.system.entry.js} +2 -2
  258. package/dist/ionic/p-45362829.system.entry.js +4 -0
  259. package/dist/ionic/p-46ca8bb1.entry.js +4 -0
  260. package/dist/ionic/{p-08410e29.system.entry.js → p-4e74f845.system.entry.js} +1 -1
  261. package/dist/ionic/{p-7b809cc0.system.entry.js → p-4f73a163.system.entry.js} +1 -1
  262. package/dist/ionic/{p-345e2dac.system.entry.js → p-51dd4f12.system.entry.js} +1 -1
  263. package/dist/ionic/{p-5d8fca58.entry.js → p-51ebe7c6.entry.js} +1 -1
  264. package/dist/ionic/{p-cfe767f1.entry.js → p-526258be.entry.js} +1 -1
  265. package/dist/ionic/{p-fef4907e.system.entry.js → p-58b335fd.system.entry.js} +1 -1
  266. package/dist/ionic/{p-3377236e.entry.js → p-5e3e64b5.entry.js} +1 -1
  267. package/dist/ionic/{p-b9b8e462.system.entry.js → p-5f3fc112.system.entry.js} +1 -1
  268. package/dist/ionic/p-60c9fd9e.system.js +1 -1
  269. package/dist/ionic/{p-3ca0c7f2.entry.js → p-62f36e54.entry.js} +1 -1
  270. package/dist/ionic/{p-e8d46a2e.entry.js → p-65409f36.entry.js} +1 -1
  271. package/dist/ionic/p-6a110cb2.entry.js +4 -0
  272. package/dist/ionic/p-6ec0c1ee.system.entry.js +4 -0
  273. package/dist/ionic/{p-4830fae8.system.entry.js → p-7126abb8.system.entry.js} +1 -1
  274. package/dist/ionic/{p-b0ccd173.system.entry.js → p-7186eb03.system.entry.js} +1 -1
  275. package/dist/ionic/{p-6b5630b9.system.entry.js → p-7c91266e.system.entry.js} +1 -1
  276. package/dist/ionic/{p-f5dce0c6.entry.js → p-80808af6.entry.js} +1 -1
  277. package/dist/ionic/p-8a1b0abb.system.js +4 -0
  278. package/dist/ionic/{p-33dd4d0b.system.entry.js → p-8a21c7b4.system.entry.js} +1 -1
  279. package/dist/ionic/{p-09fc100a.entry.js → p-8be61e52.entry.js} +1 -1
  280. package/dist/ionic/{p-e4bf5d87.system.entry.js → p-8e127a08.system.entry.js} +1 -1
  281. package/dist/ionic/{p-0e7c8334.system.entry.js → p-966a5ae4.system.entry.js} +1 -1
  282. package/dist/ionic/{p-ae3aeb39.entry.js → p-98bac954.entry.js} +1 -1
  283. package/dist/ionic/{p-231a3636.system.entry.js → p-a53d569a.system.entry.js} +1 -1
  284. package/dist/ionic/{p-3270e211.entry.js → p-a7959307.entry.js} +1 -1
  285. package/dist/ionic/{p-7f865669.entry.js → p-ab7c79d9.entry.js} +1 -1
  286. package/dist/ionic/p-b7aec03b.entry.js +4 -0
  287. package/dist/ionic/p-bbb655e2.system.entry.js +4 -0
  288. package/dist/ionic/{p-ca935c03.entry.js → p-bc68a14a.entry.js} +1 -1
  289. package/dist/ionic/{p-36a80e5c.entry.js → p-c0d7aace.entry.js} +1 -1
  290. package/dist/ionic/{p-04721936.system.entry.js → p-c1a58ab3.system.entry.js} +1 -1
  291. package/dist/ionic/{p-84283745.entry.js → p-c63a69cd.entry.js} +1 -1
  292. package/dist/ionic/{p-8ce6d551.entry.js → p-c99bfffe.entry.js} +1 -1
  293. package/dist/ionic/{p-c6f9f608.entry.js → p-d637b857.entry.js} +1 -1
  294. package/dist/ionic/{p-09b047e0.entry.js → p-dd5a925f.entry.js} +1 -1
  295. package/dist/ionic/{p-c711b464.entry.js → p-deb09b58.entry.js} +1 -1
  296. package/dist/ionic/{p-95c2fa04.entry.js → p-e2236935.entry.js} +1 -1
  297. package/dist/ionic/{p-abcc9680.entry.js → p-e631799d.entry.js} +1 -1
  298. package/dist/ionic/{p-e155f315.system.entry.js → p-e6c115f6.system.entry.js} +1 -1
  299. package/dist/ionic/{p-8c74bd0e.system.entry.js → p-e7bdaac8.system.entry.js} +2 -2
  300. package/dist/ionic/p-f520f6a5.entry.js +4 -0
  301. package/dist/ionic/p-f89380a5.system.entry.js +4 -0
  302. package/dist/ionic/p-f98bd898.entry.js +4 -0
  303. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  304. package/dist/types/components/datetime/datetime.d.ts +10 -1
  305. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  306. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  307. package/dist/types/components/searchbar/searchbar.d.ts +38 -0
  308. package/dist/types/components/toggle/toggle.d.ts +1 -1
  309. package/dist/types/components.d.ts +36 -4
  310. package/hydrate/index.js +230 -154
  311. package/package.json +1 -1
  312. package/dist/esm-es5/data-0f3ab200.js +0 -4
  313. package/dist/ionic/p-1522bf28.entry.js +0 -4
  314. package/dist/ionic/p-6f5b32c7.system.entry.js +0 -4
  315. package/dist/ionic/p-7330c044.system.js +0 -4
  316. package/dist/ionic/p-76afa95f.entry.js +0 -4
  317. package/dist/ionic/p-81f18ed1.system.entry.js +0 -4
  318. package/dist/ionic/p-addb7662.entry.js +0 -4
  319. package/dist/ionic/p-b80ef521.entry.js +0 -4
  320. package/dist/ionic/p-c05202a7.entry.js +0 -4
  321. package/dist/ionic/p-c67c9644.entry.js +0 -4
  322. package/dist/ionic/p-d070ab1e.system.entry.js +0 -4
  323. package/dist/ionic/p-de0392f4.entry.js +0 -4
  324. package/dist/ionic/p-e447e552.entry.js +0 -4
  325. package/dist/ionic/p-ef269a56.system.entry.js +0 -4
  326. package/dist/ionic/p-f7dce541.js +0 -4
@@ -13,7 +13,7 @@ const dir = require('./dir-94c21456.js');
13
13
  const theme = require('./theme-d1c573d2.js');
14
14
  const index$2 = require('./index-f52c6d38.js');
15
15
  const ionicGlobal = require('./ionic-global-34d0d04a.js');
16
- const data = require('./data-a5109f09.js');
16
+ const data = require('./data-4487a815.js');
17
17
  const lockController = require('./lock-controller-6585a42a.js');
18
18
  const overlays = require('./overlays-d32575f9.js');
19
19
  const animation = require('./animation-c2840aea.js');
@@ -190,6 +190,48 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
190
190
  return undefined;
191
191
  };
192
192
 
193
+ /**
194
+ * If a time zone is provided in the format options, the rendered text could
195
+ * differ from what was selected in the Datetime, which could cause
196
+ * confusion.
197
+ */
198
+ const warnIfTimeZoneProvided = (el, formatOptions) => {
199
+ var _a, _b, _c, _d;
200
+ if (((_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _a === void 0 ? void 0 : _a.timeZone) ||
201
+ ((_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _b === void 0 ? void 0 : _b.timeZoneName) ||
202
+ ((_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _c === void 0 ? void 0 : _c.timeZone) ||
203
+ ((_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _d === void 0 ? void 0 : _d.timeZoneName)) {
204
+ index.printIonWarning('Datetime: "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
205
+ }
206
+ };
207
+ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) => {
208
+ // formatOptions is not required
209
+ if (!formatOptions)
210
+ return;
211
+ // If formatOptions is provided, the date and/or time objects are required, depending on the presentation
212
+ switch (presentation) {
213
+ case 'date':
214
+ case 'month-year':
215
+ case 'month':
216
+ case 'year':
217
+ if (formatOptions.date === undefined) {
218
+ index.printIonWarning(`Datetime: The '${presentation}' presentation requires a date object in formatOptions.`, el);
219
+ }
220
+ break;
221
+ case 'time':
222
+ if (formatOptions.time === undefined) {
223
+ index.printIonWarning(`Datetime: The 'time' presentation requires a time object in formatOptions.`, el);
224
+ }
225
+ break;
226
+ case 'date-time':
227
+ case 'time-date':
228
+ if (formatOptions.date === undefined && formatOptions.time === undefined) {
229
+ index.printIonWarning(`Datetime: The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
230
+ }
231
+ break;
232
+ }
233
+ };
234
+
193
235
  const datetimeIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}ion-picker-column-internal{min-width:26px}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{position:absolute;visibility:hidden;pointer-events:none}@supports (inset-inline-start: 0){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{inset-inline-start:-99999px}}@supports not (inset-inline-start: 0){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{left:-99999px}:host-context([dir=rtl]):host(.show-month-and-year) .calendar-next-prev,:host-context([dir=rtl]).show-month-and-year .calendar-next-prev,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-days-of-week,:host-context([dir=rtl]).show-month-and-year .calendar-days-of-week,:host-context([dir=rtl]):host(.show-month-and-year) .calendar-body,:host-context([dir=rtl]).show-month-and-year .calendar-body,:host-context([dir=rtl]):host(.show-month-and-year) .datetime-time,:host-context([dir=rtl]).show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){:host(.show-month-and-year:dir(rtl)) .calendar-next-prev,:host(.show-month-and-year:dir(rtl)) .calendar-days-of-week,:host(.show-month-and-year:dir(rtl)) .calendar-body,:host(.show-month-and-year:dir(rtl)) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-item,:host .calendar-action-buttons ion-button{--background:translucent}:host .calendar-action-buttons ion-item ion-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:auto}:host .calendar-action-buttons ion-item ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons ion-item{--color:var(--ion-color-base)}:host{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}:host .calendar-action-buttons ion-item{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:min(1rem, 25.6px);font-weight:600}:host .calendar-action-buttons ion-item ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
194
236
  const IonDatetimeIosStyle0 = datetimeIosCss;
195
237
 
@@ -814,6 +856,7 @@ const Datetime = class {
814
856
  this.color = 'primary';
815
857
  this.name = this.inputId;
816
858
  this.disabled = false;
859
+ this.formatOptions = undefined;
817
860
  this.readonly = false;
818
861
  this.isDateEnabled = undefined;
819
862
  this.min = undefined;
@@ -841,6 +884,11 @@ const Datetime = class {
841
884
  this.size = 'fixed';
842
885
  this.preferWheel = false;
843
886
  }
887
+ formatOptionsChanged() {
888
+ const { el, formatOptions, presentation } = this;
889
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
890
+ warnIfTimeZoneProvided(el, formatOptions);
891
+ }
844
892
  disabledChanged() {
845
893
  this.emitStyle();
846
894
  }
@@ -850,6 +898,10 @@ const Datetime = class {
850
898
  maxChanged() {
851
899
  this.processMaxParts();
852
900
  }
901
+ presentationChanged() {
902
+ const { el, formatOptions, presentation } = this;
903
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
904
+ }
853
905
  get isGridStyle() {
854
906
  const { presentation, preferWheel } = this;
855
907
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
@@ -952,6 +1004,7 @@ const Datetime = class {
952
1004
  this.initializeKeyboardListeners();
953
1005
  }
954
1006
  componentDidLoad() {
1007
+ const { el, intersectionTrackerRef } = this;
955
1008
  /**
956
1009
  * If a scrollable element is hidden using `display: none`,
957
1010
  * it will not have a scroll height meaning we cannot scroll elements
@@ -977,14 +1030,14 @@ const Datetime = class {
977
1030
  this.el.classList.add('datetime-ready');
978
1031
  });
979
1032
  };
980
- const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
1033
+ const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
981
1034
  /**
982
1035
  * Use raf to avoid a race condition between the component loading and
983
1036
  * its display animation starting (such as when shown in a modal). This
984
1037
  * could cause the datetime to start at a visibility of 0, erroneously
985
1038
  * triggering the `hiddenIO` observer below.
986
1039
  */
987
- helpers.raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));
1040
+ helpers.raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
988
1041
  /**
989
1042
  * We need to clean up listeners when the datetime is hidden
990
1043
  * in a popover/modal so that we can properly scroll containers
@@ -1010,8 +1063,8 @@ const Datetime = class {
1010
1063
  this.el.classList.remove('datetime-ready');
1011
1064
  });
1012
1065
  };
1013
- const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
1014
- helpers.raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));
1066
+ const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
1067
+ helpers.raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
1015
1068
  /**
1016
1069
  * Datetime uses Ionic components that emit
1017
1070
  * ionFocus and ionBlur. These events are
@@ -1085,7 +1138,7 @@ const Datetime = class {
1085
1138
  });
1086
1139
  }
1087
1140
  componentWillLoad() {
1088
- const { el, highlightedDates, multiple, presentation, preferWheel } = this;
1141
+ const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
1089
1142
  if (multiple) {
1090
1143
  if (presentation !== 'date') {
1091
1144
  index.printIonWarning('Multiple date selection is only supported for presentation="date".', el);
@@ -1102,6 +1155,10 @@ const Datetime = class {
1102
1155
  index.printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
1103
1156
  }
1104
1157
  }
1158
+ if (formatOptions) {
1159
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
1160
+ warnIfTimeZoneProvided(el, formatOptions);
1161
+ }
1105
1162
  const hourValues = (this.parsedHourValues = data.convertToArrayOfNumbers(this.hourValues));
1106
1163
  const minuteValues = (this.parsedMinuteValues = data.convertToArrayOfNumbers(this.minuteValues));
1107
1164
  const monthValues = (this.parsedMonthValues = data.convertToArrayOfNumbers(this.monthValues));
@@ -1609,7 +1666,7 @@ const Datetime = class {
1609
1666
  return index$1.h("slot", { name: "time-label" }, "Time");
1610
1667
  }
1611
1668
  renderTimeOverlay() {
1612
- const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
1669
+ const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
1613
1670
  const computedHourCycle = data.getHourCycle(locale, hourCycle);
1614
1671
  const activePart = this.getActivePartsWithFallback();
1615
1672
  return [
@@ -1629,7 +1686,7 @@ const Datetime = class {
1629
1686
  await popoverRef.onWillDismiss();
1630
1687
  this.isTimePopoverOpen = false;
1631
1688
  }
1632
- } }, data.getLocalizedTime(locale, activePart, computedHourCycle)),
1689
+ } }, data.getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
1633
1690
  index$1.h("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
1634
1691
  /**
1635
1692
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -1652,7 +1709,8 @@ const Datetime = class {
1652
1709
  ];
1653
1710
  }
1654
1711
  getHeaderSelectedDateText() {
1655
- const { activeParts, multiple, titleSelectedDatesFormatter } = this;
1712
+ var _a;
1713
+ const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
1656
1714
  const isArray = Array.isArray(activeParts);
1657
1715
  let headerText;
1658
1716
  if (multiple && isArray && activeParts.length !== 1) {
@@ -1668,7 +1726,7 @@ const Datetime = class {
1668
1726
  }
1669
1727
  else {
1670
1728
  // for exactly 1 day selected (multiple set or not), show a formatted version of that
1671
- headerText = data.getMonthAndDay(this.locale, this.getActivePartsWithFallback());
1729
+ headerText = data.getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
1672
1730
  }
1673
1731
  return headerText;
1674
1732
  }
@@ -1757,7 +1815,7 @@ const Datetime = class {
1757
1815
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
1758
1816
  const hasWheelVariant = hasDatePresentation && preferWheel;
1759
1817
  helpers.renderHiddenInput(true, el, name, data.formatValue(value), disabled);
1760
- return (index$1.h(index$1.Host, { key: 'b00545b7bbba3ccf35d53c1eec4f1614fb830c11', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1818
+ return (index$1.h(index$1.Host, { key: '064dc72b5494a687e93e7605f7e1ec2d00f523ad', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, theme.createColorClasses(color, {
1761
1819
  [mode]: true,
1762
1820
  ['datetime-readonly']: readonly,
1763
1821
  ['datetime-disabled']: disabled,
@@ -1767,13 +1825,15 @@ const Datetime = class {
1767
1825
  [`datetime-size-${size}`]: true,
1768
1826
  [`datetime-prefer-wheel`]: hasWheelVariant,
1769
1827
  [`datetime-grid`]: isGridStyle,
1770
- })) }, this.renderDatetime(mode)));
1828
+ })) }, index$1.h("div", { key: '258b34ca5d9bacfaa886a7de278f41a30be48c44', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
1771
1829
  }
1772
1830
  get el() { return index$1.getElement(this); }
1773
1831
  static get watchers() { return {
1832
+ "formatOptions": ["formatOptionsChanged"],
1774
1833
  "disabled": ["disabledChanged"],
1775
1834
  "min": ["minChanged"],
1776
1835
  "max": ["maxChanged"],
1836
+ "presentation": ["presentationChanged"],
1777
1837
  "yearValues": ["yearValuesChanged"],
1778
1838
  "monthValues": ["monthValuesChanged"],
1779
1839
  "dayValues": ["dayValuesChanged"],
@@ -2018,11 +2078,11 @@ const Picker = class {
2018
2078
  render() {
2019
2079
  const { htmlAttributes } = this;
2020
2080
  const mode = ionicGlobal.getIonMode(this);
2021
- return (index$1.h(index$1.Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
2081
+ return (index$1.h(index$1.Host, Object.assign({ key: 'd2a0406625c8de0604a926a807f63c7f25bf4bab', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
2022
2082
  zIndex: `${20000 + this.overlayIndex}`,
2023
2083
  }, class: Object.assign({ [mode]: true,
2024
2084
  // Used internally for styling
2025
- [`picker-${mode}`]: true, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), index$1.h("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), index$1.h("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), index$1.h("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, index$1.h("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', class: "picker-toolbar" }, this.buttons.map((b) => (index$1.h("div", { class: buttonWrapperClass(b) }, index$1.h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), index$1.h("div", { key: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, index$1.h("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => index$1.h("ion-picker-column", { col: c })), index$1.h("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), index$1.h("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
2085
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), index$1.h("ion-backdrop", { key: '776a45c3df93ab4683727bb5c8ba0085f4336586', visible: this.showBackdrop, tappable: this.backdropDismiss }), index$1.h("div", { key: 'fc34d3838cfc5c38097dac9e749dbf7433e1a10a', tabindex: "0" }), index$1.h("div", { key: '49bf9e92e301cbe12e2e683df110cccd6c9b8042', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, index$1.h("div", { key: 'f2810a07ea067be31c169f36cbb44ca8a5dc219b', class: "picker-toolbar" }, this.buttons.map((b) => (index$1.h("div", { class: buttonWrapperClass(b) }, index$1.h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), index$1.h("div", { key: 'f2d2a4652a8e368e40d4462d2b5e4c8095001b64', class: "picker-columns" }, index$1.h("div", { key: '143ee78c8e0543f3a2f897097ff09e18f5b68016', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => index$1.h("ion-picker-column", { col: c })), index$1.h("div", { key: '47716d2e923ca096a0bd48a07fee2deae1b1a567', class: "picker-below-highlight" }))), index$1.h("div", { key: 'ecd3b459cae6492330c7c5847c2b4cd214c9c615', tabindex: "0" })));
2026
2086
  }
2027
2087
  get el() { return index$1.getElement(this); }
2028
2088
  static get watchers() { return {
@@ -2379,9 +2439,9 @@ const PickerColumnCmp = class {
2379
2439
  render() {
2380
2440
  const col = this.col;
2381
2441
  const mode = ionicGlobal.getIonMode(this);
2382
- return (index$1.h(index$1.Host, { key: '06e2ae483a3bcf4fe721ad0c48cded6a1efdc6c0', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, theme.getClassMap(col.cssClass)), style: {
2442
+ return (index$1.h(index$1.Host, { key: 'b0d3c8b8315f130f1bcddcbc53ee9949676423bf', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, theme.getClassMap(col.cssClass)), style: {
2383
2443
  'max-width': this.col.columnWidth,
2384
- } }, col.prefix && (index$1.h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), index$1.h("div", { key: '14bea013788d899edf7155eb3cc10f79fe8e4690', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (index$1.h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (index$1.h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
2444
+ } }, col.prefix && (index$1.h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), index$1.h("div", { key: '2c0471c265bc3dfa2d415da77b8a70850e74458e', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (index$1.h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (index$1.h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
2385
2445
  }
2386
2446
  get el() { return index$1.getElement(this); }
2387
2447
  static get watchers() { return {
@@ -59,12 +59,12 @@ const Fab = class {
59
59
  render() {
60
60
  const { horizontal, vertical, edge } = this;
61
61
  const mode = ionicGlobal.getIonMode(this);
62
- return (index.h(index.Host, { key: 'eb7470763cfaadd229036fe4e04913cb4a0551c7', class: {
62
+ return (index.h(index.Host, { key: '2960656845d8ab1d643e56870cfeefbceb44fb20', class: {
63
63
  [mode]: true,
64
64
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
65
65
  [`fab-vertical-${vertical}`]: vertical !== undefined,
66
66
  'fab-edge': edge,
67
- } }, index.h("slot", { key: 'daf53f8c644db866f69d41401dba7a2791c37ac3' })));
67
+ } }, index.h("slot", { key: 'eed164a50594167959905a90d678d417bc99098d' })));
68
68
  }
69
69
  get el() { return index.getElement(this); }
70
70
  static get watchers() { return {
@@ -133,7 +133,7 @@ const FabButton = class {
133
133
  rel: this.rel,
134
134
  target: this.target,
135
135
  };
136
- return (index.h(index.Host, { key: '78f11aaac39bf0fcb25b64885ee61619223e4241', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: theme.createColorClasses(color, {
136
+ return (index.h(index.Host, { key: 'c6d1a3ea95ee1fb6c86447881ff8ed7d885b9fb5', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: theme.createColorClasses(color, {
137
137
  [mode]: true,
138
138
  'fab-button-in-list': inList,
139
139
  'fab-button-translucent-in-list': inList && translucent,
@@ -144,7 +144,7 @@ const FabButton = class {
144
144
  'ion-activatable': true,
145
145
  'ion-focusable': true,
146
146
  [`fab-button-${size}`]: size !== undefined,
147
- }) }, index.h(TagType, Object.assign({ key: 'a29b5eff122006d463ef3e10e1abe8378de07dc5' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => theme.openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), index.h("ion-icon", { key: 'e554c978fd9825eec9ca958f5b481f662ed6daa4', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), index.h("span", { key: 'd7dd93e93343767d223800899f0fd4c405845023', class: "button-inner" }, index.h("slot", { key: 'dd5df0945385480e7551e24117d136cd6b231638' })), mode === 'md' && index.h("ion-ripple-effect", null))));
147
+ }) }, index.h(TagType, Object.assign({ key: 'd57e55e43e3e1fa7a255e25bfb9eb81a20200aa4' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => theme.openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), index.h("ion-icon", { key: '561252585dc5f5ed260987fc8fef2558700b2700', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), index.h("span", { key: 'd156660a55d4d849c24368ee79217e66c6423b37', class: "button-inner" }, index.h("slot", { key: '35d4507eec7e4f646e1ef9206b8d6c9fd5a43c37' })), mode === 'md' && index.h("ion-ripple-effect", null))));
148
148
  }
149
149
  get el() { return index.getElement(this); }
150
150
  };
@@ -172,11 +172,11 @@ const FabList = class {
172
172
  }
173
173
  render() {
174
174
  const mode = ionicGlobal.getIonMode(this);
175
- return (index.h(index.Host, { key: 'c786680f9868700913a182f908f25a612ec08498', class: {
175
+ return (index.h(index.Host, { key: 'edbed7730aa2f177a6fb39a89af805b9699bc9ae', class: {
176
176
  [mode]: true,
177
177
  'fab-list-active': this.activated,
178
178
  [`fab-list-side-${this.side}`]: true,
179
- } }, index.h("slot", { key: '547f8cb69ab2371095e3deeef1dc13fc1053bdf6' })));
179
+ } }, index.h("slot", { key: '3ecb467b6d09dc02a1ab3cb76403f7c56e8ec6b2' })));
180
180
  }
181
181
  get el() { return index.getElement(this); }
182
182
  static get watchers() { return {
@@ -80,7 +80,7 @@ const Img = class {
80
80
  render() {
81
81
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
82
82
  const { draggable } = inheritedAttributes;
83
- return (index.h(index.Host, { key: '1983ddd575d8f870f249d37a3897dbcc110bf4d7', class: ionicGlobal.getIonMode(this) }, index.h("img", { key: 'f2ba013804f6ed9e5dadb08c75e47c0f844e67f3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
83
+ return (index.h(index.Host, { key: '212cb19b83defa47a677e44659eccc5e7e1bc5a2', class: ionicGlobal.getIonMode(this) }, index.h("img", { key: '975230d5ef5f262c8e5f040eb59cd1033241f3c8', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
84
84
  }
85
85
  get el() { return index.getElement(this); }
86
86
  static get watchers() { return {
@@ -180,7 +180,7 @@ const InfiniteScroll = class {
180
180
  render() {
181
181
  const mode = ionicGlobal.getIonMode(this);
182
182
  const disabled = this.disabled;
183
- return (index.h(index.Host, { key: '8b5da92c7a1c118cd6c6a6be8f21b11b79f166bd', class: {
183
+ return (index.h(index.Host, { key: 'cf712b0f22fe89b41377402da44f5575118ed34f', class: {
184
184
  [mode]: true,
185
185
  'infinite-scroll-loading': this.isLoading,
186
186
  'infinite-scroll-enabled': !disabled,
@@ -222,11 +222,11 @@ const InfiniteScrollContent = class {
222
222
  }
223
223
  render() {
224
224
  const mode = ionicGlobal.getIonMode(this);
225
- return (index.h(index.Host, { key: '8ffd8ff4c951be0c2b1f48fd4be3a2d7765a989f', class: {
225
+ return (index.h(index.Host, { key: '38c67d2c7ea4c304e71dacea64add0bffab69906', class: {
226
226
  [mode]: true,
227
227
  // Used internally for styling
228
228
  [`infinite-scroll-content-${mode}`]: true,
229
- } }, index.h("div", { key: 'd7d03485501b5e2fde7c132309bb6358818eb0cd', class: "infinite-loading" }, this.loadingSpinner && (index.h("div", { class: "infinite-loading-spinner" }, index.h("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
229
+ } }, index.h("div", { key: 'a23484ccbaf65e0e3ecb59befea425cfdbc782fd', class: "infinite-loading" }, this.loadingSpinner && (index.h("div", { class: "infinite-loading-spinner" }, index.h("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
230
230
  }
231
231
  };
232
232
  InfiniteScrollContent.style = {
@@ -48,12 +48,12 @@ const ItemOption = class {
48
48
  href: this.href,
49
49
  target: this.target,
50
50
  };
51
- return (index.h(index.Host, { key: '8d8ef0455e0e46d31a84b6f9e83e377e0579f04b', onClick: this.onClick, class: theme.createColorClasses(this.color, {
51
+ return (index.h(index.Host, { key: '7e208b463b2d36984791a7c9c1d24af88b468a03', onClick: this.onClick, class: theme.createColorClasses(this.color, {
52
52
  [mode]: true,
53
53
  'item-option-disabled': disabled,
54
54
  'item-option-expandable': expandable,
55
55
  'ion-activatable': true,
56
- }) }, index.h(TagType, Object.assign({ key: '0d4833cefd206862a75fdef8744e659cff24a39f' }, attrs, { class: "button-native", part: "native", disabled: disabled }), index.h("span", { key: 'bfbdab3ee6cfc884eb2bd60c92cf919f4b671c27', class: "button-inner" }, index.h("slot", { key: '968ebecbd9e8ca5015106d79e5d29b4a1999d39b', name: "top" }), index.h("div", { key: '38677cd72df6447a4e934695ab08857460be800d', class: "horizontal-wrapper" }, index.h("slot", { key: 'e65131d2e3f12c3743c7229b0a7f381824a45281', name: "start" }), index.h("slot", { key: 'c3a9bd83c455a79395574ff4d862299fd9340cd2', name: "icon-only" }), index.h("slot", { key: '161ca1daed265e8990d28f74744476a37d555d85' }), index.h("slot", { key: 'd5ecafceada1f8c3c16a2cb6511368828009081f', name: "end" })), index.h("slot", { key: '39e6a9dffc2cb9e2e9a200f6c669ed47f9a485aa', name: "bottom" })), mode === 'md' && index.h("ion-ripple-effect", null))));
56
+ }) }, index.h(TagType, Object.assign({ key: '9f48210793e88f25b675add863453432e6d8be51' }, attrs, { class: "button-native", part: "native", disabled: disabled }), index.h("span", { key: '3ebb5d9b7369f77ca49c8d700a95e4e2335a7f24', class: "button-inner" }, index.h("slot", { key: '7df01a2c40554effe0e36e7fe29ac469a89ad395', name: "top" }), index.h("div", { key: '1bdc411990a89a0523dd170bf4d61c2f28af3018', class: "horizontal-wrapper" }, index.h("slot", { key: '967a0cc8ff611439fddf28c20c3f197be1a314a5', name: "start" }), index.h("slot", { key: '7848ded44ce1b0e303f1c1a423fc1ae51e5997d4', name: "icon-only" }), index.h("slot", { key: '6076bb1a50cebe374ecd8507133eaccd2ee2d08b' }), index.h("slot", { key: '71505008df081744492fb22b41229ada64506834', name: "end" })), index.h("slot", { key: 'c213321eafe801c1ace8573b4736c2f0ab585703', name: "bottom" })), mode === 'md' && index.h("ion-ripple-effect", null))));
57
57
  }
58
58
  get el() { return index.getElement(this); }
59
59
  };
@@ -83,7 +83,7 @@ const ItemOptions = class {
83
83
  render() {
84
84
  const mode = ionicGlobal.getIonMode(this);
85
85
  const isEnd = helpers.isEndSide(this.side);
86
- return (index.h(index.Host, { key: '04d6baf62154da6ab9db5e679f982fe3fe276f89', class: {
86
+ return (index.h(index.Host, { key: '42ec58a1a2a6a886309595103468d2c39e81f58b', class: {
87
87
  [mode]: true,
88
88
  // Used internally for styling
89
89
  [`item-options-${mode}`]: true,
@@ -491,7 +491,7 @@ const ItemSliding = class {
491
491
  }
492
492
  render() {
493
493
  const mode = ionicGlobal.getIonMode(this);
494
- return (index.h(index.Host, { key: 'f666dd119a72247feac11dcd704059fce7677325', class: {
494
+ return (index.h(index.Host, { key: '83e1673fc5af892612deb9b49d5e792b8b0b6473', class: {
495
495
  [mode]: true,
496
496
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
497
497
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -297,11 +297,11 @@ const ItemDivider = class {
297
297
  }
298
298
  render() {
299
299
  const mode = ionicGlobal.getIonMode(this);
300
- return (index.h(index.Host, { key: '8422b960dfcce4ff1370d9c185e285bb4a3688d5', class: theme.createColorClasses(this.color, {
300
+ return (index.h(index.Host, { key: 'd9d5993694639e8f1ed589f0e8c3f4920ce30e02', class: theme.createColorClasses(this.color, {
301
301
  [mode]: true,
302
302
  'item-divider-sticky': this.sticky,
303
303
  item: true,
304
- }) }, index.h("slot", { key: '240514b96ec48262040460775c8eb0a58d6acfa8', name: "start" }), index.h("div", { key: 'ec18c092c81cb96f8c49ed7d4dede96c9a3e3f97', class: "item-divider-inner" }, index.h("div", { key: '9c3f3dcb9b14fd1d37fb1104b3ba953dc9a3e894', class: "item-divider-wrapper" }, index.h("slot", { key: '6b8e51eb86a5567b80a91034b26228105796a82d' })), index.h("slot", { key: '7ccb661e1309c1ecca09a823f8e08b1cf90d95dd', name: "end" }))));
304
+ }) }, index.h("slot", { key: '1da8c38cbf07ef591ceae94b0d70bf620990e568', name: "start" }), index.h("div", { key: '349a581fd1688b01ce7c67da99ae22cb4a5a85f7', class: "item-divider-inner" }, index.h("div", { key: '80e22ba4f5da2af40bb32a445b840baa59edfbcc', class: "item-divider-wrapper" }, index.h("slot", { key: '6d3fb95c8eba128e56defccbcc5d4b1fa3ec4c4a' })), index.h("slot", { key: '83a97c131348c8cf840c30ccbf83c78edc125c14', name: "end" }))));
305
305
  }
306
306
  get el() { return index.getElement(this); }
307
307
  };
@@ -322,7 +322,7 @@ const ItemGroup = class {
322
322
  }
323
323
  render() {
324
324
  const mode = ionicGlobal.getIonMode(this);
325
- return (index.h(index.Host, { key: 'b33f23544ddeeeb61847b146b1dcb7a9ba30af18', role: "group", class: {
325
+ return (index.h(index.Host, { key: '1d7de42c40d5f37324342fa7be2420bf6499705e', role: "group", class: {
326
326
  [mode]: true,
327
327
  // Used internally for styling
328
328
  [`item-group-${mode}`]: true,
@@ -392,7 +392,7 @@ const Label = class {
392
392
  render() {
393
393
  const position = this.position;
394
394
  const mode = ionicGlobal.getIonMode(this);
395
- return (index.h(index.Host, { key: '813192a6460057c6d1e42f50f3f257bee2f550d8', class: theme.createColorClasses(this.color, {
395
+ return (index.h(index.Host, { key: 'c80cc1b4dcd56f614efc1e63ca80bca2f20a7151', class: theme.createColorClasses(this.color, {
396
396
  [mode]: true,
397
397
  'in-item-color': theme.hostContext('ion-item.ion-color', this.el),
398
398
  [`label-${position}`]: position !== undefined,
@@ -439,7 +439,7 @@ const List = class {
439
439
  render() {
440
440
  const mode = ionicGlobal.getIonMode(this);
441
441
  const { lines, inset } = this;
442
- return (index.h(index.Host, { key: '2cb1b689d9460d9576b471bb8b13d14fe34d1c2c', role: "list", class: {
442
+ return (index.h(index.Host, { key: '7f259d2a107807065a440cca848ececa0da60458', role: "list", class: {
443
443
  [mode]: true,
444
444
  // Used internally for styling
445
445
  [`list-${mode}`]: true,
@@ -470,10 +470,10 @@ const ListHeader = class {
470
470
  render() {
471
471
  const { lines } = this;
472
472
  const mode = ionicGlobal.getIonMode(this);
473
- return (index.h(index.Host, { key: '1b832a6882307d40fe4afc9a95a5db4fbdff60a3', class: theme.createColorClasses(this.color, {
473
+ return (index.h(index.Host, { key: '27a08e9dc880db9377608ea262e254b0856b0d5c', class: theme.createColorClasses(this.color, {
474
474
  [mode]: true,
475
475
  [`list-header-lines-${lines}`]: lines !== undefined,
476
- }) }, index.h("div", { key: 'a53a3f05727b510d1b912c10c92a4aa58f4fe860', class: "list-header-inner" }, index.h("slot", { key: '9377dee83f050b2cb2c5b7c5d106668cc81d8f90' }))));
476
+ }) }, index.h("div", { key: 'edd68f126ee5d815e6ae13e9662e8cedbd2d46e5', class: "list-header-inner" }, index.h("slot", { key: 'dae94a382ef09bb90d3ff3fbb2306515acfc2014' }))));
477
477
  }
478
478
  };
479
479
  ListHeader.style = {
@@ -494,9 +494,9 @@ const Note = class {
494
494
  }
495
495
  render() {
496
496
  const mode = ionicGlobal.getIonMode(this);
497
- return (index.h(index.Host, { key: 'eebc0ea94483a248192408a1546739700281d2ae', class: theme.createColorClasses(this.color, {
497
+ return (index.h(index.Host, { key: 'de9f59a3e1700776780e61def3044901e1d1bef5', class: theme.createColorClasses(this.color, {
498
498
  [mode]: true,
499
- }) }, index.h("slot", { key: '33018e11967398327a0e7c20522547a4d9e8f55b' })));
499
+ }) }, index.h("slot", { key: '30f98649d4d31a297ab71d23ed38fa021540a8f2' })));
500
500
  }
501
501
  };
502
502
  Note.style = {
@@ -529,11 +529,11 @@ const SkeletonText = class {
529
529
  const animated = this.animated && ionicGlobal.config.getBoolean('animated', true);
530
530
  const inMedia = theme.hostContext('ion-avatar', this.el) || theme.hostContext('ion-thumbnail', this.el);
531
531
  const mode = ionicGlobal.getIonMode(this);
532
- return (index.h(index.Host, { key: 'ee3cd9a5448fb69c8ddfc88a993f9968e1a381ff', class: {
532
+ return (index.h(index.Host, { key: '2d9e785d3026faf76d0e970e3bfe33258f29046b', class: {
533
533
  [mode]: true,
534
534
  'skeleton-text-animated': animated,
535
535
  'in-media': inMedia,
536
- } }, index.h("span", { key: '8aa792724a3b77877062e9aae838d9e1572b576f' }, "\u00A0")));
536
+ } }, index.h("span", { key: 'd1800f5fd176a8daa216e8b889e427770bf64a05' }, "\u00A0")));
537
537
  }
538
538
  get el() { return index.getElement(this); }
539
539
  };
@@ -261,9 +261,9 @@ const Loading = class {
261
261
  * Otherwise, don't set aria-labelledby.
262
262
  */
263
263
  const ariaLabelledBy = message !== undefined ? msgId : null;
264
- return (index.h(index.Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
264
+ return (index.h(index.Host, Object.assign({ key: '7d4f3df4a869e66b59ce237b50b374cac4a296d3', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
265
265
  zIndex: `${40000 + this.overlayIndex}`,
266
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), index.h("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), index.h("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (index.h("div", { class: "loading-spinner" }, index.h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), index.h("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
266
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), index.h("ion-backdrop", { key: '9d72026f73b56bc38a5317992caa17068f8402b5', visible: this.showBackdrop, tappable: this.backdropDismiss }), index.h("div", { key: '67848b3058d4875b55cef88ccc0b5160cc9f5d9d', tabindex: "0" }), index.h("div", { key: 'c275700b6cd77d7a0404b59e89ea97a75a4a22e9', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (index.h("div", { class: "loading-spinner" }, index.h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), index.h("div", { key: '2333ff2f0d76bebe58cba85da0e5a38262ce33e7', tabindex: "0" })));
267
267
  }
268
268
  get el() { return index.getElement(this); }
269
269
  static get watchers() { return {
@@ -616,13 +616,13 @@ const Menu = class {
616
616
  * the ionBackButton listener in the menu controller
617
617
  * will handle closing the menu when Escape is pressed.
618
618
  */
619
- return (index.h(index.Host, { key: 'c6bf01fd87e31cda09c0c35900cb01ea19d61781', onKeyDown: hardwareBackButton.shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
619
+ return (index.h(index.Host, { key: '6c63bd340b8e2fc19b638189af44eae3627f8c0a', onKeyDown: hardwareBackButton.shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
620
620
  [mode]: true,
621
621
  [`menu-type-${type}`]: true,
622
622
  'menu-enabled': !disabled,
623
623
  [`menu-side-${side}`]: true,
624
624
  'menu-pane-visible': isPaneVisible,
625
- } }, index.h("div", { key: '6d818a470a74c11c10554d45d8586436a51f961e', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", { key: '3512e444ec6c6bf2a719b1dd713be9a7652f77c9' })), index.h("ion-backdrop", { key: '618a5316462406fa47929e4dcd5a8e8c9057a418', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
625
+ } }, index.h("div", { key: '8cad9e601c8ca1d1dca32681937362a55311e015', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, index.h("slot", { key: 'ce8ab737360c3a71ac6408d21fcb71485a189827' })), index.h("ion-backdrop", { key: 'a7e5f9ebe98996c7f5ab0ef27223a2f24bf63646', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
626
626
  }
627
627
  get el() { return index.getElement(this); }
628
628
  static get watchers() { return {
@@ -695,7 +695,7 @@ const MenuButton = class {
695
695
  type: this.type,
696
696
  };
697
697
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
698
- return (index.h(index.Host, { key: '2fd7130b8d28695162f7efebbd2131e5e9e4f330', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: theme.createColorClasses(color, {
698
+ return (index.h(index.Host, { key: '23364bf8eae83c3a422bacb0f43bf957551a7b7a', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: theme.createColorClasses(color, {
699
699
  [mode]: true,
700
700
  button: true, // ion-buttons target .button
701
701
  'menu-button-hidden': hidden,
@@ -704,7 +704,7 @@ const MenuButton = class {
704
704
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
705
705
  'ion-activatable': true,
706
706
  'ion-focusable': true,
707
- }) }, index.h("button", Object.assign({ key: 'fa6b1fb9291df812b04065b4b0ebdfd28e5217eb' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), index.h("span", { key: '88106a08070ebff7457c581301efe649829aded2', class: "button-inner" }, index.h("slot", { key: 'e3edfb89e5705b2c08c66f3d3452457667de3657' }, index.h("ion-icon", { key: '24678e9c3bb2f1f3db113a2ae0ec93e407a7de0c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && index.h("ion-ripple-effect", { type: "unbounded" }))));
707
+ }) }, index.h("button", Object.assign({ key: 'dacfa6f0881366385f3c3305fb656e5e8d4eaab8' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), index.h("span", { key: '2a11edcf830bde847cca810af461f4bcffd6aa30', class: "button-inner" }, index.h("slot", { key: 'f6b1299cf096abe6f25e1f60ce6be2bbdfddcc73' }, index.h("ion-icon", { key: '32c900a4b75ab90b149227075df4598539d09b5f', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && index.h("ion-ripple-effect", { type: "unbounded" }))));
708
708
  }
709
709
  get el() { return index.getElement(this); }
710
710
  };
@@ -735,10 +735,10 @@ const MenuToggle = class {
735
735
  render() {
736
736
  const mode = ionicGlobal.getIonMode(this);
737
737
  const hidden = this.autoHide && !this.visible;
738
- return (index.h(index.Host, { key: '5b75baade530bf9e7ed9165a5db3e513975e22f2', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
738
+ return (index.h(index.Host, { key: '981008b9e03870363f2eba75d9d22823ed79753e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
739
739
  [mode]: true,
740
740
  'menu-toggle-hidden': hidden,
741
- } }, index.h("slot", { key: '65dea458274b685125c22af54aa153cf4977113c' })));
741
+ } }, index.h("slot", { key: '1c88aec9c2ee7c67ee37be71814fed35144bbea7' })));
742
742
  }
743
743
  };
744
744
  MenuToggle.style = IonMenuToggleStyle0;
@@ -1649,9 +1649,9 @@ const Modal = class {
1649
1649
  const mode = ionicGlobal.getIonMode(this);
1650
1650
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1651
1651
  const isHandleCycle = handleBehavior === 'cycle';
1652
- return (index$3.h(index$3.Host, Object.assign({ key: '856aa156d687382cbd4a7ee47f553b96105fcf7d', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1652
+ return (index$3.h(index$3.Host, Object.assign({ key: '67ef0269a5e9b542d0c2acaa03a2f7f46b8cf0b5', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1653
1653
  zIndex: `${20000 + this.overlayIndex}`,
1654
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: '98205df704505f77c4878cd0b92598c1525b1a85', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '412e76909a459f80bdd3c311d88407890c9aed4f',
1654
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: 'edd98375e98d887dbea232adb81b74f164fa058b', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '40437670391544b57b8a9943ef3b49de7acbd873',
1655
1655
  /*
1656
1656
  role and aria-modal must be used on the
1657
1657
  same element. They must also be set inside the
@@ -1660,7 +1660,7 @@ const Modal = class {
1660
1660
  */
1661
1661
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { class: "modal-handle",
1662
1662
  // Prevents the handle from receiving keyboard focus when it does not cycle
1663
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: '3e532328bc1eeb1d1213f9b3c098e89b77590620' }))));
1663
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: 'dfe2095d9e1adb075dc09d1927ef24ea09ea5435' }))));
1664
1664
  }
1665
1665
  get el() { return index$3.getElement(this); }
1666
1666
  static get watchers() { return {
@@ -899,7 +899,7 @@ const Nav = class {
899
899
  }
900
900
  }
901
901
  render() {
902
- return index.h("slot", { key: '654286a8a7ef03d4a22497eb51e781a9a8979774' });
902
+ return index.h("slot", { key: '8254ea10bef0575c13f8b0ddbe4643bec19f2366' });
903
903
  }
904
904
  get el() { return index.getElement(this); }
905
905
  static get watchers() { return {
@@ -941,7 +941,7 @@ const NavLink = class {
941
941
  this.routerAnimation = undefined;
942
942
  }
943
943
  render() {
944
- return index.h(index.Host, { key: 'a781794425ad0866705bc6691256184b93477a74', onClick: this.onClick });
944
+ return index.h(index.Host, { key: 'dfbfc1a69c48248a8861463ed31c693be6543f32', onClick: this.onClick });
945
945
  }
946
946
  get el() { return index.getElement(this); }
947
947
  };
@@ -254,7 +254,11 @@ const PickerColumnInternal = class {
254
254
  */
255
255
  componentWillLoad() {
256
256
  const visibleCallback = (entries) => {
257
- const ev = entries[0];
257
+ /**
258
+ * Browsers will sometimes group multiple IO events into a single callback.
259
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
260
+ */
261
+ const ev = entries[entries.length - 1];
258
262
  if (ev.isIntersecting) {
259
263
  const { activeItem, el } = this;
260
264
  this.isColumnVisible = true;
@@ -343,18 +347,18 @@ const PickerColumnInternal = class {
343
347
  * the attribute can be moved to datetime.tsx and set on every
344
348
  * instance of ion-picker-column-internal there instead.
345
349
  */
346
- return (index.h(index.Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: theme.createColorClasses(color, {
350
+ return (index.h(index.Host, { key: 'eeb70e31fca7bff943a2fc29a3da0383520fdd84', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: theme.createColorClasses(color, {
347
351
  [mode]: true,
348
352
  ['picker-column-active']: isActive,
349
353
  ['picker-column-numeric-input']: numericInput,
350
- }) }, index.h("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index$1) => {
354
+ }) }, index.h("div", { key: '08cffb51ab2ce1a4b83e35b25afd2880d6949d8e', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '88389ba5287ee5e251fa36a0e13a888c8dfbf8e8', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '2dc958f37a939a0fbbc35d92482e9c64741d8f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index$1) => {
351
355
  const isItemDisabled = pickerDisabled || item.disabled || false;
352
356
  return (index.h("button", { tabindex: "-1", class: {
353
357
  'picker-item': true,
354
358
  }, "data-value": item.value, "data-index": index$1, onClick: (ev) => {
355
359
  this.centerPickerItemInView(ev.target, true);
356
360
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
357
- }), index.h("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
361
+ }), index.h("div", { key: 'd31f134aa67a10ad1b796a4e1ffbea439b2b3723', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '3015f7f774b44d349f445e585b73295814c76326', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'df165c76253e51bd6968bdcd8071ad69467bda4c', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
358
362
  }
359
363
  get el() { return index.getElement(this); }
360
364
  static get watchers() { return {