voyager-ionic-core 7.4.3 → 7.4.4

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 (344) hide show
  1. package/components/animation.js +60 -1
  2. package/components/checkbox.js +3 -0
  3. package/components/ion-menu.js +51 -19
  4. package/components/ion-select.js +31 -17
  5. package/components/ion-toggle.js +3 -0
  6. package/components/radio-group.js +1 -1
  7. package/components/radio.js +4 -1
  8. package/components/swipe-back.js +4 -0
  9. package/dist/cjs/{animation-2bb33618.js → animation-c8bdd3c7.js} +60 -1
  10. package/dist/cjs/{app-globals-84b6a756.js → app-globals-fe1ad535.js} +1 -1
  11. package/dist/cjs/{button-active-c358e83c.js → button-active-0932cee9.js} +1 -1
  12. package/dist/cjs/{index-14a4821e.js → index-305a23dc.js} +95 -51
  13. package/dist/cjs/{index-acf6bdf0.js → index-d3568232.js} +3 -3
  14. package/dist/cjs/{index-97a3eade.js → index-f94cbab1.js} +2 -2
  15. package/dist/cjs/index.cjs.js +8 -8
  16. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  17. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  18. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  19. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  20. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -2
  27. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  31. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-menu_3.cjs.entry.js +56 -24
  39. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  40. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  41. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  44. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-radio_2.cjs.entry.js +7 -4
  46. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  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-ripple-effect.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-select_3.cjs.entry.js +34 -20
  54. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-toast.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-toggle.cjs.entry.js +5 -2
  62. package/dist/cjs/{ionic-global-a71608df.js → ionic-global-fb752503.js} +1 -1
  63. package/dist/cjs/ionic.cjs.js +4 -4
  64. package/dist/cjs/{ios.transition-e31445c2.js → ios.transition-7d688757.js} +3 -3
  65. package/dist/cjs/loader.cjs.js +3 -3
  66. package/dist/cjs/{md.transition-fb13ac79.js → md.transition-d77d3c2e.js} +3 -3
  67. package/dist/cjs/{overlays-efc9d511.js → overlays-7e1a08fa.js} +1 -1
  68. package/dist/cjs/{status-tap-8c22e017.js → status-tap-778e8054.js} +1 -1
  69. package/dist/cjs/{swipe-back-d97c74d1.js → swipe-back-7e843e77.js} +4 -0
  70. package/dist/collection/collection-manifest.json +1 -1
  71. package/dist/collection/components/checkbox/checkbox.js +3 -0
  72. package/dist/collection/components/menu/menu.js +51 -19
  73. package/dist/collection/components/menu/test/disable/menu.e2e.js +55 -0
  74. package/dist/collection/components/radio/radio.js +4 -1
  75. package/dist/collection/components/radio-group/radio-group.js +1 -1
  76. package/dist/collection/components/select/select.js +31 -17
  77. package/dist/collection/components/select/test/disabled/select.e2e.js +30 -0
  78. package/dist/collection/components/toggle/toggle.js +3 -0
  79. package/dist/collection/utils/animation/animation.js +60 -1
  80. package/dist/collection/utils/gesture/swipe-back.js +4 -0
  81. package/dist/docs.json +2 -2
  82. package/dist/esm/{animation-a1d9e088.js → animation-92066c62.js} +60 -1
  83. package/dist/esm/{app-globals-df292a32.js → app-globals-ec816a70.js} +1 -1
  84. package/dist/esm/{button-active-7180a130.js → button-active-5136c12d.js} +1 -1
  85. package/dist/esm/{index-32c6828b.js → index-641aeeed.js} +3 -3
  86. package/dist/esm/{index-cb894020.js → index-b49b173c.js} +95 -51
  87. package/dist/esm/{index-3d6aefa2.js → index-d78b533e.js} +2 -2
  88. package/dist/esm/index.js +8 -8
  89. package/dist/esm/ion-accordion_2.entry.js +2 -2
  90. package/dist/esm/ion-action-sheet.entry.js +5 -5
  91. package/dist/esm/ion-alert.entry.js +5 -5
  92. package/dist/esm/ion-app_8.entry.js +5 -5
  93. package/dist/esm/ion-avatar_3.entry.js +2 -2
  94. package/dist/esm/ion-back-button.entry.js +2 -2
  95. package/dist/esm/ion-backdrop.entry.js +2 -2
  96. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  97. package/dist/esm/ion-button_2.entry.js +2 -2
  98. package/dist/esm/ion-card_5.entry.js +2 -2
  99. package/dist/esm/ion-checkbox.entry.js +5 -2
  100. package/dist/esm/ion-chip.entry.js +2 -2
  101. package/dist/esm/ion-col_3.entry.js +2 -2
  102. package/dist/esm/ion-datetime-button.entry.js +2 -2
  103. package/dist/esm/ion-datetime_3.entry.js +4 -4
  104. package/dist/esm/ion-fab_3.entry.js +2 -2
  105. package/dist/esm/ion-img.entry.js +2 -2
  106. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  107. package/dist/esm/ion-input.entry.js +2 -2
  108. package/dist/esm/ion-item-option_3.entry.js +2 -2
  109. package/dist/esm/ion-item_8.entry.js +2 -2
  110. package/dist/esm/ion-loading.entry.js +4 -4
  111. package/dist/esm/ion-menu_3.entry.js +56 -24
  112. package/dist/esm/ion-modal.entry.js +5 -5
  113. package/dist/esm/ion-nav_2.entry.js +4 -4
  114. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  115. package/dist/esm/ion-picker-internal.entry.js +1 -1
  116. package/dist/esm/ion-popover.entry.js +5 -5
  117. package/dist/esm/ion-progress-bar.entry.js +2 -2
  118. package/dist/esm/ion-radio_2.entry.js +7 -4
  119. package/dist/esm/ion-range.entry.js +2 -2
  120. package/dist/esm/ion-refresher_2.entry.js +3 -3
  121. package/dist/esm/ion-reorder_2.entry.js +2 -2
  122. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  123. package/dist/esm/ion-route_4.entry.js +2 -2
  124. package/dist/esm/ion-searchbar.entry.js +2 -2
  125. package/dist/esm/ion-segment_2.entry.js +2 -2
  126. package/dist/esm/ion-select_3.entry.js +34 -20
  127. package/dist/esm/ion-spinner.entry.js +2 -2
  128. package/dist/esm/ion-split-pane.entry.js +2 -2
  129. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  130. package/dist/esm/ion-tab_2.entry.js +1 -1
  131. package/dist/esm/ion-text.entry.js +2 -2
  132. package/dist/esm/ion-textarea.entry.js +2 -2
  133. package/dist/esm/ion-toast.entry.js +4 -4
  134. package/dist/esm/ion-toggle.entry.js +5 -2
  135. package/dist/esm/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  136. package/dist/esm/ionic.js +5 -5
  137. package/dist/esm/{ios.transition-d8223b18.js → ios.transition-04c9a97a.js} +3 -3
  138. package/dist/esm/loader.js +4 -4
  139. package/dist/esm/{md.transition-caed184e.js → md.transition-67a8aabd.js} +3 -3
  140. package/dist/esm/{overlays-84621c0a.js → overlays-2fa52617.js} +1 -1
  141. package/dist/esm/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  142. package/dist/esm/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +4 -0
  143. package/dist/esm-es5/animation-92066c62.js +4 -0
  144. package/dist/esm-es5/app-globals-ec816a70.js +4 -0
  145. package/dist/esm-es5/{button-active-7180a130.js → button-active-5136c12d.js} +1 -1
  146. package/dist/esm-es5/{index-32c6828b.js → index-641aeeed.js} +1 -1
  147. package/dist/esm-es5/index-b49b173c.js +5 -0
  148. package/dist/esm-es5/{index-3d6aefa2.js → index-d78b533e.js} +1 -1
  149. package/dist/esm-es5/index.js +1 -1
  150. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  151. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  152. package/dist/esm-es5/ion-alert.entry.js +1 -1
  153. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  154. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  155. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  156. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  157. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  158. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  159. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  160. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  161. package/dist/esm-es5/ion-chip.entry.js +1 -1
  162. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  163. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  164. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  165. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  166. package/dist/esm-es5/ion-img.entry.js +1 -1
  167. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  168. package/dist/esm-es5/ion-input.entry.js +1 -1
  169. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  171. package/dist/esm-es5/ion-loading.entry.js +1 -1
  172. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  173. package/dist/esm-es5/ion-modal.entry.js +1 -1
  174. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  176. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  177. package/dist/esm-es5/ion-popover.entry.js +1 -1
  178. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  179. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  180. package/dist/esm-es5/ion-range.entry.js +1 -1
  181. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  184. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  185. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  186. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  187. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  188. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  189. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  190. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  191. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  192. package/dist/esm-es5/ion-text.entry.js +1 -1
  193. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  194. package/dist/esm-es5/ion-toast.entry.js +1 -1
  195. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  196. package/dist/esm-es5/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  197. package/dist/esm-es5/ionic.js +1 -1
  198. package/dist/esm-es5/{ios.transition-d8223b18.js → ios.transition-04c9a97a.js} +1 -1
  199. package/dist/esm-es5/loader.js +1 -1
  200. package/dist/esm-es5/{md.transition-caed184e.js → md.transition-67a8aabd.js} +1 -1
  201. package/dist/esm-es5/{overlays-84621c0a.js → overlays-2fa52617.js} +1 -1
  202. package/dist/esm-es5/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  203. package/dist/ionic/index.esm.js +1 -1
  204. package/dist/ionic/ionic.esm.js +1 -1
  205. package/dist/ionic/ionic.js +1 -1
  206. package/dist/ionic/p-015187e5.system.js +4 -0
  207. package/dist/ionic/{p-30b04d8d.js → p-02a4e81a.js} +1 -1
  208. package/dist/ionic/{p-89e3d112.system.entry.js → p-03c381ec.system.entry.js} +1 -1
  209. package/dist/ionic/{p-9e727d1d.entry.js → p-048f1ebe.entry.js} +1 -1
  210. package/dist/ionic/{p-ec29338e.entry.js → p-04e7c8fd.entry.js} +1 -1
  211. package/dist/ionic/{p-043e8328.system.js → p-05ae600a.system.js} +1 -1
  212. package/dist/ionic/p-06ac429a.js +5 -0
  213. package/dist/ionic/p-0c37546b.system.entry.js +4 -0
  214. package/dist/ionic/{p-7887ac7a.entry.js → p-108f9d49.entry.js} +1 -1
  215. package/dist/ionic/{p-e40b2cb4.system.entry.js → p-117cd69f.system.entry.js} +1 -1
  216. package/dist/ionic/{p-e263255c.system.entry.js → p-1289b3b5.system.entry.js} +1 -1
  217. package/dist/ionic/p-13d6e57a.js +4 -0
  218. package/dist/ionic/{p-da024961.entry.js → p-164b0e76.entry.js} +1 -1
  219. package/dist/ionic/{p-8957b1de.system.entry.js → p-170e9de0.system.entry.js} +1 -1
  220. package/dist/ionic/{p-8a289322.js → p-181b7c2a.js} +1 -1
  221. package/dist/ionic/{p-23e76249.entry.js → p-19384b9e.entry.js} +1 -1
  222. package/dist/ionic/p-1c82e9ff.js +4 -0
  223. package/dist/ionic/{p-a4e95028.system.entry.js → p-1d0aa82f.system.entry.js} +1 -1
  224. package/dist/ionic/{p-9201a4d3.entry.js → p-1ecba429.entry.js} +1 -1
  225. package/dist/ionic/{p-3db27dec.entry.js → p-1f81b5be.entry.js} +1 -1
  226. package/dist/ionic/{p-6db9035a.system.entry.js → p-238f0ac5.system.entry.js} +1 -1
  227. package/dist/ionic/{p-37fc0d22.system.entry.js → p-2784263e.system.entry.js} +1 -1
  228. package/dist/ionic/{p-8f36cde3.system.entry.js → p-29073efe.system.entry.js} +1 -1
  229. package/dist/ionic/p-29e3a9bb.entry.js +4 -0
  230. package/dist/ionic/{p-63f39d2f.entry.js → p-2a7c0093.entry.js} +1 -1
  231. package/dist/ionic/{p-007168b8.system.entry.js → p-32717950.system.entry.js} +1 -1
  232. package/dist/ionic/{p-a0e2f6d8.entry.js → p-32d364f0.entry.js} +1 -1
  233. package/dist/ionic/{p-c09e1da9.system.entry.js → p-33a8349a.system.entry.js} +1 -1
  234. package/dist/ionic/{p-a51f5932.entry.js → p-35818410.entry.js} +1 -1
  235. package/dist/ionic/{p-96ad49f1.entry.js → p-37448ac1.entry.js} +1 -1
  236. package/dist/ionic/{p-3e6b0330.system.entry.js → p-38ccfd71.system.entry.js} +1 -1
  237. package/dist/ionic/{p-6f3099b6.system.entry.js → p-3a58e3a4.system.entry.js} +1 -1
  238. package/dist/ionic/{p-c2d6b2fb.entry.js → p-3c2c6fce.entry.js} +1 -1
  239. package/dist/ionic/{p-9a6f6789.system.entry.js → p-3f3da911.system.entry.js} +1 -1
  240. package/dist/ionic/p-446230d7.js +4 -0
  241. package/dist/ionic/{p-d511de89.system.entry.js → p-45f5c8ba.system.entry.js} +1 -1
  242. package/dist/ionic/{p-2992f2a8.entry.js → p-47db15c6.entry.js} +1 -1
  243. package/dist/ionic/{p-21085f64.system.entry.js → p-4811e4af.system.entry.js} +1 -1
  244. package/dist/ionic/{p-dd0c00ed.entry.js → p-4b8db805.entry.js} +1 -1
  245. package/dist/ionic/{p-ec451ef7.system.entry.js → p-4bb26b01.system.entry.js} +1 -1
  246. package/dist/ionic/{p-28678af4.system.entry.js → p-4d6ac0fe.system.entry.js} +1 -1
  247. package/dist/ionic/p-4dd96c8d.entry.js +4 -0
  248. package/dist/ionic/{p-0793ebfd.entry.js → p-4e6e43c1.entry.js} +1 -1
  249. package/dist/ionic/{p-a760fd9a.system.js → p-51269f3b.system.js} +1 -1
  250. package/dist/ionic/{p-abfd1f2e.system.entry.js → p-54f6cd27.system.entry.js} +1 -1
  251. package/dist/ionic/{p-b27772bf.entry.js → p-55d3a9b2.entry.js} +1 -1
  252. package/dist/ionic/{p-f4267847.system.entry.js → p-576e6d0f.system.entry.js} +1 -1
  253. package/dist/ionic/{p-6ce891b2.entry.js → p-5b32b053.entry.js} +1 -1
  254. package/dist/ionic/{p-b79eb3cd.entry.js → p-5b976d70.entry.js} +1 -1
  255. package/dist/ionic/p-5bc5008c.entry.js +4 -0
  256. package/dist/ionic/{p-73eba881.system.js → p-5c3e72a8.system.js} +1 -1
  257. package/dist/ionic/{p-d580cbb7.system.entry.js → p-5c651aab.system.entry.js} +1 -1
  258. package/dist/ionic/{p-c381a9a9.system.entry.js → p-5cd791b3.system.entry.js} +1 -1
  259. package/dist/ionic/p-5ece7025.system.js +4 -0
  260. package/dist/ionic/{p-018ad59f.entry.js → p-5efb899f.entry.js} +1 -1
  261. package/dist/ionic/{p-6c7d61b9.system.entry.js → p-6129af0a.system.entry.js} +1 -1
  262. package/dist/ionic/{p-26fbffd4.system.js → p-629aa3fd.system.js} +1 -1
  263. package/dist/ionic/{p-68a3da51.js → p-63505fbb.js} +1 -1
  264. package/dist/ionic/{p-67e21699.entry.js → p-64e20cd9.entry.js} +1 -1
  265. package/dist/ionic/p-65a5761f.js +4 -0
  266. package/dist/ionic/{p-fb18f74b.system.entry.js → p-6ac3e877.system.entry.js} +1 -1
  267. package/dist/ionic/{p-c8ec0d79.system.js → p-6ba7fad7.system.js} +1 -1
  268. package/dist/ionic/{p-92d72ad8.entry.js → p-6ea2e653.entry.js} +1 -1
  269. package/dist/ionic/{p-a9b13f18.system.entry.js → p-6f8a95a3.system.entry.js} +1 -1
  270. package/dist/ionic/{p-f6f4d4bb.system.entry.js → p-6fb80ef3.system.entry.js} +1 -1
  271. package/dist/ionic/{p-b4c0e9ee.entry.js → p-706a0391.entry.js} +1 -1
  272. package/dist/ionic/{p-7fd0f045.system.entry.js → p-72aea40e.system.entry.js} +1 -1
  273. package/dist/ionic/p-73ed9a91.js +4 -0
  274. package/dist/ionic/{p-7a590a28.js → p-76378400.js} +1 -1
  275. package/dist/ionic/{p-3dce88bf.entry.js → p-818b2e75.entry.js} +1 -1
  276. package/dist/ionic/p-8297652e.entry.js +4 -0
  277. package/dist/ionic/{p-b9e2aede.entry.js → p-839276d4.entry.js} +1 -1
  278. package/dist/ionic/{p-b4daca17.system.entry.js → p-8a2801f1.system.entry.js} +1 -1
  279. package/dist/ionic/{p-00cf2d6c.js → p-8e24ebbc.js} +1 -1
  280. package/dist/ionic/{p-037e2738.system.entry.js → p-8ee012cb.system.entry.js} +1 -1
  281. package/dist/ionic/{p-f1c2678b.system.entry.js → p-908720f3.system.entry.js} +1 -1
  282. package/dist/ionic/{p-7cad90ed.entry.js → p-914ac0fc.entry.js} +1 -1
  283. package/dist/ionic/{p-9f9efb31.system.js → p-939e0fa1.system.js} +1 -1
  284. package/dist/ionic/{p-e6d2cca2.system.entry.js → p-95b14c73.system.entry.js} +1 -1
  285. package/dist/ionic/{p-ca655a7c.entry.js → p-96ba8eac.entry.js} +1 -1
  286. package/dist/ionic/{p-5fd0a13e.system.entry.js → p-99dfa53f.system.entry.js} +1 -1
  287. package/dist/ionic/{p-a8403bed.system.entry.js → p-9b4a77fc.system.entry.js} +1 -1
  288. package/dist/ionic/{p-50d83224.entry.js → p-a04bfada.entry.js} +1 -1
  289. package/dist/ionic/p-a18ec02b.entry.js +4 -0
  290. package/dist/ionic/{p-95e44641.system.entry.js → p-b109a3d7.system.entry.js} +1 -1
  291. package/dist/ionic/{p-fbc7995a.system.entry.js → p-b3690814.system.entry.js} +1 -1
  292. package/dist/ionic/{p-534a1cbc.system.js → p-b3c68723.system.js} +1 -1
  293. package/dist/ionic/{p-4e76e29a.system.entry.js → p-b61a2fa0.system.entry.js} +1 -1
  294. package/dist/ionic/{p-f37d6823.system.entry.js → p-beb864e4.system.entry.js} +1 -1
  295. package/dist/ionic/{p-a732cfec.system.js → p-c3efbcf5.system.js} +1 -1
  296. package/dist/ionic/{p-58565369.system.entry.js → p-c48fc95d.system.entry.js} +1 -1
  297. package/dist/ionic/{p-5c24c115.system.js → p-c49672d8.system.js} +1 -1
  298. package/dist/ionic/{p-57743e20.entry.js → p-c4a5de01.entry.js} +1 -1
  299. package/dist/ionic/{p-1d2d1ab5.system.entry.js → p-c7428627.system.entry.js} +1 -1
  300. package/dist/ionic/{p-84549737.system.entry.js → p-cf0c93e3.system.entry.js} +1 -1
  301. package/dist/ionic/{p-7d6f2bbb.system.entry.js → p-d0ad0430.system.entry.js} +1 -1
  302. package/dist/ionic/{p-7b15d413.entry.js → p-d35217be.entry.js} +1 -1
  303. package/dist/ionic/{p-e88ed929.system.entry.js → p-d55c9f92.system.entry.js} +1 -1
  304. package/dist/ionic/{p-b2397f35.entry.js → p-d7b8d224.entry.js} +1 -1
  305. package/dist/ionic/{p-0e070fbe.entry.js → p-d89d0de0.entry.js} +1 -1
  306. package/dist/ionic/{p-fa06c407.entry.js → p-db1a1e00.entry.js} +1 -1
  307. package/dist/ionic/{p-4b23f472.entry.js → p-deb6ddad.entry.js} +1 -1
  308. package/dist/ionic/{p-9d0916cb.system.js → p-df5fe0be.system.js} +1 -1
  309. package/dist/ionic/{p-d90f0779.system.entry.js → p-e0f52215.system.entry.js} +1 -1
  310. package/dist/ionic/{p-1caf1ec6.entry.js → p-e1ac688a.entry.js} +1 -1
  311. package/dist/ionic/{p-d2a278b1.entry.js → p-e2fd0895.entry.js} +1 -1
  312. package/dist/ionic/{p-9e91c83f.system.entry.js → p-eab10949.system.entry.js} +1 -1
  313. package/dist/ionic/{p-ac32f6ce.entry.js → p-eac263dd.entry.js} +1 -1
  314. package/dist/ionic/{p-a1d7f4ef.entry.js → p-ec9052a4.entry.js} +1 -1
  315. package/dist/ionic/{p-a6c52452.entry.js → p-f588e951.entry.js} +1 -1
  316. package/dist/ionic/{p-e3272ed8.entry.js → p-f623aa6d.entry.js} +1 -1
  317. package/dist/ionic/{p-ab7edc16.system.entry.js → p-f960fd84.system.entry.js} +1 -1
  318. package/dist/ionic/{p-57c5eca2.system.js → p-fbcb157b.system.js} +1 -1
  319. package/dist/ionic/{p-4c20879c.entry.js → p-fccfe602.entry.js} +1 -1
  320. package/dist/ionic/{p-3bf7c0dc.entry.js → p-fcf47f80.entry.js} +1 -1
  321. package/dist/ionic/{p-b3bcef34.system.entry.js → p-ff555f6f.system.entry.js} +1 -1
  322. package/dist/types/components/menu/menu.d.ts +8 -1
  323. package/hydrate/index.js +197 -72
  324. package/package.json +3 -2
  325. package/dist/esm-es5/animation-a1d9e088.js +0 -4
  326. package/dist/esm-es5/app-globals-df292a32.js +0 -4
  327. package/dist/esm-es5/index-cb894020.js +0 -5
  328. package/dist/ionic/p-15278928.entry.js +0 -4
  329. package/dist/ionic/p-1c59608c.system.entry.js +0 -4
  330. package/dist/ionic/p-469d6a98.entry.js +0 -4
  331. package/dist/ionic/p-4af11953.entry.js +0 -4
  332. package/dist/ionic/p-6641d7fa.js +0 -4
  333. package/dist/ionic/p-68b405cc.entry.js +0 -4
  334. package/dist/ionic/p-6b2641f6.system.js +0 -4
  335. package/dist/ionic/p-7c901810.system.js +0 -4
  336. package/dist/ionic/p-8c17d825.js +0 -4
  337. package/dist/ionic/p-903c36fe.js +0 -5
  338. package/dist/ionic/p-90ebbca0.entry.js +0 -4
  339. package/dist/ionic/p-94a4ce40.js +0 -4
  340. package/dist/ionic/p-9649c54e.js +0 -4
  341. package/dist/ionic/p-b370d1b4.js +0 -4
  342. /package/dist/esm-es5/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +0 -0
  343. /package/dist/ionic/{p-0e9a055c.js → p-32083c2d.js} +0 -0
  344. /package/dist/ionic/{p-eacb02b2.system.js → p-b912e055.system.js} +0 -0
