@ionic/core 7.5.7-dev.11700601905.13f94170 → 7.5.7-dev.11701113479.149fdab6

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 (242) hide show
  1. package/components/backdrop.js +0 -12
  2. package/components/data.js +13 -41
  3. package/components/gesture-controller.js +1 -1
  4. package/components/ion-content.js +1 -1
  5. package/components/ion-datetime.js +32 -84
  6. package/components/ion-picker-legacy-column.d.ts +11 -0
  7. package/components/{ion-picker-column.js → ion-picker-legacy-column.js} +2 -2
  8. package/components/{ion-picker-column.d.ts → ion-picker-legacy.d.ts} +4 -4
  9. package/components/ion-picker-legacy.js +309 -0
  10. package/components/overlays.js +11 -4
  11. package/components/picker-column-internal.js +12 -7
  12. package/components/picker-column.js +3 -3
  13. package/dist/cjs/{button-active-af897e0e.js → button-active-cd07b55b.js} +1 -1
  14. package/dist/cjs/{data-88d0864d.js → data-c8d21093.js} +13 -41
  15. package/dist/cjs/{gesture-controller-b46721be.js → gesture-controller-d6a3f907.js} +1 -0
  16. package/dist/cjs/{index-0ee995e4.js → index-0f8b33f8.js} +1 -1
  17. package/dist/cjs/index.cjs.js +3 -3
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  19. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  20. package/dist/cjs/ion-app_8.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-backdrop.cjs.entry.js +0 -12
  22. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-datetime_3.cjs.entry.js +34 -66
  24. package/dist/cjs/ion-item-option_3.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-loading.cjs.entry.js +2 -1
  26. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  27. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  28. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +11 -7
  30. package/dist/cjs/ion-popover.cjs.entry.js +2 -1
  31. package/dist/cjs/ion-range.cjs.entry.js +1 -1
  32. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-reorder_2.cjs.entry.js +1 -1
  34. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-select_3.cjs.entry.js +2 -1
  36. package/dist/cjs/ion-toast.cjs.entry.js +2 -1
  37. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  38. package/dist/cjs/ionic.cjs.js +1 -1
  39. package/dist/cjs/loader.cjs.js +1 -1
  40. package/dist/cjs/{overlays-2ffc5f27.js → overlays-dbb71984.js} +11 -4
  41. package/dist/cjs/{swipe-back-d0412fb6.js → swipe-back-a6dc6e5d.js} +2 -2
  42. package/dist/collection/collection-manifest.json +6 -6
  43. package/dist/collection/components/backdrop/backdrop.js +0 -12
  44. package/dist/collection/components/content/content.css +0 -4
  45. package/dist/collection/components/datetime/datetime.ios.css +83 -24
  46. package/dist/collection/components/datetime/datetime.js +22 -56
  47. package/dist/collection/components/datetime/datetime.md.css +88 -24
  48. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +1 -1
  49. package/dist/collection/components/datetime/test/a11y/datetime.spec.js +6 -9
  50. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +10 -0
  51. package/dist/collection/components/datetime/test/disabled/datetime.spec.js +33 -0
  52. package/dist/collection/components/datetime/test/manipulation.spec.js +1 -77
  53. package/dist/collection/components/datetime/test/month-year-picker/datetime.e2e.js +1 -1
  54. package/dist/collection/components/datetime/test/readonly/datetime.e2e.js +2 -2
  55. package/dist/collection/components/datetime/utils/manipulation.js +14 -42
  56. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +11 -3
  57. package/dist/collection/components/picker-column-internal/picker-column-internal.js +27 -5
  58. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +11 -3
  59. package/dist/collection/components/picker-column-internal/test/disabled/picker-column-internal.e2e.js +34 -5
  60. package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.js +5 -5
  61. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column-aria.spec.js +3 -3
  62. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column-dynamic.spec.js +2 -2
  63. package/dist/collection/components/{picker-column → picker-column-legacy}/test/picker-column.spec.js +2 -2
  64. package/dist/collection/components/{picker-column → picker-column-legacy}/test/standalone/picker-column.e2e.js +3 -3
  65. package/dist/collection/components/{picker → picker-legacy}/picker.js +7 -5
  66. package/dist/collection/components/{picker → picker-legacy}/test/basic/picker.e2e.js +2 -2
  67. package/dist/collection/components/{picker → picker-legacy}/test/is-open/picker.e2e.js +4 -4
  68. package/dist/collection/components/{picker → picker-legacy}/test/picker-id.spec.js +5 -5
  69. package/dist/collection/components/{picker → picker-legacy}/test/trigger/picker.e2e.js +1 -1
  70. package/dist/collection/utils/gesture/gesture-controller.js +1 -1
  71. package/dist/collection/utils/overlays.js +11 -4
  72. package/dist/collection/utils/test/overlays/overlays-scroll-blocking.spec.js +65 -0
  73. package/dist/docs.json +32 -43
  74. package/dist/esm/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  75. package/dist/esm/{data-2b019469.js → data-44d9e816.js} +13 -41
  76. package/dist/esm/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  77. package/dist/esm/{index-ff313b19.js → index-32cbee52.js} +2 -2
  78. package/dist/esm/index.js +3 -3
  79. package/dist/esm/ion-action-sheet.entry.js +4 -4
  80. package/dist/esm/ion-alert.entry.js +4 -4
  81. package/dist/esm/ion-app_8.entry.js +2 -2
  82. package/dist/esm/ion-backdrop.entry.js +0 -12
  83. package/dist/esm/ion-datetime-button.entry.js +1 -1
  84. package/dist/esm/ion-datetime_3.entry.js +33 -65
  85. package/dist/esm/ion-item-option_3.entry.js +1 -1
  86. package/dist/esm/ion-loading.entry.js +2 -1
  87. package/dist/esm/ion-menu_3.entry.js +3 -3
  88. package/dist/esm/ion-modal.entry.js +3 -3
  89. package/dist/esm/ion-nav_2.entry.js +1 -1
  90. package/dist/esm/ion-picker-column-internal.entry.js +11 -7
  91. package/dist/esm/ion-popover.entry.js +2 -1
  92. package/dist/esm/ion-range.entry.js +1 -1
  93. package/dist/esm/ion-refresher_2.entry.js +3 -3
  94. package/dist/esm/ion-reorder_2.entry.js +1 -1
  95. package/dist/esm/ion-segment_2.entry.js +1 -1
  96. package/dist/esm/ion-select_3.entry.js +2 -1
  97. package/dist/esm/ion-toast.entry.js +2 -1
  98. package/dist/esm/ion-toggle.entry.js +1 -1
  99. package/dist/esm/ionic.js +1 -1
  100. package/dist/esm/loader.js +1 -1
  101. package/dist/esm/{overlays-6c9feb7e.js → overlays-789cd7a7.js} +11 -4
  102. package/dist/esm/{swipe-back-0f3bfc8e.js → swipe-back-cc4c2bcb.js} +2 -2
  103. package/dist/esm-es5/{button-active-ce5cba4c.js → button-active-5b0516e7.js} +1 -1
  104. package/dist/esm-es5/data-44d9e816.js +4 -0
  105. package/dist/esm-es5/{gesture-controller-0fa396c4.js → gesture-controller-3723db7c.js} +1 -1
  106. package/dist/esm-es5/{index-ff313b19.js → index-32cbee52.js} +1 -1
  107. package/dist/esm-es5/index.js +1 -1
  108. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  109. package/dist/esm-es5/ion-alert.entry.js +1 -1
  110. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  111. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  112. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  113. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  114. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  115. package/dist/esm-es5/ion-loading.entry.js +1 -1
  116. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  117. package/dist/esm-es5/ion-modal.entry.js +1 -1
  118. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  119. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  120. package/dist/esm-es5/ion-popover.entry.js +1 -1
  121. package/dist/esm-es5/ion-range.entry.js +1 -1
  122. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  123. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  124. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  125. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  126. package/dist/esm-es5/ion-toast.entry.js +1 -1
  127. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  128. package/dist/esm-es5/ionic.js +1 -1
  129. package/dist/esm-es5/loader.js +1 -1
  130. package/dist/esm-es5/overlays-789cd7a7.js +4 -0
  131. package/dist/esm-es5/swipe-back-cc4c2bcb.js +4 -0
  132. package/dist/html.html-data.json +2 -2
  133. package/dist/ionic/index.esm.js +1 -1
  134. package/dist/ionic/ionic.esm.js +1 -1
  135. package/dist/ionic/{p-67e644bd.system.entry.js → p-02d8fdba.system.entry.js} +1 -1
  136. package/dist/ionic/{p-f3c82f74.system.entry.js → p-06e6d235.system.entry.js} +2 -2
  137. package/dist/ionic/p-0c244faf.entry.js +4 -0
  138. package/dist/ionic/{p-e0b06b65.js → p-100ef961.js} +1 -1
  139. package/dist/ionic/p-17240d90.js +4 -0
  140. package/dist/ionic/p-1a368f2e.system.entry.js +4 -0
  141. package/dist/ionic/{p-34d2de14.system.entry.js → p-22813b28.system.entry.js} +1 -1
  142. package/dist/ionic/p-234b9617.system.entry.js +4 -0
  143. package/dist/ionic/p-25c34422.system.entry.js +4 -0
  144. package/dist/ionic/p-2804781b.entry.js +4 -0
  145. package/dist/ionic/p-29fe18ef.entry.js +4 -0
  146. package/dist/ionic/p-2ad38423.system.entry.js +4 -0
  147. package/dist/ionic/{p-7176cea3.entry.js → p-2ba9414e.entry.js} +1 -1
  148. package/dist/ionic/{p-fa8d4788.system.js → p-2e1794df.system.js} +1 -1
  149. package/dist/ionic/{p-e627ed84.js → p-302091ab.js} +1 -1
  150. package/dist/ionic/{p-67ed452a.system.entry.js → p-3f88eab8.system.entry.js} +1 -1
  151. package/dist/ionic/p-40903d34.system.js +1 -1
  152. package/dist/ionic/{p-0dc0d9b5.entry.js → p-477a182e.entry.js} +1 -1
  153. package/dist/ionic/{p-2743f9a7.system.entry.js → p-4c80afe1.system.entry.js} +1 -1
  154. package/dist/ionic/{p-377c636c.system.entry.js → p-4f3e2767.system.entry.js} +1 -1
  155. package/dist/ionic/{p-3de79805.entry.js → p-56224549.entry.js} +1 -1
  156. package/dist/ionic/{p-965677f1.entry.js → p-5ce11143.entry.js} +1 -1
  157. package/dist/ionic/{p-9e852ff1.system.js → p-6500b298.system.js} +1 -1
  158. package/dist/ionic/p-6893f6e4.entry.js +4 -0
  159. package/dist/ionic/{p-b2a74a72.entry.js → p-835e0346.entry.js} +1 -1
  160. package/dist/ionic/{p-39044fe6.system.entry.js → p-878c7aa5.system.entry.js} +1 -1
  161. package/dist/ionic/{p-c4c7fd8f.entry.js → p-8ad82eb3.entry.js} +1 -1
  162. package/dist/ionic/p-8b4ab236.entry.js +4 -0
  163. package/dist/ionic/{p-f37b4b79.entry.js → p-939d903b.entry.js} +1 -1
  164. package/dist/ionic/{p-6d812360.system.entry.js → p-966cf574.system.entry.js} +1 -1
  165. package/dist/ionic/p-992d3bad.entry.js +4 -0
  166. package/dist/ionic/{p-1cb5f2f8.system.entry.js → p-9b5301cc.system.entry.js} +1 -1
  167. package/dist/ionic/p-9c967a65.system.entry.js +4 -0
  168. package/dist/ionic/{p-8e1bded3.entry.js → p-9e6bf9ed.entry.js} +1 -1
  169. package/dist/ionic/{p-6e23777e.system.entry.js → p-a4cda7a8.system.entry.js} +1 -1
  170. package/dist/ionic/{p-09d142b3.system.js → p-a57f223c.system.js} +1 -1
  171. package/dist/ionic/{p-8b1be026.js → p-a7e2ac5c.js} +1 -1
  172. package/dist/ionic/{p-bed722c4.system.entry.js → p-b3e79338.system.entry.js} +1 -1
  173. package/dist/ionic/p-b4cbb736.js +4 -0
  174. package/dist/ionic/{p-4fa201a7.entry.js → p-b6a8588f.entry.js} +1 -1
  175. package/dist/ionic/p-b8c3f071.system.js +4 -0
  176. package/dist/ionic/{p-73411c1b.entry.js → p-c1229981.entry.js} +1 -1
  177. package/dist/ionic/{p-db5043df.system.entry.js → p-c31fc05f.system.entry.js} +1 -1
  178. package/dist/ionic/p-c56b6570.system.entry.js +4 -0
  179. package/dist/ionic/p-c59d068a.entry.js +4 -0
  180. package/dist/ionic/{p-a936d224.system.js → p-c7fd81ba.system.js} +1 -1
  181. package/dist/ionic/p-dc565ca3.js +4 -0
  182. package/dist/ionic/{p-deab76dc.entry.js → p-dd837fa8.entry.js} +1 -1
  183. package/dist/ionic/p-e88ed07f.system.js +4 -0
  184. package/dist/ionic/p-eb07ec1a.system.entry.js +4 -0
  185. package/dist/ionic/p-eb5697b5.system.js +4 -0
  186. package/dist/ionic/{p-3ce8c3e3.entry.js → p-ee800093.entry.js} +1 -1
  187. package/dist/ionic/p-f0559c5d.system.entry.js +4 -0
  188. package/dist/ionic/p-fdd22426.entry.js +4 -0
  189. package/dist/types/components/backdrop/backdrop.d.ts +0 -3
  190. package/dist/types/components/datetime/datetime.d.ts +0 -1
  191. package/dist/types/components/datetime/utils/manipulation.d.ts +15 -34
  192. package/dist/types/components/menu/menu.d.ts +1 -1
  193. package/dist/types/components/picker-column-internal/picker-column-internal.d.ts +4 -0
  194. package/dist/types/components/{picker-column → picker-column-legacy}/picker-column.d.ts +1 -1
  195. package/dist/types/components/{picker → picker-legacy}/picker.d.ts +1 -1
  196. package/dist/types/components.d.ts +138 -130
  197. package/dist/types/interface.d.ts +1 -1
  198. package/dist/types/utils/config.d.ts +2 -2
  199. package/dist/types/utils/gesture/gesture-controller.d.ts +1 -0
  200. package/dist/types/utils/overlays.d.ts +5 -2
  201. package/hydrate/index.js +62 -126
  202. package/package.json +1 -1
  203. package/components/ion-picker.d.ts +0 -11
  204. package/components/ion-picker.js +0 -307
  205. package/dist/collection/components/datetime/test/prefer-wheel/datetime.spec.js +0 -27
  206. package/dist/esm-es5/data-2b019469.js +0 -4
  207. package/dist/esm-es5/overlays-6c9feb7e.js +0 -4
  208. package/dist/esm-es5/swipe-back-0f3bfc8e.js +0 -4
  209. package/dist/ionic/p-0d8e9393.entry.js +0 -4
  210. package/dist/ionic/p-1108f9bf.system.entry.js +0 -4
  211. package/dist/ionic/p-18e01b30.system.entry.js +0 -4
  212. package/dist/ionic/p-1e5165db.system.entry.js +0 -4
  213. package/dist/ionic/p-264c16e9.entry.js +0 -4
  214. package/dist/ionic/p-297741bc.system.js +0 -4
  215. package/dist/ionic/p-4794e0ac.system.entry.js +0 -4
  216. package/dist/ionic/p-4dbac22d.entry.js +0 -4
  217. package/dist/ionic/p-598cdf16.js +0 -4
  218. package/dist/ionic/p-64296b15.entry.js +0 -4
  219. package/dist/ionic/p-800ef057.js +0 -4
  220. package/dist/ionic/p-8dbdb163.system.js +0 -4
  221. package/dist/ionic/p-97e31c0a.system.js +0 -4
  222. package/dist/ionic/p-a5c1e6ce.entry.js +0 -4
  223. package/dist/ionic/p-a9c3699b.system.entry.js +0 -4
  224. package/dist/ionic/p-b203659a.system.entry.js +0 -4
  225. package/dist/ionic/p-b91fe549.entry.js +0 -4
  226. package/dist/ionic/p-c919498d.entry.js +0 -4
  227. package/dist/ionic/p-cf425ec5.system.entry.js +0 -4
  228. package/dist/ionic/p-ddfc4ef4.system.entry.js +0 -4
  229. package/dist/ionic/p-e6b240a0.js +0 -4
  230. package/dist/ionic/p-f54ddd19.entry.js +0 -4
  231. /package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.ios.css +0 -0
  232. /package/dist/collection/components/{picker-column → picker-column-legacy}/picker-column.md.css +0 -0
  233. /package/dist/collection/components/{picker-column → picker-column-legacy}/test/test.utils.js +0 -0
  234. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.enter.js +0 -0
  235. /package/dist/collection/components/{picker → picker-legacy}/animations/ios.leave.js +0 -0
  236. /package/dist/collection/components/{picker → picker-legacy}/picker-interface.js +0 -0
  237. /package/dist/collection/components/{picker → picker-legacy}/picker.ios.css +0 -0
  238. /package/dist/collection/components/{picker → picker-legacy}/picker.md.css +0 -0
  239. /package/dist/types/components/{picker-column → picker-column-legacy}/test/test.utils.d.ts +0 -0
  240. /package/dist/types/components/{picker → picker-legacy}/animations/ios.enter.d.ts +0 -0
  241. /package/dist/types/components/{picker → picker-legacy}/animations/ios.leave.d.ts +0 -0
  242. /package/dist/types/components/{picker → picker-legacy}/picker-interface.d.ts +0 -0
