@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
@@ -6,27 +6,27 @@ import { Picker } from "../picker";
6
6
  it('picker should be assigned an incrementing id', async () => {
7
7
  const page = await newSpecPage({
8
8
  components: [Picker],
9
- html: `<ion-picker is-open="true"></ion-picker>`,
9
+ html: `<ion-picker-legacy is-open="true"></ion-picker-legacy>`,
10
10
  });
11
11
  let picker;
12
- picker = page.body.querySelector('ion-picker');
12
+ picker = page.body.querySelector('ion-picker-legacy');
13
13
  expect(picker).not.toBe(null);
14
14
  expect(picker.getAttribute('id')).toBe('ion-overlay-1');
15
15
  // Remove the picker from the DOM
16
16
  picker.remove();
17
17
  await page.waitForChanges();
18
18
  // Create a new picker to verify the id is incremented
19
- picker = document.createElement('ion-picker');
19
+ picker = document.createElement('ion-picker-legacy');
20
20
  picker.isOpen = true;
21
21
  page.body.appendChild(picker);
22
22
  await page.waitForChanges();
23
- picker = page.body.querySelector('ion-picker');
23
+ picker = page.body.querySelector('ion-picker-legacy');
24
24
  expect(picker.getAttribute('id')).toBe('ion-overlay-2');
25
25
  // Presenting the same picker again should reuse the existing id
26
26
  picker.isOpen = false;
27
27
  await page.waitForChanges();
28
28
  picker.isOpen = true;
29
29
  await page.waitForChanges();
30
- picker = page.body.querySelector('ion-picker');
30
+ picker = page.body.querySelector('ion-picker-legacy');
31
31
  expect(picker.getAttribute('id')).toBe('ion-overlay-2');
32
32
  });
