@ionic/core 7.6.8-dev.11706715287.1950fa40 → 7.7.0

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 (346) hide show
  1. package/components/hardware-back-button.js +47 -3
  2. package/components/helpers.js +1 -1
  3. package/components/ion-app.js +12 -2
  4. package/components/ion-menu.js +9 -3
  5. package/components/ion-modal.js +6 -4
  6. package/components/ion-split-pane.js +11 -12
  7. package/components/overlays.js +30 -15
  8. package/dist/cjs/{animation-9b401d39.js → animation-fdab9de5.js} +1 -1
  9. package/dist/cjs/{form-controller-7d42a722.js → form-controller-7b90d7b7.js} +1 -1
  10. package/dist/cjs/{framework-delegate-1c29b14a.js → framework-delegate-a3e6d060.js} +1 -1
  11. package/dist/cjs/{hardware-back-button-76833cac.js → hardware-back-button-d23873bb.js} +48 -2
  12. package/dist/cjs/{helpers-76bb7efb.js → helpers-2e1028fa.js} +1 -1
  13. package/dist/cjs/{index-b4f986cd.js → index-10da82ce.js} +1 -1
  14. package/dist/cjs/{index-da15e99c.js → index-53d162b2.js} +1 -1
  15. package/dist/cjs/{index-fc6d268f.js → index-84351d21.js} +3 -3
  16. package/dist/cjs/{index-8aef188d.js → index-8c679cbf.js} +3 -3
  17. package/dist/cjs/index.cjs.js +9 -9
  18. package/dist/cjs/{input-shims-a23bb0f4.js → input-shims-6f804705.js} +2 -2
  19. package/dist/cjs/{input.utils-3d0166a2.js → input.utils-d693d18a.js} +1 -1
  20. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  21. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  22. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  23. package/dist/cjs/ion-app_8.cjs.entry.js +31 -22
  24. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  26. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  27. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  28. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  31. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  32. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  35. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-loading.cjs.entry.js +5 -5
  38. package/dist/cjs/ion-menu_3.cjs.entry.js +13 -8
  39. package/dist/cjs/ion-modal.cjs.entry.js +12 -10
  40. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  41. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-popover.cjs.entry.js +6 -6
  44. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  45. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  51. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  52. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  53. package/dist/cjs/ion-split-pane.cjs.entry.js +11 -12
  54. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  57. package/dist/cjs/ion-toast.cjs.entry.js +5 -5
  58. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  59. package/dist/cjs/ionic.cjs.js +1 -1
  60. package/dist/cjs/{ios.transition-2d1cf0c0.js → ios.transition-8e40c54e.js} +3 -3
  61. package/dist/cjs/loader.cjs.js +1 -1
  62. package/dist/cjs/{md.transition-bb342d2a.js → md.transition-597a2479.js} +3 -3
  63. package/dist/cjs/{notch-controller-9735e7ac.js → notch-controller-db0127c4.js} +1 -1
  64. package/dist/cjs/{overlays-62679ec5.js → overlays-c50bf3c1.js} +32 -16
  65. package/dist/cjs/{status-tap-5fa2bab5.js → status-tap-b0bfea34.js} +2 -2
  66. package/dist/cjs/{swipe-back-2a858bbd.js → swipe-back-8411f044.js} +1 -1
  67. package/dist/collection/components/app/app.js +12 -2
  68. package/dist/collection/components/menu/menu.js +8 -8
  69. package/dist/collection/components/modal/modal.js +6 -4
  70. package/dist/collection/components/split-pane/split-pane.js +11 -12
  71. package/dist/collection/utils/hardware-back-button.js +45 -2
  72. package/dist/collection/utils/helpers.js +1 -1
  73. package/dist/collection/utils/overlays.js +29 -13
  74. package/dist/collection/utils/test/hardware-back-button.spec.js +38 -0
  75. package/dist/docs.json +1 -6
  76. package/dist/esm/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  77. package/dist/esm/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  78. package/dist/esm/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  79. package/dist/esm/{hardware-back-button-b2bc76db.js → hardware-back-button-f42b9c80.js} +48 -3
  80. package/dist/esm/{helpers-ae653409.js → helpers-c0b9ca37.js} +1 -1
  81. package/dist/esm/{index-6546f0dd.js → index-48209844.js} +3 -3
  82. package/dist/esm/{index-8fac11d0.js → index-4b98143d.js} +3 -3
  83. package/dist/esm/{index-82eeb47f.js → index-d64f34ea.js} +1 -1
  84. package/dist/esm/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  85. package/dist/esm/index.js +9 -9
  86. package/dist/esm/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +2 -2
  87. package/dist/esm/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  88. package/dist/esm/ion-accordion_2.entry.js +1 -1
  89. package/dist/esm/ion-action-sheet.entry.js +5 -5
  90. package/dist/esm/ion-alert.entry.js +5 -5
  91. package/dist/esm/ion-app_8.entry.js +21 -12
  92. package/dist/esm/ion-back-button.entry.js +1 -1
  93. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  94. package/dist/esm/ion-button_2.entry.js +1 -1
  95. package/dist/esm/ion-card_5.entry.js +1 -1
  96. package/dist/esm/ion-checkbox.entry.js +2 -2
  97. package/dist/esm/ion-datetime-button.entry.js +1 -1
  98. package/dist/esm/ion-datetime_3.entry.js +5 -5
  99. package/dist/esm/ion-fab_3.entry.js +1 -1
  100. package/dist/esm/ion-img.entry.js +1 -1
  101. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  102. package/dist/esm/ion-input.entry.js +4 -4
  103. package/dist/esm/ion-item-option_3.entry.js +2 -2
  104. package/dist/esm/ion-item_8.entry.js +1 -1
  105. package/dist/esm/ion-loading.entry.js +5 -5
  106. package/dist/esm/ion-menu_3.entry.js +13 -8
  107. package/dist/esm/ion-modal.entry.js +12 -10
  108. package/dist/esm/ion-nav_2.entry.js +4 -4
  109. package/dist/esm/ion-picker-column-internal.entry.js +1 -1
  110. package/dist/esm/ion-picker-internal.entry.js +1 -1
  111. package/dist/esm/ion-popover.entry.js +6 -6
  112. package/dist/esm/ion-progress-bar.entry.js +1 -1
  113. package/dist/esm/ion-radio_2.entry.js +2 -2
  114. package/dist/esm/ion-range.entry.js +3 -3
  115. package/dist/esm/ion-refresher_2.entry.js +3 -3
  116. package/dist/esm/ion-reorder_2.entry.js +2 -2
  117. package/dist/esm/ion-route_4.entry.js +1 -1
  118. package/dist/esm/ion-searchbar.entry.js +1 -1
  119. package/dist/esm/ion-segment_2.entry.js +1 -1
  120. package/dist/esm/ion-select_3.entry.js +6 -6
  121. package/dist/esm/ion-split-pane.entry.js +11 -12
  122. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  123. package/dist/esm/ion-tab_2.entry.js +2 -2
  124. package/dist/esm/ion-textarea.entry.js +4 -4
  125. package/dist/esm/ion-toast.entry.js +5 -5
  126. package/dist/esm/ion-toggle.entry.js +2 -2
  127. package/dist/esm/ionic.js +1 -1
  128. package/dist/esm/{ios.transition-968faaad.js → ios.transition-7ff7381d.js} +3 -3
  129. package/dist/esm/loader.js +1 -1
  130. package/dist/esm/{md.transition-498898ac.js → md.transition-28a9a26b.js} +3 -3
  131. package/dist/esm/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  132. package/dist/esm/{overlays-4bb86b9c.js → overlays-3311e70e.js} +32 -17
  133. package/dist/esm/{status-tap-06b37f21.js → status-tap-2b335fb7.js} +2 -2
  134. package/dist/esm/{swipe-back-a6f386fc.js → swipe-back-c06602f2.js} +1 -1
  135. package/dist/esm-es5/{animation-dde8cc0d.js → animation-60dbdd13.js} +1 -1
  136. package/dist/esm-es5/{form-controller-548aa79c.js → form-controller-014aa89f.js} +1 -1
  137. package/dist/esm-es5/{framework-delegate-bc1fd82a.js → framework-delegate-fed7fe7c.js} +1 -1
  138. package/dist/esm-es5/hardware-back-button-f42b9c80.js +4 -0
  139. package/dist/esm-es5/helpers-c0b9ca37.js +4 -0
  140. package/dist/esm-es5/{index-6546f0dd.js → index-48209844.js} +1 -1
  141. package/dist/esm-es5/{index-8fac11d0.js → index-4b98143d.js} +1 -1
  142. package/dist/esm-es5/index-d64f34ea.js +4 -0
  143. package/dist/esm-es5/{index-b9e742e5.js → index-eb12ef92.js} +1 -1
  144. package/dist/esm-es5/index.js +1 -1
  145. package/dist/esm-es5/{input-shims-6539ce13.js → input-shims-b90ca55f.js} +1 -1
  146. package/dist/esm-es5/{input.utils-a5a2d164.js → input.utils-6e9b0046.js} +1 -1
  147. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  148. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  149. package/dist/esm-es5/ion-alert.entry.js +1 -1
  150. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  151. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  152. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  153. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  154. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  155. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  156. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  157. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  158. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  159. package/dist/esm-es5/ion-img.entry.js +1 -1
  160. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  161. package/dist/esm-es5/ion-input.entry.js +1 -1
  162. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  163. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  164. package/dist/esm-es5/ion-loading.entry.js +1 -1
  165. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  166. package/dist/esm-es5/ion-modal.entry.js +1 -1
  167. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  169. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  170. package/dist/esm-es5/ion-popover.entry.js +1 -1
  171. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  172. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-range.entry.js +1 -1
  174. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  176. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  177. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  178. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  179. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  181. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  184. package/dist/esm-es5/ion-toast.entry.js +1 -1
  185. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  186. package/dist/esm-es5/ionic.js +1 -1
  187. package/dist/esm-es5/{ios.transition-968faaad.js → ios.transition-7ff7381d.js} +1 -1
  188. package/dist/esm-es5/loader.js +1 -1
  189. package/dist/esm-es5/md.transition-28a9a26b.js +4 -0
  190. package/dist/esm-es5/{notch-controller-fea7f9c5.js → notch-controller-15d281a4.js} +1 -1
  191. package/dist/esm-es5/overlays-3311e70e.js +4 -0
  192. package/dist/esm-es5/{status-tap-06b37f21.js → status-tap-2b335fb7.js} +1 -1
  193. package/dist/esm-es5/{swipe-back-a6f386fc.js → swipe-back-c06602f2.js} +1 -1
  194. package/dist/ionic/index.esm.js +1 -1
  195. package/dist/ionic/ionic.esm.js +1 -1
  196. package/dist/ionic/p-001010b6.system.js +4 -0
  197. package/dist/ionic/{p-f318e213.system.entry.js → p-078fd095.system.entry.js} +1 -1
  198. package/dist/ionic/{p-42f11f58.system.entry.js → p-0ae25399.system.entry.js} +1 -1
  199. package/dist/ionic/p-0b955124.system.js +1 -1
  200. package/dist/ionic/{p-42b4b9a2.system.entry.js → p-0e29919c.system.entry.js} +1 -1
  201. package/dist/ionic/{p-0274f779.system.entry.js → p-0eef8b34.system.entry.js} +1 -1
  202. package/dist/ionic/p-0f1f0519.system.entry.js +4 -0
  203. package/dist/ionic/{p-70684fef.system.entry.js → p-0fd295ef.system.entry.js} +1 -1
  204. package/dist/ionic/{p-9e09d6d3.entry.js → p-108f730a.entry.js} +1 -1
  205. package/dist/ionic/p-1172fd73.system.entry.js +4 -0
  206. package/dist/ionic/{p-b4db67d7.entry.js → p-1c531ca2.entry.js} +1 -1
  207. package/dist/ionic/{p-8642d042.system.entry.js → p-1d72ecba.system.entry.js} +1 -1
  208. package/dist/ionic/{p-3e273305.system.entry.js → p-1f6cdf2c.system.entry.js} +1 -1
  209. package/dist/ionic/{p-99fe3df1.system.entry.js → p-20f7a91e.system.entry.js} +1 -1
  210. package/dist/ionic/{p-487be9e8.system.js → p-25b08bc4.system.js} +1 -1
  211. package/dist/ionic/{p-2f7c7dc9.entry.js → p-2da0a76c.entry.js} +1 -1
  212. package/dist/ionic/{p-ac19cc2f.system.entry.js → p-2e344096.system.entry.js} +1 -1
  213. package/dist/ionic/{p-42dd5fb5.system.entry.js → p-2f66e177.system.entry.js} +1 -1
  214. package/dist/ionic/p-30d77a91.system.js +4 -0
  215. package/dist/ionic/{p-376a6063.js → p-31c495c2.js} +1 -1
  216. package/dist/ionic/p-324dafd3.entry.js +4 -0
  217. package/dist/ionic/{p-cabad15b.system.js → p-37c33319.system.js} +1 -1
  218. package/dist/ionic/{p-c191ba05.system.entry.js → p-389ff4d2.system.entry.js} +1 -1
  219. package/dist/ionic/{p-5d843dac.system.entry.js → p-3a54c070.system.entry.js} +1 -1
  220. package/dist/ionic/{p-5d26143c.entry.js → p-3a98f8db.entry.js} +1 -1
  221. package/dist/ionic/{p-725b4e67.system.js → p-3c6f02cf.system.js} +1 -1
  222. package/dist/ionic/{p-b60b708c.entry.js → p-3cdbaa49.entry.js} +1 -1
  223. package/dist/ionic/p-3eb2da31.js +4 -0
  224. package/dist/ionic/{p-af9ab3f4.entry.js → p-400574bf.entry.js} +1 -1
  225. package/dist/ionic/{p-a3928153.system.entry.js → p-44638413.system.entry.js} +1 -1
  226. package/dist/ionic/{p-ca975c93.entry.js → p-4ae1b532.entry.js} +1 -1
  227. package/dist/ionic/p-4b2d5b9c.js +4 -0
  228. package/dist/ionic/p-4efac4fd.system.js +4 -0
  229. package/dist/ionic/{p-88d5fbd3.js → p-4f777b5e.js} +1 -1
  230. package/dist/ionic/{p-d5824344.system.entry.js → p-50a24d93.system.entry.js} +1 -1
  231. package/dist/ionic/{p-81b652ad.entry.js → p-51f08a9f.entry.js} +1 -1
  232. package/dist/ionic/{p-2b0a2dac.system.entry.js → p-5946d7b8.system.entry.js} +1 -1
  233. package/dist/ionic/{p-0d3e389b.entry.js → p-5a0c301f.entry.js} +1 -1
  234. package/dist/ionic/{p-dbb9820e.entry.js → p-5a7d5f0d.entry.js} +1 -1
  235. package/dist/ionic/p-5b6aa59a.entry.js +4 -0
  236. package/dist/ionic/{p-b853da37.entry.js → p-5e60dbc8.entry.js} +1 -1
  237. package/dist/ionic/{p-bf7f57a7.system.entry.js → p-5f456b3c.system.entry.js} +1 -1
  238. package/dist/ionic/p-61ba2137.system.js +4 -0
  239. package/dist/ionic/{p-408fc801.system.js → p-62a3c609.system.js} +1 -1
  240. package/dist/ionic/{p-ee463529.system.entry.js → p-680f96e8.system.entry.js} +1 -1
  241. package/dist/ionic/p-6871553b.system.js +4 -0
  242. package/dist/ionic/{p-46b0ffa3.system.entry.js → p-6f38d0c5.system.entry.js} +1 -1
  243. package/dist/ionic/{p-03f18e57.system.entry.js → p-70026e8f.system.entry.js} +1 -1
  244. package/dist/ionic/p-776b144b.system.js +4 -0
  245. package/dist/ionic/{p-64520a48.system.entry.js → p-78edc0cd.system.entry.js} +1 -1
  246. package/dist/ionic/{p-41dc24d3.system.entry.js → p-7c32fb95.system.entry.js} +1 -1
  247. package/dist/ionic/{p-4d82a816.system.entry.js → p-84879f61.system.entry.js} +1 -1
  248. package/dist/ionic/{p-57cce147.system.entry.js → p-8569d759.system.entry.js} +1 -1
  249. package/dist/ionic/{p-7e732640.entry.js → p-8a671f16.entry.js} +1 -1
  250. package/dist/ionic/p-8dc4a983.entry.js +4 -0
  251. package/dist/ionic/{p-76d39342.js → p-8ddc00f7.js} +1 -1
  252. package/dist/ionic/{p-b3bf4958.js → p-8f1ce253.js} +1 -1
  253. package/dist/ionic/{p-c44eadec.entry.js → p-90860bc4.entry.js} +1 -1
  254. package/dist/ionic/{p-2f9fe497.system.entry.js → p-92c2178e.system.entry.js} +1 -1
  255. package/dist/ionic/{p-6aacda17.system.entry.js → p-92c7f47f.system.entry.js} +1 -1
  256. package/dist/ionic/{p-29d03b3a.js → p-9393a49f.js} +1 -1
  257. package/dist/ionic/{p-3a75d7fd.js → p-94be3ad7.js} +1 -1
  258. package/dist/ionic/p-95c44e02.system.js +4 -0
  259. package/dist/ionic/{p-0f96cac5.entry.js → p-97eca294.entry.js} +1 -1
  260. package/dist/ionic/{p-195c7203.system.js → p-9c8fb374.system.js} +1 -1
  261. package/dist/ionic/{p-ba0dc6b0.system.entry.js → p-9f5b40c0.system.entry.js} +1 -1
  262. package/dist/ionic/{p-0d197ad6.entry.js → p-9f6397ce.entry.js} +1 -1
  263. package/dist/ionic/{p-4a1eb087.entry.js → p-a02b2d75.entry.js} +1 -1
  264. package/dist/ionic/{p-432353dc.entry.js → p-a19f5ae1.entry.js} +1 -1
  265. package/dist/ionic/{p-18d1b47e.system.entry.js → p-a1bfaa5c.system.entry.js} +1 -1
  266. package/dist/ionic/{p-aad00593.entry.js → p-a2ad515b.entry.js} +1 -1
  267. package/dist/ionic/{p-4180a747.js → p-a3f572a7.js} +1 -1
  268. package/dist/ionic/{p-7b8a53a4.system.entry.js → p-aaa4ffb3.system.entry.js} +1 -1
  269. package/dist/ionic/p-ae40d13d.js +4 -0
  270. package/dist/ionic/{p-66d633fb.js → p-b253ad7f.js} +1 -1
  271. package/dist/ionic/p-b37e4ee5.system.entry.js +4 -0
  272. package/dist/ionic/{p-47bb4958.js → p-b4d8fe47.js} +1 -1
  273. package/dist/ionic/p-b5839dc2.js +4 -0
  274. package/dist/ionic/p-b8c685a7.system.js +4 -0
  275. package/dist/ionic/{p-f57f1a9c.system.entry.js → p-bc2c03d7.system.entry.js} +1 -1
  276. package/dist/ionic/{p-36d187af.js → p-c2289cd1.js} +1 -1
  277. package/dist/ionic/{p-b5914ab2.entry.js → p-c3790581.entry.js} +1 -1
  278. package/dist/ionic/p-c5c3710c.js +4 -0
  279. package/dist/ionic/{p-6ecc011b.system.js → p-c6fef62b.system.js} +1 -1
  280. package/dist/ionic/{p-7798c78a.system.js → p-c80c7e90.system.js} +1 -1
  281. package/dist/ionic/{p-013013a3.js → p-c858f685.js} +1 -1
  282. package/dist/ionic/{p-68a1c901.system.entry.js → p-cd055d60.system.entry.js} +1 -1
  283. package/dist/ionic/{p-6a6477b2.js → p-cdc277a6.js} +1 -1
  284. package/dist/ionic/{p-a6f57a98.entry.js → p-ce2eabd5.entry.js} +1 -1
  285. package/dist/ionic/{p-805a910b.entry.js → p-ce657bb3.entry.js} +1 -1
  286. package/dist/ionic/{p-ee20243d.system.entry.js → p-cfdaf024.system.entry.js} +1 -1
  287. package/dist/ionic/{p-a5954d3d.entry.js → p-d6ca603b.entry.js} +1 -1
  288. package/dist/ionic/{p-f20da312.entry.js → p-d7260b87.entry.js} +1 -1
  289. package/dist/ionic/p-d74ca358.entry.js +4 -0
  290. package/dist/ionic/{p-7288124a.entry.js → p-d95c8e90.entry.js} +1 -1
  291. package/dist/ionic/{p-4eecabe1.entry.js → p-dbb4c012.entry.js} +1 -1
  292. package/dist/ionic/{p-c1d4b820.entry.js → p-dce9bc53.entry.js} +1 -1
  293. package/dist/ionic/{p-0c813cbf.system.entry.js → p-dd60faa5.system.entry.js} +2 -2
  294. package/dist/ionic/{p-3b2ecb7e.entry.js → p-de5c8a55.entry.js} +1 -1
  295. package/dist/ionic/{p-1401bd2e.system.entry.js → p-df281664.system.entry.js} +1 -1
  296. package/dist/ionic/p-df468a8f.entry.js +4 -0
  297. package/dist/ionic/{p-38f2c6bb.system.js → p-e2bb92ed.system.js} +1 -1
  298. package/dist/ionic/{p-364a12ca.system.entry.js → p-e68980ff.system.entry.js} +1 -1
  299. package/dist/ionic/{p-b6e3c96d.system.entry.js → p-e6aaff14.system.entry.js} +1 -1
  300. package/dist/ionic/{p-82e8d988.entry.js → p-ea8fbf09.entry.js} +1 -1
  301. package/dist/ionic/p-efe9180b.entry.js +4 -0
  302. package/dist/ionic/{p-6c938b0d.entry.js → p-f1cc690e.entry.js} +1 -1
  303. package/dist/ionic/p-f46775e4.entry.js +4 -0
  304. package/dist/ionic/{p-a072a420.system.entry.js → p-f7b43141.system.entry.js} +1 -1
  305. package/dist/ionic/p-f85932b8.entry.js +4 -0
  306. package/dist/ionic/{p-7bb1d7dd.entry.js → p-f88dd429.entry.js} +1 -1
  307. package/dist/ionic/p-fd36799d.system.js +4 -0
  308. package/dist/ionic/{p-2a098168.entry.js → p-fd3f475f.entry.js} +1 -1
  309. package/dist/ionic/p-fd8ced99.system.js +4 -0
  310. package/dist/types/utils/browser/index.d.ts +22 -1
  311. package/dist/types/utils/config.d.ts +7 -0
  312. package/dist/types/utils/hardware-back-button.d.ts +13 -0
  313. package/hydrate/index.js +61 -36
  314. package/package.json +2 -2
  315. package/dist/collection/components/modal/test/animations/modal.e2e.js +0 -36
  316. package/dist/esm-es5/hardware-back-button-b2bc76db.js +0 -4
  317. package/dist/esm-es5/helpers-ae653409.js +0 -4
  318. package/dist/esm-es5/index-82eeb47f.js +0 -4
  319. package/dist/esm-es5/md.transition-498898ac.js +0 -4
  320. package/dist/esm-es5/overlays-4bb86b9c.js +0 -4
  321. package/dist/ionic/p-1902859c.system.js +0 -4
  322. package/dist/ionic/p-1b3fb9c6.system.entry.js +0 -4
  323. package/dist/ionic/p-23a9d086.js +0 -4
  324. package/dist/ionic/p-2afd906c.system.entry.js +0 -4
  325. package/dist/ionic/p-2b9debd4.entry.js +0 -4
  326. package/dist/ionic/p-32ad210f.system.js +0 -4
  327. package/dist/ionic/p-35ce400e.system.js +0 -4
  328. package/dist/ionic/p-38c337e7.system.js +0 -4
  329. package/dist/ionic/p-3d9154f0.entry.js +0 -4
  330. package/dist/ionic/p-40f68333.system.js +0 -4
  331. package/dist/ionic/p-4b3623da.js +0 -4
  332. package/dist/ionic/p-562bc465.js +0 -4
  333. package/dist/ionic/p-5ecb46d2.entry.js +0 -4
  334. package/dist/ionic/p-7045f570.entry.js +0 -4
  335. package/dist/ionic/p-70e988e8.js +0 -4
  336. package/dist/ionic/p-74d32574.entry.js +0 -4
  337. package/dist/ionic/p-765b4f12.system.entry.js +0 -4
  338. package/dist/ionic/p-790220fd.system.js +0 -4
  339. package/dist/ionic/p-888db766.system.js +0 -4
  340. package/dist/ionic/p-8bd50516.js +0 -4
  341. package/dist/ionic/p-a9cff22f.entry.js +0 -4
  342. package/dist/ionic/p-baf4a4a2.entry.js +0 -4
  343. package/dist/ionic/p-d2827762.system.js +0 -4
  344. package/dist/ionic/p-de6f8b28.system.js +0 -4
  345. package/dist/ionic/p-f06a7c31.system.js +0 -4
  346. package/dist/ionic/p-fac5d418.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import{r as t,d as e,h as r,H as n,f as a}from"./p-e1271366.js";import{f as i,d as s,r as o}from"./p-66d633fb.js";import{c as l}from"./p-013013a3.js";import{l as h,j as d,i as g,d as b,e as p}from"./p-23a9d086.js";import{p as c}from"./p-06fee233.js";import{i as m}from"./p-fb813dab.js";import{c as u,h as f}from"./p-47794def.js";import{b as k}from"./p-1aa7c019.js";const x=class{constructor(r){t(this,r),this.ionChange=e(this,"ionChange",7),this.ionInput=e(this,"ionInput",7),this.ionStyle=e(this,"ionStyle",7),this.ionFocus=e(this,"ionFocus",7),this.ionBlur=e(this,"ionBlur",7),this.ionKnobMoveStart=e(this,"ionKnobMoveStart",7),this.ionKnobMoveEnd=e(this,"ionKnobMoveEnd",7),this.rangeId="ion-r-"+z++,this.didLoad=!1,this.noUpdate=!1,this.hasFocus=!1,this.inheritedAttributes={},this.contentEl=null,this.initialContentScrollY=!0,this.hasLoggedDeprecationWarning=!1,this.clampBounds=t=>h(this.min,t,this.max),this.ensureValueInBounds=t=>this.dualKnobs?{lower:this.clampBounds(t.lower),upper:this.clampBounds(t.upper)}:this.clampBounds(t),this.setupGesture=async()=>{const t=this.rangeSlider;t&&(this.gesture=(await import("./p-f5d2dc9b.js")).createGesture({el:t,gestureName:"range",gesturePriority:100,threshold:0,onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)}),this.gesture.enable(!this.disabled))},this.handleKeyboard=(t,e)=>{const{ensureValueInBounds:r}=this;let n=this.step;n=n>0?n:1,n/=this.max-this.min,e||(n*=-1),"A"===t?this.ratioA=h(0,this.ratioA+n,1):this.ratioB=h(0,this.ratioB+n,1),this.ionKnobMoveStart.emit({value:r(this.value)}),this.updateValue(),this.emitValueChange(),this.ionKnobMoveEnd.emit({value:r(this.value)})},this.onBlur=()=>{this.hasFocus&&(this.hasFocus=!1,this.ionBlur.emit(),this.emitStyle())},this.onFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.ionFocus.emit(),this.emitStyle())},this.ratioA=0,this.ratioB=0,this.pressedKnob=void 0,this.color=void 0,this.debounce=void 0,this.name=this.rangeId,this.label=void 0,this.dualKnobs=!1,this.min=0,this.max=100,this.pin=!1,this.pinFormatter=t=>Math.round(t),this.snaps=!1,this.step=1,this.ticks=!0,this.activeBarStart=void 0,this.disabled=!1,this.value=0,this.labelPlacement="start",this.legacy=void 0}debounceChanged(){const{ionInput:t,debounce:e,originalIonInput:r}=this;this.ionInput=void 0===e?null!=r?r:t:d(t,e)}minChanged(){this.noUpdate||this.updateRatio()}maxChanged(){this.noUpdate||this.updateRatio()}activeBarStartChanged(){const{activeBarStart:t}=this;void 0!==t&&(t>this.max?(c(`Range: The value of activeBarStart (${t}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`,this.el),this.activeBarStart=this.max):t<this.min&&(c(`Range: The value of activeBarStart (${t}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`,this.el),this.activeBarStart=this.min))}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled),this.emitStyle()}valueChanged(){this.noUpdate||this.updateRatio()}componentWillLoad(){this.el.hasAttribute("id")&&(this.rangeId=this.el.getAttribute("id")),this.inheritedAttributes=g(this.el)}componentDidLoad(){this.originalIonInput=this.ionInput,this.setupGesture(),this.updateRatio(),this.didLoad=!0}connectedCallback(){const{el:t}=this;this.legacyFormController=l(t),this.updateRatio(),this.debounceChanged(),this.disabledChanged(),this.activeBarStartChanged(),this.didLoad&&this.setupGesture(),this.contentEl=i(this.el)}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}getValue(){var t;const e=null!==(t=this.value)&&void 0!==t?t:0;return this.dualKnobs?"object"==typeof e?e:{lower:0,upper:e}:"object"==typeof e?e.upper:e}emitStyle(){this.legacyFormController.hasLegacyControl()&&this.ionStyle.emit({interactive:!0,"interactive-disabled":this.disabled,legacy:!!this.legacy})}emitValueChange(){this.value=this.ensureValueInBounds(this.value),this.ionChange.emit({value:this.value})}onStart(t){const{contentEl:e}=this;e&&(this.initialContentScrollY=s(e));const r=this.rect=this.rangeSlider.getBoundingClientRect(),n=t.currentX;let a=h(0,(n-r.left)/r.width,1);m(this.el)&&(a=1-a),this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-a)<Math.abs(this.ratioB-a)?"A":"B",this.setFocus(this.pressedKnob),this.update(n),this.ionKnobMoveStart.emit({value:this.ensureValueInBounds(this.value)})}onMove(t){this.update(t.currentX)}onEnd(t){const{contentEl:e,initialContentScrollY:r}=this;e&&o(e,r),this.update(t.currentX),this.pressedKnob=void 0,this.emitValueChange(),this.ionKnobMoveEnd.emit({value:this.ensureValueInBounds(this.value)})}update(t){const e=this.rect;let r=h(0,(t-e.left)/e.width,1);m(this.el)&&(r=1-r),this.snaps&&(r=y(w(r,this.min,this.max,this.step),this.min,this.max)),"A"===this.pressedKnob?this.ratioA=r:this.ratioB=r,this.updateValue()}get valA(){return w(this.ratioA,this.min,this.max,this.step)}get valB(){return w(this.ratioB,this.min,this.max,this.step)}get ratioLower(){if(this.dualKnobs)return Math.min(this.ratioA,this.ratioB);const{activeBarStart:t}=this;return null==t?0:y(t,this.min,this.max)}get ratioUpper(){return this.dualKnobs?Math.max(this.ratioA,this.ratioB):this.ratioA}updateRatio(){const t=this.getValue(),{min:e,max:r}=this;this.dualKnobs?(this.ratioA=y(t.lower,e,r),this.ratioB=y(t.upper,e,r)):this.ratioA=y(t,e,r)}updateValue(){this.noUpdate=!0;const{valA:t,valB:e}=this;this.value=this.dualKnobs?{lower:Math.min(t,e),upper:Math.max(t,e)}:t,this.ionInput.emit({value:this.value}),this.noUpdate=!1}setFocus(t){if(this.el.shadowRoot){const e=this.el.shadowRoot.querySelector("A"===t?".range-knob-a":".range-knob-b");e&&e.focus()}}renderLegacyRange(){this.hasLoggedDeprecationWarning||(c('ion-range now requires providing a label with either the label slot or the "aria-label" attribute. To migrate, remove any usage of "ion-label" and pass the label text to either the component or the "aria-label" attribute.\n\nExample: <ion-range><div slot="label">Volume</div></ion-range>\nExample with aria-label: <ion-range aria-label="Volume"></ion-range>\n\nDevelopers can use the "legacy" property to continue using the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.',this.el),this.legacy&&c('ion-range is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.\n\nDevelopers can dismiss this warning by removing their usage of the "legacy" property and using the new range syntax.',this.el),this.hasLoggedDeprecationWarning=!0);const{el:t,pressedKnob:e,disabled:a,pin:i,rangeId:s}=this,o=k(this);return b(!0,t,this.name,JSON.stringify(this.getValue()),a),r(n,{onFocusin:this.onFocus,onFocusout:this.onBlur,id:s,class:u(this.color,{[o]:!0,"in-item":f("ion-item",t),"range-disabled":a,"range-pressed":void 0!==e,"range-has-pin":i,"legacy-range":!0})},r("slot",{name:"start"}),this.renderRangeSlider(),r("slot",{name:"end"}))}get hasStartSlotContent(){return null!==this.el.querySelector('[slot="start"]')}get hasEndSlotContent(){return null!==this.el.querySelector('[slot="end"]')}renderRange(){const{disabled:t,el:e,hasLabel:a,rangeId:i,pin:s,pressedKnob:o,labelPlacement:l,label:h}=this,d=f("ion-item",e),g=d&&!(a&&("start"===l||"fixed"===l)||this.hasStartSlotContent),p=d&&!(a&&"end"===l||this.hasEndSlotContent),c=k(this);return b(!0,e,this.name,JSON.stringify(this.getValue()),t),r(n,{onFocusin:this.onFocus,onFocusout:this.onBlur,id:i,class:u(this.color,{[c]:!0,"in-item":d,"range-disabled":t,"range-pressed":void 0!==o,"range-has-pin":s,[`range-label-placement-${l}`]:!0,"range-item-start-adjustment":g,"range-item-end-adjustment":p})},r("label",{class:"range-wrapper",id:"range-label"},r("div",{class:{"label-text-wrapper":!0,"label-text-wrapper-hidden":!a},part:"label"},void 0!==h?r("div",{class:"label-text"},h):r("slot",{name:"label"})),r("div",{class:"native-wrapper"},r("slot",{name:"start"}),this.renderRangeSlider(),r("slot",{name:"end"}))))}get hasLabel(){return void 0!==this.label||null!==this.el.querySelector('[slot="label"]')}renderRangeSlider(){var t;const{min:e,max:n,step:a,el:i,handleKeyboard:s,pressedKnob:o,disabled:l,pin:h,ratioLower:d,ratioUpper:g,inheritedAttributes:b,rangeId:c,pinFormatter:u}=this;let{labelText:f}=p(i,c);null==f&&(f=b["aria-label"]);let k=100*d+"%",x=100-100*g+"%";const w=m(this.el),z=w?"right":"left",j=t=>({[z]:t[z]});!1===this.dualKnobs&&(this.valA<(null!==(t=this.activeBarStart)&&void 0!==t?t:this.min)?(k=100*g+"%",x=100-100*d+"%"):(k=100*d+"%",x=100-100*g+"%"));const C={[z]:k,[w?"left":"right"]:x},S=[];if(this.snaps&&this.ticks)for(let t=e;t<=n;t+=a){const r=y(t,e,n),a=Math.min(d,g),i=Math.max(d,g),s={ratio:r,active:r>=a&&r<=i};s[z]=100*r+"%",S.push(s)}let B;return!this.legacyFormController.hasLegacyControl()&&this.hasLabel&&(B="range-label"),r("div",{class:"range-slider",ref:t=>this.rangeSlider=t},S.map((t=>r("div",{style:j(t),role:"presentation",class:{"range-tick":!0,"range-tick-active":t.active},part:t.active?"tick-active":"tick"}))),r("div",{class:"range-bar-container"},r("div",{class:"range-bar",role:"presentation",part:"bar"}),r("div",{class:{"range-bar":!0,"range-bar-active":!0,"has-ticks":S.length>0},role:"presentation",style:C,part:"bar-active"})),v(w,{knob:"A",pressed:"A"===o,value:this.valA,ratio:this.ratioA,pin:h,pinFormatter:u,disabled:l,handleKeyboard:s,min:e,max:n,labelText:f,labelledBy:B}),this.dualKnobs&&v(w,{knob:"B",pressed:"B"===o,value:this.valB,ratio:this.ratioB,pin:h,pinFormatter:u,disabled:l,handleKeyboard:s,min:e,max:n,labelText:f,labelledBy:B}))}render(){const{legacyFormController:t}=this;return t.hasLegacyControl()?this.renderLegacyRange():this.renderRange()}get el(){return a(this)}static get watchers(){return{debounce:["debounceChanged"],min:["minChanged"],max:["maxChanged"],activeBarStart:["activeBarStartChanged"],disabled:["disabledChanged"],value:["valueChanged"]}}},v=(t,{knob:e,value:n,ratio:a,min:i,max:s,disabled:o,pressed:l,pin:h,handleKeyboard:d,labelText:g,labelledBy:b,pinFormatter:p})=>{const c=t?"right":"left";return r("div",{onKeyDown:t=>{const r=t.key;"ArrowLeft"===r||"ArrowDown"===r?(d(e,!1),t.preventDefault(),t.stopPropagation()):"ArrowRight"!==r&&"ArrowUp"!==r||(d(e,!0),t.preventDefault(),t.stopPropagation())},class:{"range-knob-handle":!0,"range-knob-a":"A"===e,"range-knob-b":"B"===e,"range-knob-pressed":l,"range-knob-min":n===i,"range-knob-max":n===s,"ion-activatable":!0,"ion-focusable":!0},style:(()=>{const t={};return t[c]=100*a+"%",t})(),role:"slider",tabindex:o?-1:0,"aria-label":void 0===b?g:null,"aria-labelledby":void 0!==b?b:null,"aria-valuemin":i,"aria-valuemax":s,"aria-disabled":o?"true":null,"aria-valuenow":n},h&&r("div",{class:"range-pin",role:"presentation",part:"pin"},p(n)),r("div",{class:"range-knob",role:"presentation",part:"knob"}))},w=(t,e,r,n)=>{let a=(r-e)*t;return n>0&&(a=Math.round(a/n)*n+e),function(t,...e){const r=Math.max(...e.map((t=>function(t){return t%1==0?0:t.toString().split(".")[1].length}(t))));return Number(t.toFixed(r))}(h(e,a,r),e,r,n)},y=(t,e,r)=>h(0,(t-e)/(r-e),1);let z=0;x.style={ios:":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}@supports (inset-inline-start: 0){.range-knob-handle{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob-handle{left:0}:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}[dir=rtl] .range-knob-handle{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}@supports (inset-inline-start: 0){.range-bar-container{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-bar-container{left:0}:host-context([dir=rtl]) .range-bar-container{left:unset;right:unset;right:0}[dir=rtl] .range-bar-container{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}@supports (inset-inline-start: 0){.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}}@supports not (inset-inline-start: 0){.range-knob{left:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}}}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:0px}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0px 0.5px 4px rgba(0, 0, 0, 0.12), 0px 6px 13px rgba(0, 0, 0, 0.12);--knob-size:26px;--bar-height:4px;--bar-background:var(--ion-color-step-900, #e6e6e6);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:2px;--height:42px}:host(.legacy-range){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host(.range-item-start-adjustment){-webkit-padding-start:24px;padding-inline-start:24px}:host(.range-item-end-adjustment){-webkit-padding-end:24px;padding-inline-end:24px}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:calc(8px + 0.75rem)}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:calc(8px + 0.75rem)}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-bar-active.has-ticks{border-radius:0;-webkit-margin-start:-2px;margin-inline-start:-2px;-webkit-margin-end:-2px;margin-inline-end:-2px}.range-tick{-webkit-margin-start:-2px;margin-inline-start:-2px;border-radius:0;position:absolute;top:17px;width:4px;height:8px;background:var(--ion-color-step-900, #e6e6e6);pointer-events:none}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 100%, 0) scale(0.01);transform:translate3d(0, 100%, 0) scale(0.01);-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:0.75rem;text-align:center}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, calc(-100% + 11px), 0) scale(1);transform:translate3d(0, calc(-100% + 11px), 0) scale(1)}:host(.range-disabled){opacity:0.3}",md:':host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}@supports (inset-inline-start: 0){.range-knob-handle{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob-handle{left:0}:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}[dir=rtl] .range-knob-handle{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}@supports (inset-inline-start: 0){.range-bar-container{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-bar-container{left:0}:host-context([dir=rtl]) .range-bar-container{left:unset;right:unset;right:0}[dir=rtl] .range-bar-container{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}@supports (inset-inline-start: 0){.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}}@supports not (inset-inline-start: 0){.range-knob{left:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}}}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:0px}:host{--knob-border-radius:50%;--knob-background:var(--bar-background-active);--knob-box-shadow:none;--knob-size:18px;--bar-height:2px;--bar-background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;--pin-background:var(--ion-color-primary, #3880ff);--pin-color:var(--ion-color-primary-contrast, #fff)}:host(.legacy-range) ::slotted([slot=label]){font-size:initial}:host(:not(.legacy-range)) ::slotted(:not(ion-icon)[slot=start]),:host(:not(.legacy-range)) ::slotted(:not(ion-icon)[slot=end]),:host(:not(.legacy-range)) .native-wrapper{font-size:0.75rem}:host(.legacy-range){-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:8px;padding-bottom:8px;font-size:0.75rem}:host(.range-item-start-adjustment){-webkit-padding-start:18px;padding-inline-start:18px}:host(.range-item-end-adjustment){-webkit-padding-end:18px;padding-inline-end:18px}:host(.ion-color) .range-bar{background:rgba(var(--ion-color-base-rgb), 0.26)}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-knob,:host(.ion-color) .range-knob::before,:host(.ion-color) .range-pin,:host(.ion-color) .range-pin::before,:host(.ion-color) .range-tick{background:var(--ion-color-base);color:var(--ion-color-contrast)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px;margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:1.75rem}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:1.75rem}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-knob{-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease;z-index:2}.range-knob::before{border-radius:50%;position:absolute;width:var(--knob-size);height:var(--knob-size);-webkit-transform:scale(1);transform:scale(1);-webkit-transition:0.267s cubic-bezier(0, 0, 0.58, 1);transition:0.267s cubic-bezier(0, 0, 0.58, 1);background:var(--knob-background);content:"";opacity:0.13;pointer-events:none}@supports (inset-inline-start: 0){.range-knob::before{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob::before{left:0}:host-context([dir=rtl]) .range-knob::before{left:unset;right:unset;right:0}[dir=rtl] .range-knob::before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob::before:dir(rtl){left:unset;right:unset;right:0}}}.range-tick{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick-active{background:transparent}.range-pin{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;border-radius:50%;-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:1.75rem;height:1.75rem;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color)}.range-pin::before{bottom:-1px;-webkit-margin-start:-13px;margin-inline-start:-13px;border-radius:50% 50% 50% 0;position:absolute;width:26px;height:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:"";z-index:-1}@supports (inset-inline-start: 0){.range-pin::before{inset-inline-start:50%}}@supports not (inset-inline-start: 0){.range-pin::before{left:50%}:host-context([dir=rtl]) .range-pin::before{left:unset;right:unset;right:50%}[dir=rtl] .range-pin::before{left:unset;right:unset;right:50%}@supports selector(:dir(rtl)){.range-pin::before:dir(rtl){left:unset;right:unset;right:50%}}}:host-context([dir=rtl]) .range-pin::before{left:unset}[dir=rtl] .range-pin::before{left:unset}@supports selector(:dir(rtl)){.range-pin::before:dir(rtl){left:unset}}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, calc(-100% + 4px), 0) scale(1);transform:translate3d(0, calc(-100% + 4px), 0) scale(1)}@media (any-hover: hover){.range-knob-handle:hover .range-knob:before{-webkit-transform:scale(2);transform:scale(2);opacity:0.13}}.range-knob-handle.ion-activated .range-knob:before,.range-knob-handle.ion-focused .range-knob:before,.range-knob-handle.range-knob-pressed .range-knob:before{-webkit-transform:scale(2);transform:scale(2)}.range-knob-handle.ion-focused .range-knob::before{opacity:0.13}.range-knob-handle.ion-activated .range-knob::before,.range-knob-handle.range-knob-pressed .range-knob::before{opacity:0.25}:host(:not(.range-has-pin)) .range-knob-pressed .range-knob,:host(:not(.range-has-pin)) .range-knob-handle.ion-focused .range-knob{-webkit-transform:scale(1);transform:scale(1)}:host(.range-disabled) .range-bar-active,:host(.range-disabled) .range-bar,:host(.range-disabled) .range-tick{background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .range-knob{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .label-text-wrapper,:host(.range-disabled) ::slotted([slot=start]),:host(.range-disabled) ::slotted([slot=end]){opacity:0.38}'};export{x as ion_range}
