@ionic/core 8.7.17-dev.11772118942.181221d4 → 8.7.17-dev.11772568074.1d7a4aea

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 (520) hide show
  1. package/components/action-sheet.js +1 -561
  2. package/components/alert.js +1 -610
  3. package/components/animation.js +1 -817
  4. package/components/backdrop.js +1 -72
  5. package/components/button-active.js +1 -64
  6. package/components/button.js +1 -303
  7. package/components/buttons.js +1 -56
  8. package/components/capacitor.js +1 -10
  9. package/components/checkbox.js +1 -261
  10. package/components/config.js +1 -192
  11. package/components/content.js +1 -475
  12. package/components/cubic-bezier.js +1 -87
  13. package/components/data.js +1 -1635
  14. package/components/dir.js +1 -15
  15. package/components/focus-visible.js +1 -72
  16. package/components/framework-delegate.js +1 -137
  17. package/components/gesture-controller.js +1 -192
  18. package/components/haptic.js +1 -155
  19. package/components/hardware-back-button.js +1 -112
  20. package/components/header.js +1 -417
  21. package/components/helpers.js +1 -336
  22. package/components/icon.js +1 -456
  23. package/components/index.d.ts +2 -0
  24. package/components/index.js +1 -115
  25. package/components/index2.js +1 -416
  26. package/components/index3.js +1 -452
  27. package/components/index4.js +1 -118
  28. package/components/index5.js +1 -303
  29. package/components/index6.js +1 -29
  30. package/components/index7.js +1 -164
  31. package/components/index8.js +1 -125
  32. package/components/index9.js +1 -4
  33. package/components/input-shims.js +1 -624
  34. package/components/input.utils.js +1 -144
  35. package/components/ion-accordion-group.js +1 -269
  36. package/components/ion-accordion.js +1 -457
  37. package/components/ion-action-sheet.js +1 -6
  38. package/components/ion-alert.js +1 -6
  39. package/components/ion-app.js +1 -128
  40. package/components/ion-avatar.js +1 -41
  41. package/components/ion-back-button.js +1 -131
  42. package/components/ion-backdrop.js +1 -6
  43. package/components/ion-badge.js +1 -47
  44. package/components/ion-breadcrumb.js +1 -137
  45. package/components/ion-breadcrumbs.js +1 -164
  46. package/components/ion-button.js +1 -6
  47. package/components/ion-buttons.js +1 -6
  48. package/components/ion-card-content.js +1 -45
  49. package/components/ion-card-header.js +1 -56
  50. package/components/ion-card-subtitle.js +1 -48
  51. package/components/ion-card-title.js +1 -48
  52. package/components/ion-card.js +1 -107
  53. package/components/ion-checkbox.js +1 -6
  54. package/components/ion-chip.js +1 -66
  55. package/components/ion-col.js +1 -163
  56. package/components/ion-content.js +1 -6
  57. package/components/ion-datetime-button.js +1 -384
  58. package/components/ion-datetime.js +1 -2046
  59. package/components/ion-fab-button.js +1 -151
  60. package/components/ion-fab-list.js +1 -66
  61. package/components/ion-fab.js +1 -101
  62. package/components/ion-footer.js +1 -159
  63. package/components/ion-grid.js +1 -46
  64. package/components/ion-header.js +1 -6
  65. package/components/ion-icon.js +1 -6
  66. package/components/ion-img.js +1 -124
  67. package/components/ion-infinite-scroll-content.js +1 -70
  68. package/components/ion-infinite-scroll.js +1 -236
  69. package/components/ion-input-otp.js +1 -683
  70. package/components/ion-input-password-toggle.js +1 -129
  71. package/components/ion-input.js +1 -617
  72. package/components/ion-item-divider.js +1 -59
  73. package/components/ion-item-group.js +1 -46
  74. package/components/ion-item-option.js +1 -91
  75. package/components/ion-item-options.js +1 -73
  76. package/components/ion-item-sliding.js +1 -458
  77. package/components/ion-item.js +1 -6
  78. package/components/ion-label.js +1 -6
  79. package/components/ion-list-header.js +1 -6
  80. package/components/ion-list.js +1 -6
  81. package/components/ion-loading.js +1 -344
  82. package/components/ion-menu-button.js +1 -110
  83. package/components/ion-menu-toggle.js +1 -64
  84. package/components/ion-menu.js +1 -745
  85. package/components/ion-modal.js +1 -6
  86. package/components/ion-nav-link.js +1 -64
  87. package/components/ion-nav.js +1 -956
  88. package/components/ion-note.js +1 -47
  89. package/components/ion-picker-column-option.js +1 -6
  90. package/components/ion-picker-column.js +1 -6
  91. package/components/ion-picker-legacy-column.js +1 -6
  92. package/components/ion-picker-legacy.js +1 -343
  93. package/components/ion-picker.js +1 -6
  94. package/components/ion-popover.js +1 -6
  95. package/components/ion-progress-bar.js +1 -101
  96. package/components/ion-radio-group.js +1 -6
  97. package/components/ion-radio.js +1 -6
  98. package/components/ion-range.js +1 -853
  99. package/components/ion-refresher-content.js +1 -89
  100. package/components/ion-refresher.js +1 -751
  101. package/components/ion-reorder-group.js +1 -322
  102. package/components/ion-reorder.js +1 -60
  103. package/components/ion-ripple-effect.js +1 -6
  104. package/components/ion-route-redirect.js +1 -45
  105. package/components/ion-route.js +1 -74
  106. package/components/ion-router-link.js +1 -61
  107. package/components/ion-router-outlet.js +1 -227
  108. package/components/ion-router.js +1 -841
  109. package/components/ion-row.js +1 -36
  110. package/components/ion-searchbar.js +1 -530
  111. package/components/ion-segment-button.js +1 -174
  112. package/components/ion-segment-content.js +1 -35
  113. package/components/ion-segment-view.js +1 -148
  114. package/components/ion-segment.js +1 -602
  115. package/components/ion-select-modal.js +1 -6
  116. package/components/ion-select-option.js +1 -46
  117. package/components/ion-select-popover.js +1 -6
  118. package/components/ion-select.js +1 -1037
  119. package/components/ion-skeleton-text.js +1 -65
  120. package/components/ion-spinner.js +1 -6
  121. package/components/ion-split-pane.js +1 -197
  122. package/components/ion-tab-bar.js +1 -115
  123. package/components/ion-tab-button.js +1 -128
  124. package/components/ion-tab.js +1 -91
  125. package/components/ion-tabs.js +1 -205
  126. package/components/ion-text.js +1 -42
  127. package/components/ion-textarea.js +1 -554
  128. package/components/ion-thumbnail.js +1 -36
  129. package/components/ion-title.js +1 -6
  130. package/components/ion-toast.js +1 -941
  131. package/components/ion-toggle.js +1 -361
  132. package/components/ion-toolbar.js +1 -6
  133. package/components/ionic-global.js +1 -144
  134. package/components/ios.transition.js +1 -672
  135. package/components/item.js +1 -302
  136. package/components/keyboard-controller.js +1 -162
  137. package/components/keyboard.js +1 -141
  138. package/components/keyboard2.js +1 -76
  139. package/components/label.js +1 -100
  140. package/components/list-header.js +1 -47
  141. package/components/list.js +1 -68
  142. package/components/lock-controller.js +1 -35
  143. package/components/md.transition.js +1 -51
  144. package/components/menu-toggle-util.js +1 -9
  145. package/components/modal.js +1 -2674
  146. package/components/notch-controller.js +1 -150
  147. package/components/overlays.js +1 -912
  148. package/components/picker-column-option.js +1 -136
  149. package/components/picker-column.js +1 -595
  150. package/components/picker-column2.js +1 -377
  151. package/components/picker.js +1 -498
  152. package/components/popover.js +1 -1502
  153. package/components/radio-group.js +1 -287
  154. package/components/radio.js +1 -229
  155. package/components/refresher.utils.js +1 -193
  156. package/components/ripple-effect.js +1 -109
  157. package/components/select-modal.js +1 -196
  158. package/components/select-popover.js +1 -189
  159. package/components/spinner.js +1 -224
  160. package/components/status-tap.js +1 -36
  161. package/components/swipe-back.js +1 -75
  162. package/components/theme.js +1 -40
  163. package/components/title.js +1 -70
  164. package/components/toolbar.js +1 -89
  165. package/components/validity.js +1 -14
  166. package/components/watch-options.js +1 -44
  167. package/dist/cjs/{animation-Bt3H9L1C.js → animation-Dg4yiuR2.js} +1 -1
  168. package/dist/cjs/app-globals-CLI8xCmk.js +11 -0
  169. package/dist/cjs/{button-active-CMc8cD90.js → button-active-FscMI17-.js} +1 -1
  170. package/dist/cjs/{config-C5fsO43a.js → config-BukYi_pW.js} +1 -1
  171. package/dist/cjs/{data-JwZKaIQB.js → data-BYlBjkMU.js} +1 -1
  172. package/dist/cjs/{framework-delegate-DMJRBuDi.js → framework-delegate-CRgp8o_p.js} +1 -1
  173. package/dist/cjs/{hardware-back-button-VCK4V3mG.js → hardware-back-button-C4rMJ5uI.js} +1 -1
  174. package/dist/cjs/{helpers-DrTqNghc.js → helpers-CxTYJdbT.js} +1 -1
  175. package/dist/cjs/{index-094mMFB-.js → index-C845Ti6K.js} +4 -4
  176. package/dist/cjs/{index-DrMUZJj6.js → index-CFUwM5x_.js} +5 -5
  177. package/dist/cjs/{index-D6Wc6v08.js → index-CqT-2gKy.js} +503 -382
  178. package/dist/cjs/{index-CO6eryBo.js → index-MbaBbWXk.js} +2 -2
  179. package/dist/cjs/{index-C534ULug.js → index-YcSftOMz.js} +2 -2
  180. package/dist/cjs/index.cjs.js +12 -12
  181. package/dist/cjs/{input-shims-CW0KUFTQ.js → input-shims-DlFhYYTs.js} +3 -3
  182. package/dist/cjs/{input.utils-B_QROI2g.js → input.utils-DmeJ8dmo.js} +2 -2
  183. package/dist/cjs/ion-accordion_2.cjs.entry.js +23 -15
  184. package/dist/cjs/ion-action-sheet.cjs.entry.js +21 -15
  185. package/dist/cjs/ion-alert.cjs.entry.js +25 -17
  186. package/dist/cjs/ion-app_8.cjs.entry.js +44 -40
  187. package/dist/cjs/ion-avatar_3.cjs.entry.js +12 -12
  188. package/dist/cjs/ion-back-button.cjs.entry.js +7 -7
  189. package/dist/cjs/ion-backdrop.cjs.entry.js +6 -6
  190. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +20 -14
  191. package/dist/cjs/ion-button_2.cjs.entry.js +36 -18
  192. package/dist/cjs/ion-card_5.cjs.entry.js +23 -23
  193. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  194. package/dist/cjs/ion-chip.cjs.entry.js +6 -6
  195. package/dist/cjs/ion-col_3.cjs.entry.js +8 -8
  196. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
  197. package/dist/cjs/ion-datetime_3.cjs.entry.js +67 -39
  198. package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
  199. package/dist/cjs/ion-img.cjs.entry.js +8 -6
  200. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -13
  201. package/dist/cjs/ion-input-otp.cjs.entry.js +16 -10
  202. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -7
  203. package/dist/cjs/ion-input.cjs.entry.js +21 -13
  204. package/dist/cjs/ion-item-option_3.cjs.entry.js +17 -15
  205. package/dist/cjs/ion-item_8.cjs.entry.js +42 -36
  206. package/dist/cjs/ion-loading.cjs.entry.js +18 -14
  207. package/dist/cjs/ion-menu_3.cjs.entry.js +30 -22
  208. package/dist/cjs/ion-modal.cjs.entry.js +55 -40
  209. package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
  210. package/dist/cjs/ion-picker-column-option.cjs.entry.js +10 -8
  211. package/dist/cjs/ion-picker-column.cjs.entry.js +11 -7
  212. package/dist/cjs/ion-picker.cjs.entry.js +6 -6
  213. package/dist/cjs/ion-popover.cjs.entry.js +21 -15
  214. package/dist/cjs/ion-progress-bar.cjs.entry.js +7 -7
  215. package/dist/cjs/ion-radio_2.cjs.entry.js +17 -13
  216. package/dist/cjs/ion-range.cjs.entry.js +29 -15
  217. package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -14
  218. package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -11
  219. package/dist/cjs/ion-ripple-effect.cjs.entry.js +4 -4
  220. package/dist/cjs/ion-route_4.cjs.entry.js +20 -10
  221. package/dist/cjs/ion-searchbar.cjs.entry.js +22 -12
  222. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
  223. package/dist/cjs/ion-segment-view.cjs.entry.js +5 -5
  224. package/dist/cjs/ion-segment_2.cjs.entry.js +26 -16
  225. package/dist/cjs/ion-select-modal.cjs.entry.js +12 -12
  226. package/dist/cjs/ion-select_3.cjs.entry.js +29 -21
  227. package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
  228. package/dist/cjs/ion-split-pane.cjs.entry.js +15 -9
  229. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +14 -12
  230. package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
  231. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  232. package/dist/cjs/ion-textarea.cjs.entry.js +18 -12
  233. package/dist/cjs/ion-toast.cjs.entry.js +21 -15
  234. package/dist/cjs/ion-toggle.cjs.entry.js +10 -8
  235. package/dist/cjs/{ionic-global-HMVqOFGO.js → ionic-global-Bc3kJi1Z.js} +1 -1
  236. package/dist/cjs/ionic.cjs.js +5 -5
  237. package/dist/cjs/{ios.transition-BOt_uW73.js → ios.transition-trBiC95R.js} +4 -4
  238. package/dist/cjs/loader.cjs.js +4 -4
  239. package/dist/cjs/{md.transition-Dt968VXB.js → md.transition-CUQECuvD.js} +4 -4
  240. package/dist/cjs/{notch-controller-Bzqhjm4f.js → notch-controller-sD-lTpdc.js} +1 -1
  241. package/dist/cjs/{overlays-B2b-TTbl.js → overlays-C2jiBSNQ.js} +5 -5
  242. package/dist/cjs/{status-tap-g0sWWkXk.js → status-tap-CCJk5VgT.js} +3 -3
  243. package/dist/cjs/{swipe-back-BIayeNOD.js → swipe-back-BGhTQ1CU.js} +2 -2
  244. package/dist/collection/collection-manifest.json +2 -2
  245. package/dist/collection/components/accordion-group/accordion-group.js +4 -2
  246. package/dist/collection/components/action-sheet/action-sheet.js +20 -10
  247. package/dist/collection/components/alert/alert.js +24 -12
  248. package/dist/collection/components/back-button/back-button.js +4 -2
  249. package/dist/collection/components/badge/badge.js +2 -1
  250. package/dist/collection/components/breadcrumb/breadcrumb.js +8 -4
  251. package/dist/collection/components/breadcrumbs/breadcrumbs.js +4 -2
  252. package/dist/collection/components/button/button.js +6 -3
  253. package/dist/collection/components/card/card.js +6 -3
  254. package/dist/collection/components/card-header/card-header.js +2 -1
  255. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -1
  256. package/dist/collection/components/card-title/card-title.js +2 -1
  257. package/dist/collection/components/checkbox/checkbox.js +4 -2
  258. package/dist/collection/components/chip/chip.js +2 -1
  259. package/dist/collection/components/content/content.js +8 -4
  260. package/dist/collection/components/datetime/datetime.js +34 -15
  261. package/dist/collection/components/datetime-button/datetime-button.js +2 -1
  262. package/dist/collection/components/fab-button/fab-button.js +6 -3
  263. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +4 -2
  264. package/dist/collection/components/input/input.js +11 -6
  265. package/dist/collection/components/input-otp/input-otp.js +8 -4
  266. package/dist/collection/components/input-password-toggle/input-password-toggle.js +4 -2
  267. package/dist/collection/components/item/item.js +6 -3
  268. package/dist/collection/components/item-divider/item-divider.js +2 -1
  269. package/dist/collection/components/item-option/item-option.js +2 -1
  270. package/dist/collection/components/item-options/item-options.js +2 -1
  271. package/dist/collection/components/item-sliding/item-sliding.js +2 -1
  272. package/dist/collection/components/label/label.js +6 -3
  273. package/dist/collection/components/list-header/list-header.js +2 -1
  274. package/dist/collection/components/loading/loading.js +22 -11
  275. package/dist/collection/components/menu/menu.js +10 -5
  276. package/dist/collection/components/menu-button/menu-button.js +2 -1
  277. package/dist/collection/components/modal/gestures/sheet.js +32 -21
  278. package/dist/collection/components/modal/modal.js +35 -20
  279. package/dist/collection/components/nav/nav.js +89 -45
  280. package/dist/collection/components/nav-link/nav-link.js +9 -5
  281. package/dist/collection/components/note/note.js +2 -1
  282. package/dist/collection/components/picker/picker.js +2 -1
  283. package/dist/collection/components/picker-column/picker-column.js +6 -3
  284. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -1
  285. package/dist/collection/components/picker-legacy/picker.js +24 -12
  286. package/dist/collection/components/picker-legacy-column/picker-column.js +4 -2
  287. package/dist/collection/components/popover/popover.js +33 -17
  288. package/dist/collection/components/progress-bar/progress-bar.js +2 -1
  289. package/dist/collection/components/radio/radio.js +2 -1
  290. package/dist/collection/components/radio-group/radio-group.js +6 -3
  291. package/dist/collection/components/range/range.js +14 -7
  292. package/dist/collection/components/refresher/refresher.js +73 -5
  293. package/dist/collection/components/refresher-content/refresher-content.js +8 -4
  294. package/dist/collection/components/reorder-group/reorder-group.js +6 -3
  295. package/dist/collection/components/route/route.js +4 -2
  296. package/dist/collection/components/router/router.js +10 -5
  297. package/dist/collection/components/router-link/router-link.js +6 -3
  298. package/dist/collection/components/router-outlet/router-outlet.js +18 -9
  299. package/dist/collection/components/searchbar/searchbar.js +11 -6
  300. package/dist/collection/components/segment/segment.js +10 -5
  301. package/dist/collection/components/segment-button/segment-button.js +4 -2
  302. package/dist/collection/components/segment-view/segment-view.js +2 -1
  303. package/dist/collection/components/select/select.js +10 -5
  304. package/dist/collection/components/select-modal/select-modal.js +2 -1
  305. package/dist/collection/components/select-popover/select-popover.js +2 -1
  306. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -1
  307. package/dist/collection/components/spinner/spinner.js +4 -2
  308. package/dist/collection/components/tab/tab.js +4 -2
  309. package/dist/collection/components/tab-bar/tab-bar.js +4 -2
  310. package/dist/collection/components/tab-button/tab-button.js +4 -2
  311. package/dist/collection/components/tabs/tabs.js +4 -2
  312. package/dist/collection/components/text/text.js +2 -1
  313. package/dist/collection/components/textarea/textarea.js +6 -3
  314. package/dist/collection/components/title/title.js +4 -2
  315. package/dist/collection/components/toast/toast.js +34 -17
  316. package/dist/collection/components/toggle/toggle.js +4 -2
  317. package/dist/collection/components/toolbar/toolbar.js +2 -1
  318. package/dist/docs.d.ts +37 -0
  319. package/dist/docs.json +835 -381
  320. package/dist/esm/{animation-Dt8bGnA-.js → animation-CnGMT4ji.js} +1 -1
  321. package/dist/esm/app-globals-DhZjtldk.js +9 -0
  322. package/dist/esm/{button-active-L570Swow.js → button-active-BBx21brx.js} +1 -1
  323. package/dist/esm/{config-mCdtaoPe.js → config-TO1rZH52.js} +1 -1
  324. package/dist/esm/{data-DCORV9FH.js → data-B9iGR5YO.js} +1 -1
  325. package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-CyxE1S_P.js} +1 -1
  326. package/dist/esm/{hardware-back-button-CPLxO-Ev.js → hardware-back-button-CTe4XmL7.js} +1 -1
  327. package/dist/esm/{helpers-DEn3pfjm.js → helpers-Tl8jw6S2.js} +1 -1
  328. package/dist/esm/{index-r2D9DEro.js → index-B-hkiOUh.js} +4 -4
  329. package/dist/esm/{index-CvDIirVx.js → index-B2KwgBLx.js} +5 -5
  330. package/dist/esm/{index-ceb5RaMT.js → index-BtUdxPjv.js} +2 -2
  331. package/dist/esm/{index-C8IsBmNU.js → index-IGIE5vDm.js} +503 -382
  332. package/dist/esm/{index-Bs3kT4bc.js → index-hW6eNZ3o.js} +2 -2
  333. package/dist/esm/index.js +12 -12
  334. package/dist/esm/{input-shims-DyOpfTg6.js → input-shims-C1hAaHcP.js} +3 -3
  335. package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-Bxa_DQ7-.js} +2 -2
  336. package/dist/esm/ion-accordion_2.entry.js +23 -15
  337. package/dist/esm/ion-action-sheet.entry.js +21 -15
  338. package/dist/esm/ion-alert.entry.js +25 -17
  339. package/dist/esm/ion-app_8.entry.js +44 -40
  340. package/dist/esm/ion-avatar_3.entry.js +12 -12
  341. package/dist/esm/ion-back-button.entry.js +7 -7
  342. package/dist/esm/ion-backdrop.entry.js +6 -6
  343. package/dist/esm/ion-breadcrumb_2.entry.js +20 -14
  344. package/dist/esm/ion-button_2.entry.js +36 -18
  345. package/dist/esm/ion-card_5.entry.js +23 -23
  346. package/dist/esm/ion-checkbox.entry.js +7 -7
  347. package/dist/esm/ion-chip.entry.js +6 -6
  348. package/dist/esm/ion-col_3.entry.js +8 -8
  349. package/dist/esm/ion-datetime-button.entry.js +8 -8
  350. package/dist/esm/ion-datetime_3.entry.js +67 -39
  351. package/dist/esm/ion-fab_3.entry.js +17 -13
  352. package/dist/esm/ion-img.entry.js +8 -6
  353. package/dist/esm/ion-infinite-scroll_2.entry.js +17 -13
  354. package/dist/esm/ion-input-otp.entry.js +16 -10
  355. package/dist/esm/ion-input-password-toggle.entry.js +9 -7
  356. package/dist/esm/ion-input.entry.js +21 -13
  357. package/dist/esm/ion-item-option_3.entry.js +17 -15
  358. package/dist/esm/ion-item_8.entry.js +42 -36
  359. package/dist/esm/ion-loading.entry.js +18 -14
  360. package/dist/esm/ion-menu_3.entry.js +30 -22
  361. package/dist/esm/ion-modal.entry.js +55 -40
  362. package/dist/esm/ion-nav_2.entry.js +14 -10
  363. package/dist/esm/ion-picker-column-option.entry.js +10 -8
  364. package/dist/esm/ion-picker-column.entry.js +11 -7
  365. package/dist/esm/ion-picker.entry.js +6 -6
  366. package/dist/esm/ion-popover.entry.js +21 -15
  367. package/dist/esm/ion-progress-bar.entry.js +7 -7
  368. package/dist/esm/ion-radio_2.entry.js +17 -13
  369. package/dist/esm/ion-range.entry.js +29 -15
  370. package/dist/esm/ion-refresher_2.entry.js +45 -14
  371. package/dist/esm/ion-reorder_2.entry.js +13 -11
  372. package/dist/esm/ion-ripple-effect.entry.js +4 -4
  373. package/dist/esm/ion-route_4.entry.js +20 -10
  374. package/dist/esm/ion-searchbar.entry.js +22 -12
  375. package/dist/esm/ion-segment-content.entry.js +3 -3
  376. package/dist/esm/ion-segment-view.entry.js +5 -5
  377. package/dist/esm/ion-segment_2.entry.js +26 -16
  378. package/dist/esm/ion-select-modal.entry.js +12 -12
  379. package/dist/esm/ion-select_3.entry.js +29 -21
  380. package/dist/esm/ion-spinner.entry.js +4 -4
  381. package/dist/esm/ion-split-pane.entry.js +15 -9
  382. package/dist/esm/ion-tab-bar_2.entry.js +14 -12
  383. package/dist/esm/ion-tab_2.entry.js +10 -8
  384. package/dist/esm/ion-text.entry.js +4 -4
  385. package/dist/esm/ion-textarea.entry.js +18 -12
  386. package/dist/esm/ion-toast.entry.js +21 -15
  387. package/dist/esm/ion-toggle.entry.js +10 -8
  388. package/dist/esm/{ionic-global-CDrldh-5.js → ionic-global-DfbeLwcV.js} +1 -1
  389. package/dist/esm/ionic.js +6 -6
  390. package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition--aMF-pDH.js} +4 -4
  391. package/dist/esm/loader.js +5 -5
  392. package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-BEVbfm8j.js} +4 -4
  393. package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-DAcvKU57.js} +1 -1
  394. package/dist/esm/{overlays-D5YkFThA.js → overlays-F8GHPo-e.js} +5 -5
  395. package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-BfJqFSLF.js} +3 -3
  396. package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-BZBFwTQV.js} +2 -2
  397. package/dist/html.html-data.json +109 -109
  398. package/dist/ionic/index.esm.js +1 -1
  399. package/dist/ionic/ionic.esm.js +1 -1
  400. package/dist/ionic/{p-316c0420.entry.js → p-025d2d32.entry.js} +1 -1
  401. package/dist/ionic/p-02acdef4.entry.js +4 -0
  402. package/dist/ionic/p-04e2c388.entry.js +4 -0
  403. package/dist/ionic/{p-370e4237.entry.js → p-074344b8.entry.js} +1 -1
  404. package/dist/ionic/p-0761b4d3.entry.js +4 -0
  405. package/dist/ionic/p-13ade5c8.entry.js +4 -0
  406. package/dist/ionic/p-1b02923f.entry.js +4 -0
  407. package/dist/ionic/p-1bd477a9.entry.js +4 -0
  408. package/dist/ionic/{p-d2489bf2.entry.js → p-1fa1406c.entry.js} +1 -1
  409. package/dist/ionic/{p-46d74291.entry.js → p-1fd588a7.entry.js} +1 -1
  410. package/dist/ionic/p-239a27a4.entry.js +4 -0
  411. package/dist/ionic/{p-94de5cfa.entry.js → p-277abec1.entry.js} +1 -1
  412. package/dist/ionic/{p-dd1aef77.entry.js → p-28d7852f.entry.js} +1 -1
  413. package/dist/ionic/{p-49d06882.entry.js → p-301c43f8.entry.js} +1 -1
  414. package/dist/ionic/{p-79bd78f9.entry.js → p-370a60ee.entry.js} +1 -1
  415. package/dist/ionic/p-3e143d1d.entry.js +4 -0
  416. package/dist/ionic/p-4431ef7e.entry.js +4 -0
  417. package/dist/ionic/p-463767ce.entry.js +4 -0
  418. package/dist/ionic/p-4f888343.entry.js +4 -0
  419. package/dist/ionic/p-51c11c47.entry.js +4 -0
  420. package/dist/ionic/p-56050077.entry.js +4 -0
  421. package/dist/ionic/p-6a3a5aae.entry.js +4 -0
  422. package/dist/ionic/p-6b97f2a3.entry.js +4 -0
  423. package/dist/ionic/{p-51a60e0f.entry.js → p-7c72d482.entry.js} +1 -1
  424. package/dist/ionic/p-7d20f4f8.entry.js +4 -0
  425. package/dist/ionic/{p-11aa58d6.entry.js → p-80cac7a2.entry.js} +1 -1
  426. package/dist/ionic/p-91fc7352.entry.js +4 -0
  427. package/dist/ionic/p-93845421.entry.js +4 -0
  428. package/dist/ionic/{p-3a6caca9.entry.js → p-964090ef.entry.js} +1 -1
  429. package/dist/ionic/p-96a2e768.entry.js +4 -0
  430. package/dist/ionic/{p-d126e8d3.entry.js → p-9745651b.entry.js} +1 -1
  431. package/dist/ionic/{p-f9061316.entry.js → p-9802c88e.entry.js} +1 -1
  432. package/dist/ionic/{p-582824c5.entry.js → p-9833cf63.entry.js} +1 -1
  433. package/dist/ionic/{p-675b1a31.entry.js → p-9fae83d8.entry.js} +1 -1
  434. package/dist/ionic/{p-CwgG81ZD.js → p-B8xlpH8p.js} +1 -1
  435. package/dist/ionic/{p-C7hRNDhM.js → p-BAt5H1ac.js} +1 -1
  436. package/dist/ionic/p-BW_TRJm8.js +4 -0
  437. package/dist/ionic/{p-DDb5r57F.js → p-Bum7H1fw.js} +1 -1
  438. package/dist/ionic/{p-D0dMcSkw.js → p-BvFYtOdE.js} +1 -1
  439. package/dist/ionic/{p-Dc45iWE4.js → p-BxIcPWoV.js} +1 -1
  440. package/dist/ionic/{p-BYEqWnSg.js → p-C0JvVFMv.js} +1 -1
  441. package/dist/ionic/{p-CTfR9YZG.js → p-CGmVTdWh.js} +1 -1
  442. package/dist/ionic/{p-BOVrCkpJ.js → p-CYbRmDdy.js} +1 -1
  443. package/dist/ionic/{p-D-eFFUkA.js → p-CmFz1Mjc.js} +1 -1
  444. package/dist/ionic/p-CtA-yJYy.js +4 -0
  445. package/dist/ionic/p-D8HJQ1qq.js +4 -0
  446. package/dist/ionic/{p-B0q1YL7N.js → p-DB_iPQC-.js} +1 -1
  447. package/dist/ionic/{p-DNcfiJwE.js → p-DLbbmF9h.js} +1 -1
  448. package/dist/ionic/{p-DdR6rpbR.js → p-DTPR1Wpn.js} +1 -1
  449. package/dist/ionic/{p-DCv9sLH2.js → p-DjriolRs.js} +1 -1
  450. package/dist/ionic/p-DtVZDHlS.js +4 -0
  451. package/dist/ionic/{p-QHYY4sjU.js → p-GWUGgWx6.js} +1 -1
  452. package/dist/ionic/p-IGIE5vDm.js +5 -0
  453. package/dist/ionic/{p-BFvmZNyx.js → p-NFFyoJ4Q.js} +1 -1
  454. package/dist/ionic/{p-86f53961.entry.js → p-a287e18e.entry.js} +1 -1
  455. package/dist/ionic/p-a805674e.entry.js +4 -0
  456. package/dist/ionic/p-a81ae2cd.entry.js +4 -0
  457. package/dist/ionic/{p-da7d04cc.entry.js → p-a84f2d21.entry.js} +1 -1
  458. package/dist/ionic/{p-dbbe606a.entry.js → p-b2d5238b.entry.js} +1 -1
  459. package/dist/ionic/{p-d1f54e28.entry.js → p-b440381f.entry.js} +1 -1
  460. package/dist/ionic/{p-72c38b88.entry.js → p-b4d52b58.entry.js} +1 -1
  461. package/dist/ionic/{p-2a939845.entry.js → p-b67a2114.entry.js} +1 -1
  462. package/dist/ionic/{p-c73627c8.entry.js → p-bced1f3e.entry.js} +1 -1
  463. package/dist/ionic/{p-9a2d390d.entry.js → p-c1c9b2bb.entry.js} +1 -1
  464. package/dist/ionic/{p-f8f22cc0.entry.js → p-c3e65e45.entry.js} +1 -1
  465. package/dist/ionic/p-c76cc21d.entry.js +4 -0
  466. package/dist/ionic/{p-b0a7585c.entry.js → p-ca31010f.entry.js} +1 -1
  467. package/dist/ionic/p-cbf245b5.entry.js +4 -0
  468. package/dist/ionic/p-d68b665a.entry.js +4 -0
  469. package/dist/ionic/{p-9575b654.entry.js → p-e663bc5a.entry.js} +1 -1
  470. package/dist/ionic/p-efe86ed9.entry.js +4 -0
  471. package/dist/ionic/{p-ac4eb91d.entry.js → p-f5dfb9a3.entry.js} +1 -1
  472. package/dist/ionic/{p-DbQ5QkTP.js → p-gbVXD275.js} +1 -1
  473. package/dist/ionic/p-hNN3VvaC.js +4 -0
  474. package/dist/types/components/datetime/datetime.d.ts +9 -0
  475. package/dist/types/components/header/header.utils.d.ts +2 -1
  476. package/dist/types/components/modal/modal-interface.d.ts +5 -1
  477. package/dist/types/components/modal/modal.d.ts +5 -0
  478. package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
  479. package/dist/types/components/refresher/refresher.d.ts +16 -3
  480. package/dist/types/components.d.ts +927 -189
  481. package/dist/types/interface.d.ts +1 -1
  482. package/dist/types/stencil-public-runtime.d.ts +126 -14
  483. package/dist/types/utils/gesture/listener.d.ts +2 -1
  484. package/hydrate/index.d.ts +12 -0
  485. package/hydrate/index.js +5202 -1327
  486. package/hydrate/index.mjs +5201 -1328
  487. package/package.json +2 -2
  488. package/dist/cjs/app-globals-Ciccnk9_.js +0 -10
  489. package/dist/esm/app-globals-BDSf8fOA.js +0 -8
  490. package/dist/ionic/p-012212e4.entry.js +0 -4
  491. package/dist/ionic/p-074839fc.entry.js +0 -4
  492. package/dist/ionic/p-0dfa5a37.entry.js +0 -4
  493. package/dist/ionic/p-0f418a37.entry.js +0 -4
  494. package/dist/ionic/p-11518b31.entry.js +0 -4
  495. package/dist/ionic/p-1838bed5.entry.js +0 -4
  496. package/dist/ionic/p-29721c43.entry.js +0 -4
  497. package/dist/ionic/p-31f7095f.entry.js +0 -4
  498. package/dist/ionic/p-34642fa1.entry.js +0 -4
  499. package/dist/ionic/p-35696017.entry.js +0 -4
  500. package/dist/ionic/p-40c261a3.entry.js +0 -4
  501. package/dist/ionic/p-4e41ea20.entry.js +0 -4
  502. package/dist/ionic/p-6241ce47.entry.js +0 -4
  503. package/dist/ionic/p-639dd543.entry.js +0 -4
  504. package/dist/ionic/p-6444c606.entry.js +0 -4
  505. package/dist/ionic/p-6d070558.entry.js +0 -4
  506. package/dist/ionic/p-7268efa5.entry.js +0 -4
  507. package/dist/ionic/p-7babec72.entry.js +0 -4
  508. package/dist/ionic/p-BKc55Xev.js +0 -4
  509. package/dist/ionic/p-Bmgaetn_.js +0 -4
  510. package/dist/ionic/p-C8IsBmNU.js +0 -5
  511. package/dist/ionic/p-CJxh_yLS.js +0 -4
  512. package/dist/ionic/p-DUt5fQmA.js +0 -4
  513. package/dist/ionic/p-DZRJwG4S.js +0 -4
  514. package/dist/ionic/p-a127bee2.entry.js +0 -4
  515. package/dist/ionic/p-b3d44509.entry.js +0 -4
  516. package/dist/ionic/p-cc45bcbc.entry.js +0 -4
  517. package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
  518. package/dist/ionic/p-d3014190.entry.js +0 -4
  519. package/dist/ionic/p-db82892c.entry.js +0 -4
  520. package/dist/ionic/p-e1d1f3cc.entry.js +0 -4