@@ -9,7 +9,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
10
  test.describe(title('picker: trigger'), () => {
11
11
  test.beforeEach(async ({ page }) => {
12
- await page.goto('/src/components/picker/test/trigger', config);
12
+ await page.goto('/src/components/picker-legacy/test/trigger', config);
13
13
  });
14
14
  test('should open the picker', async ({ page }) => {
15
15
  const ionPickerDidPresent = await page.spyOnEvent('ionPickerDidPresent');
@@ -189,5 +189,5 @@ class BlockerDelegate {
189
189
  this.ctrl = undefined;
190
190
  }
191
191
  }
192
- const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
192
+ export const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
193
193
  export const GESTURE_CONTROLLER = new GestureController();
@@ -5,6 +5,7 @@ import { doc } from "./browser/index";
5
5
  import { config } from "../global/config";
6
6
  import { getIonMode } from "../global/ionic-global";
7
7
  import { CoreDelegate } from "./framework-delegate";
8
+ import { BACKDROP_NO_SCROLL } from "./gesture/gesture-controller";
8
9
  import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
9
10
  import { addEventListener, componentOnReady, focusElement, getElementRoot, removeEventListener } from "./helpers";
10
11
  import { printIonWarning } from "./logging";
@@ -28,7 +29,10 @@ export const alertController = /*@__PURE__*/ createController('ion-alert');
28
29
  export const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
29
30
  export const loadingController = /*@__PURE__*/ createController('ion-loading');
30
31
  export const modalController = /*@__PURE__*/ createController('ion-modal');
31
- export const pickerController = /*@__PURE__*/ createController('ion-picker');
32
+ /**
33
+ * @deprecated Use the inline ion-picker component instead.
34
+ */
35
+ export const pickerController = /*@__PURE__*/ createController('ion-picker-legacy');
32
36
  export const popoverController = /*@__PURE__*/ createController('ion-popover');
33
37
  export 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 @@ export const dismissOverlay = (doc, data, role, overlayTag, id) => {
323
327
  */
324
328
  export 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 @@ export const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation
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 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
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 {
@@ -0,0 +1,65 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { newSpecPage } from "@stencil/core/testing";
5
+ import { Modal } from "../../../components/modal/modal";
6
+ describe('overlays: scroll blocking', () => {
7
+ it('should not block scroll when the overlay is created', async () => {
8
+ const page = await newSpecPage({
9
+ components: [Modal],
10
+ html: `
11
+ <ion-modal></ion-modal>
12
+ `,
13
+ });
14
+ const body = page.doc.querySelector('body');
15
+ expect(body).not.toHaveClass('backdrop-no-scroll');
16
+ });
17
+ it('should block scroll when the overlay is presented', async () => {
18
+ const page = await newSpecPage({
19
+ components: [Modal],
20
+ html: `
21
+ <ion-modal></ion-modal>
22
+ `,
23
+ });
24
+ const modal = page.body.querySelector('ion-modal');
25
+ const body = page.doc.querySelector('body');
26
+ await modal.present();
27
+ expect(body).toHaveClass('backdrop-no-scroll');
28
+ await modal.dismiss();
29
+ expect(body).not.toHaveClass('backdrop-no-scroll');
30
+ });
31
+ it('should not block scroll when the overlay is dismissed', async () => {
32
+ const page = await newSpecPage({
33
+ components: [Modal],
34
+ html: `
35
+ <ion-modal></ion-modal>
36
+ `,
37
+ });
38
+ const modal = page.body.querySelector('ion-modal');
39
+ const body = page.doc.querySelector('body');
40
+ await modal.present();
41
+ expect(body).toHaveClass('backdrop-no-scroll');
42
+ await modal.dismiss();
43
+ expect(body).not.toHaveClass('backdrop-no-scroll');
44
+ });
45
+ it('should not enable scroll until last overlay is dismissed', async () => {
46
+ const page = await newSpecPage({
47
+ components: [Modal],
48
+ html: `
49
+ <ion-modal id="one"></ion-modal>
50
+ <ion-modal id="two"></ion-modal>
51
+ `,
52
+ });
53
+ const modalOne = page.body.querySelector('#one');
54
+ const modalTwo = page.body.querySelector('#two');
55
+ const body = page.doc.querySelector('body');
56
+ await modalOne.present();
57
+ expect(body).toHaveClass('backdrop-no-scroll');
58
+ await modalTwo.present();
59
+ expect(body).toHaveClass('backdrop-no-scroll');
60
+ await modalOne.dismiss();
61
+ expect(body).toHaveClass('backdrop-no-scroll');
62
+ await modalTwo.dismiss();
63
+ expect(body).not.toHaveClass('backdrop-no-scroll');
64
+ });
65
+ });
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2023-11-21T21:26:53",
2
+ "timestamp": "2023-11-27T19:33:07",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.7.2",
@@ -2574,7 +2574,7 @@
2574
2574
  "ion-loading",
2575
2575
  "ion-menu",
2576
2576
  "ion-modal",
2577
- "ion-picker",
2577
+ "ion-picker-legacy",
2578
2578
  "ion-popover"
2579
2579
  ],
2580
2580
  "dependencies": [],
@@ -2594,7 +2594,7 @@
2594
2594
  "ion-modal": [
2595
2595
  "ion-backdrop"
2596
2596
  ],
2597
- "ion-picker": [
2597
+ "ion-picker-legacy": [
2598
2598
  "ion-backdrop"
2599
2599
  ],
2600
2600
  "ion-popover": [
@@ -7926,9 +7926,8 @@
7926
7926
  "ion-button",
7927
7927
  "ion-picker-internal",
7928
7928
  "ion-picker-column-internal",
7929
- "ion-item",
7930
- "ion-label",
7931
7929
  "ion-icon",
7930
+ "ion-ripple-effect",
7932
7931
  "ion-popover"
7933
7932
  ],
7934
7933
  "dependencyGraph": {
@@ -7937,19 +7936,13 @@
7937
7936
  "ion-button",
7938
7937
  "ion-picker-internal",
7939
7938
  "ion-picker-column-internal",
7940
- "ion-item",
7941
- "ion-label",
7942
7939
  "ion-icon",
7940
+ "ion-ripple-effect",
7943
7941
  "ion-popover"
7944
7942
  ],
7945
7943
  "ion-button": [
7946
7944
  "ion-ripple-effect"
7947
7945
  ],
7948
- "ion-item": [
7949
- "ion-icon",
7950
- "ion-ripple-effect",
7951
- "ion-note"
7952
- ],
7953
7946
  "ion-popover": [
7954
7947
  "ion-backdrop"
7955
7948
  ]
@@ -11964,7 +11957,6 @@
11964
11957
  }
11965
11958
  ],
11966
11959
  "dependents": [
11967
- "ion-datetime",
11968
11960
  "ion-select-popover"
11969
11961
  ],
11970
11962
  "dependencies": [
@@ -11978,9 +11970,6 @@
11978
11970
  "ion-ripple-effect",
11979
11971
  "ion-note"
11980
11972
  ],
11981
- "ion-datetime": [
11982
- "ion-item"
11983
- ],
11984
11973
  "ion-select-popover": [
11985
11974
  "ion-item"
11986
11975
  ]
@@ -12971,14 +12960,10 @@
12971
12960
  "slots": [],
12972
12961
  "parts": [],
12973
12962
  "dependents": [
12974
- "ion-datetime",
12975
12963
  "ion-select-popover"
12976
12964
  ],
12977
12965
  "dependencies": [],
12978
12966
  "dependencyGraph": {
12979
- "ion-datetime": [
12980
- "ion-label"
12981
- ],
12982
12967
  "ion-select-popover": [
12983
12968
  "ion-label"
12984
12969
  ]
@@ -17264,9 +17249,9 @@
17264
17249
  }
17265
17250
  },
17266
17251
  {
17267
- "filePath": "src/components/picker/picker.tsx",
17252
+ "filePath": "src/components/picker-legacy/picker.tsx",
17268
17253
  "encapsulation": "scoped",
17269
- "tag": "ion-picker",
17254
+ "tag": "ion-picker-legacy",
17270
17255
  "docs": "",
17271
17256
  "docsTags": [
17272
17257
  {
@@ -17330,7 +17315,7 @@
17330
17315
  "PickerButton": {
17331
17316
  "location": "import",
17332
17317
  "path": "./picker-interface",
17333
- "id": "src/components/picker/picker-interface.ts::PickerButton"
17318
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerButton"
17334
17319
  }
17335
17320
  }
17336
17321
  },
@@ -17357,7 +17342,7 @@
17357
17342
  "PickerColumn": {
17358
17343
  "location": "import",
17359
17344
  "path": "./picker-interface",
17360
- "id": "src/components/picker/picker-interface.ts::PickerColumn"
17345
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
17361
17346
  }
17362
17347
  }
17363
17348
  },
@@ -17694,7 +17679,7 @@
17694
17679
  "PickerColumn": {
17695
17680
  "location": "import",
17696
17681
  "path": "./picker-interface",
17697
- "id": "src/components/picker/picker-interface.ts::PickerColumn"
17682
+ "id": "src/components/picker-legacy/picker-interface.ts::PickerColumn"
17698
17683
  }
17699
17684
  },