@@ -0,0 +1,309 @@
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 } from './helpers.js';
6
+ import { c as createLockController } from './lock-controller.js';
7
+ import { p as printIonWarning } from './index6.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays.js';
9
+ import { g as getClassMap } from './theme.js';
10
+ import { b as getIonMode } from './ionic-global.js';
11
+ import { c as createAnimation } from './animation.js';
12
+ import { d as defineCustomElement$3 } from './backdrop.js';
13
+ import { d as defineCustomElement$2 } from './picker-column.js';
14
+
15
+ /**
16
+ * iOS Picker Enter Animation
17
+ */
18
+ const iosEnterAnimation = (baseEl) => {
19
+ const baseAnimation = createAnimation();
20
+ const backdropAnimation = createAnimation();
21
+ const wrapperAnimation = createAnimation();
22
+ backdropAnimation
23
+ .addElement(baseEl.querySelector('ion-backdrop'))
24
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
25
+ .beforeStyles({
26
+ 'pointer-events': 'none',
27
+ })
28
+ .afterClearStyles(['pointer-events']);
29
+ wrapperAnimation
30
+ .addElement(baseEl.querySelector('.picker-wrapper'))
31
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
32
+ return baseAnimation
33
+ .addElement(baseEl)
34
+ .easing('cubic-bezier(.36,.66,.04,1)')
35
+ .duration(400)
36
+ .addAnimation([backdropAnimation, wrapperAnimation]);
37
+ };
38
+
39
+ /**
40
+ * iOS Picker Leave Animation
41
+ */
42
+ const iosLeaveAnimation = (baseEl) => {
43
+ const baseAnimation = createAnimation();
44
+ const backdropAnimation = createAnimation();
45
+ const wrapperAnimation = createAnimation();
46
+ backdropAnimation
47
+ .addElement(baseEl.querySelector('ion-backdrop'))
48
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
49
+ wrapperAnimation
50
+ .addElement(baseEl.querySelector('.picker-wrapper'))
51
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
52
+ return baseAnimation
53
+ .addElement(baseEl)
54
+ .easing('cubic-bezier(.36,.66,.04,1)')
55
+ .duration(400)
56
+ .addAnimation([backdropAnimation, wrapperAnimation]);
57
+ };
58
+
59
+ const pickerIosCss = ".sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-ios-h{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h,[dir=rtl] .sc-ion-picker-legacy-ios-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-ios-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-above-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-ios{left:0}[dir=rtl].sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios,[dir=rtl] .sc-ion-picker-legacy-ios-h .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-ios .picker-below-highlight.sc-ion-picker-legacy-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-ios:dir(rtl){left:unset;right:unset;right:0}}}";
60
+
61
+ const pickerMdCss = ".sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}@supports (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){.sc-ion-picker-legacy-md-h{left:0}[dir=rtl].sc-ion-picker-legacy-md-h,[dir=rtl] .sc-ion-picker-legacy-md-h{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.sc-ion-picker-legacy-md-h:dir(rtl){left:unset;right:unset;right:0}}}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}@supports (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-above-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-above-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-above-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}@supports (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}}@supports not (inset-inline-start: 0){.picker-below-highlight.sc-ion-picker-legacy-md{left:0}[dir=rtl].sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md,[dir=rtl] .sc-ion-picker-legacy-md-h .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}[dir=rtl].sc-ion-picker-legacy-md .picker-below-highlight.sc-ion-picker-legacy-md{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.picker-below-highlight.sc-ion-picker-legacy-md:dir(rtl){left:unset;right:unset;right:0}}}";
62
+
63
+ const Picker = /*@__PURE__*/ proxyCustomElement(class Picker extends HTMLElement {
64
+ constructor() {
65
+ super();
66
+ this.__registerHost();
67
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
68
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
69
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
70
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
71
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
72
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
73
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
74
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
75
+ this.delegateController = createDelegateController(this);
76
+ this.lockController = createLockController();
77
+ this.triggerController = createTriggerController();
78
+ this.onBackdropTap = () => {
79
+ this.dismiss(undefined, BACKDROP);
80
+ };
81
+ this.dispatchCancelHandler = (ev) => {
82
+ const role = ev.detail.role;
83
+ if (isCancel(role)) {
84
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
85
+ this.callButtonHandler(cancelButton);
86
+ }
87
+ };
88
+ this.presented = false;
89
+ this.overlayIndex = undefined;
90
+ this.delegate = undefined;
91
+ this.hasController = false;
92
+ this.keyboardClose = true;
93
+ this.enterAnimation = undefined;
94
+ this.leaveAnimation = undefined;
95
+ this.buttons = [];
96
+ this.columns = [];
97
+ this.cssClass = undefined;
98
+ this.duration = 0;
99
+ this.showBackdrop = true;
100
+ this.backdropDismiss = true;
101
+ this.animated = true;
102
+ this.htmlAttributes = undefined;
103
+ this.isOpen = false;
104
+ this.trigger = undefined;
105
+ }
106
+ onIsOpenChange(newValue, oldValue) {
107
+ if (newValue === true && oldValue === false) {
108
+ this.present();
109
+ }
110
+ else if (newValue === false && oldValue === true) {
111
+ this.dismiss();
112
+ }
113
+ }
114
+ triggerChanged() {
115
+ const { trigger, el, triggerController } = this;
116
+ if (trigger) {
117
+ triggerController.addClickListener(el, trigger);
118
+ }
119
+ }
120
+ connectedCallback() {
121
+ prepareOverlay(this.el);
122
+ this.triggerChanged();
123
+ }
124
+ disconnectedCallback() {
125
+ this.triggerController.removeClickListener();
126
+ }
127
+ componentWillLoad() {
128
+ setOverlayId(this.el);
129
+ }
130
+ componentDidLoad() {
131
+ printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor 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);
132
+ /**
133
+ * If picker was rendered with isOpen="true"
134
+ * then we should open picker immediately.
135
+ */
136
+ if (this.isOpen === true) {
137
+ raf(() => this.present());
138
+ }
139
+ }
140
+ /**
141
+ * Present the picker overlay after it has been created.
142
+ */
143
+ async present() {
144
+ const unlock = await this.lockController.lock();
145
+ await this.delegateController.attachViewToDom();
146
+ await present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, undefined);
147
+ if (this.duration > 0) {
148
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
149
+ }
150
+ unlock();
151
+ }
152
+ /**
153
+ * Dismiss the picker overlay after it has been presented.
154
+ *
155
+ * @param data Any data to emit in the dismiss events.
156
+ * @param role The role of the element that is dismissing the picker.
157
+ * This can be useful in a button handler for determining which button was
158
+ * clicked to dismiss the picker.
159
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
160
+ */
161
+ async dismiss(data, role) {
162
+ const unlock = await this.lockController.lock();
163
+ if (this.durationTimeout) {
164
+ clearTimeout(this.durationTimeout);
165
+ }
166
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation, iosLeaveAnimation);
167
+ if (dismissed) {
168
+ this.delegateController.removeViewFromDom();
169
+ }
170
+ unlock();
171
+ return dismissed;
172
+ }
173
+ /**
174
+ * Returns a promise that resolves when the picker did dismiss.
175
+ */
176
+ onDidDismiss() {
177
+ return eventMethod(this.el, 'ionPickerDidDismiss');
178
+ }
179
+ /**
180
+ * Returns a promise that resolves when the picker will dismiss.
181
+ */
182
+ onWillDismiss() {
183
+ return eventMethod(this.el, 'ionPickerWillDismiss');
184
+ }
185
+ /**
186
+ * Get the column that matches the specified name.
187
+ *
188
+ * @param name The name of the column.
189
+ */
190
+ getColumn(name) {
191
+ return Promise.resolve(this.columns.find((column) => column.name === name));
192
+ }
193
+ async buttonClick(button) {
194
+ const role = button.role;
195
+ if (isCancel(role)) {
196
+ return this.dismiss(undefined, role);
197
+ }
198
+ const shouldDismiss = await this.callButtonHandler(button);
199
+ if (shouldDismiss) {
200
+ return this.dismiss(this.getSelected(), button.role);
201
+ }
202
+ return Promise.resolve();
203
+ }
204
+ async callButtonHandler(button) {
205
+ if (button) {
206
+ // a handler has been provided, execute it
207
+ // pass the handler the values from the inputs
208
+ const rtn = await safeCall(button.handler, this.getSelected());
209
+ if (rtn === false) {
210
+ // if the return value of the handler is false then do not dismiss
211
+ return false;
212
+ }
213
+ }
214
+ return true;
215
+ }
216
+ getSelected() {
217
+ const selected = {};
218
+ this.columns.forEach((col, index) => {
219
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
220
+ selected[col.name] = {
221
+ text: selectedColumn ? selectedColumn.text : undefined,
222
+ value: selectedColumn ? selectedColumn.value : undefined,
223
+ columnIndex: index,
224
+ };
225
+ });
226
+ return selected;
227
+ }
228
+ render() {
229
+ const { htmlAttributes } = this;
230
+ const mode = getIonMode(this);
231
+ return (h(Host, Object.assign({ "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
232
+ zIndex: `${20000 + this.overlayIndex}`,
233
+ }, class: Object.assign({ [mode]: true,
234
+ // Used internally for styling
235
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { 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", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
236
+ }
237
+ get el() { return this; }
238
+ static get watchers() { return {
239
+ "isOpen": ["onIsOpenChange"],
240
+ "trigger": ["triggerChanged"]
241
+ }; }
242
+ static get style() { return {
243
+ ios: pickerIosCss,
244
+ md: pickerMdCss
245
+ }; }
246
+ }, [34, "ion-picker-legacy", {
247
+ "overlayIndex": [2, "overlay-index"],
248
+ "delegate": [16],
249
+ "hasController": [4, "has-controller"],
250
+ "keyboardClose": [4, "keyboard-close"],
251
+ "enterAnimation": [16],
252
+ "leaveAnimation": [16],
253
+ "buttons": [16],
254
+ "columns": [16],
255
+ "cssClass": [1, "css-class"],
256
+ "duration": [2],
257
+ "showBackdrop": [4, "show-backdrop"],
258
+ "backdropDismiss": [4, "backdrop-dismiss"],
259
+ "animated": [4],
260
+ "htmlAttributes": [16],
261
+ "isOpen": [4, "is-open"],
262
+ "trigger": [1],
263
+ "presented": [32],
264
+ "present": [64],
265
+ "dismiss": [64],
266
+ "onDidDismiss": [64],
267
+ "onWillDismiss": [64],
268
+ "getColumn": [64]
269
+ }, undefined, {
270
+ "isOpen": ["onIsOpenChange"],
271
+ "trigger": ["triggerChanged"]
272
+ }]);
273
+ const buttonWrapperClass = (button) => {
274
+ return {
275
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
276
+ 'picker-toolbar-button': true,
277
+ };
278
+ };
279
+ const buttonClass = (button) => {
280
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
281
+ };
282
+ function defineCustomElement$1() {
283
+ if (typeof customElements === "undefined") {
284
+ return;
285
+ }
286
+ const components = ["ion-picker-legacy", "ion-backdrop", "ion-picker-legacy-column"];
287
+ components.forEach(tagName => { switch (tagName) {
288
+ case "ion-picker-legacy":
289
+ if (!customElements.get(tagName)) {
290
+ customElements.define(tagName, Picker);
291
+ }
292
+ break;
293
+ case "ion-backdrop":
294
+ if (!customElements.get(tagName)) {
295
+ defineCustomElement$3();
296
+ }
297
+ break;
298
+ case "ion-picker-legacy-column":
299
+ if (!customElements.get(tagName)) {
300
+ defineCustomElement$2();
301
+ }
302
+ break;
303
+ } });
304
+ }
305
+
306
+ const IonPickerLegacy = Picker;
307
+ const defineCustomElement = defineCustomElement$1;
308
+
309
+ export { IonPickerLegacy, defineCustomElement };
@@ -4,6 +4,7 @@
4
4
  import { d as doc } from './index5.js';
5
5
  import { b as getIonMode, c as config } from './ionic-global.js';
6
6
  import { C as CoreDelegate } from './framework-delegate.js';
7
+ import { B as BACKDROP_NO_SCROLL } from './gesture-controller.js';
7
8
  import { OVERLAY_BACK_BUTTON_PRIORITY } from './hardware-back-button.js';
8
9
  import { c as componentOnReady, f as focusElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
9
10
  import { p as printIonWarning } from './index6.js';
@@ -28,7 +29,10 @@ const alertController = /*@__PURE__*/ createController('ion-alert');
28
29
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
29
30
  const loadingController = /*@__PURE__*/ createController('ion-loading');
30
31
  const modalController = /*@__PURE__*/ createController('ion-modal');
31
- const pickerController = /*@__PURE__*/ createController('ion-picker');
32
+ /**
33
+ * @deprecated Use the inline ion-picker component instead.
34
+ */
35
+ const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
32
36
  const popoverController = /*@__PURE__*/ createController('ion-popover');
33
37
  const toastController = /*@__PURE__*/ createController('ion-toast');
34
38
  /**
@@ -138,7 +142,7 @@ const focusLastDescendant = (ref, overlay) => {
138
142
  * Should NOT include: Toast
139
143
  */
140
144
  const trapKeyboardFocus = (ev, doc) => {
141
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover');
145
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
142
146
  const target = ev.target;
143
147
  /**
144
148
  * If no active overlay, ignore this event.
@@ -323,7 +327,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
323
327
  */
324
328
  const getOverlays = (doc, selector) => {
325
329
  if (selector === undefined) {
326
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast';
330
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
327
331
  }
328
332
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
329
333
  };
@@ -389,6 +393,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
389
393
  return;
390
394
  }
391
395
  setRootAriaHidden(true);
396
+ document.body.classList.add(BACKDROP_NO_SCROLL);
392
397
  overlay.presented = true;
393
398
  overlay.willPresent.emit();
394
399
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -451,12 +456,14 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
451
456
  if (!overlay.presented) {
452
457
  return false;
453
458
  }
459
+ const lastOverlay = doc !== undefined && getPresentedOverlays(doc).length === 1;
454
460
  /**
455
461
  * If this is the last visible overlay then
456
462
  * we want to re-add the root to the accessibility tree.
457
463
  */
458
- if (doc !== undefined && getPresentedOverlays(doc).length === 1) {
464
+ if (lastOverlay) {
459
465
  setRootAriaHidden(false);
466
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
460
467
  }
461
468
  overlay.presented = false;
462
469
  try {
@@ -7,9 +7,9 @@ import { a as hapticSelectionStart, b as hapticSelectionChanged, h as hapticSele
7
7
  import { a as isPlatform, b as getIonMode } from './ionic-global.js';
8
8
  import { c as createColorClasses } from './theme.js';
9
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.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.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)}}";
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
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.picker-item-disabled{scroll-snap-align:none;cursor:default}:host .picker-item.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)}";
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
13
 
14
14
  const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumnInternal extends HTMLElement {
15
15
  constructor() {
@@ -225,6 +225,7 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
225
225
  this.el.classList.remove('picker-column-active');
226
226
  };
227
227
  this.isActive = false;
228
+ this.disabled = false;
228
229
  this.items = [];
229
230
  this.value = undefined;
230
231
  this.color = 'primary';
@@ -322,10 +323,13 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
322
323
  }
323
324
  }
324
325
  get activeItem() {
325
- return getElementRoot(this.el).querySelector(`.picker-item[data-value="${this.value}"]:not([disabled])`);
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);
326
330
  }
327
331
  render() {
328
- const { items, color, isActive, numericInput } = this;
332
+ const { items, color, disabled: pickerDisabled, isActive, numericInput } = this;
329
333
  const mode = getIonMode(this);
330
334
  /**
331
335
  * exportparts is needed so ion-datetime can expose the parts
@@ -333,17 +337,17 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
333
337
  * the attribute can be moved to datetime.tsx and set on every
334
338
  * instance of ion-picker-column-internal there instead.
335
339
  */
336
- return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, tabindex: 0, class: createColorClasses(color, {
340
+ return (h(Host, { exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
337
341
  [mode]: true,
338
342
  ['picker-column-active']: isActive,
339
343
  ['picker-column-numeric-input']: numericInput,
340
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;
341
346
  return (h("button", { tabindex: "-1", class: {
342
347
  'picker-item': true,
343
- 'picker-item-disabled': item.disabled || false,
344
348
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
345
349
  this.centerPickerItemInView(ev.target, true);
346
- }, disabled: item.disabled, part: PICKER_ITEM_PART }, item.text));
350
+ }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
347
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")));
348
352
  }
349
353
  get el() { return this; }
@@ -355,6 +359,7 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
355
359
  md: pickerColumnInternalMdCss
356
360
  }; }
357
361
  }, [33, "ion-picker-column-internal", {
362
+ "disabled": [4],
358
363
  "items": [16],
359
364
  "value": [1032],
360
365
  "color": [513],
@@ -353,7 +353,7 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
353
353
  ios: pickerColumnIosCss,
354
354
  md: pickerColumnMdCss
355
355
  }; }
356
- }, [32, "ion-picker-column", {
356
+ }, [32, "ion-picker-legacy-column", {
357
357
  "col": [16]
358
358
  }, undefined, {
359
359
  "col": ["colChanged"]
@@ -366,9 +366,9 @@ function defineCustomElement() {
366
366
  if (typeof customElements === "undefined") {
367
367
  return;
368
368
  }
369
- const components = ["ion-picker-column"];
369
+ const components = ["ion-picker-legacy-column"];
370
370
  components.forEach(tagName => { switch (tagName) {
371
- case "ion-picker-column":
371
+ case "ion-picker-legacy-column":
372
372
  if (!customElements.get(tagName)) {
373
373
  customElements.define(tagName, PickerColumnCmp);
374
374
  }
@@ -5,7 +5,7 @@
5
5
 
6
6
  const index$1 = require('./index-c2940dc1.js');
7
7
  const haptic = require('./haptic-678abc9f.js');
8
- const index = require('./index-0ee995e4.js');
8
+ const index = require('./index-0f8b33f8.js');
9
9
 
10
10
  const createButtonActiveGesture = (el, isButton) => {
11
11
  let currentTouchedButton;
@@ -718,60 +718,32 @@ const validateParts = (parts, minParts, maxParts) => {
718
718
  * Returns the closest date to refParts
719
719
  * that also meets the constraints of
720
720
  * the *Values params.
721
+ * @param refParts The reference date
722
+ * @param monthValues The allowed month values
723
+ * @param dayValues The allowed day (of the month) values
724
+ * @param yearValues The allowed year values
725
+ * @param hourValues The allowed hour values
726
+ * @param minuteValues The allowed minute values
721
727
  */
722
- const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hourValues, minuteValues, minParts, maxParts, }) => {
728
+ const getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourValues, minuteValues) => {
723
729
  const { hour, minute, day, month, year } = refParts;
724
- const copyParts = clampDate(Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined }), minParts, maxParts);
730
+ const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
725
731
  if (monthValues !== undefined) {
726
- // Filters out months that are out of the min/max bounds
727
- const filteredMonths = monthValues.filter((month) => !(minParts !== undefined && month < minParts.month) && !(maxParts !== undefined && month > maxParts.month));
728
- copyParts.month = findClosestValue(month, filteredMonths);
732
+ copyParts.month = findClosestValue(month, monthValues);
729
733
  }
730
734
  // Day is nullable but cannot be undefined
731
735
  if (day !== null && dayValues !== undefined) {
732
- // Filters out days that are out of the min/max bounds
733
- const filteredDays = dayValues.filter((day) => {
734
- if (minParts && isBefore(Object.assign(Object.assign({}, copyParts), { day }), minParts)) {
735
- return false;
736
- }
737
- if (maxParts && isAfter(Object.assign(Object.assign({}, copyParts), { day }), maxParts)) {
738
- return false;
739
- }
740
- return true;
741
- });
742
- copyParts.day = findClosestValue(day, filteredDays);
736
+ copyParts.day = findClosestValue(day, dayValues);
743
737
  }
744
738
  if (yearValues !== undefined) {
745
- // Filters out years that are out of the min/max bounds
746
- const filteredYears = yearValues.filter((year) => !(minParts !== undefined && year < minParts.year) && !(maxParts !== undefined && year > maxParts.year));
747
- copyParts.year = findClosestValue(year, filteredYears);
739
+ copyParts.year = findClosestValue(year, yearValues);
748
740
  }
749
741
  if (hour !== undefined && hourValues !== undefined) {
750
- // Filters out hours that are out of the min/max bounds
751
- const filteredHours = hourValues.filter((hour) => {
752
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.hour) !== undefined && isSameDay(copyParts, minParts) && hour < minParts.hour) {
753
- return false;
754
- }
755
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.hour) !== undefined && isSameDay(copyParts, maxParts) && hour > maxParts.hour) {
756
- return false;
757
- }
758
- return true;
759
- });
760
- copyParts.hour = findClosestValue(hour, filteredHours);
742
+ copyParts.hour = findClosestValue(hour, hourValues);
761
743
  copyParts.ampm = parseAmPm(copyParts.hour);
762
744
  }
763
745
  if (minute !== undefined && minuteValues !== undefined) {
764
- // Filters out minutes that are out of the min/max bounds
765
- const filteredMinutes = minuteValues.filter((minute) => {
766
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.minute) !== undefined && isSameDay(copyParts, minParts) && minute < minParts.minute) {
767
- return false;
768
- }
769
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.minute) !== undefined && isSameDay(copyParts, maxParts) && minute > maxParts.minute) {
770
- return false;
771
- }
772
- return true;
773
- });
774
- copyParts.minute = findClosestValue(minute, filteredMinutes);
746
+ copyParts.minute = findClosestValue(minute, minuteValues);
775
747
  }
