@ionic/core 7.5.8-dev.11703088210.14a72b83 → 7.5.8-dev.11705350665.1a40ee3a

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 (505) hide show
  1. package/components/backdrop.js +0 -12
  2. package/components/button.js +2 -2
  3. package/components/data.js +1 -1
  4. package/components/gesture-controller.js +1 -1
  5. package/components/index2.js +91 -0
  6. package/components/ion-content.js +3 -4
  7. package/components/ion-datetime.js +40 -64
  8. package/components/ion-input.js +2 -0
  9. package/components/ion-picker-column-option.d.ts +11 -0
  10. package/components/ion-picker-column-option.js +9 -0
  11. package/components/ion-picker-column.js +2 -2
  12. package/components/ion-picker-legacy-column.d.ts +11 -0
  13. package/components/ion-picker-legacy-column.js +9 -0
  14. package/components/{ion-picker-internal.d.ts → ion-picker-legacy.d.ts} +4 -4
  15. package/components/ion-picker-legacy.js +309 -0
  16. package/components/ion-picker.js +1 -309
  17. package/components/ion-refresher-content.js +3 -10
  18. package/components/ion-refresher.js +183 -4
  19. package/components/ion-searchbar.js +2 -0
  20. package/components/ion-textarea.js +2 -0
  21. package/components/overlays.js +11 -4
  22. package/components/picker-column-option.js +122 -0
  23. package/components/picker-column.js +351 -322
  24. package/components/picker-column2.js +379 -0
  25. package/components/{picker-internal.js → picker.js} +29 -22
  26. package/css/core.css +10 -0
  27. package/css/core.css.map +1 -1
  28. package/css/ionic.bundle.css +1 -1
  29. package/css/ionic.bundle.css.map +1 -1
  30. package/dist/cjs/{app-globals-28656db1.js → app-globals-0af482c7.js} +1 -1
  31. package/dist/cjs/{button-active-75b38d77.js → button-active-9d7e0640.js} +2 -2
  32. package/dist/cjs/{data-36b9094e.js → data-e7526b58.js} +1 -1
  33. package/dist/cjs/{gesture-controller-c40c045a.js → gesture-controller-9436f482.js} +1 -0
  34. package/dist/cjs/{index-097270a3.js → index-5cbb20f9.js} +1 -1
  35. package/dist/cjs/{index-b0102f48.js → index-bbb4336c.js} +39 -1
  36. package/dist/cjs/{index-cb3e0ab7.js → index-ec51e99c.js} +94 -3
  37. package/dist/cjs/{index-d1b59ffa.js → index-ee07ed59.js} +1 -1
  38. package/dist/cjs/index.cjs.js +9 -9
  39. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  41. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  42. package/dist/cjs/ion-app_8.cjs.entry.js +8 -9
  43. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -14
  46. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  48. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-datetime_3.cjs.entry.js +38 -58
  54. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-input.cjs.entry.js +4 -2
  58. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-loading.cjs.entry.js +4 -3
  61. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  62. package/dist/cjs/ion-modal.cjs.entry.js +6 -6
  63. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -4
  64. package/dist/cjs/ion-picker-column-option.cjs.entry.js +104 -0
  65. package/dist/cjs/{ion-picker-column-internal.cjs.entry.js → ion-picker-column.cjs.entry.js} +106 -89
  66. package/dist/cjs/{ion-picker-internal.cjs.entry.js → ion-picker.cjs.entry.js} +27 -20
  67. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  68. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-refresher_2.cjs.entry.js +17 -32
  72. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  75. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -2
  76. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  77. package/dist/cjs/ion-select_3.cjs.entry.js +4 -3
  78. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  81. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  82. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-textarea.cjs.entry.js +4 -2
  84. package/dist/cjs/ion-toast.cjs.entry.js +4 -3
  85. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  86. package/dist/cjs/{ionic-global-62510d64.js → ionic-global-f4a2093b.js} +1 -1
  87. package/dist/cjs/ionic.cjs.js +5 -5
  88. package/dist/cjs/{ios.transition-d9c0e4fb.js → ios.transition-039d6aeb.js} +4 -2
  89. package/dist/cjs/loader.cjs.js +4 -4
  90. package/dist/cjs/{md.transition-4fac8a87.js → md.transition-ce763350.js} +4 -2
  91. package/dist/cjs/{overlays-b1471172.js → overlays-e8e05b0e.js} +12 -5
  92. package/dist/cjs/{status-tap-0aa8e1f2.js → status-tap-415acac6.js} +1 -1
  93. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-b8f2330b.js} +2 -2
  94. package/dist/collection/collection-manifest.json +8 -7
  95. package/dist/collection/components/backdrop/backdrop.js +0 -12
  96. package/dist/collection/components/button/button.ios.css +1 -1
  97. package/dist/collection/components/button/button.md.css +1 -1
  98. package/dist/collection/components/button/test/wrap/button.e2e.js +12 -24
  99. package/dist/collection/components/content/content.css +0 -4
  100. package/dist/collection/components/content/content.js +2 -3
  101. package/dist/collection/components/datetime/datetime.ios.css +91 -37
  102. package/dist/collection/components/datetime/datetime.js +24 -36
  103. package/dist/collection/components/datetime/datetime.md.css +96 -37
  104. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  105. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  106. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  107. package/dist/collection/components/datetime/test/datetime.e2e.js +2 -2
  108. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +4 -4
  109. package/dist/collection/components/datetime/test/locale/datetime.e2e.js +2 -2
  110. package/dist/collection/components/datetime/test/minmax/datetime.e2e.js +6 -6
  111. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  112. package/dist/collection/components/datetime/test/prefer-wheel/datetime.e2e.js +43 -41
  113. package/dist/collection/components/datetime/test/presentation/datetime.e2e.js +1 -1
  114. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +4 -4
  115. package/dist/collection/components/datetime/test/values/datetime.e2e.js +15 -12
  116. package/dist/collection/components/datetime/utils/data.js +1 -1
  117. package/dist/collection/components/input/input.js +4 -2
  118. package/dist/collection/components/picker/picker.ios.css +112 -211
  119. package/dist/collection/components/picker/picker.js +472 -744
  120. package/dist/collection/components/picker/picker.md.css +108 -198
  121. package/dist/collection/components/{picker-internal/test/a11y/picker-internal.e2e.js → picker/test/a11y/picker.e2e.js} +2 -2
  122. package/dist/collection/components/picker/test/basic/picker.e2e.js +99 -13
  123. package/dist/collection/components/picker/test/custom/picker.e2e.js +85 -0
  124. package/dist/collection/components/{picker-internal/test/keyboard-entry/picker-internal.e2e.js → picker/test/keyboard-entry/picker.e2e.js} +63 -32
  125. package/dist/collection/components/{picker-column-internal/picker-column-internal.md.css → picker-column/picker-column.css} +96 -83
  126. package/dist/collection/components/picker-column/picker-column.js +497 -335
  127. package/dist/collection/components/{picker-column-internal/test/basic/picker-column-internal.e2e.js → picker-column/test/basic/picker-column.e2e.js} +8 -8
  128. package/dist/collection/components/picker-column/test/disabled/picker-column.e2e.js +91 -0
  129. package/dist/collection/components/picker-column/test/slots/picker-column.e2e.js +39 -0
  130. package/dist/collection/components/picker-column-option/picker-column-option.ios.css +87 -0
  131. package/dist/collection/components/picker-column-option/picker-column-option.js +173 -0
  132. package/dist/collection/components/{picker-column-internal/picker-column-internal.ios.css → picker-column-option/picker-column-option.md.css} +6 -53
  133. package/dist/collection/components/picker-column-option/test/a11y/picker-column-option.e2e.js +18 -0
  134. package/dist/collection/components/picker-column-option/test/basic/picker-column-option.e2e.js +37 -0
  135. package/dist/collection/components/picker-column-option/test/picker-column-option.spec.js +29 -0
  136. package/dist/collection/components/{picker-internal/picker-internal.md.css → picker-legacy/picker.ios.css} +207 -98
  137. package/dist/collection/components/picker-legacy/picker.js +817 -0
  138. package/dist/collection/components/{picker-internal/picker-internal.ios.css → picker-legacy/picker.md.css} +192 -100
  139. package/dist/collection/components/picker-legacy/test/basic/picker.e2e.js +25 -0
  140. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  141. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  142. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  143. package/dist/collection/components/picker-legacy-column/picker-column.js +419 -0
  144. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-aria.spec.js +3 -3
  145. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column-dynamic.spec.js +2 -2
  146. package/dist/collection/components/{picker-column → picker-legacy-column}/test/picker-column.spec.js +2 -2
  147. package/dist/collection/components/{picker-column → picker-legacy-column}/test/standalone/picker-column.e2e.js +3 -3
  148. package/dist/collection/components/refresher/refresher.utils.js +11 -19
  149. package/dist/collection/components/refresher-content/refresher-content.js +3 -9
  150. package/dist/collection/components/searchbar/searchbar.js +3 -1
  151. package/dist/collection/components/textarea/textarea.js +4 -2
  152. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  153. package/dist/collection/utils/overlays.js +11 -4
  154. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  155. package/dist/collection/utils/transition/index.js +91 -0
  156. package/dist/docs.json +484 -47
  157. package/dist/esm/{app-globals-c23144fc.js → app-globals-722340c4.js} +1 -1
  158. package/dist/esm/{button-active-7013b5a1.js → button-active-ed9d848c.js} +2 -2
  159. package/dist/esm/{data-f5c75b4e.js → data-4b9508c9.js} +1 -1
  160. package/dist/esm/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  161. package/dist/esm/{index-39329c6f.js → index-08d686eb.js} +39 -1
  162. package/dist/esm/{index-2cf77112.js → index-39782642.js} +2 -2
  163. package/dist/esm/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  164. package/dist/esm/{index-bebaae5d.js → index-933484ae.js} +94 -3
  165. package/dist/esm/index.js +9 -9
  166. package/dist/esm/ion-accordion_2.entry.js +2 -2
  167. package/dist/esm/ion-action-sheet.entry.js +6 -6
  168. package/dist/esm/ion-alert.entry.js +6 -6
  169. package/dist/esm/ion-app_8.entry.js +8 -9
  170. package/dist/esm/ion-avatar_3.entry.js +2 -2
  171. package/dist/esm/ion-back-button.entry.js +2 -2
  172. package/dist/esm/ion-backdrop.entry.js +2 -14
  173. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  174. package/dist/esm/ion-button_2.entry.js +4 -4
  175. package/dist/esm/ion-card_5.entry.js +2 -2
  176. package/dist/esm/ion-checkbox.entry.js +2 -2
  177. package/dist/esm/ion-chip.entry.js +2 -2
  178. package/dist/esm/ion-col_3.entry.js +2 -2
  179. package/dist/esm/ion-datetime-button.entry.js +3 -3
  180. package/dist/esm/ion-datetime_3.entry.js +37 -57
  181. package/dist/esm/ion-fab_3.entry.js +2 -2
  182. package/dist/esm/ion-img.entry.js +2 -2
  183. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  184. package/dist/esm/ion-input.entry.js +4 -2
  185. package/dist/esm/ion-item-option_3.entry.js +3 -3
  186. package/dist/esm/ion-item_8.entry.js +2 -2
  187. package/dist/esm/ion-loading.entry.js +4 -3
  188. package/dist/esm/ion-menu_3.entry.js +6 -6
  189. package/dist/esm/ion-modal.entry.js +6 -6
  190. package/dist/esm/ion-nav_2.entry.js +5 -4
  191. package/dist/esm/ion-picker-column-option.entry.js +100 -0
  192. package/dist/esm/{ion-picker-column-internal.entry.js → ion-picker-column.entry.js} +106 -89
  193. package/dist/esm/{ion-picker-internal.entry.js → ion-picker.entry.js} +27 -20
  194. package/dist/esm/ion-popover.entry.js +5 -4
  195. package/dist/esm/ion-progress-bar.entry.js +2 -2
  196. package/dist/esm/ion-radio_2.entry.js +2 -2
  197. package/dist/esm/ion-range.entry.js +3 -3
  198. package/dist/esm/ion-refresher_2.entry.js +17 -32
  199. package/dist/esm/ion-reorder_2.entry.js +3 -3
  200. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  201. package/dist/esm/ion-route_4.entry.js +2 -2
  202. package/dist/esm/ion-searchbar.entry.js +4 -2
  203. package/dist/esm/ion-segment_2.entry.js +3 -3
  204. package/dist/esm/ion-select_3.entry.js +4 -3
  205. package/dist/esm/ion-spinner.entry.js +2 -2
  206. package/dist/esm/ion-split-pane.entry.js +2 -2
  207. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  208. package/dist/esm/ion-tab_2.entry.js +1 -1
  209. package/dist/esm/ion-text.entry.js +2 -2
  210. package/dist/esm/ion-textarea.entry.js +4 -2
  211. package/dist/esm/ion-toast.entry.js +4 -3
  212. package/dist/esm/ion-toggle.entry.js +3 -3
  213. package/dist/esm/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  214. package/dist/esm/ionic.js +6 -6
  215. package/dist/esm/{ios.transition-daa373e9.js → ios.transition-9e42996d.js} +4 -2
  216. package/dist/esm/loader.js +5 -5
  217. package/dist/esm/{md.transition-91c3d3cc.js → md.transition-8cbb4e1d.js} +4 -2
  218. package/dist/esm/{overlays-64e67e2c.js → overlays-fbc5cab5.js} +12 -5
  219. package/dist/esm/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  220. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-a8ca7f93.js} +2 -2
  221. package/dist/esm-es5/app-globals-722340c4.js +4 -0
  222. package/dist/esm-es5/{button-active-7013b5a1.js → button-active-ed9d848c.js} +1 -1
  223. package/dist/esm-es5/{gesture-controller-1bf57181.js → gesture-controller-314a54f6.js} +1 -1
  224. package/dist/esm-es5/{index-39329c6f.js → index-08d686eb.js} +1 -1
  225. package/dist/esm-es5/{index-2cf77112.js → index-39782642.js} +1 -1
  226. package/dist/esm-es5/{index-7a818ed3.js → index-80492ed3.js} +1 -1
  227. package/dist/esm-es5/index-933484ae.js +4 -0
  228. package/dist/esm-es5/index.js +1 -1
  229. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  231. package/dist/esm-es5/ion-alert.entry.js +1 -1
  232. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  233. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  234. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  235. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  236. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  237. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  238. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  239. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  240. package/dist/esm-es5/ion-chip.entry.js +1 -1
  241. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  242. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  243. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  244. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  245. package/dist/esm-es5/ion-img.entry.js +1 -1
  246. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  247. package/dist/esm-es5/ion-input.entry.js +1 -1
  248. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  249. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  250. package/dist/esm-es5/ion-loading.entry.js +1 -1
  251. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  252. package/dist/esm-es5/ion-modal.entry.js +1 -1
  253. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  254. package/dist/esm-es5/ion-picker-column-option.entry.js +4 -0
  255. package/dist/esm-es5/ion-picker-column.entry.js +4 -0
  256. package/dist/esm-es5/ion-picker.entry.js +4 -0
  257. package/dist/esm-es5/ion-popover.entry.js +1 -1
  258. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  259. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  260. package/dist/esm-es5/ion-range.entry.js +1 -1
  261. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  262. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  263. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  264. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  265. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  266. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  267. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  268. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  269. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  270. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  271. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-text.entry.js +1 -1
  273. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  274. package/dist/esm-es5/ion-toast.entry.js +1 -1
  275. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  276. package/dist/esm-es5/{ionic-global-6c78e871.js → ionic-global-c0cda98e.js} +1 -1
  277. package/dist/esm-es5/ionic.js +1 -1
  278. package/dist/esm-es5/ios.transition-9e42996d.js +4 -0
  279. package/dist/esm-es5/loader.js +1 -1
  280. package/dist/esm-es5/md.transition-8cbb4e1d.js +4 -0
  281. package/dist/esm-es5/overlays-fbc5cab5.js +4 -0
  282. package/dist/esm-es5/{status-tap-9dd45200.js → status-tap-2b93b1b5.js} +1 -1
  283. package/dist/esm-es5/swipe-back-a8ca7f93.js +4 -0
  284. package/dist/html.html-data.json +154 -3
  285. package/dist/ionic/index.esm.js +1 -1
  286. package/dist/ionic/ionic.esm.js +1 -1
  287. package/dist/ionic/ionic.js +1 -1
  288. package/dist/ionic/{p-a0945c3a.system.entry.js → p-0e53f8ea.system.entry.js} +1 -1
  289. package/dist/ionic/{p-161d0916.entry.js → p-1161a793.entry.js} +1 -1
  290. package/dist/ionic/{p-89026d53.entry.js → p-1208f939.entry.js} +1 -1
  291. package/dist/ionic/{p-ad78c421.system.js → p-16bd5224.system.js} +1 -1
  292. package/dist/ionic/p-1786bc72.js +4 -0
  293. package/dist/ionic/{p-312221db.entry.js → p-17da5ed1.entry.js} +1 -1
  294. package/dist/ionic/{p-5fb707e0.entry.js → p-18ba8221.entry.js} +1 -1
  295. package/dist/ionic/{p-1631b52f.system.js → p-1d624e03.system.js} +1 -1
  296. package/dist/ionic/{p-3f5ae764.entry.js → p-1fc72959.entry.js} +1 -1
  297. package/dist/ionic/{p-1ff22253.entry.js → p-2092f39f.entry.js} +1 -1
  298. package/dist/ionic/{p-c7c8429a.system.js → p-20d469d0.system.js} +1 -1
  299. package/dist/ionic/{p-46dbd723.entry.js → p-21c3515a.entry.js} +1 -1
  300. package/dist/ionic/{p-2657f213.entry.js → p-22e5af95.entry.js} +1 -1
  301. package/dist/ionic/{p-6744eca5.entry.js → p-232d1f22.entry.js} +1 -1
  302. package/dist/ionic/p-26798a7b.system.entry.js +4 -0
  303. package/dist/ionic/p-27bcbbc7.system.entry.js +4 -0
  304. package/dist/ionic/{p-b81a8111.system.entry.js → p-2938823a.system.entry.js} +1 -1
  305. package/dist/ionic/p-294725bb.js +4 -0
  306. package/dist/ionic/{p-df361680.system.entry.js → p-2ab4e925.system.entry.js} +1 -1
  307. package/dist/ionic/{p-8c202d6e.system.entry.js → p-32303650.system.entry.js} +1 -1
  308. package/dist/ionic/{p-18032a93.entry.js → p-34c39c48.entry.js} +1 -1
  309. package/dist/ionic/p-350f7292.system.entry.js +4 -0
  310. package/dist/ionic/{p-86c2bbc8.entry.js → p-353b349d.entry.js} +1 -1
  311. package/dist/ionic/p-36d194c5.entry.js +4 -0
  312. package/dist/ionic/p-3993ae66.entry.js +4 -0
  313. package/dist/ionic/{p-31b2326e.system.js → p-3e1e14d9.system.js} +1 -1
  314. package/dist/ionic/{p-a3a145d3.entry.js → p-3f6270b3.entry.js} +1 -1
  315. package/dist/ionic/{p-23a27e78.system.entry.js → p-3fd26bd6.system.entry.js} +1 -1
  316. package/dist/ionic/{p-426bdba9.system.js → p-3fe96156.system.js} +1 -1
  317. package/dist/ionic/p-400b61c7.system.entry.js +4 -0
  318. package/dist/ionic/{p-e26030f8.system.js → p-4155f352.system.js} +1 -1
  319. package/dist/ionic/{p-405f1a72.entry.js → p-42ba3902.entry.js} +1 -1
  320. package/dist/ionic/{p-2a7e6572.system.entry.js → p-464975c5.system.entry.js} +1 -1
  321. package/dist/ionic/{p-ee4a54e3.entry.js → p-4911a5d6.entry.js} +1 -1
  322. package/dist/ionic/p-49c5f1a3.js +4 -0
  323. package/dist/ionic/{p-5f46d93e.entry.js → p-4a31c99f.entry.js} +1 -1
  324. package/dist/ionic/{p-f34d6a49.entry.js → p-4bee86bd.entry.js} +1 -1
  325. package/dist/ionic/{p-2cd9cb80.system.entry.js → p-4fb51e61.system.entry.js} +1 -1
  326. package/dist/ionic/p-510d9b43.js +4 -0
  327. package/dist/ionic/{p-d3e123c0.entry.js → p-51a087d6.entry.js} +1 -1
  328. package/dist/ionic/p-51abefb7.system.js +4 -0
  329. package/dist/ionic/{p-aac289d2.system.entry.js → p-564af202.system.entry.js} +1 -1
  330. package/dist/ionic/p-588fdf40.entry.js +4 -0
  331. package/dist/ionic/p-5a1aac13.system.entry.js +4 -0
  332. package/dist/ionic/{p-a5c81b99.entry.js → p-5a68960f.entry.js} +1 -1
  333. package/dist/ionic/{p-34d6f520.system.js → p-5b365ca7.system.js} +1 -1
  334. package/dist/ionic/{p-eef8d7e8.system.entry.js → p-5bebc7b3.system.entry.js} +1 -1
  335. package/dist/ionic/{p-a1b4dba7.entry.js → p-5d42b6b4.entry.js} +1 -1
  336. package/dist/ionic/{p-21f015cf.js → p-5ecae037.js} +1 -1
  337. package/dist/ionic/{p-57c0d5bf.system.entry.js → p-6555a5e7.system.entry.js} +1 -1
  338. package/dist/ionic/p-65e27aae.system.entry.js +4 -0
  339. package/dist/ionic/{p-71d986ae.entry.js → p-6b7c55cd.entry.js} +1 -1
  340. package/dist/ionic/{p-70ecb18b.entry.js → p-6d72fb44.entry.js} +1 -1
  341. package/dist/ionic/{p-1cbc21e2.system.entry.js → p-6e70dd1a.system.entry.js} +1 -1
  342. package/dist/ionic/{p-64af4468.entry.js → p-6fbecbda.entry.js} +1 -1
  343. package/dist/ionic/{p-27a5f2c7.system.entry.js → p-6fd64e7c.system.entry.js} +1 -1
  344. package/dist/ionic/p-73190c5f.entry.js +4 -0
  345. package/dist/ionic/p-73aa7604.entry.js +4 -0
  346. package/dist/ionic/p-76d3765d.js +4 -0
  347. package/dist/ionic/{p-2ac9d078.system.entry.js → p-77965464.system.entry.js} +1 -1
  348. package/dist/ionic/{p-6cf08720.entry.js → p-7b725280.entry.js} +1 -1
  349. package/dist/ionic/p-8017aad2.system.entry.js +4 -0
  350. package/dist/ionic/{p-27e6473f.entry.js → p-8adc9a45.entry.js} +1 -1
  351. package/dist/ionic/p-8c0e5060.system.js +4 -0
  352. package/dist/ionic/p-8c97cdc0.entry.js +4 -0
  353. package/dist/ionic/p-8e42850f.entry.js +4 -0
  354. package/dist/ionic/{p-f5d2dc9b.js → p-8ededb41.js} +1 -1
  355. package/dist/ionic/{p-67598744.entry.js → p-8f5d30f5.entry.js} +1 -1
  356. package/dist/ionic/p-8fa6583d.system.js +4 -0
  357. package/dist/ionic/p-91af3c52.system.entry.js +4 -0
  358. package/dist/ionic/{p-3acad8ff.system.entry.js → p-93000a81.system.entry.js} +1 -1
  359. package/dist/ionic/{p-41f7af3f.system.entry.js → p-96dbbac1.system.entry.js} +1 -1
  360. package/dist/ionic/{p-a0db3de9.system.entry.js → p-9709ebd8.system.entry.js} +1 -1
  361. package/dist/ionic/{p-12cdcb59.js → p-9738fd82.js} +1 -1
  362. package/dist/ionic/{p-a70b5d24.entry.js → p-98f3d827.entry.js} +1 -1
  363. package/dist/ionic/{p-bb3615f7.js → p-9b97df10.js} +1 -1
  364. package/dist/ionic/p-9e48593b.system.js +4 -0
  365. package/dist/ionic/{p-315ad733.system.entry.js → p-a225bf0f.system.entry.js} +1 -1
  366. package/dist/ionic/{p-53a3283e.entry.js → p-a4afcc88.entry.js} +1 -1
  367. package/dist/ionic/p-a60a1ce5.js +4 -0
  368. package/dist/ionic/p-a8baa23e.entry.js +4 -0
  369. package/dist/ionic/{p-99fe0543.entry.js → p-a98dc0c1.entry.js} +1 -1
  370. package/dist/ionic/p-a9a80f5b.entry.js +4 -0
  371. package/dist/ionic/{p-90db28f8.system.entry.js → p-a9e3b5be.system.entry.js} +1 -1
  372. package/dist/ionic/{p-a843a90e.system.entry.js → p-ab9456e9.system.entry.js} +1 -1
  373. package/dist/ionic/p-ae712b95.entry.js +4 -0
  374. package/dist/ionic/p-afcf4620.entry.js +4 -0
  375. package/dist/ionic/{p-3535a36c.entry.js → p-b133e9b4.entry.js} +1 -1
  376. package/dist/ionic/{p-98ac0e27.system.entry.js → p-b3b3efba.system.entry.js} +2 -2
  377. package/dist/ionic/{p-58ff9e5b.system.js → p-b4a51c42.system.js} +1 -1
  378. package/dist/ionic/p-b4d31b30.system.entry.js +4 -0
  379. package/dist/ionic/{p-3cb5466e.entry.js → p-b5f9f14c.entry.js} +1 -1
  380. package/dist/ionic/{p-b0fcf130.system.entry.js → p-b6f5e4f2.system.entry.js} +1 -1
  381. package/dist/ionic/{p-7ae5ca1f.system.entry.js → p-b7010c69.system.entry.js} +1 -1
  382. package/dist/ionic/{p-a99f14a7.system.entry.js → p-b752714f.system.entry.js} +1 -1
  383. package/dist/ionic/p-c006d974.entry.js +4 -0
  384. package/dist/ionic/{p-ca32685b.system.entry.js → p-c18de88a.system.entry.js} +1 -1
  385. package/dist/ionic/{p-acdd8148.js → p-c3c3333a.js} +1 -1
  386. package/dist/ionic/p-c41bff4e.system.entry.js +4 -0
  387. package/dist/ionic/{p-8261be6c.system.entry.js → p-c847fb35.system.entry.js} +1 -1
  388. package/dist/ionic/{p-e3c44332.system.entry.js → p-c91ccbfa.system.entry.js} +1 -1
  389. package/dist/ionic/{p-9f376964.system.entry.js → p-c9a21dfd.system.entry.js} +1 -1
  390. package/dist/ionic/p-ca8938f4.js +4 -0
  391. package/dist/ionic/{p-ad953217.system.entry.js → p-caf21b46.system.entry.js} +1 -1
  392. package/dist/ionic/{p-5a7d5905.system.entry.js → p-cde52378.system.entry.js} +1 -1
  393. package/dist/ionic/{p-1c6c6098.entry.js → p-cfe57b1b.entry.js} +1 -1
  394. package/dist/ionic/{p-c04accad.entry.js → p-d37b441e.entry.js} +1 -1
  395. package/dist/ionic/{p-f8c5a0dd.system.js → p-d3b030b8.system.js} +1 -1
  396. package/dist/ionic/p-d3c773d0.entry.js +4 -0
  397. package/dist/ionic/{p-91f9e81b.js → p-d662d908.js} +1 -1
  398. package/dist/ionic/p-d9ec6cf0.system.js +4 -0
  399. package/dist/ionic/p-da15f571.system.entry.js +4 -0
  400. package/dist/ionic/{p-c5ae50be.system.js → p-e3584231.system.js} +1 -1
  401. package/dist/ionic/{p-8a75f7bf.system.entry.js → p-e7ea9815.system.entry.js} +1 -1
  402. package/dist/ionic/{p-5f127075.system.entry.js → p-e8e86f69.system.entry.js} +1 -1
  403. package/dist/ionic/p-ea69616e.entry.js +4 -0
  404. package/dist/ionic/{p-4f71a9cf.system.entry.js → p-ef126ae8.system.entry.js} +1 -1
  405. package/dist/ionic/p-f6160677.system.entry.js +4 -0
  406. package/dist/ionic/{p-e4045e04.entry.js → p-f8a5bb89.entry.js} +1 -1
  407. package/dist/ionic/{p-93dac17a.system.entry.js → p-f910cc73.system.entry.js} +1 -1
  408. package/dist/ionic/{p-bc97b5cd.system.entry.js → p-fbf3a689.system.entry.js} +1 -1
  409. package/dist/ionic/p-ffd5dba4.system.entry.js +4 -0
  410. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  411. package/dist/types/components/datetime/datetime.d.ts +0 -1
  412. package/dist/types/components/datetime/utils/data.d.ts +11 -7
  413. package/dist/types/components/input/input.d.ts +5 -1
  414. package/dist/types/components/menu/menu.d.ts +1 -1
  415. package/dist/types/components/picker/picker-interfaces.d.ts +8 -0
  416. package/dist/types/components/picker/picker.d.ts +75 -129
  417. package/dist/types/components/picker-column/picker-column-interfaces.d.ts +4 -0
  418. package/dist/types/components/picker-column/picker-column.d.ts +99 -39
  419. package/dist/types/components/picker-column-option/picker-column-option.d.ts +66 -0
  420. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  421. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  422. package/dist/types/components/refresher/refresher.utils.d.ts +0 -16
  423. package/dist/types/components/searchbar/searchbar.d.ts +2 -0
  424. package/dist/types/components/textarea/textarea.d.ts +5 -1
  425. package/dist/types/components.d.ts +161 -129
  426. package/dist/types/interface.d.ts +1 -1
  427. package/dist/types/utils/config.d.ts +8 -2
  428. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  429. package/dist/types/utils/overlays.d.ts +5 -2
  430. package/hydrate/index.d.ts +1 -1
  431. package/hydrate/index.js +1409 -1229
  432. package/package.json +2 -2
  433. package/components/ion-picker-column-internal.d.ts +0 -11
  434. package/components/ion-picker-column-internal.js +0 -9
  435. package/components/ion-picker-internal.js +0 -9
  436. package/components/picker-column-internal.js +0 -390
  437. package/components/refresher.utils.js +0 -196
  438. package/dist/collection/components/picker-column-internal/picker-column-internal.js +0 -565
  439. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +0 -162
  440. package/dist/collection/components/picker-internal/picker-internal.js +0 -544
  441. package/dist/collection/components/picker-internal/test/basic/picker-internal.e2e.js +0 -118
  442. package/dist/esm-es5/app-globals-c23144fc.js +0 -4
  443. package/dist/esm-es5/index-bebaae5d.js +0 -4
  444. package/dist/esm-es5/ion-picker-column-internal.entry.js +0 -4
  445. package/dist/esm-es5/ion-picker-internal.entry.js +0 -4
  446. package/dist/esm-es5/ios.transition-daa373e9.js +0 -4
  447. package/dist/esm-es5/md.transition-91c3d3cc.js +0 -4
  448. package/dist/esm-es5/overlays-64e67e2c.js +0 -4
  449. package/dist/esm-es5/swipe-back-a6f386fc.js +0 -4
  450. package/dist/ionic/p-0263eb49.system.js +0 -4
  451. package/dist/ionic/p-06600f70.js +0 -4
  452. package/dist/ionic/p-0827d00e.system.entry.js +0 -4
  453. package/dist/ionic/p-19545a49.system.entry.js +0 -4
  454. package/dist/ionic/p-1e7daa1f.entry.js +0 -4
  455. package/dist/ionic/p-2507b0c0.entry.js +0 -4
  456. package/dist/ionic/p-33f3cd49.entry.js +0 -4
  457. package/dist/ionic/p-35ce400e.system.js +0 -4
  458. package/dist/ionic/p-45db7949.system.entry.js +0 -4
  459. package/dist/ionic/p-58dd7c15.entry.js +0 -4
  460. package/dist/ionic/p-5c7f13cd.system.entry.js +0 -4
  461. package/dist/ionic/p-6a6477b2.js +0 -4
  462. package/dist/ionic/p-742e11cf.system.entry.js +0 -4
  463. package/dist/ionic/p-7484b1d6.system.js +0 -4
  464. package/dist/ionic/p-78ebf1b6.system.entry.js +0 -4
  465. package/dist/ionic/p-83fada9e.system.entry.js +0 -4
  466. package/dist/ionic/p-89cfbc88.system.entry.js +0 -4
  467. package/dist/ionic/p-8a10752d.entry.js +0 -4
  468. package/dist/ionic/p-abab375b.system.js +0 -4
  469. package/dist/ionic/p-ac4a7fc0.js +0 -4
  470. package/dist/ionic/p-af959b5d.entry.js +0 -4
  471. package/dist/ionic/p-b11ceee2.entry.js +0 -4
  472. package/dist/ionic/p-b5e33ebc.system.entry.js +0 -4
  473. package/dist/ionic/p-b8f2134e.js +0 -4
  474. package/dist/ionic/p-bbe3feee.entry.js +0 -4
  475. package/dist/ionic/p-cde72008.js +0 -4
  476. package/dist/ionic/p-d0251fc4.entry.js +0 -4
  477. package/dist/ionic/p-d1530ea9.entry.js +0 -4
  478. package/dist/ionic/p-ddccf1f4.js +0 -4
  479. package/dist/ionic/p-e145b9f9.entry.js +0 -4
  480. package/dist/ionic/p-e8e530fc.entry.js +0 -4
  481. package/dist/ionic/p-eab6401e.js +0 -4
  482. package/dist/ionic/p-edc5c693.system.entry.js +0 -4
  483. package/dist/ionic/p-f0384573.system.entry.js +0 -4
  484. package/dist/ionic/p-f10de9d5.system.js +0 -4
  485. package/dist/ionic/p-f444fea5.entry.js +0 -4
  486. package/dist/ionic/p-fcf49977.system.entry.js +0 -4
  487. package/dist/types/components/picker-column-internal/picker-column-internal-interfaces.d.ts +0 -5
  488. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +0 -102
  489. package/dist/types/components/picker-internal/picker-internal-interfaces.d.ts +0 -8
  490. package/dist/types/components/picker-internal/picker-internal.d.ts +0 -102
  491. /package/dist/collection/components/{picker-internal/picker-internal-interfaces.js → picker/picker-interfaces.js} +0 -0
  492. /package/dist/collection/components/{picker-column-internal/picker-column-internal-interfaces.js → picker-column/picker-column-interfaces.js} +0 -0
  493. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  494. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  495. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  496. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.ios.css +0 -0
  497. /package/dist/collection/components/{picker-column → picker-legacy-column}/picker-column.md.css +0 -0
  498. /package/dist/collection/components/{picker-column → picker-legacy-column}/test/test.utils.js +0 -0
  499. /package/dist/esm-es5/{data-f5c75b4e.js → data-4b9508c9.js} +0 -0
  500. /package/dist/ionic/{p-2aea8b1e.js → p-368f5215.js} +0 -0
  501. /package/dist/ionic/{p-82e3d633.system.js → p-f58981c2.system.js} +0 -0
  502. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  503. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  504. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
  505. /package/dist/types/components/{picker-column → picker-legacy-column}/test/test.utils.d.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "7.5.8-dev.11703088210.14a72b83",