17700
17685
  "return": "Promise<PickerColumn | undefined>"
@@ -18005,12 +17990,12 @@
18005
17990
  "dependents": [],
18006
17991
  "dependencies": [
18007
17992
  "ion-backdrop",
18008
- "ion-picker-column"
17993
+ "ion-picker-legacy-column"
18009
17994
  ],
18010
17995
  "dependencyGraph": {
18011
- "ion-picker": [
17996
+ "ion-picker-legacy": [
18012
17997
  "ion-backdrop",
18013
- "ion-picker-column"
17998
+ "ion-picker-legacy-column"
18014
17999
  ]
18015
18000
  }
18016
18001
  },
@@ -21238,6 +21223,7 @@
21238
21223
  "ion-button",
21239
21224
  "ion-card",
21240
21225
  "ion-chip",
21226
+ "ion-datetime",
21241
21227
  "ion-datetime-button",
21242
21228
  "ion-fab-button",
21243
21229
  "ion-item",
@@ -21267,6 +21253,9 @@
21267
21253
  "ion-chip": [
21268
21254
  "ion-ripple-effect"
21269
21255
  ],
21256
+ "ion-datetime": [
21257
+ "ion-ripple-effect"
21258
+ ],
21270
21259
  "ion-datetime-button": [
21271
21260
  "ion-ripple-effect"
21272
21261
  ],
