voyager-ionic-core 8.5.1 → 8.5.5

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 (632) hide show
  1. package/components/alert.js +5 -4
  2. package/components/animation.js +3 -2
  3. package/components/button.js +6 -6
  4. package/components/capacitor.js +1 -1
  5. package/components/checkbox.js +18 -6
  6. package/components/config.js +3 -1
  7. package/components/data.js +3 -3
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/helpers.js +4 -12
  10. package/components/index.js +2 -1
  11. package/components/index2.js +1 -2
  12. package/components/index4.js +104 -289
  13. package/components/index5.js +302 -3
  14. package/components/index6.js +3 -38
  15. package/components/index8.js +1 -1
  16. package/components/index9.js +2 -2
  17. package/components/input-shims.js +1 -1
  18. package/components/input.utils.js +3 -3
  19. package/components/ion-accordion-group.js +4 -4
  20. package/components/ion-accordion.js +2 -1
  21. package/components/ion-app.js +4 -4
  22. package/components/ion-back-button.js +2 -1
  23. package/components/ion-datetime-button.js +7 -7
  24. package/components/ion-datetime.js +20 -20
  25. package/components/ion-infinite-scroll-content.js +2 -1
  26. package/components/ion-input-password-toggle.js +6 -6
  27. package/components/ion-input.js +3 -3
  28. package/components/ion-item-sliding.js +3 -2
  29. package/components/ion-loading.js +2 -1
  30. package/components/ion-menu-button.js +3 -2
  31. package/components/ion-menu-toggle.js +1 -1
  32. package/components/ion-menu.js +7 -6
  33. package/components/ion-nav.js +5 -5
  34. package/components/ion-picker-legacy.js +4 -4
  35. package/components/ion-progress-bar.js +2 -1
  36. package/components/ion-range.js +24 -8
  37. package/components/ion-refresher-content.js +2 -1
  38. package/components/ion-refresher.js +3 -2
  39. package/components/ion-router-outlet.js +4 -3
  40. package/components/ion-router.js +9 -8
  41. package/components/ion-searchbar.js +2 -1
  42. package/components/ion-segment-button.js +22 -52
  43. package/components/ion-segment-content.js +1 -1
  44. package/components/ion-select.js +14 -7
  45. package/components/ion-skeleton-text.js +2 -1
  46. package/components/ion-split-pane.js +5 -4
  47. package/components/ion-tab-button.js +2 -1
  48. package/components/ion-tab.js +5 -4
  49. package/components/ion-tabs.js +3 -2
  50. package/components/ion-textarea.js +2 -2
  51. package/components/ion-toast.js +11 -11
  52. package/components/ion-toggle.js +18 -8
  53. package/components/ionic-global.js +3 -77
  54. package/components/keyboard-controller.js +1 -1
  55. package/components/menu-toggle-util.js +1 -1
  56. package/components/modal.js +10 -10
  57. package/components/notch-controller.js +1 -1
  58. package/components/overlays.js +9 -8
  59. package/components/picker-column.js +1 -1
  60. package/components/picker.js +54 -77
  61. package/components/popover.js +4 -4
  62. package/components/spinner.js +2 -1
  63. package/dist/cjs/{animation-b4fdf128.js → animation-ab2d3449.js} +4 -3
  64. package/dist/cjs/{app-globals-dd592863.js → app-globals-ddceb1f4.js} +1 -1
  65. package/dist/cjs/{config-4f60b98a.js → config-f6225ae7.js} +3 -1
  66. package/dist/cjs/{data-27cc2c9c.js → data-94e8d392.js} +3 -3
  67. package/dist/cjs/{framework-delegate-11b0ba2f.js → framework-delegate-862d9d00.js} +1 -1
  68. package/dist/cjs/{hardware-back-button-5a99001f.js → hardware-back-button-3d2b1004.js} +7 -8
  69. package/dist/cjs/{helpers-d0dfbb50.js → helpers-8a48fdea.js} +3 -12
  70. package/dist/cjs/{index-f68a486a.js → index-1eff7149.js} +7 -8
  71. package/dist/cjs/{index-9b945a2d.js → index-31b07b9c.js} +2 -2
  72. package/dist/cjs/{index-fd6383b6.js → index-a96d31ae.js} +5 -5
  73. package/dist/cjs/index-cc858e97.js +129 -0
  74. package/dist/cjs/{index-363fe6b2.js → index-dbe01e08.js} +2 -1
  75. package/dist/cjs/index.cjs.js +19 -13
  76. package/dist/cjs/{input-shims-2d27a5be.js → input-shims-415be7ee.js} +3 -5
  77. package/dist/cjs/{input.utils-2f642324.js → input.utils-a7957fd6.js} +3 -3
  78. package/dist/cjs/ion-accordion_2.cjs.entry.js +9 -9
  79. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
  80. package/dist/cjs/ion-alert.cjs.entry.js +12 -12
  81. package/dist/cjs/ion-app_8.cjs.entry.js +23 -23
  82. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -1
  83. package/dist/cjs/ion-back-button.cjs.entry.js +8 -7
  84. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -1
  85. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -2
  86. package/dist/cjs/ion-button_2.cjs.entry.js +8 -8
  87. package/dist/cjs/ion-card_5.cjs.entry.js +3 -2
  88. package/dist/cjs/ion-checkbox.cjs.entry.js +21 -8
  89. package/dist/cjs/ion-chip.cjs.entry.js +2 -1
  90. package/dist/cjs/ion-col_3.cjs.entry.js +2 -1
  91. package/dist/cjs/ion-datetime-button.cjs.entry.js +10 -10
  92. package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -30
  93. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -2
  94. package/dist/cjs/ion-img.cjs.entry.js +3 -2
  95. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
  96. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +7 -7
  97. package/dist/cjs/ion-input.cjs.entry.js +8 -8
  98. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  99. package/dist/cjs/ion-item_8.cjs.entry.js +4 -3
  100. package/dist/cjs/ion-loading.cjs.entry.js +10 -10
  101. package/dist/cjs/ion-menu_3.cjs.entry.js +24 -24
  102. package/dist/cjs/ion-modal.cjs.entry.js +18 -18
  103. package/dist/cjs/ion-nav_2.cjs.entry.js +18 -18
  104. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -2
  105. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -2
  106. package/dist/cjs/ion-picker.cjs.entry.js +56 -78
  107. package/dist/cjs/ion-popover.cjs.entry.js +11 -11
  108. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -3
  109. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -2
  110. package/dist/cjs/ion-range.cjs.entry.js +27 -11
  111. package/dist/cjs/ion-refresher_2.cjs.entry.js +14 -14
  112. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  113. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -1
  114. package/dist/cjs/ion-route_4.cjs.entry.js +11 -10
  115. package/dist/cjs/ion-searchbar.cjs.entry.js +8 -7
  116. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  117. package/dist/cjs/ion-segment_2.cjs.entry.js +23 -53
  118. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  119. package/dist/cjs/ion-select_3.cjs.entry.js +21 -16
  120. package/dist/cjs/ion-spinner.cjs.entry.js +4 -3
  121. package/dist/cjs/ion-split-pane.cjs.entry.js +6 -5
  122. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -3
  123. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
  124. package/dist/cjs/ion-text.cjs.entry.js +2 -1
  125. package/dist/cjs/ion-textarea.cjs.entry.js +7 -7
  126. package/dist/cjs/ion-toast.cjs.entry.js +18 -18
  127. package/dist/cjs/ion-toggle.cjs.entry.js +20 -10
  128. package/dist/cjs/{ionic-global-acb665ad.js → ionic-global-6dea5a96.js} +15 -90
  129. package/dist/cjs/ionic.cjs.js +4 -3
  130. package/dist/cjs/{ios.transition-f970164c.js → ios.transition-a131cd4d.js} +4 -5
  131. package/dist/cjs/loader.cjs.js +4 -3
  132. package/dist/cjs/{md.transition-aa8820dd.js → md.transition-e018ebe5.js} +4 -5
  133. package/dist/cjs/{notch-controller-58d2e557.js → notch-controller-09b7f358.js} +1 -1
  134. package/dist/cjs/{overlays-737576a2.js → overlays-4c291a05.js} +21 -20
  135. package/dist/cjs/{status-tap-08d1ac81.js → status-tap-f1acefac.js} +3 -4
  136. package/dist/cjs/{swipe-back-5c0003bd.js → swipe-back-442ca3d7.js} +2 -1
  137. package/dist/collection/components/accordion-group/accordion-group.js +3 -3
  138. package/dist/collection/components/alert/alert.js +4 -3
  139. package/dist/collection/components/app/app.js +2 -2
  140. package/dist/collection/components/button/button.js +5 -5
  141. package/dist/collection/components/checkbox/checkbox.ios.css +5 -16
  142. package/dist/collection/components/checkbox/checkbox.js +16 -4
  143. package/dist/collection/components/checkbox/checkbox.md.css +5 -16
  144. package/dist/collection/components/datetime/datetime.js +14 -14
  145. package/dist/collection/components/datetime/utils/comparison.js +1 -1
  146. package/dist/collection/components/datetime/utils/parse.js +1 -1
  147. package/dist/collection/components/datetime/utils/state.js +1 -1
  148. package/dist/collection/components/datetime/utils/validate.js +4 -4
  149. package/dist/collection/components/datetime-button/datetime-button.js +6 -6
  150. package/dist/collection/components/input/input.js +3 -3
  151. package/dist/collection/components/input/input.utils.js +1 -1
  152. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -5
  153. package/dist/collection/components/item-sliding/item-sliding.js +3 -2
  154. package/dist/collection/components/menu/menu.js +5 -4
  155. package/dist/collection/components/modal/modal.js +7 -7
  156. package/dist/collection/components/nav/nav.js +3 -3
  157. package/dist/collection/components/picker/picker.js +54 -77
  158. package/dist/collection/components/picker-legacy/picker.js +3 -3
  159. package/dist/collection/components/popover/popover.js +3 -3
  160. package/dist/collection/components/range/range.js +23 -7
  161. package/dist/collection/components/refresher/refresher.js +3 -2
  162. package/dist/collection/components/router/router.js +8 -7
  163. package/dist/collection/components/router/utils/dom.js +2 -1
  164. package/dist/collection/components/router-outlet/router-outlet.js +3 -2
  165. package/dist/collection/components/segment-button/segment-button.js +22 -52
  166. package/dist/collection/components/segment-content/segment-content.css +9 -0
  167. package/dist/collection/components/select/select.ios.css +5 -3
  168. package/dist/collection/components/select/select.js +13 -6
  169. package/dist/collection/components/select/select.md.css +55 -16
  170. package/dist/collection/components/split-pane/split-pane.js +5 -4
  171. package/dist/collection/components/tab/tab.js +5 -4
  172. package/dist/collection/components/tabs/tabs.js +3 -2
  173. package/dist/collection/components/textarea/textarea.js +2 -2
  174. package/dist/collection/components/toast/animations/utils.js +1 -1
  175. package/dist/collection/components/toast/toast.js +8 -8
  176. package/dist/collection/components/toggle/toggle.ios.css +5 -17
  177. package/dist/collection/components/toggle/toggle.js +14 -5
  178. package/dist/collection/components/toggle/toggle.md.css +5 -17
  179. package/dist/collection/global/ionic-global.js +2 -1
  180. package/dist/collection/index.js +1 -0
  181. package/dist/collection/utils/animation/animation.js +2 -1
  182. package/dist/collection/utils/hardware-back-button.js +2 -1
  183. package/dist/collection/utils/helpers.js +2 -11
  184. package/dist/collection/utils/logging/index.js +10 -4
  185. package/dist/collection/utils/overlays.js +7 -6
  186. package/dist/collection/utils/sanitization/index.js +2 -1
  187. package/dist/docs.json +1 -1
  188. package/dist/esm/{animation-eab5a4ca.js → animation-8b25e105.js} +2 -1
  189. package/dist/esm/{app-globals-7b6cbf1a.js → app-globals-dbdbb3df.js} +1 -1
  190. package/dist/esm/{config-49c88215.js → config-9898ed97.js} +3 -1
  191. package/dist/esm/{data-174ad5e0.js → data-0d7ea6eb.js} +3 -3
  192. package/dist/esm/{framework-delegate-c7d92b77.js → framework-delegate-56b467ad.js} +1 -1
  193. package/dist/esm/{hardware-back-button-864101a3.js → hardware-back-button-a7eb8233.js} +2 -3
  194. package/dist/esm/{helpers-e48b0397.js → helpers-d94bc8ad.js} +4 -12
  195. package/dist/esm/{index-c63afbe6.js → index-18f31305.js} +5 -5
  196. package/dist/esm/{index-a313df53.js → index-68c0d151.js} +4 -5
  197. package/dist/esm/{index-933ca126.js → index-9a17db3d.js} +2 -2
  198. package/dist/esm/{index-8222b29f.js → index-be190feb.js} +2 -1
  199. package/dist/esm/index-cfd9c1f2.js +121 -0
  200. package/dist/esm/index.js +12 -12
  201. package/dist/esm/{input-shims-3070628a.js → input-shims-279903e2.js} +3 -5
  202. package/dist/esm/{input.utils-926c04a8.js → input.utils-40504d6d.js} +3 -3
  203. package/dist/esm/ion-accordion_2.entry.js +6 -6
  204. package/dist/esm/ion-action-sheet.entry.js +7 -7
  205. package/dist/esm/ion-alert.entry.js +11 -11
  206. package/dist/esm/ion-app_8.entry.js +16 -16
  207. package/dist/esm/ion-avatar_3.entry.js +2 -1
  208. package/dist/esm/ion-back-button.entry.js +3 -2
  209. package/dist/esm/ion-backdrop.entry.js +2 -1
  210. package/dist/esm/ion-breadcrumb_2.entry.js +3 -2
  211. package/dist/esm/ion-button_2.entry.js +8 -8
  212. package/dist/esm/ion-card_5.entry.js +3 -2
  213. package/dist/esm/ion-checkbox.entry.js +21 -8
  214. package/dist/esm/ion-chip.entry.js +2 -1
  215. package/dist/esm/ion-col_3.entry.js +2 -1
  216. package/dist/esm/ion-datetime-button.entry.js +10 -10
  217. package/dist/esm/ion-datetime_3.entry.js +30 -30
  218. package/dist/esm/ion-fab_3.entry.js +3 -2
  219. package/dist/esm/ion-img.entry.js +3 -2
  220. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  221. package/dist/esm/ion-input-password-toggle.entry.js +7 -7
  222. package/dist/esm/ion-input.entry.js +8 -8
  223. package/dist/esm/ion-item-option_3.entry.js +6 -6
  224. package/dist/esm/ion-item_8.entry.js +3 -2
  225. package/dist/esm/ion-loading.entry.js +8 -8
  226. package/dist/esm/ion-menu_3.entry.js +12 -12
  227. package/dist/esm/ion-modal.entry.js +16 -16
  228. package/dist/esm/ion-nav_2.entry.js +8 -8
  229. package/dist/esm/ion-picker-column-option.entry.js +3 -2
  230. package/dist/esm/ion-picker-column.entry.js +3 -2
  231. package/dist/esm/ion-picker.entry.js +56 -78
  232. package/dist/esm/ion-popover.entry.js +11 -11
  233. package/dist/esm/ion-progress-bar.entry.js +3 -2
  234. package/dist/esm/ion-radio_2.entry.js +3 -2
  235. package/dist/esm/ion-range.entry.js +27 -11
  236. package/dist/esm/ion-refresher_2.entry.js +8 -8
  237. package/dist/esm/ion-reorder_2.entry.js +4 -4
  238. package/dist/esm/ion-ripple-effect.entry.js +2 -1
  239. package/dist/esm/ion-route_4.entry.js +11 -10
  240. package/dist/esm/ion-searchbar.entry.js +3 -2
  241. package/dist/esm/ion-segment-content.entry.js +1 -1
  242. package/dist/esm/ion-segment_2.entry.js +23 -53
  243. package/dist/esm/ion-select-modal.entry.js +6 -6
  244. package/dist/esm/ion-select_3.entry.js +19 -14
  245. package/dist/esm/ion-spinner.entry.js +2 -1
  246. package/dist/esm/ion-split-pane.entry.js +6 -5
  247. package/dist/esm/ion-tab-bar_2.entry.js +3 -2
  248. package/dist/esm/ion-tab_2.entry.js +8 -7
  249. package/dist/esm/ion-text.entry.js +2 -1
  250. package/dist/esm/ion-textarea.entry.js +7 -7
  251. package/dist/esm/ion-toast.entry.js +16 -16
  252. package/dist/esm/ion-toggle.entry.js +19 -9
  253. package/dist/esm/{ionic-global-ca86cf32.js → ionic-global-b26f573e.js} +3 -77
  254. package/dist/esm/ionic.js +4 -3
  255. package/dist/esm/{ios.transition-5fe4d6c8.js → ios.transition-4047cb68.js} +4 -5
  256. package/dist/esm/loader.js +4 -3
  257. package/dist/esm/{md.transition-3d0d3730.js → md.transition-30ce8d1b.js} +4 -5
  258. package/dist/esm/{notch-controller-381a5334.js → notch-controller-1a1f7183.js} +1 -1
  259. package/dist/esm/{overlays-7579a420.js → overlays-d99dcb0a.js} +11 -10
  260. package/dist/esm/{status-tap-6367b913.js → status-tap-42a8af65.js} +3 -4
  261. package/dist/esm/{swipe-back-326faa1c.js → swipe-back-04123e7c.js} +2 -1
  262. package/dist/esm-es5/animation-8b25e105.js +4 -0
  263. package/dist/esm-es5/app-globals-dbdbb3df.js +4 -0
  264. package/dist/esm-es5/config-9898ed97.js +4 -0
  265. package/dist/esm-es5/data-0d7ea6eb.js +4 -0
  266. package/dist/esm-es5/{framework-delegate-c7d92b77.js → framework-delegate-56b467ad.js} +1 -1
  267. package/dist/esm-es5/hardware-back-button-a7eb8233.js +4 -0
  268. package/dist/esm-es5/helpers-d94bc8ad.js +4 -0
  269. package/dist/esm-es5/{index-c63afbe6.js → index-18f31305.js} +1 -1
  270. package/dist/esm-es5/index-68c0d151.js +4 -0
  271. package/dist/esm-es5/{index-933ca126.js → index-9a17db3d.js} +1 -1
  272. package/dist/esm-es5/index-be190feb.js +4 -0
  273. package/dist/esm-es5/index-cfd9c1f2.js +5 -0
  274. package/dist/esm-es5/index.js +1 -1
  275. package/dist/esm-es5/input-shims-279903e2.js +4 -0
  276. package/dist/esm-es5/input.utils-40504d6d.js +4 -0
  277. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  278. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  279. package/dist/esm-es5/ion-alert.entry.js +1 -1
  280. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  281. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  282. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  283. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  284. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  285. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  286. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  287. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  288. package/dist/esm-es5/ion-chip.entry.js +1 -1
  289. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  290. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  291. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  292. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  293. package/dist/esm-es5/ion-img.entry.js +1 -1
  294. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  295. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  296. package/dist/esm-es5/ion-input.entry.js +1 -1
  297. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  298. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  299. package/dist/esm-es5/ion-loading.entry.js +1 -1
  300. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  301. package/dist/esm-es5/ion-modal.entry.js +1 -1
  302. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  303. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  304. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  305. package/dist/esm-es5/ion-picker.entry.js +1 -1
  306. package/dist/esm-es5/ion-popover.entry.js +1 -1
  307. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  308. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  309. package/dist/esm-es5/ion-range.entry.js +1 -1
  310. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  311. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  312. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  313. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  314. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  315. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  316. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  317. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  318. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  319. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  320. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  321. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  322. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-text.entry.js +1 -1
  324. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  325. package/dist/esm-es5/ion-toast.entry.js +1 -1
  326. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  327. package/dist/esm-es5/ionic-global-b26f573e.js +4 -0
  328. package/dist/esm-es5/ionic.js +1 -1
  329. package/dist/esm-es5/ios.transition-4047cb68.js +4 -0
  330. package/dist/esm-es5/loader.js +1 -1
  331. package/dist/esm-es5/md.transition-30ce8d1b.js +4 -0
  332. package/dist/esm-es5/{notch-controller-381a5334.js → notch-controller-1a1f7183.js} +1 -1
  333. package/dist/esm-es5/overlays-d99dcb0a.js +4 -0
  334. package/dist/esm-es5/status-tap-42a8af65.js +4 -0
  335. package/dist/esm-es5/swipe-back-04123e7c.js +4 -0
  336. package/dist/ionic/index.esm.js +1 -1
  337. package/dist/ionic/ionic.esm.js +1 -1
  338. package/dist/ionic/ionic.js +1 -1
  339. package/dist/ionic/p-00023f5a.system.js +4 -0
  340. package/dist/ionic/p-03480b95.system.entry.js +4 -0
  341. package/dist/ionic/p-08cef0b1.entry.js +4 -0
  342. package/dist/ionic/p-0af640d6.entry.js +4 -0
  343. package/dist/ionic/{p-e0a05506.js → p-0f5e6225.js} +1 -1
  344. package/dist/ionic/p-105b2e8b.entry.js +4 -0
  345. package/dist/ionic/p-10a1bddc.js +4 -0
  346. package/dist/ionic/p-117d0013.system.entry.js +4 -0
  347. package/dist/ionic/p-12193821.system.js +4 -0
  348. package/dist/ionic/p-12830298.system.entry.js +4 -0
  349. package/dist/ionic/p-14154301.system.entry.js +4 -0
  350. package/dist/ionic/{p-e0c43e11.system.entry.js → p-1706b406.system.entry.js} +1 -1
  351. package/dist/ionic/p-17e21141.js +4 -0
  352. package/dist/ionic/p-19494658.system.entry.js +4 -0
  353. package/dist/ionic/{p-9a2ff5ea.system.js → p-1966a13c.system.js} +1 -1
  354. package/dist/ionic/p-1974d5b2.system.js +4 -0
  355. package/dist/ionic/p-1a7df1c3.system.js +4 -0
  356. package/dist/ionic/p-1a81ac09.system.js +4 -0
  357. package/dist/ionic/p-1b9c59ab.js +4 -0
  358. package/dist/ionic/p-1cb02e44.entry.js +4 -0
  359. package/dist/ionic/{p-77991411.system.js → p-1d307396.system.js} +1 -1
  360. package/dist/ionic/p-1f871cf8.entry.js +4 -0
  361. package/dist/ionic/p-200fc491.js +4 -0
  362. package/dist/ionic/p-2233344a.system.js +4 -0
  363. package/dist/ionic/p-2469240b.entry.js +4 -0
  364. package/dist/ionic/{p-e0c0218f.system.entry.js → p-24a6c8a3.system.entry.js} +1 -1
  365. package/dist/ionic/p-257fb777.entry.js +4 -0
  366. package/dist/ionic/{p-e7309bfa.js → p-25b10f81.js} +1 -1
  367. package/dist/ionic/p-2bb55ebc.js +4 -0
  368. package/dist/ionic/p-2bff0e69.system.entry.js +4 -0
  369. package/dist/ionic/{p-606887b7.system.entry.js → p-2fa37fdc.system.entry.js} +1 -1
  370. package/dist/ionic/p-31dc303d.entry.js +4 -0
  371. package/dist/ionic/p-3535d6b5.entry.js +4 -0
  372. package/dist/ionic/{p-4470f87b.system.entry.js → p-35cdfd77.system.entry.js} +1 -1
  373. package/dist/ionic/p-393ffcc2.entry.js +4 -0
  374. package/dist/ionic/p-39fa7dd1.system.entry.js +4 -0
  375. package/dist/ionic/p-3a30f31b.system.entry.js +4 -0
  376. package/dist/ionic/p-42f08b26.system.entry.js +4 -0
  377. package/dist/ionic/p-481e0885.entry.js +4 -0
  378. package/dist/ionic/p-4a5be299.system.entry.js +4 -0
  379. package/dist/ionic/p-4c667fce.js +4 -0
  380. package/dist/ionic/p-4cf4172e.entry.js +4 -0
  381. package/dist/ionic/p-4da92dac.entry.js +4 -0
  382. package/dist/ionic/p-4ec0e961.system.entry.js +4 -0
  383. package/dist/ionic/{p-3479f51b.system.js → p-4ed5db19.system.js} +1 -1
  384. package/dist/ionic/p-50cb2e8b.system.entry.js +4 -0
  385. package/dist/ionic/p-57957c0f.entry.js +4 -0
  386. package/dist/ionic/p-57e55ecb.system.js +4 -0
  387. package/dist/ionic/p-5b67b447.js +4 -0
  388. package/dist/ionic/p-5c9feddc.system.entry.js +4 -0
  389. package/dist/ionic/p-5edf78c5.system.entry.js +4 -0
  390. package/dist/ionic/p-612096e6.system.entry.js +4 -0
  391. package/dist/ionic/p-6201c4ba.entry.js +4 -0
  392. package/dist/ionic/p-625248d0.system.js +4 -0
  393. package/dist/ionic/p-663413be.system.js +4 -0
  394. package/dist/ionic/p-6636a436.js +4 -0
  395. package/dist/ionic/p-66df5468.system.entry.js +4 -0
  396. package/dist/ionic/p-67077d48.entry.js +4 -0
  397. package/dist/ionic/p-67cacd6d.entry.js +4 -0
  398. package/dist/ionic/p-6835ebdd.system.entry.js +4 -0
  399. package/dist/ionic/p-6b8530f5.system.entry.js +4 -0
  400. package/dist/ionic/{p-ace2d2be.entry.js → p-6c474e87.entry.js} +1 -1
  401. package/dist/ionic/p-6dd86ff5.system.entry.js +4 -0
  402. package/dist/ionic/p-6ec0c94a.entry.js +4 -0
  403. package/dist/ionic/p-6f832afe.system.entry.js +4 -0
  404. package/dist/ionic/p-707408c5.system.entry.js +4 -0
  405. package/dist/ionic/p-712c0131.entry.js +4 -0
  406. package/dist/ionic/{p-c8bf9ba7.entry.js → p-721f43f9.entry.js} +1 -1
  407. package/dist/ionic/p-7445a2e5.system.js +4 -0
  408. package/dist/ionic/p-7611ede3.system.entry.js +4 -0
  409. package/dist/ionic/p-781e2dbb.system.js +4 -0
  410. package/dist/ionic/p-7b8c12c3.entry.js +4 -0
  411. package/dist/ionic/p-7c5c7ae1.system.entry.js +4 -0
  412. package/dist/ionic/p-7e3e6ed2.entry.js +4 -0
  413. package/dist/ionic/{p-1a9613bf.system.entry.js → p-7ffedf77.system.entry.js} +1 -1
  414. package/dist/ionic/p-809483ac.js +4 -0
  415. package/dist/ionic/{p-54893ae3.entry.js → p-81904a80.entry.js} +1 -1
  416. package/dist/ionic/{p-a6625de8.system.js → p-84096b45.system.js} +1 -1
  417. package/dist/ionic/p-8450f761.entry.js +4 -0
  418. package/dist/ionic/p-8460d95a.entry.js +4 -0
  419. package/dist/ionic/p-85b01465.js +4 -0
  420. package/dist/ionic/p-865fe95c.entry.js +4 -0
  421. package/dist/ionic/p-8674af94.entry.js +4 -0
  422. package/dist/ionic/p-890a4ee2.entry.js +4 -0
  423. package/dist/ionic/p-891553d8.entry.js +4 -0
  424. package/dist/ionic/p-8b050e84.system.js +4 -0
  425. package/dist/ionic/{p-22bc235f.js → p-8d2d39d0.js} +1 -1
  426. package/dist/ionic/p-8dacf4e2.entry.js +4 -0
  427. package/dist/ionic/p-94551927.js +4 -0
  428. package/dist/ionic/p-95001a19.js +4 -0
  429. package/dist/ionic/p-98fd942b.system.entry.js +4 -0
  430. package/dist/ionic/p-9e753482.system.entry.js +4 -0
  431. package/dist/ionic/p-a0fd2fe5.system.entry.js +4 -0
  432. package/dist/ionic/p-a2c6a9c8.entry.js +4 -0
  433. package/dist/ionic/p-a2dd5b69.system.entry.js +4 -0
  434. package/dist/ionic/p-a5dbe0ff.system.entry.js +4 -0
  435. package/dist/ionic/p-a78fa846.entry.js +4 -0
  436. package/dist/ionic/p-a835aca8.entry.js +4 -0
  437. package/dist/ionic/p-a83e3290.system.js +4 -0
  438. package/dist/ionic/{p-e00b72ce.js → p-aded71ec.js} +1 -1
  439. package/dist/ionic/p-ae039072.entry.js +4 -0
  440. package/dist/ionic/p-aebfab05.system.entry.js +4 -0
  441. package/dist/ionic/{p-4493c1ac.entry.js → p-b22a021d.entry.js} +1 -1
  442. package/dist/ionic/p-b2e7eda0.system.entry.js +4 -0
  443. package/dist/ionic/p-b445ff65.entry.js +4 -0
  444. package/dist/ionic/{p-4d0190ad.system.entry.js → p-b4d17da0.system.entry.js} +1 -1
  445. package/dist/ionic/p-b5432d15.entry.js +4 -0
  446. package/dist/ionic/{p-c8402249.js → p-b6d324f0.js} +1 -1
  447. package/dist/ionic/p-b7b1d91a.js +4 -0
  448. package/dist/ionic/{p-8deac7df.system.entry.js → p-b8050298.system.entry.js} +1 -1
  449. package/dist/ionic/p-b9c793d4.entry.js +4 -0
  450. package/dist/ionic/p-bf184319.system.entry.js +4 -0
  451. package/dist/ionic/{p-4888cb66.system.entry.js → p-bfb763d0.system.entry.js} +1 -1
  452. package/dist/ionic/p-c16443a8.system.js +4 -0
  453. package/dist/ionic/{p-9df36075.system.entry.js → p-c1b7d311.system.entry.js} +1 -1
  454. package/dist/ionic/p-c2160d8c.entry.js +4 -0
  455. package/dist/ionic/{p-d8c9d5ac.system.entry.js → p-c26c5c20.system.entry.js} +1 -1
  456. package/dist/ionic/p-c5b77054.entry.js +4 -0
  457. package/dist/ionic/p-c5bfa3e9.entry.js +4 -0
  458. package/dist/ionic/p-c6879aa4.system.entry.js +4 -0
  459. package/dist/ionic/p-cad82569.entry.js +4 -0
  460. package/dist/ionic/p-d16fab3f.entry.js +4 -0
  461. package/dist/ionic/p-d2c3524b.system.entry.js +4 -0
  462. package/dist/ionic/p-d382f09c.system.js +4 -0
  463. package/dist/ionic/p-d984c1ab.system.entry.js +4 -0
  464. package/dist/ionic/p-da6247e5.entry.js +4 -0
  465. package/dist/ionic/p-dabe3bd4.js +4 -0
  466. package/dist/ionic/p-df069a0d.entry.js +4 -0
  467. package/dist/ionic/p-e6068998.system.entry.js +4 -0
  468. package/dist/ionic/p-e727e32d.system.entry.js +4 -0
  469. package/dist/ionic/p-e8245753.entry.js +4 -0
  470. package/dist/ionic/p-e887b6a9.system.js +4 -0
  471. package/dist/ionic/p-ed005d9c.js +4 -0
  472. package/dist/ionic/{p-f554845e.js → p-f08a92cc.js} +1 -1
  473. package/dist/ionic/p-f08dfb19.entry.js +4 -0
  474. package/dist/ionic/p-f0c9f8e3.system.entry.js +4 -0
  475. package/dist/ionic/p-f0ef39ab.entry.js +4 -0
  476. package/dist/ionic/{p-c8331397.system.entry.js → p-f22490a7.system.entry.js} +1 -1
  477. package/dist/ionic/{p-5eb6f582.system.js → p-f6e7d104.system.js} +1 -1
  478. package/dist/ionic/p-f725bf9e.system.js +4 -0
  479. package/dist/ionic/{p-2fa5a4b1.entry.js → p-f8c0c707.entry.js} +1 -1
  480. package/dist/ionic/p-f9a87db2.system.entry.js +4 -0
  481. package/dist/ionic/{p-44e168f3.system.js → p-fa3f4b96.system.js} +1 -1
  482. package/dist/ionic/p-fe063952.system.entry.js +4 -0
  483. package/dist/types/components/checkbox/checkbox.d.ts +2 -0
  484. package/dist/types/components/input/input.d.ts +8 -0
  485. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  486. package/dist/types/components/picker/picker.d.ts +8 -0
  487. package/dist/types/components/range/range.d.ts +9 -1
  488. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  489. package/dist/types/components/select/select.d.ts +9 -0
  490. package/dist/types/components/textarea/textarea.d.ts +8 -0
  491. package/dist/types/components/toggle/toggle.d.ts +2 -0
  492. package/dist/types/index.d.ts +1 -0
  493. package/dist/types/utils/helpers.d.ts +0 -1
  494. package/dist/types/utils/logging/index.d.ts +1 -1
  495. package/hydrate/index.js +324 -338
  496. package/hydrate/index.mjs +324 -338
  497. package/package.json +2 -2
  498. package/dist/cjs/index-48b2a28e.js +0 -46
  499. package/dist/esm/index-738d7504.js +0 -42
  500. package/dist/esm-es5/animation-eab5a4ca.js +0 -4
  501. package/dist/esm-es5/app-globals-7b6cbf1a.js +0 -4
  502. package/dist/esm-es5/config-49c88215.js +0 -4
  503. package/dist/esm-es5/data-174ad5e0.js +0 -4
  504. package/dist/esm-es5/hardware-back-button-864101a3.js +0 -4
  505. package/dist/esm-es5/helpers-e48b0397.js +0 -4
  506. package/dist/esm-es5/index-738d7504.js +0 -4
  507. package/dist/esm-es5/index-8222b29f.js +0 -4
  508. package/dist/esm-es5/index-a313df53.js +0 -4
  509. package/dist/esm-es5/input-shims-3070628a.js +0 -4
  510. package/dist/esm-es5/input.utils-926c04a8.js +0 -4
  511. package/dist/esm-es5/ionic-global-ca86cf32.js +0 -4
  512. package/dist/esm-es5/ios.transition-5fe4d6c8.js +0 -4
  513. package/dist/esm-es5/md.transition-3d0d3730.js +0 -4
  514. package/dist/esm-es5/overlays-7579a420.js +0 -4
  515. package/dist/esm-es5/status-tap-6367b913.js +0 -4
  516. package/dist/esm-es5/swipe-back-326faa1c.js +0 -4
  517. package/dist/ionic/p-023e8017.system.entry.js +0 -4
  518. package/dist/ionic/p-042d5353.system.js +0 -4
  519. package/dist/ionic/p-060e4551.js +0 -4
  520. package/dist/ionic/p-0749768d.entry.js +0 -4
  521. package/dist/ionic/p-094c82d7.entry.js +0 -4
  522. package/dist/ionic/p-0adb6909.system.entry.js +0 -4
  523. package/dist/ionic/p-0be8a0b5.entry.js +0 -4
  524. package/dist/ionic/p-0bedc891.system.entry.js +0 -4
  525. package/dist/ionic/p-0c9b8240.system.entry.js +0 -4
  526. package/dist/ionic/p-0ec5b7cf.system.js +0 -4
  527. package/dist/ionic/p-1164ff6b.system.entry.js +0 -4
  528. package/dist/ionic/p-13886789.entry.js +0 -4
  529. package/dist/ionic/p-143ff664.system.entry.js +0 -4
  530. package/dist/ionic/p-18f9b6d5.entry.js +0 -4
  531. package/dist/ionic/p-19c32a76.entry.js +0 -4
  532. package/dist/ionic/p-1bf5ec17.system.js +0 -4
  533. package/dist/ionic/p-1c1d781d.system.entry.js +0 -4
  534. package/dist/ionic/p-1d2844a5.system.entry.js +0 -4
  535. package/dist/ionic/p-1d98a7f1.entry.js +0 -4
  536. package/dist/ionic/p-1f837356.entry.js +0 -4
  537. package/dist/ionic/p-2027221d.js +0 -4
  538. package/dist/ionic/p-24ae7b33.system.js +0 -4
  539. package/dist/ionic/p-294271c7.system.js +0 -4
  540. package/dist/ionic/p-297d6806.system.js +0 -4
  541. package/dist/ionic/p-29a5b4e4.entry.js +0 -4
  542. package/dist/ionic/p-2ab4a324.system.entry.js +0 -4
  543. package/dist/ionic/p-2b59470f.system.entry.js +0 -4
  544. package/dist/ionic/p-2ee9a2c6.entry.js +0 -4
  545. package/dist/ionic/p-35f14792.entry.js +0 -4
  546. package/dist/ionic/p-37a438ad.system.entry.js +0 -4
  547. package/dist/ionic/p-3af7b907.entry.js +0 -4
  548. package/dist/ionic/p-3bd5fedc.system.js +0 -4
  549. package/dist/ionic/p-3be7cdeb.system.entry.js +0 -4
  550. package/dist/ionic/p-3e86b4fa.system.js +0 -4
  551. package/dist/ionic/p-3f4327f7.js +0 -4
  552. package/dist/ionic/p-41d5544e.js +0 -4
  553. package/dist/ionic/p-42f6e75c.entry.js +0 -4
  554. package/dist/ionic/p-4630688e.system.entry.js +0 -4
  555. package/dist/ionic/p-472c7e08.system.entry.js +0 -4
  556. package/dist/ionic/p-491de063.system.entry.js +0 -4
  557. package/dist/ionic/p-49cb79a1.system.entry.js +0 -4
  558. package/dist/ionic/p-4c44d04c.js +0 -4
  559. package/dist/ionic/p-4c94580e.js +0 -4
  560. package/dist/ionic/p-50f38461.entry.js +0 -4
  561. package/dist/ionic/p-51c363e7.system.js +0 -4
  562. package/dist/ionic/p-524ad57e.system.entry.js +0 -4
  563. package/dist/ionic/p-54e9620f.js +0 -4
  564. package/dist/ionic/p-58c482af.entry.js +0 -4
  565. package/dist/ionic/p-597ff9af.js +0 -4
  566. package/dist/ionic/p-5f4ff20a.entry.js +0 -4
  567. package/dist/ionic/p-5f8cd560.entry.js +0 -4
  568. package/dist/ionic/p-61e794fb.entry.js +0 -4
  569. package/dist/ionic/p-67163d4a.entry.js +0 -4
  570. package/dist/ionic/p-6797c66e.system.js +0 -4
  571. package/dist/ionic/p-6bb846d3.entry.js +0 -4
  572. package/dist/ionic/p-6e24cf82.entry.js +0 -4
  573. package/dist/ionic/p-72e6a9c6.entry.js +0 -4
  574. package/dist/ionic/p-747f9517.entry.js +0 -4
  575. package/dist/ionic/p-7cc33a9a.system.js +0 -4
  576. package/dist/ionic/p-7e3b5638.system.entry.js +0 -4
  577. package/dist/ionic/p-7f39653f.entry.js +0 -4
  578. package/dist/ionic/p-7ff4f502.entry.js +0 -4
  579. package/dist/ionic/p-81474833.system.entry.js +0 -4
  580. package/dist/ionic/p-838cc359.entry.js +0 -4
  581. package/dist/ionic/p-85f6070f.entry.js +0 -4
  582. package/dist/ionic/p-888d383b.system.entry.js +0 -4
  583. package/dist/ionic/p-8b1c1fd7.entry.js +0 -4
  584. package/dist/ionic/p-8fc426e2.entry.js +0 -4
  585. package/dist/ionic/p-9146695e.system.js +0 -4
  586. package/dist/ionic/p-959cf042.system.entry.js +0 -4
  587. package/dist/ionic/p-96450929.system.entry.js +0 -4
  588. package/dist/ionic/p-9a5420dd.js +0 -4
  589. package/dist/ionic/p-9af7f110.js +0 -4
  590. package/dist/ionic/p-9b069739.entry.js +0 -4
  591. package/dist/ionic/p-9e51f822.js +0 -4
  592. package/dist/ionic/p-a520973b.entry.js +0 -4
  593. package/dist/ionic/p-a587b2ae.system.js +0 -4
  594. package/dist/ionic/p-a63b345e.system.entry.js +0 -4
  595. package/dist/ionic/p-a6df5168.system.entry.js +0 -4
  596. package/dist/ionic/p-a9f2c0a7.entry.js +0 -4
  597. package/dist/ionic/p-ac58d726.system.entry.js +0 -4
  598. package/dist/ionic/p-ada878ce.entry.js +0 -4
  599. package/dist/ionic/p-b055d618.entry.js +0 -4
  600. package/dist/ionic/p-b0e53bc7.entry.js +0 -4
  601. package/dist/ionic/p-b2296998.system.entry.js +0 -4
  602. package/dist/ionic/p-b2ee0628.system.entry.js +0 -4
  603. package/dist/ionic/p-b6174297.entry.js +0 -4
  604. package/dist/ionic/p-b85d199c.entry.js +0 -4
  605. package/dist/ionic/p-b9ea58ef.js +0 -4
  606. package/dist/ionic/p-b9eb1465.system.entry.js +0 -4
  607. package/dist/ionic/p-b9f2e353.entry.js +0 -4
  608. package/dist/ionic/p-bbc6db8c.entry.js +0 -4
  609. package/dist/ionic/p-bf64af90.system.js +0 -4
  610. package/dist/ionic/p-c005cc37.entry.js +0 -4
  611. package/dist/ionic/p-c25c0ba4.entry.js +0 -4
  612. package/dist/ionic/p-c5b5f44a.entry.js +0 -4
  613. package/dist/ionic/p-c6a20407.system.entry.js +0 -4
  614. package/dist/ionic/p-c7e16491.js +0 -4
  615. package/dist/ionic/p-ceaea4ce.js +0 -4
  616. package/dist/ionic/p-d37fdc68.system.entry.js +0 -4
  617. package/dist/ionic/p-d7032956.system.js +0 -4
  618. package/dist/ionic/p-daf1e8ec.system.entry.js +0 -4
  619. package/dist/ionic/p-def7a8bd.system.entry.js +0 -4
  620. package/dist/ionic/p-e4683bfd.system.entry.js +0 -4
  621. package/dist/ionic/p-e5708e5d.system.entry.js +0 -4
  622. package/dist/ionic/p-e5c27d9f.system.entry.js +0 -4
  623. package/dist/ionic/p-ed768b77.entry.js +0 -4
  624. package/dist/ionic/p-eec4b772.entry.js +0 -4
  625. package/dist/ionic/p-eeee3990.system.entry.js +0 -4
  626. package/dist/ionic/p-efa0f3f5.entry.js +0 -4
  627. package/dist/ionic/p-f02e9382.system.entry.js +0 -4
  628. package/dist/ionic/p-f201b53a.system.js +0 -4
  629. package/dist/ionic/p-f233f1e0.system.js +0 -4
  630. package/dist/ionic/p-f7ce606e.js +0 -4
  631. package/dist/ionic/p-f94b2f2f.system.entry.js +0 -4
  632. package/dist/ionic/p-ff4a1ba0.system.entry.js +0 -4