@@ -1,478 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { proxyCustomElement, HTMLElement, createEvent, Build, readTask, forceUpdate, h, Host } from '@stencil/core/internal/client';
5
- import { i as inheritAriaAttributes, k as hasLazyBuild, c as componentOnReady } from './helpers.js';
6
- import { b as getIonMode, a as isPlatform } from './ionic-global.js';
7
- import { i as isRTL } from './dir.js';
8
- import { c as createColorClasses, h as hostContext } from './theme.js';
9
-
10
- const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}";
11
-
12
- const Content = /*@__PURE__*/ proxyCustomElement(class Content extends HTMLElement {
13
- constructor(registerHost) {
14
- super();
15
- if (registerHost !== false) {
16
- this.__registerHost();
17
- }
18
- this.__attachShadow();
19
- this.ionScrollStart = createEvent(this, "ionScrollStart", 7);
20
- this.ionScroll = createEvent(this, "ionScroll", 7);
21
- this.ionScrollEnd = createEvent(this, "ionScrollEnd", 7);
22
- this.watchDog = null;
23
- this.isScrolling = false;
24
- this.lastScroll = 0;
25
- this.queued = false;
26
- this.cTop = -1;
27
- this.cBottom = -1;
28
- this.isMainContent = true;
29
- this.resizeTimeout = null;
30
- this.inheritedAttributes = {};
31
- this.tabsElement = null;
32
- // Detail is used in a hot loop in the scroll event, by allocating it here
33
- // V8 will be able to inline any read/write to it since it's a monomorphic class.
34
- // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
35
- this.detail = {
36
- scrollTop: 0,
37
- scrollLeft: 0,
38
- type: 'scroll',
39
- event: undefined,
40
- startX: 0,
41
- startY: 0,
42
- startTime: 0,
43
- currentX: 0,
44
- currentY: 0,
45
- velocityX: 0,
46
- velocityY: 0,
47
- deltaX: 0,
48
- deltaY: 0,
49
- currentTime: 0,
50
- data: undefined,
51
- isScrolling: true,
52
- };
53
- /**
54
- * If `true`, the content will scroll behind the headers
55
- * and footers. This effect can easily be seen by setting the toolbar
56
- * to transparent.
57
- */
58
- this.fullscreen = false;
59
- /**
60
- * Controls where the fixed content is placed relative to the main content
61
- * in the DOM. This can be used to control the order in which fixed elements
62
- * receive keyboard focus.
63
- * For example, if a FAB in the fixed slot should receive keyboard focus before
64
- * the main page content, set this property to `'before'`.
65
- */
66
- this.fixedSlotPlacement = 'after';
67
- /**
68
- * If you want to enable the content scrolling in the X axis, set this property to `true`.
69
- */
70
- this.scrollX = false;
71
- /**
72
- * If you want to disable the content scrolling in the Y axis, set this property to `false`.
73
- */
74
- this.scrollY = true;
75
- /**
76
- * Because of performance reasons, ionScroll events are disabled by default, in order to enable them
77
- * and start listening from (ionScroll), set this property to `true`.
78
- */
79
- this.scrollEvents = false;
80
- }
81
- componentWillLoad() {
82
- this.inheritedAttributes = inheritAriaAttributes(this.el);
83
- }
84
- connectedCallback() {
85
- this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
86
- /**
87
- * The fullscreen content offsets need to be
88
- * computed after the tab bar has loaded. Since
89
- * lazy evaluation means components are not hydrated
90
- * at the same time, we need to wait for the ionTabBarLoaded
91
- * event to fire. This does not impact dist-custom-elements
92
- * because there is no hydration there.
93
- */
94
- if (hasLazyBuild(this.el)) {
95
- /**
96
- * We need to cache the reference to the tabs.
97
- * If just the content is unmounted then we won't
98
- * be able to query for the closest tabs on disconnectedCallback
99
- * since the content has been removed from the DOM tree.
100
- */
101
- const closestTabs = (this.tabsElement = this.el.closest('ion-tabs'));
102
- if (closestTabs !== null) {
103
- /**
104
- * When adding and removing the event listener
105
- * we need to make sure we pass the same function reference
106
- * otherwise the event listener will not be removed properly.
107
- * We can't only pass `this.resize` because "this" in the function
108
- * context becomes a reference to IonTabs instead of IonContent.
109
- *
110
- * Additionally, we listen for ionTabBarLoaded on the IonTabs
111
- * instance rather than the IonTabBar instance. It's possible for
112
- * a tab bar to be conditionally rendered/mounted. Since ionTabBarLoaded
113
- * bubbles, we can catch any instances of child tab bars loading by listening
114
- * on IonTabs.
115
- */
116
- this.tabsLoadCallback = () => this.resize();
117
- closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);
118
- }
119
- }
120
- }
121
- disconnectedCallback() {
122
- this.onScrollEnd();
123
- if (hasLazyBuild(this.el)) {
124
- /**
125
- * The event listener and tabs caches need to
126
- * be cleared otherwise this will create a memory
127
- * leak where the IonTabs instance can never be
128
- * garbage collected.
129
- */
130
- const { tabsElement, tabsLoadCallback } = this;
131
- if (tabsElement !== null && tabsLoadCallback !== undefined) {
132
- tabsElement.removeEventListener('ionTabBarLoaded', tabsLoadCallback);
133
- }
134
- this.tabsElement = null;
135
- this.tabsLoadCallback = undefined;
136
- }
137
- }
138
- /**
139
- * Rotating certain devices can update
140
- * the safe area insets. As a result,
141
- * the fullscreen feature on ion-content
142
- * needs to be recalculated.
143
- *
144
- * We listen for "resize" because we
145
- * do not care what the orientation of
146
- * the device is. Other APIs
147
- * such as ScreenOrientation or
148
- * the deviceorientation event must have
149
- * permission from the user first whereas
150
- * the "resize" event does not.
151
- *
152
- * We also throttle the callback to minimize
153
- * thrashing when quickly resizing a window.
154
- */
155
- onResize() {
156
- if (this.resizeTimeout) {
157
- clearTimeout(this.resizeTimeout);
158
- this.resizeTimeout = null;
159
- }
160
- this.resizeTimeout = setTimeout(() => {
161
- /**
162
- * Resize should only happen
163
- * if the content is visible.
164
- * When the content is hidden
165
- * then offsetParent will be null.
166
- */
167
- if (this.el.offsetParent === null) {
168
- return;
169
- }
170
- this.resize();
171
- }, 100);
172
- }
173
- shouldForceOverscroll() {
174
- const { forceOverscroll } = this;
175
- const mode = getIonMode(this);
176
- return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
177
- }
178
- resize() {
179
- /**
180
- * Only force update if the component is rendered in a browser context.
181
- * Using `forceUpdate` in a server context with pre-rendering can lead to an infinite loop.
182
- * The `hydrateDocument` function in `@stencil/core` will render the `ion-content`, but
183
- * `forceUpdate` will trigger another render, locking up the server.
184
- *
185
- * TODO: Remove if STENCIL-834 determines Stencil will account for this.
186
- */
187
- if (Build.isBrowser) {
188
- if (this.fullscreen) {
189
- readTask(() => this.readDimensions());
190
- }
191
- else if (this.cTop !== 0 || this.cBottom !== 0) {
192
- this.cTop = this.cBottom = 0;
193
- forceUpdate(this);
194
- }
195
- }
196
- }
197
- /**
198
- * Recalculate content dimensions. Called by overlays (e.g., popover) when
199
- * sibling elements like headers or footers have finished rendering and their
200
- * heights are available, ensuring accurate offset-top calculations.
201
- * @internal
202
- */
203
- async recalculateDimensions() {
204
- readTask(() => this.readDimensions());
205
- }
206
- readDimensions() {
207
- const page = getPageElement(this.el);
208
- const top = Math.max(this.el.offsetTop, 0);
209
- const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);
210
- const dirty = top !== this.cTop || bottom !== this.cBottom;
211
- if (dirty) {
212
- this.cTop = top;
213
- this.cBottom = bottom;
214
- forceUpdate(this);
215
- }
216
- }
217
- onScroll(ev) {
218
- const timeStamp = Date.now();
219
- const shouldStart = !this.isScrolling;
220
- this.lastScroll = timeStamp;
221
- if (shouldStart) {
222
- this.onScrollStart();
223
- }
224
- if (!this.queued && this.scrollEvents) {
225
- this.queued = true;
226
- readTask((ts) => {
227
- this.queued = false;
228
- this.detail.event = ev;
229
- updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);
230
- this.ionScroll.emit(this.detail);
231
- });
232
- }
233
- }
234
- /**
235
- * Get the element where the actual scrolling takes place.
236
- * This element can be used to subscribe to `scroll` events or manually modify
237
- * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:
238
- *
239
- * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
240
- * and `scrollToPoint()` to scroll the content into a certain point.
241
- */
242
- async getScrollElement() {
243
- /**
244
- * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
245
- * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.
246
- */
247
- if (!this.scrollEl) {
248
- await new Promise((resolve) => componentOnReady(this.el, resolve));
249
- }
250
- return Promise.resolve(this.scrollEl);
251
- }
252
- /**
253
- * Returns the background content element.
254
- * @internal
255
- */
256
- async getBackgroundElement() {
257
- if (!this.backgroundContentEl) {
258
- await new Promise((resolve) => componentOnReady(this.el, resolve));
259
- }
260
- return Promise.resolve(this.backgroundContentEl);
261
- }
262
- /**
263
- * Scroll to the top of the component.
264
- *
265
- * @param duration The amount of time to take scrolling to the top. Defaults to `0`.
266
- */
267
- scrollToTop(duration = 0) {
268
- return this.scrollToPoint(undefined, 0, duration);
269
- }
270
- /**
271
- * Scroll to the bottom of the component.
272
- *
273
- * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
274
- */
275
- async scrollToBottom(duration = 0) {
276
- const scrollEl = await this.getScrollElement();
277
- const y = scrollEl.scrollHeight - scrollEl.clientHeight;
278
- return this.scrollToPoint(undefined, y, duration);
279
- }
280
- /**
281
- * Scroll by a specified X/Y distance in the component.
282
- *
283
- * @param x The amount to scroll by on the horizontal axis.
284
- * @param y The amount to scroll by on the vertical axis.
285
- * @param duration The amount of time to take scrolling by that amount.
286
- */
287
- async scrollByPoint(x, y, duration) {
288
- const scrollEl = await this.getScrollElement();
289
- return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);
290
- }
291
- /**
292
- * Scroll to a specified X/Y location in the component.
293
- *
294
- * @param x The point to scroll to on the horizontal axis.
295
- * @param y The point to scroll to on the vertical axis.
296
- * @param duration The amount of time to take scrolling to that point. Defaults to `0`.
297
- */
298
- async scrollToPoint(x, y, duration = 0) {
299
- const el = await this.getScrollElement();
300
- if (duration < 32) {
301
- if (y != null) {
302
- el.scrollTop = y;
303
- }
304
- if (x != null) {
305
- el.scrollLeft = x;
306
- }
307
- return;
308
- }
309
- let resolve;
310
- let startTime = 0;
311
- const promise = new Promise((r) => (resolve = r));
312
- const fromY = el.scrollTop;
313
- const fromX = el.scrollLeft;
314
- const deltaY = y != null ? y - fromY : 0;
315
- const deltaX = x != null ? x - fromX : 0;
316
- // scroll loop
317
- const step = (timeStamp) => {
318
- const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;
319
- const easedT = Math.pow(linearTime, 3) + 1;
320
- if (deltaY !== 0) {
321
- el.scrollTop = Math.floor(easedT * deltaY + fromY);
322
- }
323
- if (deltaX !== 0) {
324
- el.scrollLeft = Math.floor(easedT * deltaX + fromX);
325
- }
326
- if (easedT < 1) {
327
- // do not use DomController here
328
- // must use nativeRaf in order to fire in the next frame
329
- requestAnimationFrame(step);
330
- }
331
- else {
332
- resolve();
333
- }
334
- };
335
- // chill out for a frame first
336
- requestAnimationFrame((ts) => {
337
- startTime = ts;
338
- step(ts);
339
- });
340
- return promise;
341
- }
342
- onScrollStart() {
343
- this.isScrolling = true;
344
- this.ionScrollStart.emit({
345
- isScrolling: true,
346
- });
347
- if (this.watchDog) {
348
- clearInterval(this.watchDog);
349
- }
350
- // watchdog
351
- this.watchDog = setInterval(() => {
352
- if (this.lastScroll < Date.now() - 120) {
353
- this.onScrollEnd();
354
- }
355
- }, 100);
356
- }
357
- onScrollEnd() {
358
- if (this.watchDog)
359
- clearInterval(this.watchDog);
360
- this.watchDog = null;
361
- if (this.isScrolling) {
362
- this.isScrolling = false;
363
- this.ionScrollEnd.emit({
364
- isScrolling: false,
365
- });
366
- }
367
- }
368
- render() {
369
- const { fixedSlotPlacement, inheritedAttributes, isMainContent, scrollX, scrollY, el } = this;
370
- const rtl = isRTL(el) ? 'rtl' : 'ltr';
371
- const mode = getIonMode(this);
372
- const forceOverscroll = this.shouldForceOverscroll();
373
- const transitionShadow = mode === 'ios';
374
- this.resize();
375
- return (h(Host, Object.assign({ key: '212b1438f044061887984e02e1c8943ee1d33c20', role: isMainContent ? 'main' : undefined, class: createColorClasses(this.color, {
376
- [mode]: true,
377
- 'content-fullscreen': this.fullscreen,
378
- 'content-sizing': hostContext('ion-popover', this.el),
379
- overscroll: forceOverscroll,
380
- [`content-${rtl}`]: true,
381
- }), style: {
382
- '--offset-top': `${this.cTop}px`,
383
- '--offset-bottom': `${this.cBottom}px`,
384
- } }, inheritedAttributes), h("div", { key: 'ea46641492eef8cc7b08fc398d0285115b5a7100', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? h("slot", { name: "fixed" }) : null, h("div", { key: 'dc9096f0b97ab6145fb46cf065cd244f4af1cab5', class: {
385
- 'inner-scroll': true,
386
- 'scroll-x': scrollX,
387
- 'scroll-y': scrollY,
388
- overscroll: (scrollX || scrollY) && forceOverscroll,
389
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", { key: '4b13fd5b7e124353d43b47a30e975400ae2a0341' })), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? h("slot", { name: "fixed" }) : null));
390
- }
391
- get el() { return this; }
392
- static get style() { return contentCss; }
393
- }, [257, "ion-content", {
394
- "color": [513],
395
- "fullscreen": [4],
396
- "fixedSlotPlacement": [1, "fixed-slot-placement"],
397
- "forceOverscroll": [1028, "force-overscroll"],
398
- "scrollX": [4, "scroll-x"],
399
- "scrollY": [4, "scroll-y"],
400
- "scrollEvents": [4, "scroll-events"],
401
- "recalculateDimensions": [64],
402
- "getScrollElement": [64],
403
- "getBackgroundElement": [64],
404
- "scrollToTop": [64],
405
- "scrollToBottom": [64],
406
- "scrollByPoint": [64],
407
- "scrollToPoint": [64]
408
- }, [[9, "resize", "onResize"]]]);
409
- const getParentElement = (el) => {
410
- var _a;
411
- if (el.parentElement) {
412
- // normal element with a parent element
413
- return el.parentElement;
414
- }
415
- if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {
416
- // shadow dom's document fragment
417
- return el.parentNode.host;
418
- }
419
- return null;
420
- };
421
- const getPageElement = (el) => {
422
- const tabs = el.closest('ion-tabs');
423
- if (tabs) {
424
- return tabs;
425
- }
426
- /**
427
- * If we're in a popover, we need to use its wrapper so we can account for space
428
- * between the popover and the edges of the screen. But if the popover contains
429
- * its own page element, we should use that instead.
430
- */
431
- const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
432
- if (page) {
433
- return page;
434
- }
435
- return getParentElement(el);
436
- };
437
- // ******** DOM READ ****************
438
- const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
439
- const prevX = detail.currentX;
440
- const prevY = detail.currentY;
441
- const prevT = detail.currentTime;
442
- const currentX = el.scrollLeft;
443
- const currentY = el.scrollTop;
444
- const timeDelta = timestamp - prevT;
445
- if (shouldStart) {
446
- // remember the start positions
447
- detail.startTime = timestamp;
448
- detail.startX = currentX;
449
- detail.startY = currentY;
450
- detail.velocityX = detail.velocityY = 0;
451
- }
452
- detail.currentTime = timestamp;
453
- detail.currentX = detail.scrollLeft = currentX;
454
- detail.currentY = detail.scrollTop = currentY;
455
- detail.deltaX = currentX - detail.startX;
456
- detail.deltaY = currentY - detail.startY;
457
- if (timeDelta > 0 && timeDelta < 100) {
458
- const velocityX = (currentX - prevX) / timeDelta;
459
- const velocityY = (currentY - prevY) / timeDelta;
460
- detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;
461
- detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
462
- }
463
- };
464
- function defineCustomElement() {
465
- if (typeof customElements === "undefined") {
466
- return;
467
- }
468
- const components = ["ion-content"];
469
- components.forEach(tagName => { switch (tagName) {
470
- case "ion-content":
471
- if (!customElements.get(tagName)) {
472
- customElements.define(tagName, Content);
473
- }
474
- break;
475
- } });
476
- }
477
-
478
- export { Content as C, defineCustomElement as d };
4
+ import{proxyCustomElement as t,HTMLElement as o,createEvent as i,Build as s,readTask as e,forceUpdate as n,h as r,Host as l,transformTag as a}from"@stencil/core/internal/client";import{i as c,k as h,c as d}from"./helpers.js";import{b as f,a as p}from"./ionic-global.js";import{i as m}from"./dir.js";import{c as b,h as v}from"./theme.js";const u=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.ionScrollStart=i(this,"ionScrollStart",7),this.ionScroll=i(this,"ionScroll",7),this.ionScrollEnd=i(this,"ionScrollEnd",7),this.watchDog=null,this.isScrolling=!1,this.lastScroll=0,this.queued=!1,this.cTop=-1,this.cBottom=-1,this.isMainContent=!0,this.resizeTimeout=null,this.inheritedAttributes={},this.tabsElement=null,this.detail={scrollTop:0,scrollLeft:0,type:"scroll",event:void 0,startX:0,startY:0,startTime:0,currentX:0,currentY:0,velocityX:0,velocityY:0,deltaX:0,deltaY:0,currentTime:0,data:void 0,isScrolling:!0},this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}componentWillLoad(){this.inheritedAttributes=c(this.el)}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),h(this.el)){const t=this.tabsElement=this.el.closest("ion-tabs");null!==t&&(this.tabsLoadCallback=()=>this.resize(),t.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}}disconnectedCallback(){if(this.onScrollEnd(),h(this.el)){const{tabsElement:t,tabsLoadCallback:o}=this;null!==t&&void 0!==o&&t.removeEventListener("ionTabBarLoaded",o),this.tabsElement=null,this.tabsLoadCallback=void 0}}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(){const{forceOverscroll:t}=this,o=f(this);return void 0===t?"ios"===o&&p("ios"):t}resize(){s.isBrowser&&(this.fullscreen?e((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,n(this)))}async recalculateDimensions(){e((()=>this.readDimensions()))}readDimensions(){const t=g(this.el),o=Math.max(this.el.offsetTop,0),i=Math.max(t.offsetHeight-o-this.el.offsetHeight,0);(o!==this.cTop||i!==this.cBottom)&&(this.cTop=o,this.cBottom=i,n(this))}onScroll(t){const o=Date.now(),i=!this.isScrolling;this.lastScroll=o,i&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,e((o=>{this.queued=!1,this.detail.event=t,x(this.detail,this.scrollEl,o,i),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((t=>d(this.el,t))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((t=>d(this.el,t))),Promise.resolve(this.backgroundContentEl)}scrollToTop(t=0){return this.scrollToPoint(void 0,0,t)}async scrollToBottom(t=0){const o=await this.getScrollElement();return this.scrollToPoint(void 0,o.scrollHeight-o.clientHeight,t)}async scrollByPoint(t,o,i){const s=await this.getScrollElement();return this.scrollToPoint(t+s.scrollLeft,o+s.scrollTop,i)}async scrollToPoint(t,o,i=0){const s=await this.getScrollElement();if(i<32)return null!=o&&(s.scrollTop=o),void(null!=t&&(s.scrollLeft=t));let e,n=0;const r=new Promise((t=>e=t)),l=s.scrollTop,a=s.scrollLeft,c=null!=o?o-l:0,h=null!=t?t-a:0,d=t=>{const o=Math.min(1,(t-n)/i)-1,r=Math.pow(o,3)+1;0!==c&&(s.scrollTop=Math.floor(r*c+l)),0!==h&&(s.scrollLeft=Math.floor(r*h+a)),r<1?requestAnimationFrame(d):e()};return requestAnimationFrame((t=>{n=t,d(t)})),r}onScrollStart(){this.isScrolling=!0,this.ionScrollStart.emit({isScrolling:!0}),this.watchDog&&clearInterval(this.watchDog),this.watchDog=setInterval((()=>{this.lastScroll<Date.now()-120&&this.onScrollEnd()}),100)}onScrollEnd(){this.watchDog&&clearInterval(this.watchDog),this.watchDog=null,this.isScrolling&&(this.isScrolling=!1,this.ionScrollEnd.emit({isScrolling:!1}))}render(){const{fixedSlotPlacement:t,inheritedAttributes:o,isMainContent:i,scrollX:s,scrollY:e,el:n}=this,a=m(n)?"rtl":"ltr",c=f(this),h=this.shouldForceOverscroll(),d="ios"===c;return this.resize(),r(l,Object.assign({key:"212b1438f044061887984e02e1c8943ee1d33c20",role:i?"main":void 0,class:b(this.color,{[c]:!0,"content-fullscreen":this.fullscreen,"content-sizing":v("ion-popover",this.el),overscroll:h,[`content-${a}`]:!0}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`}},o),r("div",{key:"ea46641492eef8cc7b08fc398d0285115b5a7100",ref:t=>this.backgroundContentEl=t,id:"background-content",part:"background"}),"before"===t?r("slot",{name:"fixed"}):null,r("div",{key:"dc9096f0b97ab6145fb46cf065cd244f4af1cab5",class:{"inner-scroll":!0,"scroll-x":s,"scroll-y":e,overscroll:(s||e)&&h},ref:t=>this.scrollEl=t,onScroll:this.scrollEvents?t=>this.onScroll(t):void 0,part:"scroll"},r("slot",{key:"4b13fd5b7e124353d43b47a30e975400ae2a0341"})),d?r("div",{class:"transition-effect"},r("div",{class:"transition-cover"}),r("div",{class:"transition-shadow"})):null,"after"===t?r("slot",{name:"fixed"}):null)}get el(){return this}static get style(){return':host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}'}},[257,"ion-content",{color:[513],fullscreen:[4],fixedSlotPlacement:[1,"fixed-slot-placement"],forceOverscroll:[1028,"force-overscroll"],scrollX:[4,"scroll-x"],scrollY:[4,"scroll-y"],scrollEvents:[4,"scroll-events"],recalculateDimensions:[64],getScrollElement:[64],getBackgroundElement:[64],scrollToTop:[64],scrollToBottom:[64],scrollByPoint:[64],scrollToPoint:[64]},[[9,"resize","onResize"]]]),g=t=>{const o=t.closest("ion-tabs");if(o)return o;return t.closest("ion-app, ion-page, .ion-page, page-inner, .popover-content")||(t=>{var o;return t.parentElement?t.parentElement:(null===(o=t.parentNode)||void 0===o?void 0:o.host)?t.parentNode.host:null})(t)},x=(t,o,i,s)=>{const e=t.currentX,n=t.currentY,r=o.scrollLeft,l=o.scrollTop,a=i-t.currentTime;if(s&&(t.startTime=i,t.startX=r,t.startY=l,t.velocityX=t.velocityY=0),t.currentTime=i,t.currentX=t.scrollLeft=r,t.currentY=t.scrollTop=l,t.deltaX=r-t.startX,t.deltaY=l-t.startY,a>0&&a<100){const o=(l-n)/a;t.velocityX=(r-e)/a*.7+.3*t.velocityX,t.velocityY=.7*o+.3*t.velocityY}};function y(){"undefined"!=typeof customElements&&["ion-content"].forEach((t=>{"ion-content"===t&&(customElements.get(a(t))||customElements.define(a(t),u))}))}export{u as C,y as d}
@@ -1,90 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- /**
5
- * Based on:
6
- * https://stackoverflow.com/questions/7348009/y-coordinate-for-a-given-x-cubic-bezier
7
- * https://math.stackexchange.com/questions/26846/is-there-an-explicit-form-for-cubic-b%C3%A9zier-curves
8
- */
9
- /**
10
- * EXPERIMENTAL
11
- * Given a cubic-bezier curve, get the x value (time) given
12
- * the y value (progression).
13
- * Ex: cubic-bezier(0.32, 0.72, 0, 1);
14
- * P0: (0, 0)
15
- * P1: (0.32, 0.72)
16
- * P2: (0, 1)
17
- * P3: (1, 1)
18
- *
19
- * If you give a cubic bezier curve that never reaches the
20
- * provided progression, this function will return an empty array.
21
- */
22
- const getTimeGivenProgression = (p0, p1, p2, p3, progression) => {
23
- return solveCubicBezier(p0[1], p1[1], p2[1], p3[1], progression).map((tValue) => {
24
- return solveCubicParametricEquation(p0[0], p1[0], p2[0], p3[0], tValue);
25
- });
26
- };
27
- /**
28
- * Solve a cubic equation in one dimension (time)
29
- */
30
- const solveCubicParametricEquation = (p0, p1, p2, p3, t) => {
31
- const partA = 3 * p1 * Math.pow(t - 1, 2);
32
- const partB = -3 * p2 * t + 3 * p2 + p3 * t;
33
- const partC = p0 * Math.pow(t - 1, 3);
34
- return t * (partA + t * partB) - partC;
35
- };
36
- /**
37
- * Find the `t` value for a cubic bezier using Cardano's formula
38
- */
39
- const solveCubicBezier = (p0, p1, p2, p3, refPoint) => {
40
- p0 -= refPoint;
41
- p1 -= refPoint;
42
- p2 -= refPoint;
43
- p3 -= refPoint;
44
- const roots = solveCubicEquation(p3 - 3 * p2 + 3 * p1 - p0, 3 * p2 - 6 * p1 + 3 * p0, 3 * p1 - 3 * p0, p0);
45
- return roots.filter((root) => root >= 0 && root <= 1);
46
- };
47
- const solveQuadraticEquation = (a, b, c) => {
48
- const discriminant = b * b - 4 * a * c;
49
- if (discriminant < 0) {
50
- return [];
51
- }
52
- else {
53
- return [(-b + Math.sqrt(discriminant)) / (2 * a), (-b - Math.sqrt(discriminant)) / (2 * a)];
54
- }
55
- };
56
- const solveCubicEquation = (a, b, c, d) => {
57
- if (a === 0) {
58
- return solveQuadraticEquation(b, c, d);
59
- }
60
- b /= a;
61
- c /= a;
62
- d /= a;
63
- const p = (3 * c - b * b) / 3;
64
- const q = (2 * b * b * b - 9 * b * c + 27 * d) / 27;
65
- if (p === 0) {
66
- return [Math.pow(-q, 1 / 3)];
67
- }
68
- else if (q === 0) {
69
- return [Math.sqrt(-p), -Math.sqrt(-p)];
70
- }
71
- const discriminant = Math.pow(q / 2, 2) + Math.pow(p / 3, 3);
72
- if (discriminant === 0) {
73
- return [Math.pow(q / 2, 1 / 2) - b / 3];
74
- }
75
- else if (discriminant > 0) {
76
- return [
77
- Math.pow(-(q / 2) + Math.sqrt(discriminant), 1 / 3) - Math.pow(q / 2 + Math.sqrt(discriminant), 1 / 3) - b / 3,
78
- ];
79
- }
80
- const r = Math.sqrt(Math.pow(-(p / 3), 3));
81
- const phi = Math.acos(-(q / (2 * Math.sqrt(Math.pow(-(p / 3), 3)))));
82
- const s = 2 * Math.pow(r, 1 / 3);
83
- return [
84
- s * Math.cos(phi / 3) - b / 3,
85
- s * Math.cos((phi + 2 * Math.PI) / 3) - b / 3,
86
- s * Math.cos((phi + 4 * Math.PI) / 3) - b / 3,
87
- ];
88
- };
89
-
90
- export { getTimeGivenProgression as g };
4
+ const t=(t,M,r,n,e)=>h(t[1],M[1],r[1],n[1],e).map((h=>a(t[0],M[0],r[0],n[0],h))),a=(t,a,h,M,r)=>r*(3*a*Math.pow(r-1,2)+r*(-3*h*r+3*h+M*r))-t*Math.pow(r-1,3),h=(t,a,h,r,n)=>M((r-=n)-3*(h-=n)+3*(a-=n)-(t-=n),3*h-6*a+3*t,3*a-3*t,t).filter((t=>t>=0&&t<=1)),M=(t,a,h,M)=>{if(0===t)return((t,a,h)=>{const M=a*a-4*t*h;return M<0?[]:[(-a+Math.sqrt(M))/(2*t),(-a-Math.sqrt(M))/(2*t)]})(a,h,M);const r=(3*(h/=t)-(a/=t)*a)/3,n=(2*a*a*a-9*a*h+27*(M/=t))/27;if(0===r)return[Math.pow(-n,1/3)];if(0===n)return[Math.sqrt(-r),-Math.sqrt(-r)];const e=Math.pow(n/2,2)+Math.pow(r/3,3);if(0===e)return[Math.pow(n/2,.5)-a/3];if(e>0)return[Math.pow(-n/2+Math.sqrt(e),1/3)-Math.pow(n/2+Math.sqrt(e),1/3)-a/3];const u=Math.sqrt(Math.pow(-r/3,3)),o=Math.acos(-n/(2*Math.sqrt(Math.pow(-r/3,3)))),s=2*Math.pow(u,1/3);return[s*Math.cos(o/3)-a/3,s*Math.cos((o+2*Math.PI)/3)-a/3,s*Math.cos((o+4*Math.PI)/3)-a/3]};export{t as g}