4
+ import{r as t,d as e,h as r,H as n,f as a}from"./p-e1271366.js";import{f as i,d as s,r as o}from"./p-b253ad7f.js";import{c as l}from"./p-c858f685.js";import{l as h,j as d,i as g,d as b,e as p}from"./p-b5839dc2.js";import{p as c}from"./p-06fee233.js";import{i as m}from"./p-fb813dab.js";import{c as u,h as f}from"./p-47794def.js";import{b as k}from"./p-1aa7c019.js";const x=class{constructor(r){t(this,r),this.ionChange=e(this,"ionChange",7),this.ionInput=e(this,"ionInput",7),this.ionStyle=e(this,"ionStyle",7),this.ionFocus=e(this,"ionFocus",7),this.ionBlur=e(this,"ionBlur",7),this.ionKnobMoveStart=e(this,"ionKnobMoveStart",7),this.ionKnobMoveEnd=e(this,"ionKnobMoveEnd",7),this.rangeId="ion-r-"+z++,this.didLoad=!1,this.noUpdate=!1,this.hasFocus=!1,this.inheritedAttributes={},this.contentEl=null,this.initialContentScrollY=!0,this.hasLoggedDeprecationWarning=!1,this.clampBounds=t=>h(this.min,t,this.max),this.ensureValueInBounds=t=>this.dualKnobs?{lower:this.clampBounds(t.lower),upper:this.clampBounds(t.upper)}:this.clampBounds(t),this.setupGesture=async()=>{const t=this.rangeSlider;t&&(this.gesture=(await import("./p-f5d2dc9b.js")).createGesture({el:t,gestureName:"range",gesturePriority:100,threshold:0,onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)}),this.gesture.enable(!this.disabled))},this.handleKeyboard=(t,e)=>{const{ensureValueInBounds:r}=this;let n=this.step;n=n>0?n:1,n/=this.max-this.min,e||(n*=-1),"A"===t?this.ratioA=h(0,this.ratioA+n,1):this.ratioB=h(0,this.ratioB+n,1),this.ionKnobMoveStart.emit({value:r(this.value)}),this.updateValue(),this.emitValueChange(),this.ionKnobMoveEnd.emit({value:r(this.value)})},this.onBlur=()=>{this.hasFocus&&(this.hasFocus=!1,this.ionBlur.emit(),this.emitStyle())},this.onFocus=()=>{this.hasFocus||(this.hasFocus=!0,this.ionFocus.emit(),this.emitStyle())},this.ratioA=0,this.ratioB=0,this.pressedKnob=void 0,this.color=void 0,this.debounce=void 0,this.name=this.rangeId,this.label=void 0,this.dualKnobs=!1,this.min=0,this.max=100,this.pin=!1,this.pinFormatter=t=>Math.round(t),this.snaps=!1,this.step=1,this.ticks=!0,this.activeBarStart=void 0,this.disabled=!1,this.value=0,this.labelPlacement="start",this.legacy=void 0}debounceChanged(){const{ionInput:t,debounce:e,originalIonInput:r}=this;this.ionInput=void 0===e?null!=r?r:t:d(t,e)}minChanged(){this.noUpdate||this.updateRatio()}maxChanged(){this.noUpdate||this.updateRatio()}activeBarStartChanged(){const{activeBarStart:t}=this;void 0!==t&&(t>this.max?(c(`Range: The value of activeBarStart (${t}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`,this.el),this.activeBarStart=this.max):t<this.min&&(c(`Range: The value of activeBarStart (${t}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`,this.el),this.activeBarStart=this.min))}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled),this.emitStyle()}valueChanged(){this.noUpdate||this.updateRatio()}componentWillLoad(){this.el.hasAttribute("id")&&(this.rangeId=this.el.getAttribute("id")),this.inheritedAttributes=g(this.el)}componentDidLoad(){this.originalIonInput=this.ionInput,this.setupGesture(),this.updateRatio(),this.didLoad=!0}connectedCallback(){const{el:t}=this;this.legacyFormController=l(t),this.updateRatio(),this.debounceChanged(),this.disabledChanged(),this.activeBarStartChanged(),this.didLoad&&this.setupGesture(),this.contentEl=i(this.el)}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}getValue(){var t;const e=null!==(t=this.value)&&void 0!==t?t:0;return this.dualKnobs?"object"==typeof e?e:{lower:0,upper:e}:"object"==typeof e?e.upper:e}emitStyle(){this.legacyFormController.hasLegacyControl()&&this.ionStyle.emit({interactive:!0,"interactive-disabled":this.disabled,legacy:!!this.legacy})}emitValueChange(){this.value=this.ensureValueInBounds(this.value),this.ionChange.emit({value:this.value})}onStart(t){const{contentEl:e}=this;e&&(this.initialContentScrollY=s(e));const r=this.rect=this.rangeSlider.getBoundingClientRect(),n=t.currentX;let a=h(0,(n-r.left)/r.width,1);m(this.el)&&(a=1-a),this.pressedKnob=!this.dualKnobs||Math.abs(this.ratioA-a)<Math.abs(this.ratioB-a)?"A":"B",this.setFocus(this.pressedKnob),this.update(n),this.ionKnobMoveStart.emit({value:this.ensureValueInBounds(this.value)})}onMove(t){this.update(t.currentX)}onEnd(t){const{contentEl:e,initialContentScrollY:r}=this;e&&o(e,r),this.update(t.currentX),this.pressedKnob=void 0,this.emitValueChange(),this.ionKnobMoveEnd.emit({value:this.ensureValueInBounds(this.value)})}update(t){const e=this.rect;let r=h(0,(t-e.left)/e.width,1);m(this.el)&&(r=1-r),this.snaps&&(r=y(w(r,this.min,this.max,this.step),this.min,this.max)),"A"===this.pressedKnob?this.ratioA=r:this.ratioB=r,this.updateValue()}get valA(){return w(this.ratioA,this.min,this.max,this.step)}get valB(){return w(this.ratioB,this.min,this.max,this.step)}get ratioLower(){if(this.dualKnobs)return Math.min(this.ratioA,this.ratioB);const{activeBarStart:t}=this;return null==t?0:y(t,this.min,this.max)}get ratioUpper(){return this.dualKnobs?Math.max(this.ratioA,this.ratioB):this.ratioA}updateRatio(){const t=this.getValue(),{min:e,max:r}=this;this.dualKnobs?(this.ratioA=y(t.lower,e,r),this.ratioB=y(t.upper,e,r)):this.ratioA=y(t,e,r)}updateValue(){this.noUpdate=!0;const{valA:t,valB:e}=this;this.value=this.dualKnobs?{lower:Math.min(t,e),upper:Math.max(t,e)}:t,this.ionInput.emit({value:this.value}),this.noUpdate=!1}setFocus(t){if(this.el.shadowRoot){const e=this.el.shadowRoot.querySelector("A"===t?".range-knob-a":".range-knob-b");e&&e.focus()}}renderLegacyRange(){this.hasLoggedDeprecationWarning||(c('ion-range now requires providing a label with either the label slot or the "aria-label" attribute. To migrate, remove any usage of "ion-label" and pass the label text to either the component or the "aria-label" attribute.\n\nExample: <ion-range><div slot="label">Volume</div></ion-range>\nExample with aria-label: <ion-range aria-label="Volume"></ion-range>\n\nDevelopers can use the "legacy" property to continue using the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.',this.el),this.legacy&&c('ion-range is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.\n\nDevelopers can dismiss this warning by removing their usage of the "legacy" property and using the new range syntax.',this.el),this.hasLoggedDeprecationWarning=!0);const{el:t,pressedKnob:e,disabled:a,pin:i,rangeId:s}=this,o=k(this);return b(!0,t,this.name,JSON.stringify(this.getValue()),a),r(n,{onFocusin:this.onFocus,onFocusout:this.onBlur,id:s,class:u(this.color,{[o]:!0,"in-item":f("ion-item",t),"range-disabled":a,"range-pressed":void 0!==e,"range-has-pin":i,"legacy-range":!0})},r("slot",{name:"start"}),this.renderRangeSlider(),r("slot",{name:"end"}))}get hasStartSlotContent(){return null!==this.el.querySelector('[slot="start"]')}get hasEndSlotContent(){return null!==this.el.querySelector('[slot="end"]')}renderRange(){const{disabled:t,el:e,hasLabel:a,rangeId:i,pin:s,pressedKnob:o,labelPlacement:l,label:h}=this,d=f("ion-item",e),g=d&&!(a&&("start"===l||"fixed"===l)||this.hasStartSlotContent),p=d&&!(a&&"end"===l||this.hasEndSlotContent),c=k(this);return b(!0,e,this.name,JSON.stringify(this.getValue()),t),r(n,{onFocusin:this.onFocus,onFocusout:this.onBlur,id:i,class:u(this.color,{[c]:!0,"in-item":d,"range-disabled":t,"range-pressed":void 0!==o,"range-has-pin":s,[`range-label-placement-${l}`]:!0,"range-item-start-adjustment":g,"range-item-end-adjustment":p})},r("label",{class:"range-wrapper",id:"range-label"},r("div",{class:{"label-text-wrapper":!0,"label-text-wrapper-hidden":!a},part:"label"},void 0!==h?r("div",{class:"label-text"},h):r("slot",{name:"label"})),r("div",{class:"native-wrapper"},r("slot",{name:"start"}),this.renderRangeSlider(),r("slot",{name:"end"}))))}get hasLabel(){return void 0!==this.label||null!==this.el.querySelector('[slot="label"]')}renderRangeSlider(){var t;const{min:e,max:n,step:a,el:i,handleKeyboard:s,pressedKnob:o,disabled:l,pin:h,ratioLower:d,ratioUpper:g,inheritedAttributes:b,rangeId:c,pinFormatter:u}=this;let{labelText:f}=p(i,c);null==f&&(f=b["aria-label"]);let k=100*d+"%",x=100-100*g+"%";const w=m(this.el),z=w?"right":"left",j=t=>({[z]:t[z]});!1===this.dualKnobs&&(this.valA<(null!==(t=this.activeBarStart)&&void 0!==t?t:this.min)?(k=100*g+"%",x=100-100*d+"%"):(k=100*d+"%",x=100-100*g+"%"));const C={[z]:k,[w?"left":"right"]:x},S=[];if(this.snaps&&this.ticks)for(let t=e;t<=n;t+=a){const r=y(t,e,n),a=Math.min(d,g),i=Math.max(d,g),s={ratio:r,active:r>=a&&r<=i};s[z]=100*r+"%",S.push(s)}let B;return!this.legacyFormController.hasLegacyControl()&&this.hasLabel&&(B="range-label"),r("div",{class:"range-slider",ref:t=>this.rangeSlider=t},S.map((t=>r("div",{style:j(t),role:"presentation",class:{"range-tick":!0,"range-tick-active":t.active},part:t.active?"tick-active":"tick"}))),r("div",{class:"range-bar-container"},r("div",{class:"range-bar",role:"presentation",part:"bar"}),r("div",{class:{"range-bar":!0,"range-bar-active":!0,"has-ticks":S.length>0},role:"presentation",style:C,part:"bar-active"})),v(w,{knob:"A",pressed:"A"===o,value:this.valA,ratio:this.ratioA,pin:h,pinFormatter:u,disabled:l,handleKeyboard:s,min:e,max:n,labelText:f,labelledBy:B}),this.dualKnobs&&v(w,{knob:"B",pressed:"B"===o,value:this.valB,ratio:this.ratioB,pin:h,pinFormatter:u,disabled:l,handleKeyboard:s,min:e,max:n,labelText:f,labelledBy:B}))}render(){const{legacyFormController:t}=this;return t.hasLegacyControl()?this.renderLegacyRange():this.renderRange()}get el(){return a(this)}static get watchers(){return{debounce:["debounceChanged"],min:["minChanged"],max:["maxChanged"],activeBarStart:["activeBarStartChanged"],disabled:["disabledChanged"],value:["valueChanged"]}}},v=(t,{knob:e,value:n,ratio:a,min:i,max:s,disabled:o,pressed:l,pin:h,handleKeyboard:d,labelText:g,labelledBy:b,pinFormatter:p})=>{const c=t?"right":"left";return r("div",{onKeyDown:t=>{const r=t.key;"ArrowLeft"===r||"ArrowDown"===r?(d(e,!1),t.preventDefault(),t.stopPropagation()):"ArrowRight"!==r&&"ArrowUp"!==r||(d(e,!0),t.preventDefault(),t.stopPropagation())},class:{"range-knob-handle":!0,"range-knob-a":"A"===e,"range-knob-b":"B"===e,"range-knob-pressed":l,"range-knob-min":n===i,"range-knob-max":n===s,"ion-activatable":!0,"ion-focusable":!0},style:(()=>{const t={};return t[c]=100*a+"%",t})(),role:"slider",tabindex:o?-1:0,"aria-label":void 0===b?g:null,"aria-labelledby":void 0!==b?b:null,"aria-valuemin":i,"aria-valuemax":s,"aria-disabled":o?"true":null,"aria-valuenow":n},h&&r("div",{class:"range-pin",role:"presentation",part:"pin"},p(n)),r("div",{class:"range-knob",role:"presentation",part:"knob"}))},w=(t,e,r,n)=>{let a=(r-e)*t;return n>0&&(a=Math.round(a/n)*n+e),function(t,...e){const r=Math.max(...e.map((t=>function(t){return t%1==0?0:t.toString().split(".")[1].length}(t))));return Number(t.toFixed(r))}(h(e,a,r),e,r,n)},y=(t,e,r)=>h(0,(t-e)/(r-e),1);let z=0;x.style={ios:":host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}@supports (inset-inline-start: 0){.range-knob-handle{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob-handle{left:0}:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}[dir=rtl] .range-knob-handle{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}@supports (inset-inline-start: 0){.range-bar-container{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-bar-container{left:0}:host-context([dir=rtl]) .range-bar-container{left:unset;right:unset;right:0}[dir=rtl] .range-bar-container{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}@supports (inset-inline-start: 0){.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}}@supports not (inset-inline-start: 0){.range-knob{left:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}}}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:0px}:host{--knob-border-radius:50%;--knob-background:#ffffff;--knob-box-shadow:0px 0.5px 4px rgba(0, 0, 0, 0.12), 0px 6px 13px rgba(0, 0, 0, 0.12);--knob-size:26px;--bar-height:4px;--bar-background:var(--ion-color-step-900, #e6e6e6);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:2px;--height:42px}:host(.legacy-range){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host(.range-item-start-adjustment){-webkit-padding-start:24px;padding-inline-start:24px}:host(.range-item-end-adjustment){-webkit-padding-end:24px;padding-inline-end:24px}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-tick-active{background:var(--ion-color-base)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:calc(8px + 0.75rem)}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:calc(8px + 0.75rem)}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-bar-active.has-ticks{border-radius:0;-webkit-margin-start:-2px;margin-inline-start:-2px;-webkit-margin-end:-2px;margin-inline-end:-2px}.range-tick{-webkit-margin-start:-2px;margin-inline-start:-2px;border-radius:0;position:absolute;top:17px;width:4px;height:8px;background:var(--ion-color-step-900, #e6e6e6);pointer-events:none}.range-tick-active{background:var(--bar-background-active)}.range-pin{-webkit-transform:translate3d(0, 100%, 0) scale(0.01);transform:translate3d(0, 100%, 0) scale(0.01);-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;min-width:28px;-webkit-transition:-webkit-transform 120ms ease;transition:-webkit-transform 120ms ease;transition:transform 120ms ease;transition:transform 120ms ease, -webkit-transform 120ms ease;background:transparent;color:var(--ion-text-color, #000);font-size:0.75rem;text-align:center}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, calc(-100% + 11px), 0) scale(1);transform:translate3d(0, calc(-100% + 11px), 0) scale(1)}:host(.range-disabled){opacity:0.3}",md:':host{--knob-handle-size:calc(var(--knob-size) * 2);display:-ms-flexbox;display:flex;position:relative;-ms-flex:3;flex:3;-ms-flex-align:center;align-items:center;font-family:var(--ion-font-family, inherit);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.range-disabled){pointer-events:none}::slotted(ion-label){-ms-flex:initial;flex:initial}::slotted(ion-icon[slot]){font-size:24px}.range-slider{position:relative;-ms-flex:1;flex:1;width:100%;height:var(--height);contain:size layout style;cursor:-webkit-grab;cursor:grab;-ms-touch-action:pan-y;touch-action:pan-y}:host(.range-pressed) .range-slider{cursor:-webkit-grabbing;cursor:grabbing}.range-pin{position:absolute;background:var(--ion-color-base);color:var(--ion-color-contrast);text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box}.range-knob-handle{top:calc((var(--height) - var(--knob-handle-size)) / 2);-webkit-margin-start:calc(0px - var(--knob-handle-size) / 2);margin-inline-start:calc(0px - var(--knob-handle-size) / 2);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-pack:center;justify-content:center;width:var(--knob-handle-size);height:var(--knob-handle-size);text-align:center}@supports (inset-inline-start: 0){.range-knob-handle{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob-handle{left:0}:host-context([dir=rtl]) .range-knob-handle{left:unset;right:unset;right:0}[dir=rtl] .range-knob-handle{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-knob-handle{left:unset}[dir=rtl] .range-knob-handle{left:unset}@supports selector(:dir(rtl)){.range-knob-handle:dir(rtl){left:unset}}.range-knob-handle:active,.range-knob-handle:focus{outline:none}.range-bar-container{border-radius:var(--bar-border-radius);top:calc((var(--height) - var(--bar-height)) / 2);position:absolute;width:100%;height:var(--bar-height)}@supports (inset-inline-start: 0){.range-bar-container{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-bar-container{left:0}:host-context([dir=rtl]) .range-bar-container{left:unset;right:unset;right:0}[dir=rtl] .range-bar-container{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset;right:unset;right:0}}}:host-context([dir=rtl]) .range-bar-container{left:unset}[dir=rtl] .range-bar-container{left:unset}@supports selector(:dir(rtl)){.range-bar-container:dir(rtl){left:unset}}.range-bar{border-radius:var(--bar-border-radius);position:absolute;width:100%;height:var(--bar-height);background:var(--bar-background);pointer-events:none}.range-knob{border-radius:var(--knob-border-radius);top:calc(50% - var(--knob-size) / 2);position:absolute;width:var(--knob-size);height:var(--knob-size);background:var(--knob-background);-webkit-box-shadow:var(--knob-box-shadow);box-shadow:var(--knob-box-shadow);z-index:2;pointer-events:none}@supports (inset-inline-start: 0){.range-knob{inset-inline-start:calc(50% - var(--knob-size) / 2)}}@supports not (inset-inline-start: 0){.range-knob{left:calc(50% - var(--knob-size) / 2)}:host-context([dir=rtl]) .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}[dir=rtl] .range-knob{left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset;right:unset;right:calc(50% - var(--knob-size) / 2)}}}:host-context([dir=rtl]) .range-knob{left:unset}[dir=rtl] .range-knob{left:unset}@supports selector(:dir(rtl)){.range-knob:dir(rtl){left:unset}}:host(.range-pressed) .range-bar-active{will-change:left, right}:host(.in-item){width:100%}:host([slot=start]),:host([slot=end]){width:auto}:host(.in-item) ::slotted(ion-label){-ms-flex-item-align:center;align-self:center}.range-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit}::slotted([slot=label]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}:host(.range-label-placement-start) .range-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.range-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-end) .range-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.range-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.range-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.range-label-placement-stacked) .range-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:stretch;align-items:stretch}:host(.range-label-placement-stacked) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper,:host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.in-item.range-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.range-label-placement-stacked) .native-wrapper{margin-bottom:0px}:host{--knob-border-radius:50%;--knob-background:var(--bar-background-active);--knob-box-shadow:none;--knob-size:18px;--bar-height:2px;--bar-background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.26);--bar-background-active:var(--ion-color-primary, #3880ff);--bar-border-radius:0;--height:42px;--pin-background:var(--ion-color-primary, #3880ff);--pin-color:var(--ion-color-primary-contrast, #fff)}:host(.legacy-range) ::slotted([slot=label]){font-size:initial}:host(:not(.legacy-range)) ::slotted(:not(ion-icon)[slot=start]),:host(:not(.legacy-range)) ::slotted(:not(ion-icon)[slot=end]),:host(:not(.legacy-range)) .native-wrapper{font-size:0.75rem}:host(.legacy-range){-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:8px;padding-bottom:8px;font-size:0.75rem}:host(.range-item-start-adjustment){-webkit-padding-start:18px;padding-inline-start:18px}:host(.range-item-end-adjustment){-webkit-padding-end:18px;padding-inline-end:18px}:host(.ion-color) .range-bar{background:rgba(var(--ion-color-base-rgb), 0.26)}:host(.ion-color) .range-bar-active,:host(.ion-color) .range-knob,:host(.ion-color) .range-knob::before,:host(.ion-color) .range-pin,:host(.ion-color) .range-pin::before,:host(.ion-color) .range-tick{background:var(--ion-color-base);color:var(--ion-color-contrast)}::slotted([slot=start]){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:14px;margin-inline-end:14px;margin-top:0;margin-bottom:0}::slotted([slot=end]){-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.range-has-pin:not(.range-label-placement-stacked)){padding-top:1.75rem}:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper{margin-bottom:1.75rem}.range-bar-active{bottom:0;width:auto;background:var(--bar-background-active)}.range-knob{-webkit-transform:scale(0.67);transform:scale(0.67);-webkit-transition-duration:120ms;transition-duration:120ms;-webkit-transition-property:background-color, border, -webkit-transform;transition-property:background-color, border, -webkit-transform;transition-property:transform, background-color, border;transition-property:transform, background-color, border, -webkit-transform;-webkit-transition-timing-function:ease;transition-timing-function:ease;z-index:2}.range-knob::before{border-radius:50%;position:absolute;width:var(--knob-size);height:var(--knob-size);-webkit-transform:scale(1);transform:scale(1);-webkit-transition:0.267s cubic-bezier(0, 0, 0.58, 1);transition:0.267s cubic-bezier(0, 0, 0.58, 1);background:var(--knob-background);content:"";opacity:0.13;pointer-events:none}@supports (inset-inline-start: 0){.range-knob::before{inset-inline-start:0}}@supports not (inset-inline-start: 0){.range-knob::before{left:0}:host-context([dir=rtl]) .range-knob::before{left:unset;right:unset;right:0}[dir=rtl] .range-knob::before{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.range-knob::before:dir(rtl){left:unset;right:unset;right:0}}}.range-tick{position:absolute;top:calc((var(--height) - var(--bar-height)) / 2);width:var(--bar-height);height:var(--bar-height);background:var(--bar-background-active);z-index:1;pointer-events:none}.range-tick-active{background:transparent}.range-pin{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;border-radius:50%;-webkit-transform:translate3d(0, 0, 0) scale(0.01);transform:translate3d(0, 0, 0) scale(0.01);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:1.75rem;height:1.75rem;-webkit-transition:background 120ms ease, -webkit-transform 120ms ease;transition:background 120ms ease, -webkit-transform 120ms ease;transition:transform 120ms ease, background 120ms ease;transition:transform 120ms ease, background 120ms ease, -webkit-transform 120ms ease;background:var(--pin-background);color:var(--pin-color)}.range-pin::before{bottom:-1px;-webkit-margin-start:-13px;margin-inline-start:-13px;border-radius:50% 50% 50% 0;position:absolute;width:26px;height:26px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transition:background 120ms ease;transition:background 120ms ease;background:var(--pin-background);content:"";z-index:-1}@supports (inset-inline-start: 0){.range-pin::before{inset-inline-start:50%}}@supports not (inset-inline-start: 0){.range-pin::before{left:50%}:host-context([dir=rtl]) .range-pin::before{left:unset;right:unset;right:50%}[dir=rtl] .range-pin::before{left:unset;right:unset;right:50%}@supports selector(:dir(rtl)){.range-pin::before:dir(rtl){left:unset;right:unset;right:50%}}}:host-context([dir=rtl]) .range-pin::before{left:unset}[dir=rtl] .range-pin::before{left:unset}@supports selector(:dir(rtl)){.range-pin::before:dir(rtl){left:unset}}.range-knob-pressed .range-pin,.range-knob-handle.ion-focused .range-pin{-webkit-transform:translate3d(0, calc(-100% + 4px), 0) scale(1);transform:translate3d(0, calc(-100% + 4px), 0) scale(1)}@media (any-hover: hover){.range-knob-handle:hover .range-knob:before{-webkit-transform:scale(2);transform:scale(2);opacity:0.13}}.range-knob-handle.ion-activated .range-knob:before,.range-knob-handle.ion-focused .range-knob:before,.range-knob-handle.range-knob-pressed .range-knob:before{-webkit-transform:scale(2);transform:scale(2)}.range-knob-handle.ion-focused .range-knob::before{opacity:0.13}.range-knob-handle.ion-activated .range-knob::before,.range-knob-handle.range-knob-pressed .range-knob::before{opacity:0.25}:host(:not(.range-has-pin)) .range-knob-pressed .range-knob,:host(:not(.range-has-pin)) .range-knob-handle.ion-focused .range-knob{-webkit-transform:scale(1);transform:scale(1)}:host(.range-disabled) .range-bar-active,:host(.range-disabled) .range-bar,:host(.range-disabled) .range-tick{background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .range-knob{-webkit-transform:scale(0.55);transform:scale(0.55);outline:5px solid #fff;background-color:var(--ion-color-step-250, #bfbfbf)}:host(.range-disabled) .label-text-wrapper,:host(.range-disabled) ::slotted([slot=start]),:host(.range-disabled) ::slotted([slot=end]){opacity:0.38}'};export{x as ion_range}
@@ -0,0 +1,4 @@
1
+ var __spreadArray=this&&this.__spreadArray||function(r,a,i){if(i||arguments.length===2)for(var n=0,e=a.length,t;n<e;n++){if(t||!(n in a)){if(!t)t=Array.prototype.slice.call(a,0,n);t[n]=a[n]}}return r.concat(t||Array.prototype.slice.call(a))};
2
+ /*!
3
+ * (C) Ionic http://ionicframework.com - MIT License
4
+ */System.register([],(function(r){"use strict";return{execute:function(){var a=r("t",(function(r,a){if(a===void 0){a=0}return new Promise((function(n){i(r,a,n)}))}));var i=function(r,a,i){if(a===void 0){a=0}var n;var e;var t={passive:true};var o=500;var u=function(){if(n){n()}};var f=function(a){if(a===undefined||r===a.target){u();i(a)}};if(r){r.addEventListener("webkitTransitionEnd",f,t);r.addEventListener("transitionend",f,t);e=setTimeout(f,a+o);n=function(){if(e!==undefined){clearTimeout(e);e=undefined}r.removeEventListener("webkitTransitionEnd",f,t);r.removeEventListener("transitionend",f,t)}}return u};var n=r("c",(function(r,a){if(r.componentOnReady){r.componentOnReady().then((function(r){return a(r)}))}else{d((function(){return a(r)}))}}));var e=r("m",(function(r){return r.componentOnReady!==undefined}));var t=r("k",(function(r,a){if(a===void 0){a=[]}var i={};a.forEach((function(a){if(r.hasAttribute(a)){var n=r.getAttribute(a);if(n!==null){i[a]=r.getAttribute(a)}r.removeAttribute(a)}}));return i}));var o=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"];var u=r("i",(function(r,a){var i=o;if(a&&a.length>0){i=i.filter((function(r){return!a.includes(r)}))}return t(r,i)}));var f=r("a",(function(r,a,i,n){var e;if(typeof window!=="undefined"){var t=window;var o=(e=t===null||t===void 0?void 0:t.Ionic)===null||e===void 0?void 0:e.config;if(o){var u=o.get("_ael");if(u){return u(r,a,i,n)}else if(o._ael){return o._ael(r,a,i,n)}}}return r.addEventListener(a,i,n)}));var l=r("b",(function(r,a,i,n){var e;if(typeof window!=="undefined"){var t=window;var o=(e=t===null||t===void 0?void 0:t.Ionic)===null||e===void 0?void 0:e.config;if(o){var u=o.get("_rel");if(u){return u(r,a,i,n)}else if(o._rel){return o._rel(r,a,i,n)}}}return r.removeEventListener(a,i,n)}));var v=r("g",(function(r,a){if(a===void 0){a=r}return r.shadowRoot||a}));var d=r("r",(function(r){if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(r)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(r)}return setTimeout(r)}));var c=r("n",(function(r){return!!r.shadowRoot&&!!r.attachShadow}));var s=r("h",(function(r){var a=r.closest("ion-item");if(a){return a.querySelector("ion-label")}return null}));var m=r("f",(function(r){r.focus();if(r.classList.contains("ion-focusable")){var a=r.closest("ion-app");if(a){a.setFocus([r])}}}));var b=r("e",(function(r,a){var i;var n=r.getAttribute("aria-labelledby");var e=r.id;var t=n!==null&&n.trim()!==""?n:a+"-lbl";var o=n!==null&&n.trim()!==""?document.getElementById(n):s(r);if(o){if(n===null){o.id=t}i=o.textContent;o.setAttribute("aria-hidden","true")}else if(e.trim()!==""){o=document.querySelector('label[for="'.concat(e,'"]'));if(o){if(o.id!==""){t=o.id}else{o.id=t="".concat(e,"-lbl")}i=o.textContent}}return{label:o,labelId:t,labelText:i}}));var p=r("d",(function(r,a,i,n,e){if(r||c(a)){var t=a.querySelector("input.aux-input");if(!t){t=a.ownerDocument.createElement("input");t.type="hidden";t.classList.add("aux-input");a.appendChild(t)}t.disabled=e;t.name=i;t.value=n||""}}));var w=r("l",(function(r,a,i){return Math.max(r,Math.min(a,i))}));var y=r("o",(function(r,a){if(!r){var i="ASSERT: "+a;console.error(i);debugger;throw new Error(i)}}));var _=r("u",(function(r){return r.timeStamp||Date.now()}));var x=r("v",(function(r){if(r){var a=r.changedTouches;if(a&&a.length>0){var i=a[0];return{x:i.clientX,y:i.clientY}}if(r.pageX!==undefined){return{x:r.pageX,y:r.pageY}}}return{x:0,y:0}}));var h=r("p",(function(r){var a=document.dir==="rtl";switch(r){case"start":return a;case"end":return!a;default:throw new Error('"'.concat(r,'" is not a valid value for [side]. Use "start" or "end" instead.'))}}));var A=r("j",(function(r,a){var i=r._original||r;return{_original:r,emit:T(i.emit.bind(i),a)}}));var T=r("q",(function(r,a){if(a===void 0){a=0}var i;return function(){var n=[];for(var e=0;e<arguments.length;e++){n[e]=arguments[e]}clearTimeout(i);i=setTimeout.apply(void 0,__spreadArray([r,a],n,false))}}));var q=r("s",(function(r,a){r!==null&&r!==void 0?r:r={};a!==null&&a!==void 0?a:a={};if(r===a){return true}var i=Object.keys(r);if(i.length!==Object.keys(a).length){return false}for(var n=0,e=i;n<e.length;n++){var t=e[n];if(!(t in a)){return false}if(r[t]!==a[t]){return false}}return true}))}}}));
@@ -41,7 +41,28 @@ type IonicEvents = {
41
41
  addEventListener(type: 'ionBackButton', listener: (ev: BackButtonEvent) => void, options?: boolean | AddEventListenerOptions): void;
42
42
  removeEventListener(type: 'ionBackButton', listener: (ev: BackButtonEvent) => void, options?: boolean | AddEventListenerOptions): void;
43
43
  };
44
- type IonicWindow = Window & IonicEvents;
44
+ export interface CloseWatcher extends EventTarget {
45
+ new (options?: CloseWatcherOptions): any;
46
+ requestClose(): void;
47
+ close(): void;
48
+ destroy(): void;
49
+ oncancel: (event: Event) => void | null;
50
+ onclose: (event: Event) => void | null;
51
+ }
52
+ interface CloseWatcherOptions {
53
+ signal: AbortSignal;
54
+ }
55
+ /**
56
+ * Experimental browser features that
57
+ * are selectively used inside of Ionic
58
+ * Since they are experimental they typically
59
+ * do not have types yet, so we can add custom ones
60
+ * here until types are available.
61
+ */
62
+ type ExperimentalWindowFeatures = {
63
+ CloseWatcher?: CloseWatcher;
64
+ };
65
+ type IonicWindow = Window & IonicEvents & ExperimentalWindowFeatures;
45
66
  type IonicDocument = Document & IonicEvents;
46
67
  export declare const win: IonicWindow | undefined;
47
68
  export declare const doc: IonicDocument | undefined;
@@ -165,6 +165,13 @@ export interface IonicConfig {
165
165
  * Overrides the default platform detection methods.
166
166
  */
167
167
  platform?: PlatformConfig;
168
+ /**
169
+ * @experimental
170
+ * If `true`, the [CloseWatcher API](https://github.com/WICG/close-watcher) will be used to handle
171
+ * all Escape key and hardware back button presses to dismiss menus and overlays and to navigate.
172
+ * Note that the `hardwareBackButton` config option must also be `true`.
173
+ */
174
+ experimentalCloseWatcher?: boolean;
168
175
  keyboardHeight?: number;
169
176
  inputShims?: boolean;
170
177
  scrollPadding?: boolean;
@@ -2,6 +2,19 @@ export interface BackButtonEventDetail {
2
2
  register(priority: number, handler: (processNextHandler: () => void) => Promise<any> | void): void;
3
3
  }
4
4
  export type BackButtonEvent = CustomEvent<BackButtonEventDetail>;
5
+ /**
6
+ * CloseWatcher is a newer API that lets
7
+ * use detect the hardware back button event
8
+ * in a web browser: https://caniuse.com/?search=closewatcher
9
+ * However, not every browser supports it yet.
10
+ *
11
+ * This needs to be a function so that we can
12
+ * check the config once it has been set.
13
+ * Otherwise, this code would be evaluated the
14
+ * moment this file is evaluated which could be
15
+ * before the config is set.
16
+ */
17
+ export declare const shoudUseCloseWatcher: () => any;
5
18
  /**
6
19
  * When hardwareBackButton: false in config,
7
20
  * we need to make sure we also block the default
package/hydrate/index.js CHANGED
@@ -7807,7 +7807,7 @@ const transitionEnd = (el, expectedDuration = 0, callback) => {
7807
7807
  el.addEventListener('transitionend', onTransitionEnd, opts);
7808
7808
  animationTimeout = setTimeout(onTransitionEnd, expectedDuration + ANIMATION_FALLBACK_TIMEOUT);
7809
7809
  unRegTrans = () => {
7810
- if (animationTimeout) {
7810
+ if (animationTimeout !== undefined) {
7811
7811
  clearTimeout(animationTimeout);
7812
7812
  animationTimeout = undefined;
7813
7813
  }
@@ -9759,6 +9759,22 @@ const createLockController = () => {
9759
9759
  };
9760
9760
  };
9761
9761
 
9762
+ /**
9763
+ * CloseWatcher is a newer API that lets
9764
+ * use detect the hardware back button event
9765
+ * in a web browser: https://caniuse.com/?search=closewatcher
9766
+ * However, not every browser supports it yet.
9767
+ *
9768
+ * This needs to be a function so that we can
9769
+ * check the config once it has been set.
9770
+ * Otherwise, this code would be evaluated the
9771
+ * moment this file is evaluated which could be
9772
+ * before the config is set.
9773
+ */
9774
+ const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
9775
+ const OVERLAY_BACK_BUTTON_PRIORITY = 100;
9776
+ const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
9777
+
9762
9778
  // TODO(FW-2832): types
9763
9779
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
9764
9780
  var _a;
@@ -9893,19 +9909,6 @@ const CoreDelegate = () => {
9893
9909
  return { attachViewToDom, removeViewFromDom };
9894
9910
  };
9895
9911
 
9896
- /**
9897
- * When hardwareBackButton: false in config,
9898
- * we need to make sure we also block the default
9899
- * webview behavior. If we don't then it will be
9900
- * possible for users to navigate backward while
9901
- * an overlay is still open. Additionally, it will
9902
- * give the appearance that the hardwareBackButton
9903
- * config is not working as the page transition
9904
- * will still happen.
9905
- */
9906
- const OVERLAY_BACK_BUTTON_PRIORITY = 100;
9907
- const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
9908
-
9909
9912
  let lastOverlayIndex = 0;
9910
9913
  let lastId = 0;
9911
9914
  const activeAnimations = new WeakMap();
@@ -10190,19 +10193,38 @@ const connectListeners = (doc) => {
10190
10193
  const lastOverlay = getPresentedOverlay(doc);
10191
10194
  if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
10192
10195
  ev.detail.register(OVERLAY_BACK_BUTTON_PRIORITY, () => {
10193
- return lastOverlay.dismiss(undefined, BACKDROP);
10196
+ /**
10197
+ * Do not return this promise otherwise
10198
+ * the hardware back button utility will
10199
+ * be blocked until the overlay dismisses.
10200
+ * This is important for a modal with canDismiss.
10201
+ * If the application presents a confirmation alert
10202
+ * in the "canDismiss" callback, then it will be impossible
10203
+ * to use the hardware back button to dismiss the alert
10204
+ * dialog because the hardware back button utility
10205
+ * is blocked on waiting for the modal to dismiss.
10206
+ */
10207
+ lastOverlay.dismiss(undefined, BACKDROP);
10194
10208
  });
10195
10209
  }
10196
10210
  });
10197
- // handle ESC to close overlay
10198
- doc.addEventListener('keydown', (ev) => {
10199
- if (ev.key === 'Escape') {
10200
- const lastOverlay = getPresentedOverlay(doc);
10201
- if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
10202
- lastOverlay.dismiss(undefined, BACKDROP);
10211
+ /**
10212
+ * Handle ESC to close overlay.
10213
+ * CloseWatcher also handles pressing the Esc
10214
+ * key, so if a browser supports CloseWatcher then
10215
+ * this behavior will be handled via the ionBackButton
10216
+ * event.
10217
+ */
10218
+ if (!shoudUseCloseWatcher()) {
10219
+ doc.addEventListener('keydown', (ev) => {
10220
+ if (ev.key === 'Escape') {
10221
+ const lastOverlay = getPresentedOverlay(doc);
10222
+ if (lastOverlay === null || lastOverlay === void 0 ? void 0 : lastOverlay.backdropDismiss) {
10223
+ lastOverlay.dismiss(undefined, BACKDROP);
10224
+ }
10203
10225
  }
10204
- }
10205
- });
10226
+ });
10227
+ }
10206
10228
  }
10207
10229
  };
10208
10230
  const dismissOverlay = (doc, data, role, overlayTag, id) => {
@@ -10368,10 +10390,6 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
10368
10390
  }
10369
10391
  overlay.didDismiss.emit({ data, role });
10370
10392
  (_b = overlay.didDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });
10371
- // Get a reference to all animations currently assigned to this overlay
10372
- // Then tear them down to return the overlay to its initial visual state
10373
- const animations = activeAnimations.get(overlay) || [];
10374
- animations.forEach((ani) => ani.destroy());
10375
10393
  activeAnimations.delete(overlay);
10376
10394
  /**
10377
10395
  * Make overlay hidden again in case it is being reused.
@@ -12719,7 +12737,7 @@ class App {
12719
12737
  }
12720
12738
  render() {
12721
12739
  const mode = getIonMode$1(this);
12722
- return (hAsync(Host, { key: '56c81f5d59b568ffd4a6de2f9b1c48c9a9456e8b', class: {
12740
+ return (hAsync(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
12723
12741
  [mode]: true,
12724
12742
  'ion-page': true,
12725
12743
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -23403,13 +23421,18 @@ class Menu {
23403
23421
  render() {
23404
23422
  const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
23405
23423
  const mode = getIonMode$1(this);
23406
- return (hAsync(Host, { key: '8665a4cec887bb6b0178d1df62e47c8575104ad1', role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23424
+ /**
23425
+ * If the Close Watcher is enabled then
23426
+ * the ionBackButton listener in the menu controller
23427
+ * will handle closing the menu when Escape is pressed.
23428
+ */
23429
+ return (hAsync(Host, { key: 'be7145625a30951e5cc26646f6121ee4fa4c910f', onKeyDown: shoudUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23407
23430
  [mode]: true,
23408
23431
  [`menu-type-${type}`]: true,
23409
23432
  'menu-enabled': !disabled,
23410
23433
  [`menu-side-${side}`]: true,
23411
23434
  'menu-pane-visible': isPaneVisible,
23412
- } }, hAsync("div", { key: '37f5797a28f2809cb979272525ef64074b2c9730', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '718a506b80373deecb1ea5205384839ac222c74e' })), hAsync("ion-backdrop", { key: 'a499b8f60a8aef2ec125a1814b491e8e1a863825', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23435
+ } }, hAsync("div", { key: 'ecd6e0641ed67691db270190801f7be365a2d121', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'aea3780e259f2b3ea84697a509bb7f13fa9531e9' })), hAsync("ion-backdrop", { key: 'be3253506a34c4c00eb1814621c674196b72db46', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23413
23436
  }
23414
23437
  get el() { return getElement(this); }
23415
23438
  static get watchers() { return {
@@ -23442,7 +23465,7 @@ class Menu {
23442
23465
  "toggle": [64],
23443
23466
  "setOpen": [64]
23444
23467
  },
23445
- "$listeners$": [[16, "ionSplitPaneVisible", "onSplitPaneChanged"], [2, "click", "onBackdropClick"], [0, "keydown", "onKeydown"]],
23468
+ "$listeners$": [[16, "ionSplitPaneVisible", "onSplitPaneChanged"], [2, "click", "onBackdropClick"]],
23446
23469
  "$lazyBundleId$": "-",
23447
23470
  "$attrsToReflect$": [["contentId", "content-id"], ["menuId", "menu-id"], ["side", "side"]]
23448
23471
  }; }
@@ -25320,6 +25343,7 @@ class Modal {
25320
25343
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
25321
25344
  this.keyboardOpenCallback = undefined;
25322
25345
  }
25346
+ const enteringAnimation = activeAnimations.get(this) || [];
25323
25347
  const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
25324
25348
  presentingEl: presentingElement,
25325
25349
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
@@ -25335,6 +25359,7 @@ class Modal {
25335
25359
  if (this.gesture) {
25336
25360
  this.gesture.destroy();
25337
25361
  }
25362
+ enteringAnimation.forEach((ani) => ani.destroy());
25338
25363
  }
25339
25364
  this.currentBreakpoint = undefined;
25340
25365
  this.animation = undefined;
@@ -25414,9 +25439,9 @@ class Modal {
25414
25439
  const mode = getIonMode$1(this);
25415
25440
  const isCardModal = presentingElement !== undefined && mode === 'ios';
25416
25441
  const isHandleCycle = handleBehavior === 'cycle';
25417
- return (hAsync(Host, Object.assign({ key: '9a305d82f123283b6200c42d67393b378bb309a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25442
+ return (hAsync(Host, Object.assign({ key: '8c163f4f59429227cab3a1cafb5612994939a629', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25418
25443
  zIndex: `${20000 + this.overlayIndex}`,
25419
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '85e8dc6f19b30fd95db518445929fb0c1d5cdef0', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { class: "modal-shadow" }), hAsync("div", Object.assign({ key: '893a0202d91828e60099311442c2677bee5464e2',
25444
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '6908bdf9462d940eff6607b626a499eedc66dc9c', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'ac224394e19b9e8c7dd902f2836fa25787663455',
25420
25445
  /*
25421
25446
  role and aria-modal must be used on the
25422
25447
  same element. They must also be set inside the
@@ -25425,7 +25450,7 @@ class Modal {
25425
25450
  */
25426
25451
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { class: "modal-handle",
25427
25452
  // Prevents the handle from receiving keyboard focus when it does not cycle
25428
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '25187bf4c69d9022930227b8b8748a294176be5f' }))));
25453
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '9c3c5ec797b6415110a3275c6ff33277291a6e21' }))));
25429
25454
  }
25430
25455
  get el() { return getElement(this); }
25431
25456
  static get watchers() { return {
@@ -35226,12 +35251,12 @@ class SplitPane {
35226
35251
  }
35227
35252
  render() {
35228
35253
  const mode = getIonMode$1(this);
35229
- return (hAsync(Host, { key: '68f375658524c6b2ecc95f51125f496e76291b99', class: {
35254
+ return (hAsync(Host, { key: '3efe241375d23ae12c47927aa1fc1f3f4b4e5807', class: {
35230
35255
  [mode]: true,
35231
35256
  // Used internally for styling
35232
35257
  [`split-pane-${mode}`]: true,
35233
35258
  'split-pane-visible': this.visible,
35234
- } }, hAsync("slot", { key: '606277cb63a5772e421c0dad9d0b4568276d8a7a' })));
35259
+ } }, hAsync("slot", { key: 'd5c94319658e2291dcc356e6ed7a9abc1a48a8b9' })));
35235
35260
  }
35236
35261
  get el() { return getElement(this); }
35237
35262
  static get watchers() { return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "7.6.8-dev.11706715287.1950fa40",
3
+ "version": "7.7.0",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -38,7 +38,7 @@
38
38
  "devDependencies": {
39
39
  "@axe-core/playwright": "^4.8.4",
40
40
  "@capacitor/core": "^5.6.0",
41
- "@capacitor/haptics": "^5.0.7",
41
+ "@capacitor/haptics": "^5.0.6",
42
42
  "@capacitor/keyboard": "^5.0.8",
43
43
  "@capacitor/status-bar": "^5.0.7",
44
44
  "@ionic/eslint-config": "^0.3.0",
@@ -1,36 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import { expect } from "@playwright/test";
5
- import { configs, test } from "../../../../utils/test/playwright/index";
6
- configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ config, title }) => {
7
- test.describe(title('modal: animations'), () => {
8
- test.beforeEach(async ({ page }) => {
9
- await page.setContent(`
10
- <ion-modal is-open="true" trigger="open-modal"></ion-modal>
11
- `, config);
12
- });
13
- test('card modal should clean up animations on dismiss', async ({ page }, testInfo) => {
14
- testInfo.annotations.push({
15
- type: 'issue',
16
- description: 'https://github.com/ionic-team/ionic-framework/issues/28352',
17
- });
18
- const ionModalDidDismiss = await page.spyOnEvent('ionModalDidDismiss');
19
- const modal = page.locator('ion-modal');
20
- const initialAnimations = await modal.evaluate((el) => {
21
- return el.shadowRoot.getAnimations();
22
- });
23
- // While the modal is open, it should have animations
24
- expect(initialAnimations.length).toBeGreaterThan(0);
25
- await modal.evaluate((el) => {
26
- el.dismiss();
27
- });
28
- await ionModalDidDismiss.next();
29
- const currentAnimations = await modal.evaluate((el) => {
30
- return el.shadowRoot.getAnimations();
31
- });
32
- // Once the modal has finished closing, there should be no animations
33
- expect(currentAnimations.length).toBe(0);
34
- });
35
- });
36
- });
@@ -1,4 +0,0 @@
1
- import{__awaiter,__generator}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */var blockHardwareBackButton=function(){document.addEventListener("backbutton",(function(){}))};var startHardwareBackButton=function(){var r=document;var t=false;r.addEventListener("backbutton",(function(){if(t){return}var n=0;var a=[];var e=new CustomEvent("ionBackButton",{bubbles:false,detail:{register:function(r,t){a.push({priority:r,handler:t,id:n++})}}});r.dispatchEvent(e);var u=function(r){return __awaiter(void 0,void 0,void 0,(function(){var t,n;return __generator(this,(function(a){switch(a.label){case 0:a.trys.push([0,3,,4]);if(!(r===null||r===void 0?void 0:r.handler))return[3,2];t=r.handler(o);if(!(t!=null))return[3,2];return[4,t];case 1:a.sent();a.label=2;case 2:return[3,4];case 3:n=a.sent();console.error(n);return[3,4];case 4:return[2]}}))}))};var o=function(){if(a.length>0){var r={priority:Number.MIN_SAFE_INTEGER,handler:function(){return undefined},id:-1};a.forEach((function(t){if(t.priority>=r.priority){r=t}}));t=true;a=a.filter((function(t){return t.id!==r.id}));u(r).then((function(){return t=false}))}};o()}))};var OVERLAY_BACK_BUTTON_PRIORITY=100;var MENU_BACK_BUTTON_PRIORITY=99;export{MENU_BACK_BUTTON_PRIORITY,OVERLAY_BACK_BUTTON_PRIORITY,blockHardwareBackButton,startHardwareBackButton};
@@ -1,4 +0,0 @@
1
- import{__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */var transitionEndAsync=function(a,r){if(r===void 0){r=0}return new Promise((function(e){transitionEnd(a,r,e)}))};var transitionEnd=function(a,r,e){if(r===void 0){r=0}var i;var n;var t={passive:true};var o=500;var u=function(){if(i){i()}};var l=function(r){if(r===undefined||a===r.target){u();e(r)}};if(a){a.addEventListener("webkitTransitionEnd",l,t);a.addEventListener("transitionend",l,t);n=setTimeout(l,r+o);i=function(){if(n){clearTimeout(n);n=undefined}a.removeEventListener("webkitTransitionEnd",l,t);a.removeEventListener("transitionend",l,t)}}return u};var componentOnReady=function(a,r){if(a.componentOnReady){a.componentOnReady().then((function(a){return r(a)}))}else{raf((function(){return r(a)}))}};var hasLazyBuild=function(a){return a.componentOnReady!==undefined};var inheritAttributes=function(a,r){if(r===void 0){r=[]}var e={};r.forEach((function(r){if(a.hasAttribute(r)){var i=a.getAttribute(r);if(i!==null){e[r]=a.getAttribute(r)}a.removeAttribute(r)}}));return e};var ariaAttributes=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"];var inheritAriaAttributes=function(a,r){var e=ariaAttributes;if(r&&r.length>0){e=e.filter((function(a){return!r.includes(a)}))}return inheritAttributes(a,e)};var addEventListener=function(a,r,e,i){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_ael");if(u){return u(a,r,e,i)}else if(o._ael){return o._ael(a,r,e,i)}}}return a.addEventListener(r,e,i)};var removeEventListener=function(a,r,e,i){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_rel");if(u){return u(a,r,e,i)}else if(o._rel){return o._rel(a,r,e,i)}}}return a.removeEventListener(r,e,i)};var getElementRoot=function(a,r){if(r===void 0){r=a}return a.shadowRoot||r};var raf=function(a){if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(a)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(a)}return setTimeout(a)};var hasShadowDom=function(a){return!!a.shadowRoot&&!!a.attachShadow};var findItemLabel=function(a){var r=a.closest("ion-item");if(r){return r.querySelector("ion-label")}return null};var focusElement=function(a){a.focus();if(a.classList.contains("ion-focusable")){var r=a.closest("ion-app");if(r){r.setFocus([a])}}};var getAriaLabel=function(a,r){var e;var i=a.getAttribute("aria-labelledby");var n=a.id;var t=i!==null&&i.trim()!==""?i:r+"-lbl";var o=i!==null&&i.trim()!==""?document.getElementById(i):findItemLabel(a);if(o){if(i===null){o.id=t}e=o.textContent;o.setAttribute("aria-hidden","true")}else if(n.trim()!==""){o=document.querySelector('label[for="'.concat(n,'"]'));if(o){if(o.id!==""){t=o.id}else{o.id=t="".concat(n,"-lbl")}e=o.textContent}}return{label:o,labelId:t,labelText:e}};var renderHiddenInput=function(a,r,e,i,n){if(a||hasShadowDom(r)){var t=r.querySelector("input.aux-input");if(!t){t=r.ownerDocument.createElement("input");t.type="hidden";t.classList.add("aux-input");r.appendChild(t)}t.disabled=n;t.name=e;t.value=i||""}};var clamp=function(a,r,e){return Math.max(a,Math.min(r,e))};var assert=function(a,r){if(!a){var e="ASSERT: "+r;console.error(e);debugger;throw new Error(e)}};var now=function(a){return a.timeStamp||Date.now()};var pointerCoord=function(a){if(a){var r=a.changedTouches;if(r&&r.length>0){var e=r[0];return{x:e.clientX,y:e.clientY}}if(a.pageX!==undefined){return{x:a.pageX,y:a.pageY}}}return{x:0,y:0}};var isEndSide=function(a){var r=document.dir==="rtl";switch(a){case"start":return r;case"end":return!r;default:throw new Error('"'.concat(a,'" is not a valid value for [side]. Use "start" or "end" instead.'))}};var debounceEvent=function(a,r){var e=a._original||a;return{_original:a,emit:debounce(e.emit.bind(e),r)}};var debounce=function(a,r){if(r===void 0){r=0}var e;return function(){var i=[];for(var n=0;n<arguments.length;n++){i[n]=arguments[n]}clearTimeout(e);e=setTimeout.apply(void 0,__spreadArray([a,r],i,false))}};var shallowEqualStringMap=function(a,r){a!==null&&a!==void 0?a:a={};r!==null&&r!==void 0?r:r={};if(a===r){return true}var e=Object.keys(a);if(e.length!==Object.keys(r).length){return false}for(var i=0,n=e;i<n.length;i++){var t=n[i];if(!(t in r)){return false}if(a[t]!==r[t]){return false}}return true};export{addEventListener as a,removeEventListener as b,componentOnReady as c,renderHiddenInput as d,getAriaLabel as e,focusElement as f,getElementRoot as g,findItemLabel as h,inheritAriaAttributes as i,debounceEvent as j,inheritAttributes as k,clamp as l,hasLazyBuild as m,hasShadowDom as n,assert as o,isEndSide as p,debounce as q,raf as r,shallowEqualStringMap as s,transitionEndAsync as t,now as u,pointerCoord as v};
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{d as doc}from"./index-a5d50daf.js";import{u as now,v as pointerCoord}from"./helpers-ae653409.js";var startTapClick=function(e){if(doc===undefined){return}var r=-MOUSE_WAIT*10;var n=0;var t;var i;var a;var o=e.getBoolean("animated",true)&&e.getBoolean("rippleEffect",true);var f=new WeakMap;var u=function(e){r=now(e);E(e)};var c=function(e){r=now(e);A(e)};var v=function(e){if(e.button===2){return}var n=now(e)-MOUSE_WAIT;if(r<n){E(e)}};var d=function(e){var n=now(e)-MOUSE_WAIT;if(r<n){A(e)}};var T=function(){if(a)clearTimeout(a);a=undefined;if(t){D(false);t=undefined}};var E=function(e){if(t){return}s(getActivatableTarget(e),e)};var A=function(e){s(undefined,e)};var s=function(e,r){if(e&&e===t){return}if(a)clearTimeout(a);a=undefined;var n=pointerCoord(r),i=n.x,o=n.y;if(t){if(f.has(t)){throw new Error("internal error")}if(!t.classList.contains(ACTIVATED)){l(t,i,o)}D(true)}if(e){var u=f.get(e);if(u){clearTimeout(u);f.delete(e)}e.classList.remove(ACTIVATED);var c=function(){l(e,i,o);a=undefined};if(isInstant(e)){c()}else{a=setTimeout(c,ADD_ACTIVATED_DEFERS)}}t=e};var l=function(e,r,t){n=Date.now();e.classList.add(ACTIVATED);if(!o)return;var a=getRippleEffect(e);if(a!==null){p();i=a.addRipple(r,t)}};var p=function(){if(i!==undefined){i.then((function(e){return e()}));i=undefined}};var D=function(e){p();var r=t;if(!r){return}var i=CLEAR_STATE_DEFERS-Date.now()+n;if(e&&i>0&&!isInstant(r)){var a=setTimeout((function(){r.classList.remove(ACTIVATED);f.delete(r)}),CLEAR_STATE_DEFERS);f.set(r,a)}else{r.classList.remove(ACTIVATED)}};doc.addEventListener("ionGestureCaptured",T);doc.addEventListener("touchstart",u,true);doc.addEventListener("touchcancel",c,true);doc.addEventListener("touchend",c,true);doc.addEventListener("pointercancel",T,true);doc.addEventListener("mousedown",v,true);doc.addEventListener("mouseup",d,true)};var getActivatableTarget=function(e){if(e.composedPath!==undefined){var r=e.composedPath();for(var n=0;n<r.length-2;n++){var t=r[n];if(!(t instanceof ShadowRoot)&&t.classList.contains("ion-activatable")){return t}}}else{return e.target.closest(".ion-activatable")}};var isInstant=function(e){return e.classList.contains("ion-activatable-instant")};var getRippleEffect=function(e){if(e.shadowRoot){var r=e.shadowRoot.querySelector("ion-ripple-effect");if(r){return r}}return e.querySelector("ion-ripple-effect")};var ACTIVATED="ion-activated";var ADD_ACTIVATED_DEFERS=100;var CLEAR_STATE_DEFERS=150;var MOUSE_WAIT=2500;export{startTapClick};
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{c as createAnimation}from"./animation-dde8cc0d.js";import{g as getIonPageElement}from"./index-8fac11d0.js";import"./index-a5d50daf.js";import"./helpers-ae653409.js";import"./index-73881b51.js";var mdTransitionAnimation=function(a,i){var n,e,t;var r="40px";var o="0px";var m=i.direction==="back";var c=i.enteringEl;var s=i.leavingEl;var l=getIonPageElement(c);var v=l.querySelector("ion-toolbar");var d=createAnimation();d.addElement(l).fill("both").beforeRemoveClass("ion-page-invisible");if(m){d.duration(((n=i.duration)!==null&&n!==void 0?n:0)||200).easing("cubic-bezier(0.47,0,0.745,0.715)")}else{d.duration(((e=i.duration)!==null&&e!==void 0?e:0)||280).easing("cubic-bezier(0.36,0.66,0.04,1)").fromTo("transform","translateY(".concat(r,")"),"translateY(".concat(o,")")).fromTo("opacity",.01,1)}if(v){var p=createAnimation();p.addElement(v);d.addAnimation(p)}if(s&&m){d.duration(((t=i.duration)!==null&&t!==void 0?t:0)||200).easing("cubic-bezier(0.47,0,0.745,0.715)");var f=createAnimation();f.addElement(getIonPageElement(s)).onFinish((function(a){if(a===1&&f.elements.length>0){f.elements[0].style.setProperty("display","none")}})).fromTo("transform","translateY(".concat(o,")"),"translateY(".concat(r,")")).fromTo("opacity",1,0);d.addAnimation(f)}return d};export{mdTransitionAnimation};
@@ -1,4 +0,0 @@
1
- import{__awaiter,__generator,__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */import{d as doc}from"./index-a5d50daf.js";import{b as getIonMode,c as config}from"./ionic-global-778b7863.js";import{C as CoreDelegate}from"./framework-delegate-bc1fd82a.js";import{OVERLAY_BACK_BUTTON_PRIORITY}from"./hardware-back-button-b2bc76db.js";import{c as componentOnReady,f as focusElement,a as addEventListener,b as removeEventListener,g as getElementRoot}from"./helpers-ae653409.js";import{p as printIonWarning}from"./index-9b0d46f4.js";var lastOverlayIndex=0;var lastId=0;var activeAnimations=new WeakMap;var createController=function(e){return{create:function(n){return createOverlay(e,n)},dismiss:function(n,r,t){return dismissOverlay(document,n,r,e,t)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){return[2,getPresentedOverlay(document,e)]}))}))}}};var alertController=createController("ion-alert");var actionSheetController=createController("ion-action-sheet");var loadingController=createController("ion-loading");var modalController=createController("ion-modal");var pickerController=createController("ion-picker");var popoverController=createController("ion-popover");var toastController=createController("ion-toast");var prepareOverlay=function(e){if(typeof document!=="undefined"){connectListeners(document)}var n=lastOverlayIndex++;e.overlayIndex=n};var setOverlayId=function(e){if(!e.hasAttribute("id")){e.id="ion-overlay-".concat(++lastId)}return e.id};var createOverlay=function(e,n){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(e).then((function(){var r=document.createElement(e);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},n),{hasController:true}));getAppRoot(document).appendChild(r);return new Promise((function(e){return componentOnReady(r,e)}))}))}return Promise.resolve()};var focusableQueryString='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';var focusFirstDescendant=function(e,n){var r=e.querySelector(focusableQueryString);var t=r===null||r===void 0?void 0:r.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||r}if(r){focusElement(r)}else{n.focus()}};var isOverlayHidden=function(e){return e.classList.contains("overlay-hidden")};var focusLastDescendant=function(e,n){var r=Array.from(e.querySelectorAll(focusableQueryString));var t=r.length>0?r[r.length-1]:null;var o=t===null||t===void 0?void 0:t.shadowRoot;if(o){t=o.querySelector(focusableQueryString)||t}if(t){t.focus()}else{n.focus()}};var trapKeyboardFocus=function(e,n){var r=getPresentedOverlay(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover");var t=e.target;if(!r||!t){return}if(r.classList.contains("ion-disable-focus-trap")){return}var o=function(){if(r===t){r.lastFocus=undefined}else{var e=getElementRoot(r);if(!e.contains(t)){return}var o=e.querySelector(".ion-overlay-wrapper");if(!o){return}if(o.contains(t)||t===e.querySelector("ion-backdrop")){r.lastFocus=t}else{var i=r.lastFocus;focusFirstDescendant(o,r);if(i===n.activeElement){focusLastDescendant(o,r)}r.lastFocus=n.activeElement}}};var i=function(){if(r.contains(t)){r.lastFocus=t}else{var e=r.lastFocus;focusFirstDescendant(r,r);if(e===n.activeElement){focusLastDescendant(r,r)}r.lastFocus=n.activeElement}};if(r.shadowRoot){i()}else{o()}};var connectListeners=function(e){if(lastOverlayIndex===0){lastOverlayIndex=1;e.addEventListener("focus",(function(n){trapKeyboardFocus(n,e)}),true);e.addEventListener("ionBackButton",(function(n){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){n.detail.register(OVERLAY_BACK_BUTTON_PRIORITY,(function(){return r.dismiss(undefined,BACKDROP)}))}}));e.addEventListener("keydown",(function(n){if(n.key==="Escape"){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,BACKDROP)}}}))}};var dismissOverlay=function(e,n,r,t,o){var i=getPresentedOverlay(e,t,o);if(!i){return Promise.reject("overlay does not exist")}return i.dismiss(n,r)};var getOverlays=function(e,n){if(n===undefined){n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker,ion-popover,ion-toast"}return Array.from(e.querySelectorAll(n)).filter((function(e){return e.overlayIndex>0}))};var getPresentedOverlays=function(e,n){return getOverlays(e,n).filter((function(e){return!isOverlayHidden(e)}))};var getPresentedOverlay=function(e,n,r){var t=getPresentedOverlays(e,n);return r===undefined?t[t.length-1]:t.find((function(e){return e.id===r}))};var setRootAriaHidden=function(e){if(e===void 0){e=false}var n=getAppRoot(document);var r=n.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(e){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var present=function(e,n,r,t,o){return __awaiter(void 0,void 0,void 0,(function(){var i,a,d,u,s;return __generator(this,(function(l){switch(l.label){case 0:if(e.presented){return[2]}setRootAriaHidden(true);e.presented=true;e.willPresent.emit();(i=e.willPresentShorthand)===null||i===void 0?void 0:i.emit();d=getIonMode(e);u=e.enterAnimation?e.enterAnimation:config.get(n,d==="ios"?r:t);return[4,overlayAnimation(e,u,e.el,o)];case 1:s=l.sent();if(s){e.didPresent.emit();(a=e.didPresentShorthand)===null||a===void 0?void 0:a.emit()}if(e.el.tagName!=="ION-TOAST"){focusPreviousElementOnDismiss(e.el)}if(e.keyboardClose&&(document.activeElement===null||!e.el.contains(document.activeElement))){e.el.focus()}return[2]}}))}))};var focusPreviousElementOnDismiss=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(t){switch(t.label){case 0:n=document.activeElement;if(!n){return[2]}r=n===null||n===void 0?void 0:n.shadowRoot;if(r){n=r.querySelector(focusableQueryString)||n}return[4,e.onDidDismiss()];case 1:t.sent();n.focus();return[2]}}))}))};var dismiss=function(e,n,r,t,o,i,a){return __awaiter(void 0,void 0,void 0,(function(){var d,u,s,l,c,v;return __generator(this,(function(f){switch(f.label){case 0:if(!e.presented){return[2,false]}if(doc!==undefined&&getPresentedOverlays(doc).length===1){setRootAriaHidden(false)}e.presented=false;f.label=1;case 1:f.trys.push([1,4,,5]);e.el.style.setProperty("pointer-events","none");e.willDismiss.emit({data:n,role:r});(d=e.willDismissShorthand)===null||d===void 0?void 0:d.emit({data:n,role:r});s=getIonMode(e);l=e.leaveAnimation?e.leaveAnimation:config.get(t,s==="ios"?o:i);if(!(r!==GESTURE))return[3,3];return[4,overlayAnimation(e,l,e.el,a)];case 2:f.sent();f.label=3;case 3:e.didDismiss.emit({data:n,role:r});(u=e.didDismissShorthand)===null||u===void 0?void 0:u.emit({data:n,role:r});c=activeAnimations.get(e)||[];c.forEach((function(e){return e.destroy()}));activeAnimations.delete(e);e.el.classList.add("overlay-hidden");e.el.style.removeProperty("pointer-events");if(e.el.lastFocus!==undefined){e.el.lastFocus=undefined}return[3,5];case 4:v=f.sent();console.error(v);return[3,5];case 5:e.el.remove();return[2,true]}}))}))};var getAppRoot=function(e){return e.querySelector("ion-app")||e.body};var overlayAnimation=function(e,n,r,t){return __awaiter(void 0,void 0,void 0,(function(){var o,i,a;return __generator(this,(function(d){switch(d.label){case 0:r.classList.remove("overlay-hidden");o=e.el;i=n(o,t);if(!e.animated||!config.getBoolean("animated",true)){i.duration(0)}if(e.keyboardClose){i.beforeAddWrite((function(){var e=r.ownerDocument.activeElement;if(e===null||e===void 0?void 0:e.matches("input,ion-input, ion-textarea")){e.blur()}}))}a=activeAnimations.get(e)||[];activeAnimations.set(e,__spreadArray(__spreadArray([],a,true),[i],false));return[4,i.play()];case 1:d.sent();return[2,true]}}))}))};var eventMethod=function(e,n){var r;var t=new Promise((function(e){return r=e}));onceEvent(e,n,(function(e){r(e.detail)}));return t};var onceEvent=function(e,n,r){var t=function(o){removeEventListener(e,n,t);r(o)};addEventListener(e,n,t)};var isCancel=function(e){return e==="cancel"||e===BACKDROP};var defaultGate=function(e){return e()};var safeCall=function(e,n){if(typeof e==="function"){var r=config.get("_zoneGate",defaultGate);return r((function(){try{return e(n)}catch(e){throw e}}))}return undefined};var BACKDROP="backdrop";var GESTURE="gesture";var OVERLAY_GESTURE_PRIORITY=39;var createDelegateController=function(e){var n=false;var r;var t=CoreDelegate();var o=function(o){if(o===void 0){o=false}if(r&&!o){return{delegate:r,inline:n}}var i=e.el,a=e.hasController,d=e.delegate;var u=i.parentNode;n=u!==null&&!a;r=n?d||t:d;return{inline:n,delegate:r}};var i=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,t;return __generator(this,(function(i){switch(i.label){case 0:r=o(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(e.el,n)];case 1:return[2,i.sent()];case 2:t=e.hasController;if(t&&n!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var a=function(){var n=o().delegate;if(n&&e.el!==undefined){n.removeViewFromDom(e.el.parentElement,e.el)}};return{attachViewToDom:i,removeViewFromDom:a}};var createTriggerController=function(){var e;var n=function(){if(e){e();e=undefined}};var r=function(r,t){n();var o=t!==undefined?document.getElementById(t):null;if(!o){printIonWarning('A trigger element with the ID "'.concat(t,'" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.'),r);return}var i=function(e,n){var r=function(){n.present()};e.addEventListener("click",r);return function(){e.removeEventListener("click",r)}};e=i(o,r)};return{addClickListener:r,removeClickListener:n}};export{BACKDROP as B,GESTURE as G,OVERLAY_GESTURE_PRIORITY as O,alertController as a,actionSheetController as b,popoverController as c,createDelegateController as d,createTriggerController as e,present as f,dismiss as g,eventMethod as h,isCancel as i,prepareOverlay as j,setOverlayId as k,loadingController as l,modalController as m,focusFirstDescendant as n,getPresentedOverlay as o,pickerController as p,safeCall as s,toastController as t};
@@ -1,4 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(n,r,t,e){function i(n){return n instanceof t?n:new t((function(r){r(n)}))}return new(t||(t=Promise))((function(t,u){function a(n){try{f(e.next(n))}catch(n){u(n)}}function o(n){try{f(e["throw"](n))}catch(n){u(n)}}function f(n){n.done?t(n.value):i(n.value).then(a,o)}f((e=e.apply(n,r||[])).next())}))};var __generator=this&&this.__generator||function(n,r){var t={label:0,sent:function(){if(u[0]&1)throw u[1];return u[1]},trys:[],ops:[]},e,i,u,a;return a={next:o(0),throw:o(1),return:o(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function o(n){return function(r){return f([n,r])}}function f(o){if(e)throw new TypeError("Generator is already executing.");while(a&&(a=0,o[0]&&(t=0)),t)try{if(e=1,i&&(u=o[0]&2?i["return"]:o[0]?i["throw"]||((u=i["return"])&&u.call(i),0):i.next)&&!(u=u.call(i,o[1])).done)return u;if(i=0,u)o=[o[0]&2,u.value];switch(o[0]){case 0:case 1:u=o;break;case 4:t.label++;return{value:o[1],done:false};case 5:t.label++;i=o[1];o=[0];continue;case 7:o=t.ops.pop();t.trys.pop();continue;default:if(!(u=t.trys,u=u.length>0&&u[u.length-1])&&(o[0]===6||o[0]===2)){t=0;continue}if(o[0]===3&&(!u||o[1]>u[0]&&o[1]<u[3])){t.label=o[1];break}if(o[0]===6&&t.label<u[1]){t.label=u[1];u=o;break}if(u&&t.label<u[2]){t.label=u[2];t.ops.push(o);break}if(u[2])t.ops.pop();t.trys.pop();continue}o=r.call(n,t)}catch(n){o=[6,n];i=0}finally{e=u=0}if(o[0]&5)throw o[1];return{value:o[0]?o[1]:void 0,done:true}}};
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */System.register(["./p-792919fd.system.js","./p-790220fd.system.js","./p-ff4b7e40.system.js","./p-32ad210f.system.js","./p-3f028207.system.js","./p-38f2c6bb.system.js"],(function(n){"use strict";var r,t,e,i,u,a;return{setters:[function(n){r=n.d},function(n){t=n.MENU_BACK_BUTTON_PRIORITY},function(n){e=n.p},function(n){i=n.c},function(n){u=n.b},function(n){a=n.c}],execute:function(){var o=this;var f=function(n){return a().duration(n?400:300)};var s=function(n){var r;var t;var e=n.width+8;var i=a();var o=a();if(n.isEndSide){r=e+"px";t="0px"}else{r=-e+"px";t="0px"}i.addElement(n.menuInnerEl).fromTo("transform","translateX(".concat(r,")"),"translateX(".concat(t,")"));var s=u(n);var c=s==="ios";var v=c?.2:.25;o.addElement(n.backdropEl).fromTo("opacity",.01,v);return f(c).addAnimation([i,o])};var c=function(n){var r;var t;var e=u(n);var i=n.width;if(n.isEndSide){r=-i+"px";t=i+"px"}else{r=i+"px";t=-i+"px"}var o=a().addElement(n.menuInnerEl).fromTo("transform","translateX(".concat(t,")"),"translateX(0px)");var s=a().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(r,")"));var c=a().addElement(n.backdropEl).fromTo("opacity",.01,.32);return f(e==="ios").addAnimation([o,s,c])};var v=function(n){var r=u(n);var t=n.width*(n.isEndSide?-1:1)+"px";var e=a().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(t,")"));return f(r==="ios").addAnimation(e)};var d=function(){var n=new Map;var u=[];var a=function(n){return __awaiter(o,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,m(n,true)];case 1:r=t.sent();if(r){return[2,r.open()]}return[2,false]}}))}))};var f=function(n){return __awaiter(o,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,n!==undefined?m(n,true):p()];case 1:r=t.sent();if(r!==undefined){return[2,r.close()]}return[2,false]}}))}))};var d=function(n){return __awaiter(o,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,m(n,true)];case 1:r=t.sent();if(r){return[2,r.toggle()]}return[2,false]}}))}))};var h=function(n,r){return __awaiter(o,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:return[4,m(r)];case 1:t=e.sent();if(t){t.disabled=!n}return[2,t]}}))}))};var _=function(n,r){return __awaiter(o,void 0,void 0,(function(){var t;return __generator(this,(function(e){switch(e.label){case 0:return[4,m(r)];case 1:t=e.sent();if(t){t.swipeGesture=n}return[2,t]}}))}))};var l=function(n){return __awaiter(o,void 0,void 0,(function(){var r,r;return __generator(this,(function(t){switch(t.label){case 0:if(!(n!=null))return[3,2];return[4,m(n)];case 1:r=t.sent();return[2,r!==undefined&&r.isOpen()];case 2:return[4,p()];case 3:r=t.sent();return[2,r!==undefined]}}))}))};var w=function(n){return __awaiter(o,void 0,void 0,(function(){var r;return __generator(this,(function(t){switch(t.label){case 0:return[4,m(n)];case 1:r=t.sent();if(r){return[2,!r.disabled]}return[2,false]}}))}))};var m=function(n,r){if(r===void 0){r=false}return __awaiter(o,void 0,void 0,(function(){var t,i,a;return __generator(this,(function(o){switch(o.label){case 0:return[4,E()];case 1:o.sent();if(n==="start"||n==="end"){t=u.filter((function(r){return r.side===n&&!r.disabled}));if(t.length>=1){if(t.length>1&&r){e('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(t.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),t.map((function(n){return n.el})))}return[2,t[0].el]}i=u.filter((function(r){return r.side===n}));if(i.length>=1){if(i.length>1&&r){e('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(i.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),i.map((function(n){return n.el})))}return[2,i[0].el]}}else if(n!=null){return[2,S((function(r){return r.menuId===n}))]}a=S((function(n){return!n.disabled}));if(a){return[2,a]}return[2,u.length>0?u[0].el:undefined]}}))}))};var p=function(){return __awaiter(o,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,E()];case 1:n.sent();return[2,A()]}}))}))};var g=function(){return __awaiter(o,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,E()];case 1:n.sent();return[2,I()]}}))}))};var y=function(){return __awaiter(o,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,E()];case 1:n.sent();return[2,O()]}}))}))};var b=function(r,t){n.set(r,t)};var x=function(n){if(u.indexOf(n)<0){u.push(n)}};var X=function(n){var r=u.indexOf(n);if(r>-1){u.splice(r,1)}};var j=function(n,r,t){return __awaiter(o,void 0,void 0,(function(){var e;return __generator(this,(function(i){switch(i.label){case 0:if(O()){return[2,false]}if(!r)return[3,3];return[4,p()];case 1:e=i.sent();if(!(e&&n.el!==e))return[3,3];return[4,e.setOpen(false,false)];case 2:i.sent();i.label=3;case 3:return[2,n._setOpen(r,t)]}}))}))};var k=function(r,t){var e=n.get(r);if(!e){throw new Error("animation not registered")}var i=e(t);return i};var A=function(){return S((function(n){return n._isOpen}))};var I=function(){return u.map((function(n){return n.el}))};var O=function(){return u.some((function(n){return n.isAnimating}))};var S=function(n){var r=u.find(n);if(r!==undefined){return r.el}return undefined};var E=function(){return Promise.all(Array.from(document.querySelectorAll("ion-menu")).map((function(n){return new Promise((function(r){return i(n,r)}))})))};b("reveal",v);b("push",c);b("overlay",s);r===null||r===void 0?void 0:r.addEventListener("ionBackButton",(function(n){var r=A();if(r){n.detail.register(t,(function(){return r.close()}))}}));return{registerAnimation:b,get:m,getMenus:g,getOpen:p,isEnabled:w,swipeGesture:_,isAnimating:y,isOpen:l,enable:h,toggle:d,close:f,open:a,_getOpenSync:A,_createAnimation:k,_register:x,_unregister:X,_setOpen:j}};var h=n("m",d())}}}));