3
+ "version": "7.5.8-dev.11705350665.1a40ee3a",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -31,7 +31,7 @@
31
31
  "loader/"
32
32
  ],
33
33
  "dependencies": {
34
- "@stencil/core": "^4.8.0",
34
+ "@stencil/core": "^4.8.1",
35
35
  "ionicons": "^7.2.1",
36
36
  "tslib": "^2.1.0"
37
37
  },
@@ -1,11 +0,0 @@
1
- import type { Components, JSX } from "../dist/types/components";
2
-
3
- interface IonPickerColumnInternal extends Components.IonPickerColumnInternal, HTMLElement {}
4
- export const IonPickerColumnInternal: {
5
- prototype: IonPickerColumnInternal;
6
- new (): IonPickerColumnInternal;
7
- };
8
- /**
9
- * Used to define this component and all nested components recursively.
10
- */
11
- export const defineCustomElement: () => void;
@@ -1,9 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { P as PickerColumnInternal, d as defineCustomElement$1 } from './picker-column-internal.js';
5
-
6
- const IonPickerColumnInternal = PickerColumnInternal;
7
- const defineCustomElement = defineCustomElement$1;
8
-
9
- export { IonPickerColumnInternal, defineCustomElement };
@@ -1,9 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { P as PickerInternal, d as defineCustomElement$1 } from './picker-internal.js';
5
-
6
- const IonPickerInternal = PickerInternal;
7
- const defineCustomElement = defineCustomElement$1;
8
-
9
- export { IonPickerInternal, defineCustomElement };
@@ -1,390 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
- import { r as raf, g as getElementRoot } from './helpers.js';
6
- import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSelectionEnd } from './haptic.js';
7
- import { a as isPlatform, b as getIonMode } from './ionic-global.js';
8
- import { c as createColorClasses } from './theme.js';
9
-
10
- const pickerColumnInternalIosCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
11
-
12
- const pickerColumnInternalMdCss = ":host{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;height:200px;outline:none;font-size:22px;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none;text-align:center}:host::-webkit-scrollbar{display:none}:host .picker-item{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden;scroll-snap-align:center}:host .picker-item-empty,:host .picker-item[disabled]{cursor:default}:host .picker-item-empty,:host(:not([disabled])) .picker-item[disabled]{scroll-snap-align:none}:host([disabled]){overflow-y:hidden}:host .picker-item[disabled]{opacity:0.4}:host(.picker-column-active) .picker-item.picker-item-active{color:var(--ion-color-base)}@media (any-hover: hover){:host(:focus){outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}:host .picker-item-active{color:var(--ion-color-base)}";
13
-
14
- const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumnInternal extends HTMLElement {
15
- constructor() {
16
- super();
17
- this.__registerHost();
18
- this.__attachShadow();
19
- this.ionChange = createEvent(this, "ionChange", 7);
20
- this.isScrolling = false;
21
- this.isColumnVisible = false;
22
- this.canExitInputMode = true;
23
- this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
24
- const { el, isColumnVisible } = this;
25
- if (isColumnVisible) {
26
- // (Vertical offset from parent) - (three empty picker rows) + (half the height of the target to ensure the scroll triggers)
27
- const top = target.offsetTop - 3 * target.clientHeight + target.clientHeight / 2;
28
- if (el.scrollTop !== top) {
29
- /**
30
- * Setting this flag prevents input
31
- * mode from exiting in the picker column's
32
- * scroll callback. This is useful when the user manually
33
- * taps an item or types on the keyboard as both
34
- * of these can cause a scroll to occur.
35
- */
36
- this.canExitInputMode = canExitInputMode;
37
- el.scroll({
38
- top,
39
- left: 0,
40
- behavior: smooth ? 'smooth' : undefined,
41
- });
42
- }
43
- }
44
- };
45
- this.setPickerItemActiveState = (item, isActive) => {
46
- if (isActive) {
47
- item.classList.add(PICKER_ITEM_ACTIVE_CLASS);
48
- item.part.add(PICKER_ITEM_ACTIVE_PART);
49
- }
50
- else {
51
- item.classList.remove(PICKER_ITEM_ACTIVE_CLASS);
52
- item.part.remove(PICKER_ITEM_ACTIVE_PART);
53
- }
54
- };
55
- /**
56
- * When ionInputModeChange is emitted, each column
57
- * needs to check if it is the one being made available
58
- * for text entry.
59
- */
60
- this.inputModeChange = (ev) => {
61
- if (!this.numericInput) {
62
- return;
63
- }
64
- const { useInputMode, inputModeColumn } = ev.detail;
65
- /**
66
- * If inputModeColumn is undefined then this means
67
- * all numericInput columns are being selected.
68
- */
69
- const isColumnActive = inputModeColumn === undefined || inputModeColumn === this.el;
70
- if (!useInputMode || !isColumnActive) {
71
- this.setInputModeActive(false);
72
- return;
73
- }
74
- this.setInputModeActive(true);
75
- };
76
- /**
77
- * Setting isActive will cause a re-render.
78
- * As a result, we do not want to cause the
79
- * re-render mid scroll as this will cause
80
- * the picker column to jump back to
81
- * whatever value was selected at the
82
- * start of the scroll interaction.
83
- */
84
- this.setInputModeActive = (state) => {
85
- if (this.isScrolling) {
86
- this.scrollEndCallback = () => {
87
- this.isActive = state;
88
- };
89
- return;
90
- }
91
- this.isActive = state;
92
- };
93
- /**
94
- * When the column scrolls, the component
95
- * needs to determine which item is centered
96
- * in the view and will emit an ionChange with
97
- * the item object.
98
- */
99
- this.initializeScrollListener = () => {
100
- /**
101
- * The haptics for the wheel picker are
102
- * an iOS-only feature. As a result, they should
103
- * be disabled on Android.
104
- */
105
- const enableHaptics = isPlatform('ios');
106
- const { el } = this;
107
- let timeout;
108
- let activeEl = this.activeItem;
109
- const scrollCallback = () => {
110
- raf(() => {
111
- if (timeout) {
112
- clearTimeout(timeout);
113
- timeout = undefined;
114
- }
115
- if (!this.isScrolling) {
116
- enableHaptics && hapticSelectionStart();
117
- this.isScrolling = true;
118
- }
119
- /**
120
- * Select item in the center of the column
121
- * which is the month/year that we want to select
122
- */
123
- const bbox = el.getBoundingClientRect();
124
- const centerX = bbox.x + bbox.width / 2;
125
- const centerY = bbox.y + bbox.height / 2;
126
- const activeElement = el.shadowRoot.elementFromPoint(centerX, centerY);
127
- if (activeEl !== null) {
128
- this.setPickerItemActiveState(activeEl, false);
129
- }
130
- if (activeElement === null || activeElement.disabled) {
131
- return;
132
- }
133
- /**
134
- * If we are selecting a new value,
135
- * we need to run haptics again.
136
- */
137
- if (activeElement !== activeEl) {
138
- enableHaptics && hapticSelectionChanged();
139
- if (this.canExitInputMode) {
140
- /**
141
- * The native iOS wheel picker
142
- * only dismisses the keyboard
143
- * once the selected item has changed
144
- * as a result of a swipe
145
- * from the user. If `canExitInputMode` is
146
- * `false` then this means that the
147
- * scroll is happening as a result of
148
- * the `value` property programmatically changing
149
- * either by an application or by the user via the keyboard.
150
- */
151
- this.exitInputMode();
152
- }
153
- }
154
- activeEl = activeElement;
155
- this.setPickerItemActiveState(activeElement, true);
156
- timeout = setTimeout(() => {
157
- this.isScrolling = false;
158
- enableHaptics && hapticSelectionEnd();
159
- /**
160
- * Certain tasks (such as those that
161
- * cause re-renders) should only be done
162
- * once scrolling has finished, otherwise
163
- * flickering may occur.
164
- */
165
- const { scrollEndCallback } = this;
166
- if (scrollEndCallback) {
167
- scrollEndCallback();
168
- this.scrollEndCallback = undefined;
169
- }
170
- /**
171
- * Reset this flag as the
172
- * next scroll interaction could
173
- * be a scroll from the user. In this
174
- * case, we should exit input mode.
175
- */
176
- this.canExitInputMode = true;
177
- const dataIndex = activeElement.getAttribute('data-index');
178
- /**
179
- * If no value it is
180
- * possible we hit one of the
181
- * empty padding columns.
182
- */
183
- if (dataIndex === null) {
184
- return;
185
- }
186
- const index = parseInt(dataIndex, 10);
187
- const selectedItem = this.items[index];
188
- if (selectedItem.value !== this.value) {
189
- this.setValue(selectedItem.value);
190
- }
191
- }, 250);
192
- });
193
- };
194
- /**
195
- * Wrap this in an raf so that the scroll callback
196
- * does not fire when component is initially shown.
197
- */
198
- raf(() => {
199
- el.addEventListener('scroll', scrollCallback);
200
- this.destroyScrollListener = () => {
201
- el.removeEventListener('scroll', scrollCallback);
202
- };
203
- });
204
- };
205
- /**
206
- * Tells the parent picker to
207
- * exit text entry mode. This is only called
208
- * when the selected item changes during scroll, so
209
- * we know that the user likely wants to scroll
210
- * instead of type.
211
- */
212
- this.exitInputMode = () => {
213
- const { parentEl } = this;
214
- if (parentEl == null)
215
- return;
216
- parentEl.exitInputMode();
217
- /**
218
- * setInputModeActive only takes
219
- * effect once scrolling stops to avoid
220
- * a component re-render while scrolling.
221
- * However, we want the visual active
222
- * indicator to go away immediately, so
223
- * we call classList.remove here.
224
- */
225
- this.el.classList.remove('picker-column-active');
226
- };
227
- this.isActive = false;
228
- this.disabled = false;
229
- this.items = [];
230
- this.value = undefined;
231
- this.color = 'primary';
232
- this.numericInput = false;
233
- }
234
- valueChange() {
235
- if (this.isColumnVisible) {
236
- /**
237
- * Only scroll the active item into view when the picker column
238
- * is actively visible to the user.
239
- */
240
- this.scrollActiveItemIntoView();
241
- }
242
- }
243
- /**
244
- * Only setup scroll listeners
245
- * when the picker is visible, otherwise
246
- * the container will have a scroll
247
- * height of 0px.
248
- */
249
- componentWillLoad() {
250
- const visibleCallback = (entries) => {
251
- const ev = entries[0];
252
- if (ev.isIntersecting) {
253
- const { activeItem, el } = this;
254
- this.isColumnVisible = true;
255
- /**
256
- * Because this initial call to scrollActiveItemIntoView has to fire before
257
- * the scroll listener is set up, we need to manage the active class manually.
258
- */
259
- const oldActive = getElementRoot(el).querySelector(`.${PICKER_ITEM_ACTIVE_CLASS}`);
260
- if (oldActive) {
261
- this.setPickerItemActiveState(oldActive, false);
262
- }
263
- this.scrollActiveItemIntoView();
264
- if (activeItem) {
265
- this.setPickerItemActiveState(activeItem, true);
266
- }
267
- this.initializeScrollListener();
268
- }
269
- else {
270
- this.isColumnVisible = false;
271
- if (this.destroyScrollListener) {
272
- this.destroyScrollListener();
273
- this.destroyScrollListener = undefined;
274
- }
275
- }
276
- };
277
- new IntersectionObserver(visibleCallback, { threshold: 0.001 }).observe(this.el);
278
- const parentEl = (this.parentEl = this.el.closest('ion-picker-internal'));
279
- if (parentEl !== null) {
280
- // TODO(FW-2832): type
281
- parentEl.addEventListener('ionInputModeChange', (ev) => this.inputModeChange(ev));
282
- }
283
- }
284
- componentDidRender() {
285
- var _a;
286
- const { activeItem, items, isColumnVisible, value } = this;
287
- if (isColumnVisible) {
288
- if (activeItem) {
289
- this.scrollActiveItemIntoView();
290
- }
291
- else if (((_a = items[0]) === null || _a === void 0 ? void 0 : _a.value) !== value) {
292
- /**
293
- * If the picker column does not have an active item and the current value
294
- * does not match the first item in the picker column, that means
295
- * the value is out of bounds. In this case, we assign the value to the
296
- * first item to match the scroll position of the column.
297
- *
298
- */
299
- this.setValue(items[0].value);
300
- }
301
- }
302
- }
303
- /** @internal */
304
- async scrollActiveItemIntoView() {
305
- const activeEl = this.activeItem;
306
- if (activeEl) {
307
- this.centerPickerItemInView(activeEl, false, false);
308
- }
309
- }
310
- /**
311
- * Sets the value prop and fires the ionChange event.
312
- * This is used when we need to fire ionChange from
313
- * user-generated events that cannot be caught with normal
314
- * input/change event listeners.
315
- * @internal
316
- */
317
- async setValue(value) {
318
- const { items } = this;
319
- this.value = value;
320
- const findItem = items.find((item) => item.value === value && item.disabled !== true);
321
- if (findItem) {
322
- this.ionChange.emit(findItem);
323
- }
324
- }
325
- get activeItem() {
326
- // If the whole picker column is disabled, the current value should appear active
327
- // If the current value item is specifically disabled, it should not appear active
328
- const selector = `.picker-item[data-value="${this.value}"]${this.disabled ? '' : ':not([disabled])'}`;
329
- return getElementRoot(this.el).querySelector(selector);
330
- }
331
- render() {
332
- const { items, color, disabled: pickerDisabled, isActive, numericInput } = this;
333
- const mode = getIonMode(this);
334
- /**
335
- * exportparts is needed so ion-datetime can expose the parts
336
- * from two layers of shadow nesting. If this causes problems,
337
- * the attribute can be moved to datetime.tsx and set on every
338
- * instance of ion-picker-column-internal there instead.
339
- */
340
- return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
341
- [mode]: true,
342
- ['picker-column-active']: isActive,
343
- ['picker-column-numeric-input']: numericInput,
344
- }) }, h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
345
- const isItemDisabled = pickerDisabled || item.disabled || false;
346
- return (h("button", { tabindex: "-1", class: {
347
- 'picker-item': true,
348
- }, "data-value": item.value, "data-index": index, onClick: (ev) => {
349
- this.centerPickerItemInView(ev.target, true);
350
- }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
351
- }), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
352
- }
353
- get el() { return this; }
354
- static get watchers() { return {
355
- "value": ["valueChange"]
356
- }; }
357
- static get style() { return {
358
- ios: pickerColumnInternalIosCss,
359
- md: pickerColumnInternalMdCss
360
- }; }
361
- }, [33, "ion-picker-column-internal", {
362
- "disabled": [4],
363
- "items": [16],
364
- "value": [1032],
365
- "color": [513],
366
- "numericInput": [4, "numeric-input"],
367
- "isActive": [32],
368
- "scrollActiveItemIntoView": [64],
369
- "setValue": [64]
370
- }, undefined, {
371
- "value": ["valueChange"]
372
- }]);
373
- const PICKER_ITEM_ACTIVE_CLASS = 'picker-item-active';
374
- const PICKER_ITEM_PART = 'wheel-item';
375
- const PICKER_ITEM_ACTIVE_PART = 'active';
376
- function defineCustomElement() {
377
- if (typeof customElements === "undefined") {
378
- return;
379
- }
380
- const components = ["ion-picker-column-internal"];
381
- components.forEach(tagName => { switch (tagName) {
382
- case "ion-picker-column-internal":
383
- if (!customElements.get(tagName)) {
384
- customElements.define(tagName, PickerColumnInternal);
385
- }
386
- break;
387
- } });
388
- }
389
-
390
- export { PickerColumnInternal as P, defineCustomElement as d };
@@ -1,196 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { writeTask } from '@stencil/core/internal/client';
5
- import { c as createAnimation } from './animation.js';
6
- import { t as transitionEndAsync, c as componentOnReady, m as clamp } from './helpers.js';
7
-
8
- const getRefresherAnimationType = (contentEl) => {
9
- const previousSibling = contentEl.previousElementSibling;
10
- const hasHeader = previousSibling !== null && previousSibling.tagName === 'ION-HEADER';
11
- return hasHeader ? 'translate' : 'scale';
12
- };
13
- const createPullingAnimation = (type, pullingSpinner, refresherEl) => {
14
- return type === 'scale'
15
- ? createScaleAnimation(pullingSpinner, refresherEl)
16
- : createTranslateAnimation(pullingSpinner, refresherEl);
17
- };
18
- const createBaseAnimation = (pullingRefresherIcon) => {
19
- const spinner = pullingRefresherIcon.querySelector('ion-spinner');
20
- const circle = spinner.shadowRoot.querySelector('circle');
21
- const spinnerArrowContainer = pullingRefresherIcon.querySelector('.spinner-arrow-container');
22
- const arrowContainer = pullingRefresherIcon.querySelector('.arrow-container');
23
- const arrow = arrowContainer ? arrowContainer.querySelector('ion-icon') : null;
24
- const baseAnimation = createAnimation().duration(1000).easing('ease-out');
25
- const spinnerArrowContainerAnimation = createAnimation()
26
- .addElement(spinnerArrowContainer)
27
- .keyframes([
28
- { offset: 0, opacity: '0.3' },
29
- { offset: 0.45, opacity: '0.3' },
30
- { offset: 0.55, opacity: '1' },
31
- { offset: 1, opacity: '1' },
32
- ]);
33
- const circleInnerAnimation = createAnimation()
34
- .addElement(circle)
35
- .keyframes([
36
- { offset: 0, strokeDasharray: '1px, 200px' },
37
- { offset: 0.2, strokeDasharray: '1px, 200px' },
38
- { offset: 0.55, strokeDasharray: '100px, 200px' },
39
- { offset: 1, strokeDasharray: '100px, 200px' },
40
- ]);
41
- const circleOuterAnimation = createAnimation()
42
- .addElement(spinner)
43
- .keyframes([
44
- { offset: 0, transform: 'rotate(-90deg)' },
45
- { offset: 1, transform: 'rotate(210deg)' },
46
- ]);
47
- /**
48
- * Only add arrow animation if present
49
- * this allows users to customize the spinners
50
- * without errors being thrown
51
- */
52
- if (arrowContainer && arrow) {
53
- const arrowContainerAnimation = createAnimation()
54
- .addElement(arrowContainer)
55
- .keyframes([
56
- { offset: 0, transform: 'rotate(0deg)' },
57
- { offset: 0.3, transform: 'rotate(0deg)' },
58
- { offset: 0.55, transform: 'rotate(280deg)' },
59
- { offset: 1, transform: 'rotate(400deg)' },
60
- ]);
61
- const arrowAnimation = createAnimation()
62
- .addElement(arrow)
63
- .keyframes([
64
- { offset: 0, transform: 'translateX(2px) scale(0)' },
65
- { offset: 0.3, transform: 'translateX(2px) scale(0)' },
66
- { offset: 0.55, transform: 'translateX(-1.5px) scale(1)' },
67
- { offset: 1, transform: 'translateX(-1.5px) scale(1)' },
68
- ]);
69
- baseAnimation.addAnimation([arrowContainerAnimation, arrowAnimation]);
70
- }
71
- return baseAnimation.addAnimation([spinnerArrowContainerAnimation, circleInnerAnimation, circleOuterAnimation]);
72
- };
73
- const createScaleAnimation = (pullingRefresherIcon, refresherEl) => {
74
- /**
75
- * Do not take the height of the refresher icon
76
- * because at this point the DOM has not updated,
77
- * so the refresher icon is still hidden with
78
- * display: none.
79
- * The `ion-refresher` container height
80
- * is roughly the amount we need to offset
81
- * the icon by when pulling down.
82
- */
83
- const height = refresherEl.clientHeight;
84
- const spinnerAnimation = createAnimation()
85
- .addElement(pullingRefresherIcon)
86
- .keyframes([
87
- { offset: 0, transform: `scale(0) translateY(-${height}px)` },
88
- { offset: 1, transform: 'scale(1) translateY(100px)' },
89
- ]);
90
- return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);
91
- };
92
- const createTranslateAnimation = (pullingRefresherIcon, refresherEl) => {
93
- /**
94
- * Do not take the height of the refresher icon
95
- * because at this point the DOM has not updated,
96
- * so the refresher icon is still hidden with
97
- * display: none.
98
- * The `ion-refresher` container height
99
- * is roughly the amount we need to offset
100
- * the icon by when pulling down.
101
- */
102
- const height = refresherEl.clientHeight;
103
- const spinnerAnimation = createAnimation()
104
- .addElement(pullingRefresherIcon)
105
- .keyframes([
106
- { offset: 0, transform: `translateY(-${height}px)` },
107
- { offset: 1, transform: 'translateY(100px)' },
108
- ]);
109
- return createBaseAnimation(pullingRefresherIcon).addAnimation([spinnerAnimation]);
110
- };
111
- const createSnapBackAnimation = (pullingRefresherIcon) => {
112
- return createAnimation()
113
- .duration(125)
114
- .addElement(pullingRefresherIcon)
115
- .fromTo('transform', 'translateY(var(--ion-pulling-refresher-translate, 100px))', 'translateY(0px)');
116
- };
117
- // iOS Native Refresher
118
- // -----------------------------
119
- const setSpinnerOpacity = (spinner, opacity) => {
120
- spinner.style.setProperty('opacity', opacity.toString());
121
- };
122
- const handleScrollWhilePulling = (ticks, numTicks, pullAmount) => {
123
- const max = 1;
124
- writeTask(() => {
125
- ticks.forEach((el, i) => {
126
- /**
127
- * Compute the opacity of each tick
128
- * mark as a percentage of the pullAmount
129
- * offset by max / numTicks so
130
- * the tick marks are shown staggered.
131
- */
132
- const min = i * (max / numTicks);
133
- const range = max - min;
134
- const start = pullAmount - min;
135
- const progression = clamp(0, start / range, 1);
136
- el.style.setProperty('opacity', progression.toString());
137
- });
138
- });
139
- };
140
- const handleScrollWhileRefreshing = (spinner, lastVelocityY) => {
141
- writeTask(() => {
142
- // If user pulls down quickly, the spinner should spin faster
143
- spinner.style.setProperty('--refreshing-rotation-duration', lastVelocityY >= 1.0 ? '0.5s' : '2s');
144
- spinner.style.setProperty('opacity', '1');
145
- });
146
- };
147
- const translateElement = (el, value, duration = 200) => {
148
- if (!el) {
149
- return Promise.resolve();
150
- }
151
- const trans = transitionEndAsync(el, duration);
152
- writeTask(() => {
153
- el.style.setProperty('transition', `${duration}ms all ease-out`);
154
- if (value === undefined) {
155
- el.style.removeProperty('transform');
156
- }
157
- else {
158
- el.style.setProperty('transform', `translate3d(0px, ${value}, 0px)`);
159
- }
160
- });
161
- return trans;
162
- };
163
- // Utils
164
- // -----------------------------
165
- /**
166
- * In order to use the native iOS refresher the device must support rubber band scrolling.
167
- * As part of this, we need to exclude Desktop Safari because it has a slightly different rubber band effect that is not compatible with the native refresher in Ionic.
168
- *
169
- * We also need to be careful not to include devices that spoof their user agent.
170
- * For example, when using iOS emulation in Chrome the user agent will be spoofed such that
171
- * navigator.maxTouchPointer > 0. To work around this,
172
- * we check to see if the apple-pay-logo is supported as a named image which is only
173
- * true on Apple devices.
174
- *
175
- * We previously checked referencEl.style.webkitOverflowScrolling to explicitly check
176
- * for rubber band support. However, this property was removed on iPadOS and it's possible
177
- * that this will be removed on iOS in the future too.
178
- *
179
- */
180
- const supportsRubberBandScrolling = () => {
181
- return navigator.maxTouchPoints > 0 && CSS.supports('background: -webkit-named-image(apple-pay-logo-black)');
182
- };
183
- const shouldUseNativeRefresher = async (referenceEl, mode) => {
184
- const refresherContent = referenceEl.querySelector('ion-refresher-content');
185
- if (!refresherContent) {
186
- return Promise.resolve(false);
187
- }
188
- await new Promise((resolve) => componentOnReady(refresherContent, resolve));
189
- const pullingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-pulling ion-spinner');
190
- const refreshingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');
191
- return (pullingSpinner !== null &&
192
- refreshingSpinner !== null &&
193
- ((mode === 'ios' && supportsRubberBandScrolling()) || mode === 'md'));
194
- };
195
-
196
- export { setSpinnerOpacity as a, handleScrollWhilePulling as b, createPullingAnimation as c, createSnapBackAnimation as d, supportsRubberBandScrolling as e, getRefresherAnimationType as g, handleScrollWhileRefreshing as h, shouldUseNativeRefresher as s, translateElement as t };