@@ -29058,6 +29047,16 @@
29058
29047
  "docstring": "",
29059
29048
  "path": "src/components/datetime/datetime-interface.ts"
29060
29049
  },
29050
+ "src/components/picker-column-internal/picker-column-internal-interfaces.ts::PickerColumnItem": {
29051
+ "declaration": "export interface PickerColumnItem {\n text: string;\n value: string | number;\n disabled?: boolean;\n}",
29052
+ "docstring": "",
29053
+ "path": "src/components/picker-column-internal/picker-column-internal-interfaces.ts"
29054
+ },
29055
+ "src/components/picker-internal/picker-internal-interfaces.ts::PickerInternalChangeEventDetail": {
29056
+ "declaration": "export interface PickerInternalChangeEventDetail {\n useInputMode: boolean;\n inputModeColumn?: HTMLIonPickerColumnInternalElement;\n}",
29057
+ "docstring": "",
29058
+ "path": "src/components/picker-internal/picker-internal-interfaces.ts"
29059
+ },
29061
29060
  "src/components/spinner/spinner-configs.ts::SpinnerTypes": {
29062
29061
  "declaration": "\"bubbles\" | \"circles\" | \"circular\" | \"crescent\" | \"dots\" | \"lines\" | \"lines-small\" | \"lines-sharp\" | \"lines-sharp-small\"",
29063
29062
  "docstring": "",
@@ -29158,25 +29157,15 @@
29158
29157
  "docstring": "",
29159
29158
  "path": "src/components/router/utils/interface.ts"
29160
29159
  },