@@ -7,6 +7,7 @@ import { focusFirstDescendant, focusLastDescendant } from "../../utils/focus-tra
7
7
  import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
8
8
  import { shouldUseCloseWatcher } from "../../utils/hardware-back-button";
9
9
  import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from "../../utils/helpers";
10
+ import { printIonError } from "../../utils/logging/index";
10
11
  import { menuController } from "../../utils/menu-controller/index";
11
12
  import { BACKDROP, GESTURE, getPresentedOverlay } from "../../utils/overlays";
12
13
  import { isPlatform } from "../../utils/platform";
@@ -108,11 +109,11 @@ export class Menu {
108
109
  }
109
110
  const content = this.contentId !== undefined ? document.getElementById(this.contentId) : null;
110
111
  if (content === null) {
111
- console.error('Menu: must have a "content" element to listen for drag events on.');
112
+ printIonError('[ion-menu] - Must have a "content" element to listen for drag events on.');
112
113
  return;
113
114
  }
114
115
  if (this.el.contains(content)) {
115
- console.error(`Menu: "contentId" should refer to the main view's ion-content, not the ion-content inside of the ion-menu.`);
116
+ printIonError(`[ion-menu] - The "contentId" should refer to the main view's ion-content, not the ion-content inside of the ion-menu.`);
116
117
  }