776
748
  return copyParts;
777
749
  };
@@ -194,4 +194,5 @@ class BlockerDelegate {
194
194
  const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
195
195
  const GESTURE_CONTROLLER = new GestureController();
196
196
 
197
+ exports.BACKDROP_NO_SCROLL = BACKDROP_NO_SCROLL;
197
198
  exports.GESTURE_CONTROLLER = GESTURE_CONTROLLER;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const gestureController = require('./gesture-controller-b46721be.js');
6
+ const gestureController = require('./gesture-controller-d6a3f907.js');
7
7
 
8
8
  const addEventListener = (el, // TODO(FW-2832): type
9
9
  eventName, callback, opts) => {
@@ -10,16 +10,16 @@ const index = require('./index-573877f3.js');
10
10
  const ios_transition = require('./ios.transition-ac909bc8.js');
11
11
  const md_transition = require('./md.transition-907af519.js');
12
12
  const cubicBezier = require('./cubic-bezier-6b9222ad.js');
13
- const index$1 = require('./index-0ee995e4.js');
13
+ const index$1 = require('./index-0f8b33f8.js');
14
14
  const ionicGlobal = require('./ionic-global-ea2901a3.js');
15
15
  const helpers = require('./helpers-ea4ccbcb.js');
16
16
  const config = require('./config-d5882735.js');
17
17
  const theme = require('./theme-fbc56b3b.js');
18
18
  const index$2 = require('./index-d7561763.js');
19
- const overlays = require('./overlays-2ffc5f27.js');
19
+ const overlays = require('./overlays-dbb71984.js');
20
20
  require('./index-306a7476.js');
21
21
  require('./index-c2940dc1.js');
22
- require('./gesture-controller-b46721be.js');
22
+ require('./gesture-controller-d6a3f907.js');
23
23
  require('./index-cc7dfb7c.js');
24
24
  require('./hardware-back-button-b67c8e75.js');
25
25
  require('./framework-delegate-c0873a6f.js');
@@ -6,18 +6,18 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-c2940dc1.js');
9
- const buttonActive = require('./button-active-af897e0e.js');
9
+ const buttonActive = require('./button-active-cd07b55b.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const lockController = require('./lock-controller-4ae2eb59.js');
12
- const overlays = require('./overlays-2ffc5f27.js');
12
+ const overlays = require('./overlays-dbb71984.js');
13
13
  const theme = require('./theme-fbc56b3b.js');
14
14
  const ionicGlobal = require('./ionic-global-ea2901a3.js');
15
15
  const animation = require('./animation-1083855c.js');
16
16
  require('./haptic-678abc9f.js');
17
17
  require('./capacitor-2ffba62a.js');
18
18
  require('./index-306a7476.js');
19
- require('./index-0ee995e4.js');
20
- require('./gesture-controller-b46721be.js');
19
+ require('./index-0f8b33f8.js');
20
+ require('./gesture-controller-d6a3f907.js');
21
21
  require('./framework-delegate-c0873a6f.js');
22
22
  require('./hardware-back-button-b67c8e75.js');
23
23
  require('./index-cc7dfb7c.js');
@@ -7,18 +7,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-c2940dc1.js');
9
9
  const config = require('./config-d5882735.js');
10
- const buttonActive = require('./button-active-af897e0e.js');
10
+ const buttonActive = require('./button-active-cd07b55b.js');
11
11
  const helpers = require('./helpers-ea4ccbcb.js');
12
12
  const lockController = require('./lock-controller-4ae2eb59.js');
13
- const overlays = require('./overlays-2ffc5f27.js');
13
+ const overlays = require('./overlays-dbb71984.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
15
  const ionicGlobal = require('./ionic-global-ea2901a3.js');
16
16
  const animation = require('./animation-1083855c.js');
17
17
  require('./haptic-678abc9f.js');
18
18
  require('./capacitor-2ffba62a.js');
19
19
  require('./index-306a7476.js');
20
- require('./index-0ee995e4.js');
21
- require('./gesture-controller-b46721be.js');
20
+ require('./index-0f8b33f8.js');
21
+ require('./gesture-controller-d6a3f907.js');
22
22
  require('./framework-delegate-c0873a6f.js');
23
23
  require('./hardware-back-button-b67c8e75.js');
24
24
  require('./index-cc7dfb7c.js');