29161
- "src/components/picker/picker-interface.ts::PickerButton": {
29162
- "declaration": "export interface PickerButton {\n text?: string;\n role?: string;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void;\n}",
29163
- "docstring": "",
29164
- "path": "src/components/picker/picker-interface.ts"
29165
- },
29166
- "src/components/picker/picker-interface.ts::PickerColumn": {
29160
+ "src/components/picker-legacy/picker-interface.ts::PickerColumn": {
29167
29161
  "declaration": "export interface PickerColumn {\n name: string;\n align?: string;\n /**\n * Changing this value allows the initial value of a picker column to be set.\n */\n selectedIndex?: number;\n prevSelected?: number;\n prefix?: string;\n suffix?: string;\n options: PickerColumnOption[];\n cssClass?: string | string[];\n columnWidth?: string;\n prefixWidth?: string;\n suffixWidth?: string;\n optionsWidth?: string;\n}",
29168
29162
  "docstring": "",
29169
- "path": "src/components/picker/picker-interface.ts"
29170
- },
29171
- "src/components/picker-column-internal/picker-column-internal-interfaces.ts::PickerColumnItem": {
29172
- "declaration": "export interface PickerColumnItem {\n text: string;\n value: string | number;\n disabled?: boolean;\n}",
29173
- "docstring": "",
29174
- "path": "src/components/picker-column-internal/picker-column-internal-interfaces.ts"
29163
+ "path": "src/components/picker-legacy/picker-interface.ts"
29175
29164
  },
29176
- "src/components/picker-internal/picker-internal-interfaces.ts::PickerInternalChangeEventDetail": {
29177
- "declaration": "export interface PickerInternalChangeEventDetail {\n useInputMode: boolean;\n inputModeColumn?: HTMLIonPickerColumnInternalElement;\n}",
29165
+ "src/components/picker-legacy/picker-interface.ts::PickerButton": {
29166
+ "declaration": "export interface PickerButton {\n text?: string;\n role?: string;\n cssClass?: string | string[];\n handler?: (value: any) => boolean | void;\n}",
29178
29167
  "docstring": "",
29179
- "path": "src/components/picker-internal/picker-internal-interfaces.ts"
29168
+ "path": "src/components/picker-legacy/picker-interface.ts"
29180
29169
  },
29181
29170
  "src/components/popover/popover-interface.ts::TriggerAction": {
29182
29171
  "declaration": "export type TriggerAction = 'click' | 'hover' | 'context-menu';",
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { w as writeTask } from './index-7c9b1bca.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
6
- import { createGesture } from './index-ff313b19.js';
6
+ import { createGesture } from './index-32cbee52.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {
9
9
  let currentTouchedButton;
@@ -716,60 +716,32 @@ const validateParts = (parts, minParts, maxParts) => {
716
716
  * Returns the closest date to refParts
717
717
  * that also meets the constraints of
718
718
  * the *Values params.
719
+ * @param refParts The reference date
720
+ * @param monthValues The allowed month values
721
+ * @param dayValues The allowed day (of the month) values
722
+ * @param yearValues The allowed year values
723
+ * @param hourValues The allowed hour values
724
+ * @param minuteValues The allowed minute values
719
725
  */
720
- const getClosestValidDate = ({ refParts, monthValues, dayValues, yearValues, hourValues, minuteValues, minParts, maxParts, }) => {
726
+ const getClosestValidDate = (refParts, monthValues, dayValues, yearValues, hourValues, minuteValues) => {
721
727
  const { hour, minute, day, month, year } = refParts;
722
- const copyParts = clampDate(Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined }), minParts, maxParts);
728
+ const copyParts = Object.assign(Object.assign({}, refParts), { dayOfWeek: undefined });
723
729
  if (monthValues !== undefined) {
724
- // Filters out months that are out of the min/max bounds
725
- const filteredMonths = monthValues.filter((month) => !(minParts !== undefined && month < minParts.month) && !(maxParts !== undefined && month > maxParts.month));
726
- copyParts.month = findClosestValue(month, filteredMonths);
730
+ copyParts.month = findClosestValue(month, monthValues);
727
731
  }
728
732
  // Day is nullable but cannot be undefined
729
733
  if (day !== null && dayValues !== undefined) {
730
- // Filters out days that are out of the min/max bounds
731
- const filteredDays = dayValues.filter((day) => {
732
- if (minParts && isBefore(Object.assign(Object.assign({}, copyParts), { day }), minParts)) {
733
- return false;
734
- }
735
- if (maxParts && isAfter(Object.assign(Object.assign({}, copyParts), { day }), maxParts)) {
736
- return false;
737
- }
738
- return true;
739
- });
740
- copyParts.day = findClosestValue(day, filteredDays);
734
+ copyParts.day = findClosestValue(day, dayValues);
741
735
  }
742
736
  if (yearValues !== undefined) {
743
- // Filters out years that are out of the min/max bounds
744
- const filteredYears = yearValues.filter((year) => !(minParts !== undefined && year < minParts.year) && !(maxParts !== undefined && year > maxParts.year));
745
- copyParts.year = findClosestValue(year, filteredYears);
737
+ copyParts.year = findClosestValue(year, yearValues);
746
738
  }
747
739
  if (hour !== undefined && hourValues !== undefined) {
748
- // Filters out hours that are out of the min/max bounds
749
- const filteredHours = hourValues.filter((hour) => {
750
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.hour) !== undefined && isSameDay(copyParts, minParts) && hour < minParts.hour) {
751
- return false;
752
- }
753
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.hour) !== undefined && isSameDay(copyParts, maxParts) && hour > maxParts.hour) {
754
- return false;
755
- }
756
- return true;
757
- });
758
- copyParts.hour = findClosestValue(hour, filteredHours);
740
+ copyParts.hour = findClosestValue(hour, hourValues);
759
741
  copyParts.ampm = parseAmPm(copyParts.hour);
760
742
  }