117
118
  this.contentEl = content;
118
119
  // add menu's content classes
@@ -614,14 +615,14 @@ export class Menu {
614
615
  * the ionBackButton listener in the menu controller
615
616
  * will handle closing the menu when Escape is pressed.
616
617
  */
617
- return (h(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
618
+ return (h(Host, { key: '0a2ba4ff5600b80b54d1b5b45124779c6aa0d2f2', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
618
619
  [mode]: true,
619
620
  [`menu-type-${type}`]: true,
620
621
  'menu-enabled': !disabled,
621
622
  [`menu-side-${side}`]: true,
622
623
  'menu-pane-visible': isPaneVisible,
623
624
  'split-pane-side': hostContext('ion-split-pane', el),
624
- } }, h("div", { key: '3c9bec2862b7fb9d88de66b1600be01f6735e3dd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '76283b4b2a65c78646f92c3b273eea021eda499c' })), h("ion-backdrop", { key: '121c395bc4873542a1b6ae2c9e23f2e881e75d93', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
625
+ } }, h("div", { key: '40a222bcde4b959abc9939c44e89ea0cf8967aba', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '6a7ec5583294bb314990ff4ce6f25045652c07cb' })), h("ion-backdrop", { key: '95f1e87237f3cc24845d91b744f935bad6bb460d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
625
626
  }
626
627
  static get is() { return "ion-menu"; }
627
628
  static get encapsulation() { return "shadow"; }
@@ -173,7 +173,7 @@ export class Modal {
173
173
  this.currentBreakpoint = this.initialBreakpoint;
174
174
  }
175
175
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
176
- printIonWarning('Your breakpoints array must include the initialBreakpoint value.');
176
+ printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
177
177
  }
178
178
  if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
179
179
  setOverlayId(this.el);
@@ -518,11 +518,11 @@ export class Modal {
518
518
  */
519
519
  async setCurrentBreakpoint(breakpoint) {
520
520
  if (!this.isSheetModal) {
521
- printIonWarning('setCurrentBreakpoint is only supported on sheet modals.');
521
+ printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
522
522
  return;
523
523
  }
524
524
  if (!this.breakpoints.includes(breakpoint)) {
525
- printIonWarning(`Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
525
+ printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
526
526
  return;
527
527
  }
528
528
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -573,18 +573,18 @@ export class Modal {
573
573
  const mode = getIonMode(this);
574
574
  const isCardModal = presentingElement !== undefined && mode === 'ios';
575
575
  const isHandleCycle = handleBehavior === 'cycle';
576
- return (h(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
576
+ return (h(Host, Object.assign({ key: '0991b2e4e32da511e59fb1463b47e4ac1b86d1ca', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
577
577
  zIndex: `${20000 + this.overlayIndex}`,
578
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
578
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'ca9453ffe1021fb252ad9460676cfabb5633f00f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '9f8da446a7b0f3b26aec856e13f6d6d131a7e37b', class: "modal-shadow" }), h("div", Object.assign({ key: '9d08bf600571849c97b58f66df40b496a358d1e1',
579
579
  /*
580
580
  role and aria-modal must be used on the
581
581
  same element. They must also be set inside the
582
582
  shadow DOM otherwise ion-button will not be highlighted
583
583
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
584
584
  */
585
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
585
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'f8bf0d1126e5376519101225d9965727121ee042', class: "modal-handle",
586
586
  // Prevents the handle from receiving keyboard focus when it does not cycle
587
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
587
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '6d52849df98f2c6c8fbc03996a931ea6a39a512b' }))));
588
588
  }
589
589
  static get is() { return "ion-modal"; }
590
590
  static get encapsulation() { return "shadow"; }
@@ -49,7 +49,7 @@ export class Nav {
49
49
  }
50
50
  }
51
51
  else if (isDev) {
52
- printIonWarning('<ion-nav> does not support a root attribute when using ion-router.', this.el);
52
+ printIonWarning('[ion-nav] - A root attribute is not supported when using ion-router.', this.el);
53
53
  }
54
54
  }
55
55
  componentWillLoad() {
@@ -608,7 +608,7 @@ export class Nav {
608
608
  const finalNumViews = this.views.length + ((_b = insertViews === null || insertViews === void 0 ? void 0 : insertViews.length) !== null && _b !== void 0 ? _b : 0) - (removeCount !== null && removeCount !== void 0 ? removeCount : 0);
609
609
  assert(finalNumViews >= 0, 'final balance can not be negative');
610
610
  if (finalNumViews === 0) {
611
- console.warn(`You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);
611
+ printIonWarning(`[ion-nav] - You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);
612
612
  throw new Error('navigation stack needs at least one root page');
613
613
  }
614
614
  // At this point the transition can not be rejected, any throw should be an error
@@ -830,7 +830,7 @@ export class Nav {
830
830
  }
831
831
  }
832
832
  render() {
833
- return h("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
833
+ return h("slot", { key: '188d0abd6c047d235380f07aac81223b757010e8' });
834
834
  }
835
835
  static get is() { return "ion-nav"; }
836
836
  static get encapsulation() { return "shadow"; }
@@ -313,13 +313,59 @@ export class Picker {
313
313
  * or trailing zeros when looking at the item text.
314
314
  */
315
315
  this.searchColumn = (colEl, value, zeroBehavior = 'start') => {
316
+ if (!value) {
317
+ return false;
318
+ }
316
319
  const behavior = zeroBehavior === 'start' ? /^0+/ : /0$/;
320
+ value = value.replace(behavior, '');
317
321
  const option = Array.from(colEl.querySelectorAll('ion-picker-column-option')).find((el) => {
318
322
  return el.disabled !== true && el.textContent.replace(behavior, '') === value;
319
323
  });
320
324
  if (option) {
321
325
  colEl.setValue(option.value);
322
326
  }
327
+ return !!option;
328
+ };
329
+ /**
330
+ * Attempts to intelligently search the first and second
331
+ * column as if they're number columns for the provided numbers
332
+ * where the first two numbers are the first column
333
+ * and the last 2 are the last column. Tries to allow for the first
334
+ * number to be ignored for situations where typos occurred.
335
+ */
336
+ this.multiColumnSearch = (firstColumn, secondColumn, input) => {
337
+ if (input.length === 0) {
338
+ return;
339
+ }
340
+ const inputArray = input.split('');
341
+ const hourValue = inputArray.slice(0, 2).join('');
342
+ // Try to find a match for the first two digits in the first column
343
+ const foundHour = this.searchColumn(firstColumn, hourValue);
344
+ // If we have more than 2 digits and found a match for hours,
345
+ // use the remaining digits for the second column (minutes)
346
+ if (inputArray.length > 2 && foundHour) {
347
+ const minuteValue = inputArray.slice(2, 4).join('');
348
+ this.searchColumn(secondColumn, minuteValue);
349
+ }
350
+ // If we couldn't find a match for the two-digit hour, try single digit approaches
351
+ else if (!foundHour && inputArray.length >= 1) {
352
+ // First try the first digit as a single-digit hour
353
+ let singleDigitHour = inputArray[0];
354
+ let singleDigitFound = this.searchColumn(firstColumn, singleDigitHour);
355
+ // If that didn't work, try the second digit as a single-digit hour
356
+ // (handles case where user made a typo in the first digit, or they typed over themselves)
357
+ if (!singleDigitFound) {
358
+ inputArray.shift();
359
+ singleDigitHour = inputArray[0];
360
+ singleDigitFound = this.searchColumn(firstColumn, singleDigitHour);
361
+ }
362
+ // If we found a single-digit hour and have remaining digits,
363
+ // use up to 2 of the remaining digits for the second column
364
+ if (singleDigitFound && inputArray.length > 1) {
365
+ const remainingDigits = inputArray.slice(1, 3).join('');
366
+ this.searchColumn(secondColumn, remainingDigits);
367
+ }
368
+ }
323
369
  };
324
370
  this.selectMultiColumn = () => {
325
371
  const { inputEl, el } = this;
@@ -330,82 +376,13 @@ export class Picker {
330
376
  const firstColumn = numericPickers[0];
331
377
  const lastColumn = numericPickers[1];
332
378
  let value = inputEl.value;
333
- let minuteValue;
334
- switch (value.length) {
335
- case 1:
336
- this.searchColumn(firstColumn, value);
337
- break;
338
- case 2:
339
- /**
340
- * If the first character is `0` or `1` it is
341
- * possible that users are trying to type `09`
342
- * or `11` into the hour field, so we should look
343
- * at that first.
344
- */
345
- const firstCharacter = inputEl.value.substring(0, 1);
346
- value = firstCharacter === '0' || firstCharacter === '1' ? inputEl.value : firstCharacter;
347
- this.searchColumn(firstColumn, value);
348
- /**
349
- * If only checked the first value,
350
- * we can check the second value
351
- * for a match in the minutes column
352
- */
353
- if (value.length === 1) {
354
- minuteValue = inputEl.value.substring(inputEl.value.length - 1);
355
- this.searchColumn(lastColumn, minuteValue, 'end');
356
- }
357
- break;
358
- case 3:
359
- /**
360
- * If the first character is `0` or `1` it is
361
- * possible that users are trying to type `09`
362
- * or `11` into the hour field, so we should look
363
- * at that first.
364
- */
365
- const firstCharacterAgain = inputEl.value.substring(0, 1);
366
- value =
367
- firstCharacterAgain === '0' || firstCharacterAgain === '1'
368
- ? inputEl.value.substring(0, 2)
369
- : firstCharacterAgain;
370
- this.searchColumn(firstColumn, value);
371
- /**
372
- * If only checked the first value,
373
- * we can check the second value
374
- * for a match in the minutes column
375
- */
376
- minuteValue = value.length === 1 ? inputEl.value.substring(1) : inputEl.value.substring(2);
377
- this.searchColumn(lastColumn, minuteValue, 'end');
378
- break;
379
- case 4:
380
- /**
381
- * If the first character is `0` or `1` it is
382
- * possible that users are trying to type `09`
383
- * or `11` into the hour field, so we should look
384
- * at that first.
385
- */
386
- const firstCharacterAgainAgain = inputEl.value.substring(0, 1);
387
- value =
388
- firstCharacterAgainAgain === '0' || firstCharacterAgainAgain === '1'
389
- ? inputEl.value.substring(0, 2)
390
- : firstCharacterAgainAgain;
391
- this.searchColumn(firstColumn, value);
392
- /**
393
- * If only checked the first value,
394
- * we can check the second value
395
- * for a match in the minutes column
396
- */
397
- const minuteValueAgain = value.length === 1
398
- ? inputEl.value.substring(1, inputEl.value.length)
399
- : inputEl.value.substring(2, inputEl.value.length);
400
- this.searchColumn(lastColumn, minuteValueAgain, 'end');
401
- break;
402
- default:
403
- const startIndex = inputEl.value.length - 4;
404
- const newString = inputEl.value.substring(startIndex);
405
- inputEl.value = newString;
406
- this.selectMultiColumn();
407
- break;
379
+ if (value.length > 4) {
380
+ const startIndex = inputEl.value.length - 4;
381
+ const newString = inputEl.value.substring(startIndex);
382
+ inputEl.value = newString;
383
+ value = newString;
408
384
  }
385
+ this.multiColumnSearch(firstColumn, lastColumn, value);
409
386
  };
410
387
  /**
411
388
  * Searches the value of the active column
@@ -474,7 +451,7 @@ export class Picker {
474
451
  this.emitInputModeChange();
475
452
  }
476
453
  render() {
477
- return (h(Host, { key: 'f92214a09dc85b65873676f40fde2b802960e704', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: '6da37f75aca4ea1c9cb3bc733ebda2116279f313', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
454
+ return (h(Host, { key: '28f81e4ed44a633178561757c5199c2c98f94b74', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: 'abb3d1ad25ef63856af7804111175a4d50008bc0', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
478
455
  var _a;
479
456
  /**
480
457
  * The "Enter" key represents
@@ -489,7 +466,7 @@ export class Picker {
489
466
  if (ev.key === 'Enter') {
490
467
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
491
468
  }
492
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '298e99d83dd3f5bf2798150bab0bb4024af472fa', class: "picker-before" }), h("div", { key: 'ea578f04eb562a4dc6d6cc92de133dcb9fb7f42a', class: "picker-after" }), h("div", { key: '84567824956dfe967992a629904836ba8b75b3ec', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: 'df81f8fb90e1f649b608328034528f5c31c70c3b' })));
469
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '334a5abdc02e6b127c57177f626d7e4ff5526183', class: "picker-before" }), h("div", { key: 'ffd6271931129e88fc7c820e919d684899e420c5', class: "picker-after" }), h("div", { key: '78d1d95fd09e04f154ea59f24a1cece72c47ed7b', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: '0bd5b9f875d3c71f6cbbde2054baeb1b0a2e8cd5' })));
493
470
  }
494
471
  static get is() { return "ion-picker"; }
495
472
  static get encapsulation() { return "shadow"; }
@@ -75,7 +75,7 @@ export class Picker {
75
75
  }
76
76
  }
77
77
  componentDidLoad() {
78
- printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
78
+ printIonWarning('[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
79
79
  /**
80
80
  * If picker was rendered with isOpen="true"
81
81
  * then we should open picker immediately.
@@ -185,11 +185,11 @@ export class Picker {
185
185
  render() {
186
186
  const { htmlAttributes } = this;
187
187
  const mode = getIonMode(this);
188
- return (h(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
188
+ return (h(Host, Object.assign({ key: 'b6b6ca6f9aa74681e6d67f64b366f5965fec2a6d', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
189
189
  zIndex: `${20000 + this.overlayIndex}`,
190
190
  }, class: Object.assign({ [mode]: true,
191
191
  // Used internally for styling
192
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: 'bdabe9c82c41f96da5dafb1a0aa0854fa7e7ec93', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1380e0c8989153b425674753764f12f253f4a738', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'edec769bbc0993d003852d0bf1123e6e2332ebbe', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'b82c67ff47aa9412a6ff8f3b2e6230b855e92c51', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '76485b643387f36b6b3d5f85e4d072fa18e68552', class: "picker-columns" }, h("div", { key: '99268217263feb5285db1b1acd48fd0e4d5f0e7b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '2dd7e488bc4e9695094f0758567e626e0bb5979d', class: "picker-below-highlight" }))), h("div", { key: '8b2f3ae798a4ddcdd4e2716ebba1de797e446ac4', tabindex: "0", "aria-hidden": "true" })));
192
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '20202ca1d7b6cd5f517a802879b39efb79033cb1', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '72fe76a1e1748593cdf38deab5100087bfa75983', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '921954cfc716f3774aab66677563754ff479a44a', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '224413950bfcf2a948e58c2554c2a37a4e6d0319', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '7e688c2d0705940ec8a9ace493b679e6a9b68860', class: "picker-columns" }, h("div", { key: '0ec2db79a9ca9e2a0b324b6c4b90176a0eb33df3', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: 'b8344f4f342fddc3f773435515567ef8f3accbb0', class: "picker-below-highlight" }))), h("div", { key: '374c7a6b31b0a00ab3913faeea0ec3d6c02274b9', tabindex: "0", "aria-hidden": "true" })));
193
193
  }
194
194
  static get is() { return "ion-picker-legacy"; }
195
195
  static get encapsulation() { return "scoped"; }
@@ -59,7 +59,7 @@ export class Popover {
59
59
  }
60
60
  const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
61
61
  if (!triggerEl) {
62
- printIonWarning(`A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
62
+ printIonWarning(`[ion-popover] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, this.el);
63
63
  return;
64
64
  }
65
65
  this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
@@ -338,9 +338,9 @@ export class Popover {
338
338
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
339
339
  const desktop = isPlatform('desktop');
340
340
  const enableArrow = arrow && !parentPopover;
341
- return (h(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
341
+ return (h(Host, Object.assign({ key: 'ff24e8d9677711248a36994cce568e74ba151499', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
342
342
  zIndex: `${20000 + this.overlayIndex}`,
343
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '580c14ab48472534f59eedc5ba7fa486df25ed4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '9bcf47893e8d3053e2baa40511785d84feb4038c', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '4d47f2bdc01a546a88190c07f8f4700f21de6715', class: "popover-arrow", part: "arrow" }), h("div", { key: '70018c088654c1996e305b7b6b114419e97824ef', class: "popover-content", part: "content" }, h("slot", { key: '3de8e1959b8facba2fbe694947704832200d8276' })))));
343
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'aca68b4002a08b0e563a976a867141162c20f8b4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '62d21d1eab5c6d675d49932559ffb161747e5fec', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '1b46cc77d5302637fc979353483bb5fd780fd1d3', class: "popover-arrow", part: "arrow" }), h("div", { key: 'a5657bff26e46d1959b71eb0992e7dc8fcae86f1', class: "popover-content", part: "content" }, h("slot", { key: 'e1a98007226a46b51109e7004c4d338ca1bc0f9e' })))));
344
344
  }
345
345
  static get is() { return "ion-popover"; }
346
346
  static get encapsulation() { return "shadow"; }
@@ -34,6 +34,19 @@ export class Range {
34
34
  this.inheritedAttributes = {};
35
35
  this.contentEl = null;
36
36
  this.initialContentScrollY = true;
37
+ /**
38
+ * Compares two RangeValue inputs to determine if they are different.
39
+ *
40
+ * @param newVal - The new value.
41
+ * @param oldVal - The old value.
42
+ * @returns `true` if the values are different, `false` otherwise.
43
+ */
44
+ this.compareValues = (newVal, oldVal) => {
45
+ if (typeof newVal === 'object' && typeof oldVal === 'object') {
46
+ return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;
47
+ }
48
+ return newVal !== oldVal;
49
+ };
37
50
  this.clampBounds = (value) => {
38
51
  return clamp(this.min, value, this.max);
39
52
  };
@@ -153,11 +166,11 @@ export class Range {
153
166
  const { activeBarStart } = this;
154
167
  if (activeBarStart !== undefined) {
155
168
  if (activeBarStart > this.max) {
156
- printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
169
+ printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
157
170
  this.activeBarStart = this.max;
158
171
  }
159
172
  else if (activeBarStart < this.min) {
160
- printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
173
+ printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
161
174
  this.activeBarStart = this.min;
162
175
  }
163
176
  }
@@ -167,7 +180,11 @@ export class Range {
167
180
  this.gesture.enable(!this.disabled);
168
181
  }
169
182
  }
170
- valueChanged() {
183
+ valueChanged(newValue, oldValue) {
184
+ const valuesChanged = this.compareValues(newValue, oldValue);
185
+ if (valuesChanged) {
186
+ this.ionInput.emit({ value: this.value });
187
+ }
171
188
  if (!this.noUpdate) {
172
189
  this.updateRatio();
173
190
  }
@@ -412,7 +429,6 @@ export class Range {
412
429
  lower: Math.min(valA, valB),
413
430
  upper: Math.max(valA, valB),
414
431
  };
415
- this.ionInput.emit({ value: this.value });
416
432
  this.noUpdate = false;
417
433
  }
418
434
  setFocus(knob) {
@@ -580,7 +596,7 @@ export class Range {
580
596
  const needsEndAdjustment = inItem && !hasEndContent;
581
597
  const mode = getIonMode(this);
582
598
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
583
- return (h(Host, { key: 'ddecc98800b9137294c8cadfbde7d07d5b3825d7', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
599
+ return (h(Host, { key: '3e065039ee048f1f70d97dba5dae98fa1315d867', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
584
600
  [mode]: true,
585
601
  'in-item': inItem,
586
602
  'range-disabled': disabled,
@@ -589,10 +605,10 @@ export class Range {
589
605
  [`range-label-placement-${labelPlacement}`]: true,
590
606
  'range-item-start-adjustment': needsStartAdjustment,
591
607
  'range-item-end-adjustment': needsEndAdjustment,
592
- }) }, h("label", { key: '5afdbea21b1b82efde1126ceb0a263f85731aecf', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e47e0bbefcb931dff5b846f47b4458153b73df94', class: {
608
+ }) }, h("label", { key: '27ff22842c9ea79a1b9495302b926f70c9080a95', class: "range-wrapper", id: "range-label" }, h("div", { key: 'da1f9784be02dfe87d2fef34931d8b7f2148189e', class: {
593
609
  'label-text-wrapper': true,
594
610
  'label-text-wrapper-hidden': !hasLabel,
595
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '842f35cd03bb6108d1ecf0c0a07adfbdc900401c', class: "native-wrapper" }, h("slot", { key: '4a5141daaf5de5b3251bef4232ce5a27fc0395df', name: "start" }), this.renderRangeSlider(), h("slot", { key: '53ffe0a40b093c5fbcbc50d47eea6bb3f39dfdbb', name: "end" })))));
611
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '4389bf30b08214f5b5917fc30976b38f7bcdd29b', class: "native-wrapper" }, h("slot", { key: 'ad1b2745f8b061ee189617bb5c567e4f1d02250c', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'c6dec9e843e232af2a5f16a0f8ee56439c545d7a', name: "end" })))));
596
612
  }
597
613
  static get is() { return "ion-range"; }
598
614
  static get encapsulation() { return "shadow"; }
@@ -5,6 +5,7 @@ import { Host, h, readTask, writeTask } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { getScrollElement, ION_CONTENT_CLASS_SELECTOR, ION_CONTENT_ELEMENT_SELECTOR, printIonContentErrorMsg, } from "../../utils/content/index";
7
7
  import { clamp, componentOnReady, getElementRoot, raf, transitionEndAsync } from "../../utils/helpers";
8
+ import { printIonError } from "../../utils/logging/index";
8
9
  import { ImpactStyle, hapticImpact } from "../../utils/native/haptic";
9
10
  import { getIonMode } from "../../global/ionic-global";
10
11
  import { createPullingAnimation, createSnapBackAnimation, getRefresherAnimationType, handleScrollWhilePulling, handleScrollWhileRefreshing, setSpinnerOpacity, shouldUseNativeRefresher, translateElement, } from "./refresher.utils";
@@ -289,7 +290,7 @@ export class Refresher {
289
290
  }
290
291
  async connectedCallback() {
291
292
  if (this.el.getAttribute('slot') !== 'fixed') {
292
- console.error('Make sure you use: <ion-refresher slot="fixed">');
293
+ printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
293
294
  return;
294
295
  }
295
296
  const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
@@ -621,7 +622,7 @@ export class Refresher {
621
622
  }
622
623
  render() {
623
624
  const mode = getIonMode(this);
624
- return (h(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
625
+ return (h(Host, { key: 'c717c16f2ca3e42351848cc8ad37918dec28961d', slot: "fixed", class: {
625
626
  [mode]: true,
626
627
  // Used internally for styling
627
628
  [`refresher-${mode}`]: true,
@@ -1,4 +1,5 @@
1
1
  import { debounce } from "../../utils/helpers";
2
+ import { printIonError, printIonWarning } from "../../utils/logging/index";
2
3
  import { ROUTER_INTENT_BACK, ROUTER_INTENT_FORWARD, ROUTER_INTENT_NONE } from "./utils/constants";
3
4
  import { printRedirects, printRoutes } from "./utils/debug";
4
5
  import { readNavState, waitUntilNavNode, writeNavState } from "./utils/dom";
@@ -106,19 +107,19 @@ export class Router {
106
107
  /** @internal */
107
108
  async navChanged(direction) {
108
109
  if (this.busy) {
109
- console.warn('[ion-router] router is busy, navChanged was cancelled');
110
+ printIonWarning('[ion-router] - Router is busy, navChanged was cancelled.');
110
111
  return false;
111
112
  }
112
113
  const { ids, outlet } = await readNavState(window.document.body);
113
114
  const routes = readRoutes(this.el);
114
115
  const chain = findChainForIDs(ids, routes);
115
116
  if (!chain) {
116
- console.warn('[ion-router] no matching URL for ', ids.map((i) => i.id));
117
+ printIonWarning('[ion-router] - No matching URL for', ids.map((i) => i.id));
117
118
  return false;
118
119
  }
119
120
  const segments = chainToSegments(chain);
120
121
  if (!segments) {
121
- console.warn('[ion-router] router could not match path because some required param is missing');
122
+ printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
122
123
  return false;
123
124
  }
124
125
  this.setSegments(segments, direction);
@@ -156,7 +157,7 @@ export class Router {
156
157
  }
157
158
  async writeNavStateRoot(segments, direction, animation) {
158
159
  if (!segments) {
159
- console.error('[ion-router] URL is not part of the routing set');
160
+ printIonError('[ion-router] - URL is not part of the routing set.');
160
161
  return false;
161
162
  }
162
163
  // lookup redirect rule
@@ -173,7 +174,7 @@ export class Router {
173
174
  const routes = readRoutes(this.el);
174
175
  const chain = findChainForSegments(segments, routes);
175
176
  if (!chain) {
176
- console.error('[ion-router] the path does not match any route');
177
+ printIonError('[ion-router] - The path does not match any route.');
177
178
  return false;
178
179
  }
179
180
  // write DOM give
@@ -186,7 +187,7 @@ export class Router {
186
187
  changed = await this.writeNavState(node, chain, direction, segments, redirectFrom, index, animation);
187
188
  }
188
189
  catch (e) {
189
- console.error(e);
190
+ printIonError('[ion-router] - Exception in safeWriteNavState:', e);
190
191
  }
191
192
  unlock();
192
193
  return changed;
@@ -228,7 +229,7 @@ export class Router {
228
229
  }
229
230
  async writeNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {
230
231
  if (this.busy) {
231
- console.warn('[ion-router] router is busy, transition was cancelled');
232
+ printIonWarning('[ion-router] - Router is busy, transition was cancelled.');
232
233
  return false;
233
234
  }
234
235
  this.busy = true;
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { componentOnReady } from "../../../utils/helpers";
5
+ import { printIonError } from "../../../utils/logging/index";
5
6
  import { ROUTER_INTENT_NONE } from "./constants";
6
7
  /**
7
8
  * Activates the passed route chain.
@@ -38,7 +39,7 @@ export const writeNavState = async (root, chain, direction, index, changed = fal
38
39
  return changed;
39
40
  }
40
41
  catch (e) {
41
- console.error(e);
42
+ printIonError('[ion-router] - Exception in writeNavState:', e);
42
43
  return false;
43
44
  }
44
45
  };
@@ -6,6 +6,7 @@ import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { attachComponent, detachComponent } from "../../utils/framework-delegate";
7
7
  import { shallowEqualStringMap, hasLazyBuild } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
+ import { printIonError } from "../../utils/logging/index";
9
10
  import { transition } from "../../utils/transition/index";
10
11
  import { config } from "../../global/config";
11
12
  import { getIonMode } from "../../global/ionic-global";
@@ -82,7 +83,7 @@ export class RouterOutlet {
82
83
  changed = await this.transition(enteringEl, leavingEl, opts);
83
84
  }
84
85
  catch (e) {
85
- console.error(e);
86
+ printIonError('[ion-router-outlet] - Exception in commit:', e);
86
87
  }
87
88
  unlock();
88
89
  return changed;
@@ -178,7 +179,7 @@ export class RouterOutlet {
178
179
  return true;
179
180
  }
180
181
  render() {
181
- return h("slot", { key: '7e0a94834af9cb73ee47759fa5b2588dab3d1345' });
182
+ return h("slot", { key: 'df4fa3e07f10157d53129661d48282e8feec13a1' });
182
183
  }
183
184
  static get is() { return "ion-router-outlet"; }
184
185
  static get encapsulation() { return "shadow"; }