@@ -5,17 +5,17 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const notchController = require('./notch-controller-f4f6af5d.js');
11
11
  const helpers = require('./helpers-ea4ccbcb.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
- const overlays = require('./overlays-efc9d511.js');
13
+ const overlays = require('./overlays-7e1a08fa.js');
14
14
  const dir = require('./dir-f1e0ca26.js');
15
15
  const theme = require('./theme-fbc56b3b.js');
16
16
  const watchOptions = require('./watch-options-f3f77e54.js');
17
17
  const index$2 = require('./index-d8d1fc0b.js');
18
- const ionicGlobal = require('./ionic-global-a71608df.js');
18
+ const ionicGlobal = require('./ionic-global-fb752503.js');
19
19
  require('./index-306a7476.js');
20
20
  require('./framework-delegate-c0873a6f.js');
21
21
  require('./hardware-back-button-b67c8e75.js');
@@ -127,25 +127,39 @@ const Select = class {
127
127
  await overlay.present();
128
128
  // focus selected option for popovers
129
129
  if (this.interface === 'popover') {
130
- let indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
131
- indexOfSelected = indexOfSelected > -1 ? indexOfSelected : 0; // default to first option if nothing selected
132
- const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
133
- if (selectedItem) {
134
- helpers.focusElement(selectedItem);
130
+ const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
131
+ if (indexOfSelected > -1) {
132
+ const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
133
+ if (selectedItem) {
134
+ helpers.focusElement(selectedItem);
135
+ /**
136
+ * Browsers such as Firefox do not
137
+ * correctly delegate focus when manually
138
+ * focusing an element with delegatesFocus.
139
+ * We work around this by manually focusing
140
+ * the interactive element.
141
+ * ion-radio and ion-checkbox are the only
142
+ * elements that ion-select-popover uses, so
143
+ * we only need to worry about those two components
144
+ * when focusing.
145
+ */
146
+ const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
147
+ if (interactiveEl) {
148
+ interactiveEl.focus();
149
+ }
150
+ }
151
+ }
152
+ else {
135
153
  /**
136
- * Browsers such as Firefox do not
137
- * correctly delegate focus when manually
138
- * focusing an element with delegatesFocus.
139
- * We work around this by manually focusing
140
- * the interactive element.
141
- * ion-radio and ion-checkbox are the only
142
- * elements that ion-select-popover uses, so
143
- * we only need to worry about those two components
144
- * when focusing.
154
+ * If no value is set then focus the first enabled option.
145
155
  */
146
- const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
147
- if (interactiveEl) {
148
- interactiveEl.focus();
156
+ const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
157
+ if (firstEnabledOption) {
158
+ helpers.focusElement(firstEnabledOption.closest('ion-item'));
159
+ /**
160
+ * Focus the option for the same reason as we do above.
161
+ */
162
+ firstEnabledOption.focus();
149
163
  }
150
164
  }
151
165
  }
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const theme = require('./theme-fbc56b3b.js');
10
- const ionicGlobal = require('./ionic-global-a71608df.js');
10
+ const ionicGlobal = require('./ionic-global-fb752503.js');
11
11
  const spinnerConfigs = require('./spinner-configs-f7b5105b.js');
12
12
 
13
13
  const spinnerCss = ":host{display:inline-block;position:relative;width:28px;height:28px;color:var(--color);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}:host(.ion-color){color:var(--ion-color-base)}svg{-webkit-transform-origin:center;transform-origin:center;position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0)}:host-context([dir=rtl]) svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}[dir=rtl] svg{-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}@supports selector(:dir(rtl)){svg:dir(rtl){-webkit-transform-origin:calc(100% - center);transform-origin:calc(100% - center)}}:host(.spinner-lines) line,:host(.spinner-lines-small) line{stroke-width:7px}:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-width:4px}:host(.spinner-lines) line,:host(.spinner-lines-small) line,:host(.spinner-lines-sharp) line,:host(.spinner-lines-sharp-small) line{stroke-linecap:round;stroke:currentColor}:host(.spinner-lines) svg,:host(.spinner-lines-small) svg,:host(.spinner-lines-sharp) svg,:host(.spinner-lines-sharp-small) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite}:host(.spinner-bubbles) svg{-webkit-animation:spinner-scale-out 1s linear infinite;animation:spinner-scale-out 1s linear infinite;fill:currentColor}:host(.spinner-circles) svg{-webkit-animation:spinner-fade-out 1s linear infinite;animation:spinner-fade-out 1s linear infinite;fill:currentColor}:host(.spinner-crescent) circle{fill:transparent;stroke-width:4px;stroke-dasharray:128px;stroke-dashoffset:82px;stroke:currentColor}:host(.spinner-crescent) svg{-webkit-animation:spinner-rotate 1s linear infinite;animation:spinner-rotate 1s linear infinite}:host(.spinner-dots) circle{stroke-width:0;fill:currentColor}:host(.spinner-dots) svg{-webkit-animation:spinner-dots 1s linear infinite;animation:spinner-dots 1s linear infinite}:host(.spinner-circular) svg{-webkit-animation:spinner-circular linear infinite;animation:spinner-circular linear infinite}:host(.spinner-circular) circle{-webkit-animation:spinner-circular-inner ease-in-out infinite;animation:spinner-circular-inner ease-in-out infinite;stroke:currentColor;stroke-dasharray:80px, 200px;stroke-dashoffset:0px;stroke-width:5.6;fill:none}:host(.spinner-paused),:host(.spinner-paused) svg,:host(.spinner-paused) circle{-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@keyframes spinner-fade-out{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@keyframes spinner-scale-out{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1)}100%{-webkit-transform:scale(0, 0);transform:scale(0, 0)}}@-webkit-keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-rotate{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@keyframes spinner-dots{0%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}50%{-webkit-transform:scale(0.4, 0.4);transform:scale(0.4, 0.4);opacity:0.3}100%{-webkit-transform:scale(1, 1);transform:scale(1, 1);opacity:0.9}}@-webkit-keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-circular{100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}@keyframes spinner-circular-inner{0%{stroke-dasharray:1px, 200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px, 200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px, 200px;stroke-dashoffset:-125px}}";
@@ -5,8 +5,8 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
9
- const ionicGlobal = require('./ionic-global-a71608df.js');
8
+ const index = require('./index-305a23dc.js');
9
+ const ionicGlobal = require('./ionic-global-fb752503.js');
10
10
 
11
11
  const splitPaneIosCss = ":host{--side-width:100%;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;flex-wrap:nowrap;contain:strict}::slotted(ion-menu.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width);min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side),:host(.split-pane-visible) ::slotted(.split-pane-main){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none !important;box-shadow:none !important;z-index:0}:host(.split-pane-visible) ::slotted(.split-pane-main){-ms-flex:1;flex:1}:host(.split-pane-visible) ::slotted(.split-pane-side:not(ion-menu)),:host(.split-pane-visible) ::slotted(ion-menu.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}::slotted(.split-pane-side:not(ion-menu)){display:none}:host(.split-pane-visible) ::slotted(.split-pane-side){-ms-flex-order:-1;order:-1}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host{--border:0.55px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--side-min-width:270px;--side-max-width:28%}:host(.split-pane-visible) ::slotted(.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.split-pane-visible) ::slotted(.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}";
12
12
 
@@ -5,10 +5,10 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const keyboardController = require('./keyboard-controller-50beb83a.js');
10
10
  const theme = require('./theme-fbc56b3b.js');
11
- const ionicGlobal = require('./ionic-global-a71608df.js');
11
+ const ionicGlobal = require('./ionic-global-fb752503.js');
12
12
  const helpers = require('./helpers-ea4ccbcb.js');
13
13
  require('./index-306a7476.js');
14
14
  require('./keyboard-fd7db491.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const frameworkDelegate = require('./framework-delegate-c0873a6f.js');
10
10
  require('./helpers-ea4ccbcb.js');
11
11
 
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const theme = require('./theme-fbc56b3b.js');
10
- const ionicGlobal = require('./ionic-global-a71608df.js');
10
+ const ionicGlobal = require('./ionic-global-fb752503.js');
11
11
 
12
12
  const textCss = ":host(.ion-color){color:var(--ion-color-base)}";
13
13
 
@@ -5,14 +5,14 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const notchController = require('./notch-controller-f4f6af5d.js');
11
11
  const helpers = require('./helpers-ea4ccbcb.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
13
  const input_utils = require('./input.utils-0fe3097c.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
- const ionicGlobal = require('./ionic-global-a71608df.js');
15
+ const ionicGlobal = require('./ionic-global-fb752503.js');
16
16
  require('./index-306a7476.js');
17
17
 
18
18
  const textareaIosCss = ".sc-ion-textarea-ios-h{--background:initial;--color:initial;--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:0.6;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--border-radius:0;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;color:var(--color);font-family:var(--ion-font-family, inherit);z-index:2;-webkit-box-sizing:border-box;box-sizing:border-box}[cols].sc-ion-textarea-ios-h:not([auto-grow]){width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.legacy-textarea.sc-ion-textarea-ios-h{-ms-flex:1;flex:1;background:var(--background);white-space:pre-wrap}.legacy-textarea.ion-color.sc-ion-textarea-ios-h{color:var(--ion-color-base)}.sc-ion-textarea-ios-h:not(.legacy-textarea){--padding-bottom:8px}.ion-color.sc-ion-textarea-ios-h{--highlight-color-focused:var(--ion-color-base);background:initial}ion-item.sc-ion-textarea-ios-h,ion-item .sc-ion-textarea-ios-h{-ms-flex-item-align:baseline;align-self:baseline}ion-item.sc-ion-textarea-ios-h:not(.item-label),ion-item:not(.item-label) .sc-ion-textarea-ios-h{--padding-start:0}ion-item[slot=start].sc-ion-textarea-ios-h,ion-item [slot=start].sc-ion-textarea-ios-h,ion-item[slot=end].sc-ion-textarea-ios-h,ion-item [slot=end].sc-ion-textarea-ios-h{width:auto}.native-textarea.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;position:relative;-ms-flex:1;flex:1;width:100%;max-width:100%;max-height:100%;border:0;outline:none;background:transparent;white-space:pre-wrap;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;resize:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.native-textarea.sc-ion-textarea-ios::-webkit-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-moz-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios:-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::-ms-input-placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.native-textarea.sc-ion-textarea-ios::placeholder{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{white-space:inherit}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios,.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius)}.native-textarea.sc-ion-textarea-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.legacy-textarea.sc-ion-textarea-ios-h .textarea-legacy-wrapper.sc-ion-textarea-ios::after{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;grid-area:1/1/2/2;word-break:break-word}.cloned-input.sc-ion-textarea-ios{top:0;bottom:0;position:absolute;pointer-events:none}@supports (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{inset-inline-start:0}}@supports not (inset-inline-start: 0){.cloned-input.sc-ion-textarea-ios{left:0}[dir=rtl].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}[dir=rtl].sc-ion-textarea-ios .cloned-input.sc-ion-textarea-ios{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.cloned-input.sc-ion-textarea-ios:dir(rtl){left:unset;right:unset;right:0}}}.cloned-input.sc-ion-textarea-ios:disabled{opacity:1}.legacy-textarea[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}[auto-grow].sc-ion-textarea-ios-h .cloned-input.sc-ion-textarea-ios{height:100%}[auto-grow].sc-ion-textarea-ios-h .native-textarea.sc-ion-textarea-ios{overflow:hidden}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value),.item-label-floating.item-has-placeholder:not(.item-has-value) .sc-ion-textarea-ios-h{opacity:0}.item-label-floating.item-has-placeholder.sc-ion-textarea-ios-h:not(.item-has-value).item-has-focus,.item-label-floating.item-has-placeholder:not(.item-has-value).item-has-focus .sc-ion-textarea-ios-h{-webkit-transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 0.15s cubic-bezier(0.4, 0, 0.2, 1);opacity:1}.textarea-wrapper.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:0px;padding-bottom:0px;border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:flex-start;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal}.native-wrapper.sc-ion-textarea-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;width:100%;height:100%}.has-focus.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{caret-color:var(--highlight-color)}.native-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}.native-wrapper.sc-ion-textarea-ios,.textarea-legacy-wrapper.sc-ion-textarea-ios{display:grid;min-width:inherit;max-width:inherit;min-height:inherit;max-height:inherit;grid-auto-rows:100%}.native-wrapper.sc-ion-textarea-ios::after,.textarea-legacy-wrapper.sc-ion-textarea-ios::after{white-space:pre-wrap;content:attr(data-replicated-value) \" \";visibility:hidden}.native-wrapper.sc-ion-textarea-ios::after{padding-left:0;padding-right:0;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:var(--border-radius);color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;grid-area:1/1/2/2;word-break:break-word}.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-textarea-ios-h{--highlight-color:var(--highlight-color-valid)}.textarea-bottom.sc-ion-textarea-ios{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:12px}.has-focus.ion-valid.sc-ion-textarea-ios-h,.ion-touched.ion-invalid.sc-ion-textarea-ios-h{--border-color:var(--highlight-color)}.textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:none;color:var(--highlight-color-invalid)}.textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:block;color:var(--ion-color-step-550, #737373)}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .error-text.sc-ion-textarea-ios{display:block}.ion-touched.ion-invalid.sc-ion-textarea-ios-h .textarea-bottom.sc-ion-textarea-ios .helper-text.sc-ion-textarea-ios{display:none}.textarea-bottom.sc-ion-textarea-ios .counter.sc-ion-textarea-ios{-webkit-margin-start:auto;margin-inline-start:auto;color:var(--ion-color-step-550, #737373);white-space:nowrap;-webkit-padding-start:16px;padding-inline-start:16px}.label-text-wrapper.sc-ion-textarea-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text.sc-ion-textarea-ios,.sc-ion-textarea-ios-s>[slot=label]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden.sc-ion-textarea-ios,.textarea-outline-notch-hidden.sc-ion-textarea-ios{display:none}.textarea-wrapper.sc-ion-textarea-ios textarea.sc-ion-textarea-ios{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.textarea-label-placement-start.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row;flex-direction:row}.textarea-label-placement-start.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-end.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.textarea-label-placement-end.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}.textarea-label-placement-fixed.sc-ion-textarea-ios-h .label-text.sc-ion-textarea-ios{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .textarea-wrapper.sc-ion-textarea-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:left top;transform-origin:left top;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;max-width:100%;z-index:2}[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .sc-ion-textarea-ios-h -no-combinator.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl].textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,[dir=rtl] .textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios:dir(rtl),.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.textarea-label-placement-stacked.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.textarea-label-placement-stacked[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after,.textarea-label-placement-floating[auto-grow].sc-ion-textarea-ios-h .native-wrapper.sc-ion-textarea-ios::after{-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:8px;margin-bottom:0px}.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:0}.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h textarea.sc-ion-textarea-ios{opacity:1}.textarea-label-placement-stacked.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-focus.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios,.has-value.textarea-label-placement-floating.sc-ion-textarea-ios-h .label-text-wrapper.sc-ion-textarea-ios{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.sc-ion-textarea-ios-h{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--padding-top:10px;--padding-end:0px;--padding-bottom:8px;--padding-start:0px;font-size:inherit}.legacy-textarea.sc-ion-textarea-ios-h{--padding-top:10px;--padding-end:8px;--padding-bottom:10px;--padding-start:0}.item-label-stacked.sc-ion-textarea-ios-h,.item-label-stacked .sc-ion-textarea-ios-h,.item-label-floating.sc-ion-textarea-ios-h,.item-label-floating .sc-ion-textarea-ios-h{--padding-top:8px;--padding-bottom:8px;--padding-start:0px}.legacy-textarea.sc-ion-textarea-ios-h .native-textarea[disabled].sc-ion-textarea-ios,.textarea-disabled.sc-ion-textarea-ios-h{opacity:0.3}.sc-ion-textarea-ios-h:not(.legacy-textarea){min-height:44px}.textarea-label-placement-floating.sc-ion-textarea-ios-h,.textarea-label-placement-stacked.sc-ion-textarea-ios-h{--padding-top:0px;min-height:56px}";
@@ -5,15 +5,15 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const config = require('./config-d5882735.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const lockController = require('./lock-controller-4ae2eb59.js');
12
12
  const index$1 = require('./index-cc7dfb7c.js');
13
- const overlays = require('./overlays-efc9d511.js');
13
+ const overlays = require('./overlays-7e1a08fa.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
- const ionicGlobal = require('./ionic-global-a71608df.js');
16
- const animation = require('./animation-2bb33618.js');
15
+ const ionicGlobal = require('./ionic-global-fb752503.js');
16
+ const animation = require('./animation-c8bdd3c7.js');
17
17
  require('./index-306a7476.js');
18
18
  require('./framework-delegate-c0873a6f.js');
19
19
  require('./hardware-back-button-b67c8e75.js');
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
8
+ const index = require('./index-305a23dc.js');
9
9
  const formController = require('./form-controller-5e223b54.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
11
11
  const index$2 = require('./index-cc7dfb7c.js');
@@ -13,7 +13,7 @@ const haptic = require('./haptic-c5f6b4d5.js');
13
13
  const dir = require('./dir-f1e0ca26.js');
14
14
  const theme = require('./theme-fbc56b3b.js');
15
15
  const index$1 = require('./index-d8d1fc0b.js');
16
- const ionicGlobal = require('./ionic-global-a71608df.js');
16
+ const ionicGlobal = require('./ionic-global-fb752503.js');
17
17
  require('./capacitor-2ffba62a.js');
18
18
  require('./index-306a7476.js');
19
19
 
@@ -51,6 +51,9 @@ const Toggle = class {
51
51
  }
52
52
  };
53
53
  this.onClick = (ev) => {
54
+ if (this.disabled) {
55
+ return;
56
+ }
54
57
  ev.preventDefault();
55
58
  if (this.lastDrag + 300 < Date.now()) {
56
59
  this.toggleChecked();
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-14a4821e.js');
6
+ const index = require('./index-305a23dc.js');
7
7
 
8
8
  // TODO(FW-2832): types
9
9
  class Config {
@@ -5,12 +5,12 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
9
- const appGlobals = require('./app-globals-84b6a756.js');
10
- require('./ionic-global-a71608df.js');
8
+ const index = require('./index-305a23dc.js');
9
+ const appGlobals = require('./app-globals-fe1ad535.js');
10
+ require('./ionic-global-fb752503.js');
11
11
 
12
12
  /*
13
- Stencil Client Patch Browser v4.4.0 | MIT Licensed | https://stenciljs.com
13
+ Stencil Client Patch Browser v4.4.1 | MIT Licensed | https://stenciljs.com
14
14
  */
15
15
  const patchBrowser = () => {
16
16
  const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('ionic.cjs.js', document.baseURI).href));
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const animation = require('./animation-2bb33618.js');
7
- const index = require('./index-acf6bdf0.js');
6
+ const animation = require('./animation-c8bdd3c7.js');
7
+ const index = require('./index-d3568232.js');
8
8
  require('./index-306a7476.js');
9
9
  require('./helpers-ea4ccbcb.js');
10
- require('./index-14a4821e.js');
10
+ require('./index-305a23dc.js');
11
11
 
12
12
  const DURATION = 540;
13
13
  // TODO(FW-2832): types
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-14a4821e.js');
9
- const appGlobals = require('./app-globals-84b6a756.js');
10
- require('./ionic-global-a71608df.js');
8
+ const index = require('./index-305a23dc.js');
9
+ const appGlobals = require('./app-globals-fe1ad535.js');
10
+ require('./ionic-global-fb752503.js');
11
11
 
12
12
  const defineCustomElements = (win, options) => {
13
13
  if (typeof window === 'undefined') return undefined;
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const animation = require('./animation-2bb33618.js');
7
- const index = require('./index-acf6bdf0.js');
6
+ const animation = require('./animation-c8bdd3c7.js');
7
+ const index = require('./index-d3568232.js');
8
8
  require('./index-306a7476.js');
9
9
  require('./helpers-ea4ccbcb.js');
10
- require('./index-14a4821e.js');
10
+ require('./index-305a23dc.js');
11
11
 
12
12
  const mdTransitionAnimation = (_, opts) => {
13
13
  var _a, _b, _c;
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const index = require('./index-306a7476.js');
7
- const ionicGlobal = require('./ionic-global-a71608df.js');
7
+ const ionicGlobal = require('./ionic-global-fb752503.js');
8
8
  const frameworkDelegate = require('./framework-delegate-c0873a6f.js');
9
9
  const hardwareBackButton = require('./hardware-back-button-b67c8e75.js');
10
10
  const helpers = require('./helpers-ea4ccbcb.js');
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-14a4821e.js');
6
+ const index = require('./index-305a23dc.js');
7
7
  const index$1 = require('./index-10873539.js');
8
8
  const helpers = require('./helpers-ea4ccbcb.js');
9
9
  require('./index-cc7dfb7c.js');
@@ -65,6 +65,10 @@ const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandl
65
65
  return index.createGesture({
66
66
  el,
67
67
  gestureName: 'goback-swipe',
68
+ /**
69
+ * Swipe to go back should have priority over other horizontal swipe
70
+ * gestures. These gestures have a priority of 100 which is why 101 was chosen here.
71
+ */
68
72
  gesturePriority: 101,
69
73
  threshold: 10,
70
74
  canStart,
@@ -94,7 +94,7 @@
94
94
  ],
95
95
  "compiler": {
96
96
  "name": "@stencil/core",
97
- "version": "4.4.0",
97
+ "version": "4.4.1",
98
98
  "typescriptVersion": "5.2.2"
99
99
  },
100
100
  "collections": [
@@ -48,6 +48,9 @@ export class Checkbox {
48
48
  this.ionBlur.emit();
49
49
  };
50
50
  this.onClick = (ev) => {
51
+ if (this.disabled) {
52
+ return;
53
+ }
51
54
  this.toggleChecked(ev);
52
55
  };
53
56
  this.color = undefined;
@@ -24,6 +24,14 @@ export class Menu {
24
24
  this.lastOnEnd = 0;
25
25
  this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });
26
26
  this.didLoad = false;
27
+ /**
28
+ * Flag used to determine if an open/close
29
+ * operation was cancelled. For example, if
30
+ * an app calls "menu.open" then disables the menu
31
+ * part way through the animation, then this would
32
+ * be considered a cancelled operation.
33
+ */
34
+ this.operationCancelled = false;
27
35
  this.isAnimating = false;
28
36
  this._isOpen = false;
29
37
  this.inheritedAttributes = {};
@@ -292,6 +300,15 @@ export class Menu {
292
300
  this.beforeAnimation(shouldOpen);
293
301
  await this.loadAnimation();
294
302
  await this.startAnimation(shouldOpen, animated);
303
+ /**
304
+ * If the animation was cancelled then
305
+ * return false because the operation
306
+ * did not succeed.
307
+ */
308
+ if (this.operationCancelled) {
309
+ this.operationCancelled = false;
310
+ return false;
311
+ }
295
312
  this.afterAnimation(shouldOpen);
296
313
  return true;
297
314
  }
@@ -328,18 +345,23 @@ export class Menu {
328
345
  const easingReverse = mode === 'ios' ? iosEasingReverse : mdEasingReverse;
329
346
  const ani = this.animation
330
347
  .direction(isReversed ? 'reverse' : 'normal')
331
- .easing(isReversed ? easingReverse : easing)
332
- .onFinish(() => {
333
- if (ani.getDirection() === 'reverse') {
334
- ani.direction('normal');
335
- }
336
- });
348
+ .easing(isReversed ? easingReverse : easing);
337
349
  if (animated) {
338
350
  await ani.play();
339
351
  }
340
352
  else {
341
353
  ani.play({ sync: true });
342
354
  }
355
+ /**
356
+ * We run this after the play invocation
357
+ * instead of using ani.onFinish so that
358
+ * multiple onFinish callbacks do not get
359
+ * run if an animation is played, stopped,
360
+ * and then played again.
361
+ */
362
+ if (ani.getDirection() === 'reverse') {
363
+ ani.direction('normal');
364
+ }
343
365
  }
344
366
  _isActive() {
345
367
  return !this.disabled && !this.isPaneVisible;
@@ -476,7 +498,6 @@ export class Menu {
476
498
  }
477
499
  afterAnimation(isOpen) {
478
500
  var _a;
479
- assert(this.isAnimating, '_before() should be called while animating');
480
501
  // keep opening/closing the menu disabled for a touch more yet
481
502
  // only add listeners/css if it's enabled and isOpen
482
503
  // and only remove listeners/css if it's not open
@@ -535,10 +556,29 @@ export class Menu {
535
556
  if (this.gesture) {
536
557
  this.gesture.enable(isActive && this.swipeGesture);
537
558
  }
538
- // Close menu immediately
539
- if (!isActive && this._isOpen) {
540
- // close if this menu is open, and should not be enabled
541
- this.forceClosing();
559
+ /**
560
+ * If the menu is disabled but it is still open
561
+ * then we should close the menu immediately.
562
+ * Additionally, if the menu is in the process
563
+ * of animating {open, close} and the menu is disabled
564
+ * then it should still be closed immediately.
565
+ */
566
+ if (!isActive) {
567
+ /**
568
+ * It is possible to disable the menu while
569
+ * it is mid-animation. When this happens, we
570
+ * need to set the operationCancelled flag
571
+ * so that this._setOpen knows to return false
572
+ * and not run the "afterAnimation" callback.
573
+ */
574
+ if (this.isAnimating) {
575
+ this.operationCancelled = true;
576
+ }
577
+ /**
578
+ * If the menu is disabled then we should
579
+ * forcibly close the menu even if it is open.
580
+ */
581
+ this.afterAnimation(false);
542
582
  }
543
583
  if (doc === null || doc === void 0 ? void 0 : doc.contains(this.el)) {
544
584
  /**
@@ -551,14 +591,6 @@ export class Menu {
551
591
  menuController._setActiveMenu(this);
552
592
  }
553
593
  }
554
- assert(!this.isAnimating, 'can not be animating');
555
- }
556
- forceClosing() {
557
- assert(this._isOpen, 'menu cannot be closed');
558
- this.isAnimating = true;
559
- const ani = this.animation.direction('reverse');
560
- ani.play({ sync: true });
561
- this.afterAnimation(false);
562
594
  }
563
595
  render() {
564
596
  const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
@@ -0,0 +1,55 @@
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
+ /**
7
+ * This behavior does not vary across modes/directions
8
+ */
9
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
+ test.describe(title('menu: disable'), () => {
11
+ test.beforeEach(async ({ page }) => {
12
+ await page.goto(`/src/components/menu/test/disable`, config);
13
+ });
14
+ test('should disable when menu is fully open', async ({ page }) => {
15
+ const logs = [];
16
+ page.on('console', (msg) => {
17
+ if (msg.type() === 'error') {
18
+ logs.push(msg.text());
19
+ }
20
+ });
21
+ const menu = page.locator('ion-menu');
22
+ // Should be visible on initial presentation
23
+ await menu.evaluate((el) => el.open());
24
+ await expect(menu).toBeVisible();
25
+ // Disabling menu should hide it
26
+ await menu.evaluate((el) => (el.disabled = true));
27
+ await expect(menu).toBeHidden();
28
+ // Re-enabling menu and opening it show make it visible
29
+ await menu.evaluate((el) => (el.disabled = false));
30
+ await menu.evaluate((el) => el.open());
31
+ await expect(menu).toBeVisible();
32
+ expect(logs.length).toBe(0);
33
+ });
34
+ test('should disable when menu is animating', async ({ page }) => {
35
+ const logs = [];
36
+ page.on('console', (msg) => {
37
+ if (msg.type() === 'error') {
38
+ logs.push(msg.text());
39
+ }
40
+ });
41
+ const menu = page.locator('ion-menu');
42
+ // Opening and quickly disabling menu should hide it
43
+ menu.evaluate((el) => {
44
+ el.open();
45
+ setTimeout(() => (el.disabled = true), 0);
46
+ });
47
+ await expect(menu).toBeHidden();
48
+ // Re-enabling menu and opening it show make it visible
49
+ await menu.evaluate((el) => (el.disabled = false));
50
+ await menu.evaluate((el) => el.open());
51
+ await expect(menu).toBeVisible();
52
+ expect(logs.length).toBe(0);
53
+ });
54
+ });
55
+ });
@@ -27,7 +27,10 @@ export class Radio {
27
27
  }
28
28
  };
29
29
  this.onClick = () => {
30
- const { radioGroup, checked } = this;
30
+ const { radioGroup, checked, disabled } = this;
31
+ if (disabled) {
32
+ return;
33
+ }
31
34
  /**
32
35
  * The legacy control uses a native input inside
33
36
  * of the radio host, so we can set this.checked
@@ -33,7 +33,7 @@ export class RadioGroup {
33
33
  * using the `name` attribute.
34
34
  */
35
35
  const selectedRadio = ev.target && ev.target.closest('ion-radio');
36
- if (selectedRadio) {
36
+ if (selectedRadio && selectedRadio.disabled === false) {
37
37
  const currentValue = this.value;
38
38
  const newValue = selectedRadio.value;
39
39
  if (newValue !== currentValue) {
@@ -119,25 +119,39 @@ export class Select {
119
119
  await overlay.present();
120
120
  // focus selected option for popovers
121
121
  if (this.interface === 'popover') {
122
- let indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
123
- indexOfSelected = indexOfSelected > -1 ? indexOfSelected : 0; // default to first option if nothing selected
124
- const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
125
- if (selectedItem) {
126
- focusElement(selectedItem);
122
+ const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
123
+ if (indexOfSelected > -1) {
124
+ const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
125
+ if (selectedItem) {
126
+ focusElement(selectedItem);
127
+ /**
128
+ * Browsers such as Firefox do not
129
+ * correctly delegate focus when manually
130
+ * focusing an element with delegatesFocus.
131
+ * We work around this by manually focusing
132
+ * the interactive element.
133
+ * ion-radio and ion-checkbox are the only
134
+ * elements that ion-select-popover uses, so
135
+ * we only need to worry about those two components
136
+ * when focusing.
137
+ */
138
+ const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
139
+ if (interactiveEl) {
140
+ interactiveEl.focus();
141
+ }
142
+ }
143
+ }
144
+ else {
127
145
  /**
128
- * Browsers such as Firefox do not
129
- * correctly delegate focus when manually
130
- * focusing an element with delegatesFocus.
131
- * We work around this by manually focusing
132
- * the interactive element.
133
- * ion-radio and ion-checkbox are the only
134
- * elements that ion-select-popover uses, so
135
- * we only need to worry about those two components
136
- * when focusing.
146
+ * If no value is set then focus the first enabled option.
137
147
  */
138
- const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
139
- if (interactiveEl) {
140
- interactiveEl.focus();
148
+ const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
149
+ if (firstEnabledOption) {
150
+ focusElement(firstEnabledOption.closest('ion-item'));
151
+ /**
152
+ * Focus the option for the same reason as we do above.
153
+ */
154
+ firstEnabledOption.focus();
141
155
  }
142
156
  }
143
157
  }