761
743
  if (minute !== undefined && minuteValues !== undefined) {
762
- // Filters out minutes that are out of the min/max bounds
763
- const filteredMinutes = minuteValues.filter((minute) => {
764
- if ((minParts === null || minParts === void 0 ? void 0 : minParts.minute) !== undefined && isSameDay(copyParts, minParts) && minute < minParts.minute) {
765
- return false;
766
- }
767
- if ((maxParts === null || maxParts === void 0 ? void 0 : maxParts.minute) !== undefined && isSameDay(copyParts, maxParts) && minute > maxParts.minute) {
768
- return false;
769
- }
770
- return true;
771
- });
772
- copyParts.minute = findClosestValue(minute, filteredMinutes);
744
+ copyParts.minute = findClosestValue(minute, minuteValues);
773
745
  }
774
746
  return copyParts;
775
747
  };
@@ -192,4 +192,4 @@ class BlockerDelegate {
192
192
  const BACKDROP_NO_SCROLL = 'backdrop-no-scroll';
193
193
  const GESTURE_CONTROLLER = new GestureController();
194
194
 
195
- export { GESTURE_CONTROLLER as G };
195
+ export { BACKDROP_NO_SCROLL as B, GESTURE_CONTROLLER as G };
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
5
- export { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
4
+ import { G as GESTURE_CONTROLLER } from './gesture-controller-3723db7c.js';
5
+ export { G as GESTURE_CONTROLLER } from './gesture-controller-3723db7c.js';
6
6
 
7
7
  const addEventListener = (el, // TODO(FW-2832): type
8
8
  eventName, callback, opts) => {
package/dist/esm/index.js CHANGED
@@ -6,16 +6,16 @@ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL
6
6
  export { iosTransitionAnimation } from './ios.transition-1651c430.js';
7
7
  export { mdTransitionAnimation } from './md.transition-66f18369.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
9
- export { createGesture } from './index-ff313b19.js';
9
+ export { createGesture } from './index-32cbee52.js';
10
10
  export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-40e42e7f.js';
11
11
  export { c as componentOnReady } from './helpers-3379ba19.js';
12
12
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-96c9ace3.js';
13
13
  export { o as openURL } from './theme-17531cdf.js';
14
14
  export { m as menuController } from './index-0aa6e61f.js';
15
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-6c9feb7e.js';
15
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-789cd7a7.js';
16
16
  import './index-7a14ecec.js';
17
17
  import './index-7c9b1bca.js';
18
- import './gesture-controller-0fa396c4.js';
18
+ import './gesture-controller-3723db7c.js';
19
19
  import './index-595d62c9.js';
20
20
  import './hardware-back-button-39299f84.js';
21
21
  import './framework-delegate-aa433dea.js';
@@ -2,18 +2,18 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-7c9b1bca.js';
5
- import { c as createButtonActiveGesture } from './button-active-ce5cba4c.js';
5
+ import { c as createButtonActiveGesture } from './button-active-5b0516e7.js';
6
6
  import { r as raf } from './helpers-3379ba19.js';
7
7
  import { c as createLockController } from './lock-controller-e8c6c051.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-6c9feb7e.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-789cd7a7.js';
9
9
  import { g as getClassMap } from './theme-17531cdf.js';
10
10
  import { b as getIonMode } from './ionic-global-40e42e7f.js';
11
11
  import { c as createAnimation } from './animation-8aa13916.js';
12
12
  import './haptic-1243b917.js';
13
13
  import './capacitor-b4979570.js';
14
14
  import './index-7a14ecec.js';
15
- import './index-ff313b19.js';
16
- import './gesture-controller-0fa396c4.js';
15
+ import './index-32cbee52.js';
16
+ import './gesture-controller-3723db7c.js';
17
17
  import './framework-delegate-aa433dea.js';
18
18
  import './hardware-back-button-39299f84.js';
19
19
  import './index-595d62c9.js';
@@ -3,18 +3,18 @@
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-7c9b1bca.js';
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
6
- import { c as createButtonActiveGesture } from './button-active-ce5cba4c.js';
6
+ import { c as createButtonActiveGesture } from './button-active-5b0516e7.js';
7
7
  import { r as raf } from './helpers-3379ba19.js';
8
8
  import { c as createLockController } from './lock-controller-e8c6c051.js';
9
- 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-6c9feb7e.js';
9
+ 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-789cd7a7.js';
10
10
  import { g as getClassMap } from './theme-17531cdf.js';
11
11
  import { c as config, b as getIonMode } from './ionic-global-40e42e7f.js';
12
12
  import { c as createAnimation } from './animation-8aa13916.js';
13
13
  import './haptic-1243b917.js';
14
14
  import './capacitor-b4979570.js';
15
15
  import './index-7a14ecec.js';
16
- import './index-ff313b19.js';
17
- import './gesture-controller-0fa396c4.js';
16
+ import './index-32cbee52.js';
17
+ import './gesture-controller-3723db7c.js';
18
18
  import './framework-delegate-aa433dea.js';
19
19
  import './hardware-back-button-39299f84.js';
20
20
  import './index-595d62c9.js';
@@ -131,7 +131,7 @@ Buttons.style = {
131
131
  md: buttonsMdCss
132
132
  };
133
133
 
134
- const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}";
134
+ const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}";
135
135
 
136
136
  const Content = class {
137
137
  constructor(hostRef) {
@@ -1010,7 +1010,7 @@ const RouterOutlet = class {
1010
1010
  this.swipeHandler.onStart();
1011
1011
  }
1012
1012
  };
1013
- this.gesture = (await import('./swipe-back-0f3bfc8e.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1013
+ this.gesture = (await import('./swipe-back-cc4c2bcb.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1014
1014
  if (this.ani) {
1015
1015
  this.ani.onFinish(() => {
1016
1016
  this.gestureOrAnimationInProgress = false;
@@ -2,7 +2,6 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { r as registerInstance, d as createEvent, h, H as Host } from './index-7c9b1bca.js';
5
- import { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
6
5
  import { b as getIonMode } from './ionic-global-40e42e7f.js';
7
6
 
8
7
  const backdropIosCss = ":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}";
@@ -13,21 +12,10 @@ const Backdrop = class {
13
12
  constructor(hostRef) {
14
13
  registerInstance(this, hostRef);
15
14
  this.ionBackdropTap = createEvent(this, "ionBackdropTap", 7);
16
- this.blocker = GESTURE_CONTROLLER.createBlocker({
17
- disableScroll: true,
18
- });
19
15
  this.visible = true;
20
16
  this.tappable = true;
21
17
  this.stopPropagation = true;
22
18
  }
23
- connectedCallback() {
24
- if (this.stopPropagation) {
25
- this.blocker.block();
26
- }
27
- }
28
- disconnectedCallback() {
29
- this.blocker.unblock();
30
- }
31
19
  onMouseDown(ev) {
32
20
  this.emitTap(ev);
33
21
  }
@@ -6,7 +6,7 @@ import { a as addEventListener, c as componentOnReady } from './helpers-3379ba19
6
6
  import { a as printIonError } from './index-595d62c9.js';
7
7
  import { c as createColorClasses } from './theme-17531cdf.js';
8
8
  import { b as getIonMode } from './ionic-global-40e42e7f.js';
9
- import { q as parseDate, t as getToday, J as getHourCycle, S as getLocalizedDateTime, G as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data-2b019469.js';
9
+ import { q as parseDate, t as getToday, J as getHourCycle, S as getLocalizedDateTime, G as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data-44d9e816.js';
10
10
 
11
11
  const iosDatetimeButtonCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}";
12
12