@amwaljs/checkout-button 0.2.9 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1233) hide show
  1. package/dist/checkout/checkout.esm.js +1 -2
  2. package/dist/checkout/index.esm.js +0 -2
  3. package/dist/checkout/p--tz3q7oD.js +4 -0
  4. package/dist/checkout/p-00e120c2.entry.js +1 -0
  5. package/dist/checkout/p-0363331c.entry.js +1 -0
  6. package/dist/checkout/p-0f731364.entry.js +4 -0
  7. package/dist/checkout/p-147541e8.entry.js +1 -0
  8. package/dist/checkout/p-16f51173.entry.js +1 -0
  9. package/dist/checkout/p-178c0495.entry.js +1 -0
  10. package/dist/checkout/p-1c08169f.entry.js +1 -0
  11. package/dist/checkout/p-1c6da25b.entry.js +1 -0
  12. package/dist/checkout/p-1dc3efa2.entry.js +1 -0
  13. package/dist/checkout/p-2383ebd8.entry.js +1 -0
  14. package/dist/checkout/p-25306802.entry.js +1 -0
  15. package/dist/checkout/p-26af1ebe.entry.js +1 -0
  16. package/dist/checkout/p-2768f09a.entry.js +1 -0
  17. package/dist/checkout/p-27fb8b9e.entry.js +1 -0
  18. package/dist/checkout/p-2c421f28.entry.js +1 -0
  19. package/dist/checkout/p-2dd918ca.entry.js +1 -0
  20. package/dist/checkout/p-2e366473.entry.js +1 -0
  21. package/dist/checkout/p-38f520fb.entry.js +1 -0
  22. package/dist/checkout/p-3a262c01.entry.js +1 -0
  23. package/dist/checkout/p-3c416dcd.entry.js +1 -0
  24. package/dist/checkout/p-418e3312.entry.js +1 -0
  25. package/dist/checkout/p-43c67eeb.entry.js +1 -0
  26. package/dist/checkout/p-44f2b201.entry.js +4 -0
  27. package/dist/checkout/p-470783cb.entry.js +1 -0
  28. package/dist/checkout/p-48c40063.entry.js +1 -0
  29. package/dist/checkout/p-490c7f14.entry.js +1 -0
  30. package/dist/checkout/p-493952b7.entry.js +1 -0
  31. package/dist/checkout/p-4de3b067.entry.js +1 -0
  32. package/dist/checkout/p-519c1a94.entry.js +1 -0
  33. package/dist/checkout/p-523f80de.entry.js +1 -0
  34. package/dist/checkout/p-5274360d.entry.js +1 -0
  35. package/dist/checkout/p-550a7fdf.entry.js +1 -0
  36. package/dist/checkout/p-5IcNt7MW.js +8 -0
  37. package/dist/checkout/p-5a2c8845.entry.js +7 -0
  38. package/dist/checkout/p-5d2b220e.entry.js +1 -0
  39. package/dist/checkout/p-60bbcf96.entry.js +1 -0
  40. package/dist/checkout/p-68738638.entry.js +1 -0
  41. package/dist/checkout/p-69233a7c.entry.js +1 -0
  42. package/dist/checkout/p-6a6a2461.entry.js +1 -0
  43. package/dist/checkout/p-6d4c0370.entry.js +1 -0
  44. package/dist/checkout/p-6f4a82d2.entry.js +1 -0
  45. package/dist/checkout/p-733767d9.entry.js +1 -0
  46. package/dist/checkout/p-77ebd92f.entry.js +1 -0
  47. package/dist/checkout/p-7YtNmL9y.js +4 -0
  48. package/dist/checkout/p-7a153eab.entry.js +4 -0
  49. package/dist/checkout/p-7c7e86fe.entry.js +1 -0
  50. package/dist/checkout/p-7d9ee602.entry.js +1 -0
  51. package/dist/checkout/p-7e3bc3c4.entry.js +1 -0
  52. package/dist/checkout/p-8427a296.entry.js +1 -0
  53. package/dist/checkout/p-870ec42b.entry.js +4 -0
  54. package/dist/checkout/p-890e9953.entry.js +1 -0
  55. package/dist/checkout/p-931d2424.entry.js +4 -0
  56. package/dist/checkout/p-93eb6dad.entry.js +1 -0
  57. package/dist/checkout/p-B-hirT0v.js +1 -2
  58. package/dist/checkout/p-B3WORC1a.js +1 -2
  59. package/dist/checkout/p-B7f9Wkif.js +1 -0
  60. package/dist/checkout/p-BJe8ISja.js +4 -0
  61. package/dist/checkout/p-BKaQyStq.js +5 -0
  62. package/dist/checkout/p-BR7SJd-v.js +2 -3
  63. package/dist/checkout/p-BTEOs1at.js +1 -2
  64. package/dist/checkout/p-BY0jsxmW.js +4 -0
  65. package/dist/checkout/p-B_Z54mfe.js +5 -0
  66. package/dist/checkout/p-Ba57PFgY.js +7 -0
  67. package/dist/checkout/p-BgOwfqIY.js +2 -6
  68. package/dist/checkout/p-BmVRXR1y.js +1 -2
  69. package/dist/checkout/p-BmlsNFZH.js +1 -2
  70. package/dist/checkout/p-C03M5ZSM.js +1 -2
  71. package/dist/checkout/p-C53feagD.js +1 -2
  72. package/dist/checkout/p-CAD1l928.js +8 -0
  73. package/dist/checkout/p-CFLSScFJ.js +4 -0
  74. package/dist/checkout/p-CH3Eg9_f.js +2 -9
  75. package/dist/checkout/p-CPoSEOHb.js +4 -0
  76. package/dist/checkout/p-CkCrVZwR.js +4 -0
  77. package/dist/checkout/p-D0wwuiQC.js +4 -0
  78. package/dist/checkout/p-D2NxOvQ8.js +2 -3
  79. package/dist/checkout/p-D4RIp70E.js +1 -2
  80. package/dist/checkout/p-DFxgipTc.js +4 -0
  81. package/dist/checkout/p-DJztqcrH.js +1 -2
  82. package/dist/checkout/p-DKg_dYcq.js +2 -3
  83. package/dist/checkout/p-DQmRrrcF.js +7 -0
  84. package/dist/checkout/p-DSLRCWTg.js +4 -0
  85. package/dist/checkout/p-DdmvYtPY.js +7 -0
  86. package/dist/checkout/p-DiVJyqlX.js +1 -2
  87. package/dist/checkout/p-Drg5BcI0.js +4 -0
  88. package/dist/checkout/p-Dtdm8lKC.js +1 -2
  89. package/dist/checkout/p-LsffVXQ5.js +4 -0
  90. package/dist/checkout/p-ZjP4CjeZ.js +1 -2
  91. package/dist/checkout/p-__1_zp1x.js +4 -0
  92. package/dist/checkout/p-a09d1040.entry.js +1 -0
  93. package/dist/checkout/p-a5f75741.entry.js +1 -0
  94. package/dist/checkout/p-ae30349d.entry.js +1 -0
  95. package/dist/checkout/p-afbe752e.entry.js +1 -0
  96. package/dist/checkout/p-b2e14651.entry.js +1 -0
  97. package/dist/checkout/p-b36fcda4.entry.js +1 -0
  98. package/dist/checkout/p-b67b736b.entry.js +1 -0
  99. package/dist/checkout/p-b7bf5abe.entry.js +1 -0
  100. package/dist/checkout/p-bb513178.entry.js +1 -0
  101. package/dist/checkout/p-bd4e1c37.entry.js +1 -0
  102. package/dist/checkout/p-beb2c33c.entry.js +1 -0
  103. package/dist/checkout/p-becc350d.entry.js +4 -0
  104. package/dist/checkout/p-c19dc56b.entry.js +1 -0
  105. package/dist/checkout/p-c1cbd33c.entry.js +1 -0
  106. package/dist/checkout/p-c34382ea.entry.js +1 -0
  107. package/dist/checkout/p-c4c9e530.entry.js +1 -0
  108. package/dist/checkout/p-c534dea9.entry.js +7 -0
  109. package/dist/checkout/p-c7978eb8.entry.js +4 -0
  110. package/dist/checkout/p-c8f6670e.entry.js +7 -0
  111. package/dist/checkout/p-cb1a44cc.entry.js +5 -0
  112. package/dist/checkout/p-cda0fb4e.entry.js +1 -0
  113. package/dist/checkout/p-cecfb55a.entry.js +1 -0
  114. package/dist/checkout/p-d819f4e4.entry.js +1 -0
  115. package/dist/checkout/p-dd2fe837.entry.js +1 -0
  116. package/dist/checkout/p-dfcadc7e.entry.js +7 -0
  117. package/dist/checkout/p-e37ae6e2.entry.js +1 -0
  118. package/dist/checkout/p-e8173bed.entry.js +21 -0
  119. package/dist/checkout/p-ead19b10.entry.js +1 -0
  120. package/dist/checkout/p-eae34719.entry.js +1 -0
  121. package/dist/checkout/p-eff08443.entry.js +1 -0
  122. package/dist/checkout/p-f0535bc6.entry.js +1 -0
  123. package/dist/checkout/p-fd971fbb.entry.js +1 -0
  124. package/dist/checkout/p-ff3211f5.entry.js +1 -0
  125. package/dist/checkout/p-hHmYLOfE.js +1 -2
  126. package/dist/checkout/p-ktzqax7n.js +1 -2
  127. package/dist/checkout/p-sObYyvOy.js +1 -2
  128. package/dist/checkout/p-vDXqvDVZ.js +8 -0
  129. package/dist/checkout/p-xxOnfNPU.js +9 -0
  130. package/dist/cjs/amwal-checkout-button_5.cjs.entry.js +85 -120
  131. package/dist/cjs/amwal-installments-guide.cjs.entry.js +1 -2
  132. package/dist/cjs/amwal-pos.cjs.entry.js +4 -3
  133. package/dist/cjs/amwal-widget-modal.cjs.entry.js +7 -4
  134. package/dist/cjs/amwal-widget.cjs.entry.js +10 -5
  135. package/dist/cjs/{animation-BtvIVax4.js → animation-DmZTzC07.js} +1 -4
  136. package/dist/cjs/app-globals-B6FjPa2t.js +7 -0
  137. package/dist/cjs/ar-CbT6TM-Q.js +0 -3
  138. package/dist/cjs/capacitor-CqhugS19.js +0 -3
  139. package/dist/cjs/checkout.cjs.js +5 -8
  140. package/dist/cjs/compare-with-utils-JlLIkecm.js +0 -3
  141. package/dist/cjs/{config-DUSoxbhv.js → config-DMigaw94.js} +1 -4
  142. package/dist/cjs/cubic-bezier-Bv3PvaRI.js +0 -3
  143. package/dist/cjs/{data-CjHlPfPW.js → data-C9NB5QNL.js} +1 -4
  144. package/dist/cjs/dir-Br-7_bel.js +0 -3
  145. package/dist/cjs/focus-visible-Da2o6bTP.js +0 -3
  146. package/dist/cjs/{framework-delegate-BoMy23Lz.js → framework-delegate-BFev42vk.js} +1 -4
  147. package/dist/cjs/gesture-controller-CiprlUhH.js +0 -3
  148. package/dist/cjs/haptic-DCn793nz.js +0 -3
  149. package/dist/cjs/{hardware-back-button-B1WYQg6m.js → hardware-back-button-CMceVPAk.js} +1 -4
  150. package/dist/cjs/{helpers-C5_WrFOI.js → helpers-VdS_U_Su.js} +1 -4
  151. package/dist/cjs/i18n-uGNv9SLK.js +0 -3
  152. package/dist/cjs/{index-DwdNl4cs.js → index-BQ9HVZwH.js} +2 -5
  153. package/dist/cjs/index-Calgykmz.js +0 -3
  154. package/dist/cjs/{index-C0J_JwJB.js → index-D1TvI2Ig.js} +2 -5
  155. package/dist/cjs/index-D3mJ1Cix.js +0 -3
  156. package/dist/cjs/{index-C3dD6F2g.js → index-DaUK-X4l.js} +5 -8
  157. package/dist/cjs/index-DseJYF57.js +0 -3
  158. package/dist/cjs/{index-C-U8a6CY.js → index-NREvOo92.js} +4 -7
  159. package/dist/cjs/{index-BPGqVQtz.js → index-q1-id3dG.js} +1708 -86
  160. package/dist/cjs/index.cjs.js +0 -3
  161. package/dist/cjs/{input-shims-DIBy37tN.js → input-shims-CJrPMP1S.js} +3 -6
  162. package/dist/cjs/{input.utils-IVavyQAZ.js → input.utils-D9hnMuNq.js} +2 -5
  163. package/dist/cjs/ion-accordion-group.cjs.entry.js +11 -6
  164. package/dist/cjs/ion-accordion.cjs.entry.js +6 -5
  165. package/dist/cjs/ion-action-sheet_5.cjs.entry.js +37 -20
  166. package/dist/cjs/ion-app.cjs.entry.js +7 -8
  167. package/dist/cjs/ion-avatar.cjs.entry.js +2 -3
  168. package/dist/cjs/ion-back-button.cjs.entry.js +3 -4
  169. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -3
  170. package/dist/cjs/ion-badge.cjs.entry.js +2 -3
  171. package/dist/cjs/ion-breadcrumb.cjs.entry.js +3 -4
  172. package/dist/cjs/ion-breadcrumbs.cjs.entry.js +11 -6
  173. package/dist/cjs/ion-buttons_10.cjs.entry.js +17 -10
  174. package/dist/cjs/ion-card-content.cjs.entry.js +2 -3
  175. package/dist/cjs/ion-card-header.cjs.entry.js +2 -3
  176. package/dist/cjs/ion-card-subtitle.cjs.entry.js +2 -3
  177. package/dist/cjs/ion-card-title.cjs.entry.js +2 -3
  178. package/dist/cjs/ion-card.cjs.entry.js +3 -4
  179. package/dist/cjs/ion-chip.cjs.entry.js +2 -3
  180. package/dist/cjs/ion-col.cjs.entry.js +2 -3
  181. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -5
  182. package/dist/cjs/ion-datetime.cjs.entry.js +40 -19
  183. package/dist/cjs/ion-fab-button.cjs.entry.js +3 -4
  184. package/dist/cjs/ion-fab-list.cjs.entry.js +5 -4
  185. package/dist/cjs/ion-fab.cjs.entry.js +5 -4
  186. package/dist/cjs/ion-footer.cjs.entry.js +4 -5
  187. package/dist/cjs/ion-grid.cjs.entry.js +2 -3
  188. package/dist/cjs/ion-icon.cjs.entry.js +16 -7
  189. package/dist/cjs/ion-img.cjs.entry.js +6 -5
  190. package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +3 -4
  191. package/dist/cjs/ion-infinite-scroll.cjs.entry.js +10 -7
  192. package/dist/cjs/ion-input-otp.cjs.entry.js +12 -7
  193. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +7 -6
  194. package/dist/cjs/ion-input.cjs.entry.js +17 -10
  195. package/dist/cjs/ion-item-divider.cjs.entry.js +2 -3
  196. package/dist/cjs/ion-item-group.cjs.entry.js +2 -3
  197. package/dist/cjs/ion-item-option.cjs.entry.js +2 -3
  198. package/dist/cjs/ion-item-options.cjs.entry.js +3 -4
  199. package/dist/cjs/ion-item-sliding.cjs.entry.js +7 -6
  200. package/dist/cjs/ion-label_2.cjs.entry.js +8 -5
  201. package/dist/cjs/ion-loading.cjs.entry.js +14 -11
  202. package/dist/cjs/ion-menu-button.cjs.entry.js +7 -8
  203. package/dist/cjs/ion-menu-toggle.cjs.entry.js +7 -8
  204. package/dist/cjs/ion-menu.cjs.entry.js +20 -13
  205. package/dist/cjs/ion-nav-link.cjs.entry.js +1 -2
  206. package/dist/cjs/ion-nav.cjs.entry.js +12 -9
  207. package/dist/cjs/ion-note.cjs.entry.js +2 -3
  208. package/dist/cjs/ion-picker-legacy-column.cjs.entry.js +6 -5
  209. package/dist/cjs/ion-picker-legacy.cjs.entry.js +13 -10
  210. package/dist/cjs/ion-picker_3.cjs.entry.js +12 -7
  211. package/dist/cjs/ion-popover.cjs.entry.js +17 -12
  212. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -4
  213. package/dist/cjs/ion-range.cjs.entry.js +25 -12
  214. package/dist/cjs/ion-refresher-content.cjs.entry.js +6 -7
  215. package/dist/cjs/ion-refresher.cjs.entry.js +9 -8
  216. package/dist/cjs/ion-reorder-group.cjs.entry.js +7 -6
  217. package/dist/cjs/ion-reorder.cjs.entry.js +2 -3
  218. package/dist/cjs/ion-route-redirect.cjs.entry.js +7 -4
  219. package/dist/cjs/ion-route.cjs.entry.js +10 -5
  220. package/dist/cjs/ion-router-link.cjs.entry.js +2 -3
  221. package/dist/cjs/ion-router-outlet.cjs.entry.js +9 -8
  222. package/dist/cjs/ion-router.cjs.entry.js +2 -3
  223. package/dist/cjs/ion-row.cjs.entry.js +2 -3
  224. package/dist/cjs/ion-searchbar.cjs.entry.js +18 -9
  225. package/dist/cjs/ion-segment-button.cjs.entry.js +6 -5
  226. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -2
  227. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -2
  228. package/dist/cjs/ion-segment.cjs.entry.js +15 -8
  229. package/dist/cjs/ion-select-option.cjs.entry.js +2 -3
  230. package/dist/cjs/ion-select.cjs.entry.js +19 -12
  231. package/dist/cjs/ion-skeleton-text.cjs.entry.js +2 -3
  232. package/dist/cjs/ion-spinner.cjs.entry.js +2 -3
  233. package/dist/cjs/ion-split-pane.cjs.entry.js +11 -6
  234. package/dist/cjs/ion-tab-bar.cjs.entry.js +5 -4
  235. package/dist/cjs/ion-tab-button.cjs.entry.js +3 -4
  236. package/dist/cjs/ion-tab.cjs.entry.js +6 -5
  237. package/dist/cjs/ion-tabs.cjs.entry.js +1 -2
  238. package/dist/cjs/ion-textarea.cjs.entry.js +15 -12
  239. package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -3
  240. package/dist/cjs/ion-toast.cjs.entry.js +17 -12
  241. package/dist/cjs/ion-toggle.cjs.entry.js +6 -5
  242. package/dist/cjs/{ionic-global-BmDUlKDf.js → ionic-global-tfENS075.js} +1 -4
  243. package/dist/cjs/{ios.transition-ROXYV2qt.js → ios.transition-EMvH3Tod.js} +4 -7
  244. package/dist/cjs/keyboard-DuKzsHsS.js +0 -3
  245. package/dist/cjs/keyboard-controller-rH21qC_2.js +0 -3
  246. package/dist/cjs/keyboard-iyHR2ZF4.js +0 -3
  247. package/dist/cjs/loader.cjs.js +4 -7
  248. package/dist/cjs/lock-controller-58TZFRHC.js +0 -3
  249. package/dist/cjs/{md.transition-NftVXx7D.js → md.transition-CwoQ7h7X.js} +4 -7
  250. package/dist/cjs/{menu-toggle-util-CROwv_aL.js → menu-toggle-util-By6-554q.js} +1 -4
  251. package/dist/cjs/{notch-controller-BzbZcc1N.js → notch-controller-DWw_ctSD.js} +1 -4
  252. package/dist/cjs/{overlays-gyJEvMkB.js → overlays-sgG7yBK9.js} +8 -9
  253. package/dist/cjs/{refresher.utils-DZrHDYQN.js → refresher.utils-CMKixJwj.js} +3 -6
  254. package/dist/cjs/spinner-configs-BN41iw42.js +0 -3
  255. package/dist/cjs/{status-tap-B5QfH5DO.js → status-tap-CdatiX6b.js} +3 -6
  256. package/dist/cjs/{swipe-back-BkT4j65k.js → swipe-back-D3MYxlFO.js} +2 -5
  257. package/dist/cjs/theme-DbHdw1Nx.js +0 -3
  258. package/dist/cjs/validity-ClNawnRU.js +0 -3
  259. package/dist/cjs/watch-options-DOFUPyuf.js +0 -3
  260. package/dist/collection/collection-manifest.json +1 -1
  261. package/dist/collection/components/amwal-checkout-button/amwal-checkout-button.css +1 -1
  262. package/dist/collection/components/amwal-checkout-button/amwal-checkout-button.js +40 -55
  263. package/dist/collection/components/amwal-checkout-button/amwal-checkout-button.stories.js +0 -1
  264. package/dist/collection/components/amwal-installments-guide/amwal-installments-guide.js +0 -1
  265. package/dist/collection/components/amwal-installments-guide/amwal-installments-guide.stories.js +0 -1
  266. package/dist/collection/components/amwal-installments-timeline/amwal-installments-timeline.js +2 -3
  267. package/dist/collection/components/amwal-installments-timeline/amwal-installments-timeline.stories.js +0 -1
  268. package/dist/collection/components/amwal-pos/amwal-pos.js +0 -1
  269. package/dist/collection/components/amwal-pos/amwal-pos.stories.js +0 -1
  270. package/dist/collection/components/amwal-widget/amwal-widget-modal.js +0 -1
  271. package/dist/collection/components/amwal-widget/amwal-widget.js +8 -7
  272. package/dist/collection/components/amwal-widget/amwal-widget.stories.js +0 -1
  273. package/dist/collection/lang/i18n.js +0 -1
  274. package/dist/components/amwal-checkout-button.js +1 -5375
  275. package/dist/components/amwal-installments-guide.js +1 -83
  276. package/dist/components/amwal-installments-timeline.js +1 -9
  277. package/dist/components/amwal-pos.js +1 -3670
  278. package/dist/components/amwal-widget-modal.js +1 -9
  279. package/dist/components/amwal-widget.js +1 -422
  280. package/dist/components/index.js +1 -9
  281. package/dist/components/ion-accordion-group.js +1 -271
  282. package/dist/components/ion-accordion.js +1 -459
  283. package/dist/components/ion-action-sheet.js +1 -9
  284. package/dist/components/ion-alert.js +1 -9
  285. package/dist/components/ion-app.js +1 -130
  286. package/dist/components/ion-avatar.js +1 -44
  287. package/dist/components/ion-back-button.js +1 -133
  288. package/dist/components/ion-backdrop.js +1 -9
  289. package/dist/components/ion-badge.js +1 -50
  290. package/dist/components/ion-breadcrumb.js +1 -140
  291. package/dist/components/ion-breadcrumbs.js +1 -167
  292. package/dist/components/ion-button.js +1 -9
  293. package/dist/components/ion-buttons.js +1 -9
  294. package/dist/components/ion-card-content.js +1 -48
  295. package/dist/components/ion-card-header.js +1 -59
  296. package/dist/components/ion-card-subtitle.js +1 -51
  297. package/dist/components/ion-card-title.js +1 -51
  298. package/dist/components/ion-card.js +1 -110
  299. package/dist/components/ion-checkbox.js +1 -9
  300. package/dist/components/ion-chip.js +1 -69
  301. package/dist/components/ion-col.js +2 -167
  302. package/dist/components/ion-content.js +1 -9
  303. package/dist/components/ion-datetime-button.js +1 -386
  304. package/dist/components/ion-datetime.js +2 -2051
  305. package/dist/components/ion-fab-button.js +1 -154
  306. package/dist/components/ion-fab-list.js +1 -69
  307. package/dist/components/ion-fab.js +1 -104
  308. package/dist/components/ion-footer.js +2 -163
  309. package/dist/components/ion-grid.js +1 -49
  310. package/dist/components/ion-header.js +1 -9
  311. package/dist/components/ion-icon.js +1 -9
  312. package/dist/components/ion-img.js +1 -127
  313. package/dist/components/ion-infinite-scroll-content.js +1 -72
  314. package/dist/components/ion-infinite-scroll.js +1 -239
  315. package/dist/components/ion-input-otp.js +1 -685
  316. package/dist/components/ion-input-password-toggle.js +1 -131
  317. package/dist/components/ion-input.js +1 -620
  318. package/dist/components/ion-item-divider.js +1 -62
  319. package/dist/components/ion-item-group.js +1 -49
  320. package/dist/components/ion-item-option.js +1 -94
  321. package/dist/components/ion-item-options.js +1 -76
  322. package/dist/components/ion-item-sliding.js +1 -460
  323. package/dist/components/ion-item.js +1 -9
  324. package/dist/components/ion-label.js +1 -9
  325. package/dist/components/ion-list-header.js +1 -9
  326. package/dist/components/ion-list.js +1 -9
  327. package/dist/components/ion-loading.js +3 -354
  328. package/dist/components/ion-menu-button.js +1 -112
  329. package/dist/components/ion-menu-toggle.js +1 -67
  330. package/dist/components/ion-menu.js +1 -744
  331. package/dist/components/ion-modal.js +1 -9
  332. package/dist/components/ion-nav-link.js +2 -68
  333. package/dist/components/ion-nav.js +2 -955
  334. package/dist/components/ion-note.js +1 -50
  335. package/dist/components/ion-picker-column-option.js +1 -9
  336. package/dist/components/ion-picker-column.js +1 -9
  337. package/dist/components/ion-picker-legacy-column.js +1 -9
  338. package/dist/components/ion-picker-legacy.js +3 -347
  339. package/dist/components/ion-picker.js +1 -9
  340. package/dist/components/ion-popover.js +1 -9
  341. package/dist/components/ion-progress-bar.js +1 -103
  342. package/dist/components/ion-radio-group.js +1 -9
  343. package/dist/components/ion-radio.js +1 -9
  344. package/dist/components/ion-range.js +2 -848
  345. package/dist/components/ion-refresher-content.js +1 -91
  346. package/dist/components/ion-refresher.js +1 -753
  347. package/dist/components/ion-reorder-group.js +1 -325
  348. package/dist/components/ion-reorder.js +1 -63
  349. package/dist/components/ion-ripple-effect.js +1 -9
  350. package/dist/components/ion-route-redirect.js +1 -48
  351. package/dist/components/ion-route.js +1 -77
  352. package/dist/components/ion-router-link.js +1 -64
  353. package/dist/components/ion-router-outlet.js +1 -229
  354. package/dist/components/ion-router.js +3 -857
  355. package/dist/components/ion-row.js +1 -39
  356. package/dist/components/ion-searchbar.js +1 -532
  357. package/dist/components/ion-segment-button.js +1 -176
  358. package/dist/components/ion-segment-content.js +1 -38
  359. package/dist/components/ion-segment-view.js +1 -145
  360. package/dist/components/ion-segment.js +1 -605
  361. package/dist/components/ion-select-modal.js +1 -9
  362. package/dist/components/ion-select-option.js +1 -49
  363. package/dist/components/ion-select-popover.js +1 -9
  364. package/dist/components/ion-select.js +1 -1038
  365. package/dist/components/ion-skeleton-text.js +1 -67
  366. package/dist/components/ion-spinner.js +1 -9
  367. package/dist/components/ion-split-pane.js +1 -193
  368. package/dist/components/ion-tab-bar.js +1 -118
  369. package/dist/components/ion-tab-button.js +1 -130
  370. package/dist/components/ion-tab.js +1 -85
  371. package/dist/components/ion-tabs.js +1 -207
  372. package/dist/components/ion-text.js +1 -9
  373. package/dist/components/ion-textarea.js +1 -559
  374. package/dist/components/ion-thumbnail.js +1 -39
  375. package/dist/components/ion-title.js +1 -9
  376. package/dist/components/ion-toast.js +3 -955
  377. package/dist/components/ion-toggle.js +1 -363
  378. package/dist/components/ion-toolbar.js +1 -9
  379. package/dist/components/p-1a8GRr4X.js +8 -0
  380. package/dist/components/p-84v5d37k.js +5 -0
  381. package/dist/components/p-8qbKOEwg.js +7 -0
  382. package/dist/components/p-B-hirT0v.js +1 -38
  383. package/dist/components/p-B2pBbmZL.js +1 -0
  384. package/dist/components/p-B3WORC1a.js +1 -47
  385. package/dist/components/p-B6K4Vevt.js +1 -0
  386. package/dist/components/p-B8CJYukv.js +4 -0
  387. package/dist/components/p-B8rkbvHJ.js +4 -0
  388. package/dist/components/p-BB452BOr.js +1 -0
  389. package/dist/components/p-BGU8Nymd.js +1 -0
  390. package/dist/components/p-BHQVufb8.js +4 -0
  391. package/dist/components/p-BNXO_6OD.js +1 -0
  392. package/dist/components/p-BTEOs1at.js +1 -195
  393. package/dist/components/p-BU2g75_N.js +1 -0
  394. package/dist/components/p-BYPhePqa.js +4 -0
  395. package/dist/components/p-Bam2tSRs.js +1 -0
  396. package/dist/components/p-BgOwfqIY.js +2 -83
  397. package/dist/components/p-BgdIJBVf.js +4 -0
  398. package/dist/components/p-BgihAYme.js +7 -0
  399. package/dist/components/p-BmVRXR1y.js +1 -75
  400. package/dist/components/p-BxP8TDfL.js +2 -159
  401. package/dist/components/p-ByfqFtWT.js +1 -0
  402. package/dist/components/p-Bz350JGF.js +7 -0
  403. package/dist/components/p-C-A_jB82.js +4 -0
  404. package/dist/components/p-C03M5ZSM.js +1 -16
  405. package/dist/components/p-C53feagD.js +1 -18
  406. package/dist/components/p-CECOogQN.js +4 -0
  407. package/dist/components/p-CH3Eg9_f.js +3 -463
  408. package/dist/components/p-CQOdiSAf.js +1 -0
  409. package/dist/components/p-CUAFXzfF.js +1 -0
  410. package/dist/components/p-C_xZxwXS.js +1 -0
  411. package/dist/components/p-CaFnxdQd.js +1 -0
  412. package/dist/components/p-CoO47q0D.js +7 -0
  413. package/dist/components/p-D2NxOvQ8.js +2 -14
  414. package/dist/components/p-DDc_C9oA.js +7 -0
  415. package/dist/components/p-DIdQsHkC.js +4 -0
  416. package/dist/components/p-DJDxJDy6.js +1 -0
  417. package/dist/components/p-DJztqcrH.js +1 -17
  418. package/dist/components/p-DK1OQn93.js +1 -0
  419. package/dist/components/p-DKg_dYcq.js +2 -166
  420. package/dist/components/p-DMTBSB3x.js +1 -0
  421. package/dist/components/p-DQAmWfm1.js +8 -0
  422. package/dist/components/p-DR2jvB6s.js +4 -0
  423. package/dist/components/p-DRov8Rcu.js +4 -0
  424. package/dist/components/p-DVAa5Ick.js +1 -0
  425. package/dist/components/p-DXFVmcjn.js +1 -0
  426. package/dist/components/p-DYhpoJMW.js +4 -0
  427. package/dist/components/p-Db1yB4_h.js +4 -0
  428. package/dist/components/p-DcJzInl-.js +4 -0
  429. package/dist/components/p-DexEOBMU.js +8 -0
  430. package/dist/components/p-DiVJyqlX.js +1 -43
  431. package/dist/components/p-DjZwclUS.js +5 -0
  432. package/dist/components/p-DokQbOf0.js +7 -0
  433. package/dist/components/p-Dtdm8lKC.js +1 -47
  434. package/dist/components/p-DuZ7hY1a.js +2 -145
  435. package/dist/components/p-Dzmy2KMF.js +8 -0
  436. package/dist/components/p-GqmIVAr9.js +1 -0
  437. package/dist/components/p-RvBk4hGw.js +1 -0
  438. package/dist/components/p-RxmIKEEQ.js +1 -0
  439. package/dist/components/p-ZjP4CjeZ.js +1 -7
  440. package/dist/components/p-hHmYLOfE.js +1 -90
  441. package/dist/components/p-jWFeuAB5.js +1 -32
  442. package/dist/components/p-kYICRcU6.js +1 -0
  443. package/dist/components/p-lwDXTYn3.js +4 -0
  444. package/dist/components/p-oMX-ZLwD.js +4 -0
  445. package/dist/components/p-oThWliBi.js +4 -0
  446. package/dist/components/p-pUVFzc0m.js +4 -0
  447. package/dist/components/p-uBkJJD7w.js +1 -0
  448. package/dist/components/p-wRbQpgeV.js +1 -0
  449. package/dist/components/p-zVHkqcTn.js +4 -0
  450. package/dist/esm/amwal-checkout-button_5.entry.js +85 -120
  451. package/dist/esm/amwal-installments-guide.entry.js +1 -2
  452. package/dist/esm/amwal-pos.entry.js +4 -3
  453. package/dist/esm/amwal-widget-modal.entry.js +7 -4
  454. package/dist/esm/amwal-widget.entry.js +10 -5
  455. package/dist/esm/{animation-BU4GfyJQ.js → animation-Cdsew5KM.js} +1 -4
  456. package/dist/esm/app-globals-qL1LLHNB.js +5 -0
  457. package/dist/esm/ar-B3WORC1a.js +0 -3
  458. package/dist/esm/capacitor-CG3xQUND.js +0 -3
  459. package/dist/esm/checkout.js +6 -9
  460. package/dist/esm/compare-with-utils-sObYyvOy.js +0 -3
  461. package/dist/{components/p-uTKLFBBy.js → esm/config-CnpuADYS.js} +1 -4
  462. package/dist/esm/cubic-bezier-hHmYLOfE.js +0 -3
  463. package/dist/esm/{data-BKjeovce.js → data-u308JruM.js} +1 -4
  464. package/dist/esm/dir-C53feagD.js +0 -3
  465. package/dist/esm/focus-visible-BmVRXR1y.js +0 -3
  466. package/dist/{components/p-9R9WjA6V.js → esm/framework-delegate-29_VtSmv.js} +1 -4
  467. package/dist/esm/gesture-controller-BTEOs1at.js +0 -3
  468. package/dist/esm/haptic-C3ucbArX.js +0 -3
  469. package/dist/esm/{hardware-back-button-Nry6hGkN.js → hardware-back-button-DRef5MPc.js} +1 -4
  470. package/dist/esm/{helpers-uLqs1Gao.js → helpers-BuFc0hrS.js} +1 -4
  471. package/dist/esm/i18n-C_AfxZ5D.js +0 -3
  472. package/dist/esm/index-BmlsNFZH.js +0 -3
  473. package/dist/esm/index-CF4QYFB3.js +0 -3
  474. package/dist/esm/{index-CCWf5GQy.js → index-DoRYA1qF.js} +4 -7
  475. package/dist/esm/{index-Ct7Rjd6t.js → index-Dph-Z83P.js} +5 -8
  476. package/dist/esm/{index-BmWsedvI.js → index-J3a2mue2.js} +2 -5
  477. package/dist/esm/{index-ffNEk55Y.js → index-Ul_idjjE.js} +2 -5
  478. package/dist/esm/index-ZjP4CjeZ.js +0 -3
  479. package/dist/esm/{index-BxybgBKJ.js → index-xxOnfNPU.js} +1708 -86
  480. package/dist/esm/index.js +0 -3
  481. package/dist/esm/{input-shims-DkzcZwWm.js → input-shims-D1Cdl4JQ.js} +3 -6
  482. package/dist/esm/{input.utils-C_QovwBX.js → input.utils-CEeVIfb9.js} +2 -5
  483. package/dist/esm/ion-accordion-group.entry.js +11 -6
  484. package/dist/esm/ion-accordion.entry.js +6 -5
  485. package/dist/esm/ion-action-sheet_5.entry.js +37 -20
  486. package/dist/esm/ion-app.entry.js +7 -8
  487. package/dist/esm/ion-avatar.entry.js +2 -3
  488. package/dist/esm/ion-back-button.entry.js +3 -4
  489. package/dist/esm/ion-backdrop.entry.js +2 -3
  490. package/dist/esm/ion-badge.entry.js +2 -3
  491. package/dist/esm/ion-breadcrumb.entry.js +3 -4
  492. package/dist/esm/ion-breadcrumbs.entry.js +11 -6
  493. package/dist/esm/ion-buttons_10.entry.js +17 -10
  494. package/dist/esm/ion-card-content.entry.js +2 -3
  495. package/dist/esm/ion-card-header.entry.js +2 -3
  496. package/dist/esm/ion-card-subtitle.entry.js +2 -3
  497. package/dist/esm/ion-card-title.entry.js +2 -3
  498. package/dist/esm/ion-card.entry.js +3 -4
  499. package/dist/esm/ion-chip.entry.js +2 -3
  500. package/dist/esm/ion-col.entry.js +2 -3
  501. package/dist/esm/ion-datetime-button.entry.js +4 -5
  502. package/dist/esm/ion-datetime.entry.js +40 -19
  503. package/dist/esm/ion-fab-button.entry.js +3 -4
  504. package/dist/esm/ion-fab-list.entry.js +5 -4
  505. package/dist/esm/ion-fab.entry.js +5 -4
  506. package/dist/esm/ion-footer.entry.js +4 -5
  507. package/dist/esm/ion-grid.entry.js +2 -3
  508. package/dist/esm/ion-icon.entry.js +16 -7
  509. package/dist/esm/ion-img.entry.js +6 -5
  510. package/dist/esm/ion-infinite-scroll-content.entry.js +3 -4
  511. package/dist/esm/ion-infinite-scroll.entry.js +10 -7
  512. package/dist/esm/ion-input-otp.entry.js +12 -7
  513. package/dist/esm/ion-input-password-toggle.entry.js +7 -6
  514. package/dist/esm/ion-input.entry.js +17 -10
  515. package/dist/esm/ion-item-divider.entry.js +2 -3
  516. package/dist/esm/ion-item-group.entry.js +2 -3
  517. package/dist/esm/ion-item-option.entry.js +2 -3
  518. package/dist/esm/ion-item-options.entry.js +3 -4
  519. package/dist/esm/ion-item-sliding.entry.js +7 -6
  520. package/dist/esm/ion-label_2.entry.js +8 -5
  521. package/dist/esm/ion-loading.entry.js +14 -11
  522. package/dist/esm/ion-menu-button.entry.js +7 -8
  523. package/dist/esm/ion-menu-toggle.entry.js +7 -8
  524. package/dist/esm/ion-menu.entry.js +20 -13
  525. package/dist/esm/ion-nav-link.entry.js +1 -2
  526. package/dist/esm/ion-nav.entry.js +12 -9
  527. package/dist/esm/ion-note.entry.js +2 -3
  528. package/dist/esm/ion-picker-legacy-column.entry.js +6 -5
  529. package/dist/esm/ion-picker-legacy.entry.js +13 -10
  530. package/dist/esm/ion-picker_3.entry.js +12 -7
  531. package/dist/esm/ion-popover.entry.js +17 -12
  532. package/dist/esm/ion-progress-bar.entry.js +3 -4
  533. package/dist/esm/ion-range.entry.js +25 -12
  534. package/dist/esm/ion-refresher-content.entry.js +6 -7
  535. package/dist/esm/ion-refresher.entry.js +9 -8
  536. package/dist/esm/ion-reorder-group.entry.js +7 -6
  537. package/dist/esm/ion-reorder.entry.js +2 -3
  538. package/dist/esm/ion-route-redirect.entry.js +7 -4
  539. package/dist/esm/ion-route.entry.js +10 -5
  540. package/dist/esm/ion-router-link.entry.js +2 -3
  541. package/dist/esm/ion-router-outlet.entry.js +9 -8
  542. package/dist/esm/ion-router.entry.js +2 -3
  543. package/dist/esm/ion-row.entry.js +2 -3
  544. package/dist/esm/ion-searchbar.entry.js +18 -9
  545. package/dist/esm/ion-segment-button.entry.js +6 -5
  546. package/dist/esm/ion-segment-content.entry.js +1 -2
  547. package/dist/esm/ion-segment-view.entry.js +1 -2
  548. package/dist/esm/ion-segment.entry.js +15 -8
  549. package/dist/esm/ion-select-option.entry.js +2 -3
  550. package/dist/esm/ion-select.entry.js +19 -12
  551. package/dist/esm/ion-skeleton-text.entry.js +2 -3
  552. package/dist/esm/ion-spinner.entry.js +2 -3
  553. package/dist/esm/ion-split-pane.entry.js +11 -6
  554. package/dist/esm/ion-tab-bar.entry.js +5 -4
  555. package/dist/esm/ion-tab-button.entry.js +3 -4
  556. package/dist/esm/ion-tab.entry.js +6 -5
  557. package/dist/esm/ion-tabs.entry.js +1 -2
  558. package/dist/esm/ion-textarea.entry.js +15 -12
  559. package/dist/esm/ion-thumbnail.entry.js +2 -3
  560. package/dist/esm/ion-toast.entry.js +17 -12
  561. package/dist/esm/ion-toggle.entry.js +6 -5
  562. package/dist/esm/{ionic-global-C8oJToxs.js → ionic-global-BbOE2Sur.js} +1 -4
  563. package/dist/{components/p-CKAwPEA1.js → esm/ios.transition-BBpXvlVl.js} +5 -5
  564. package/dist/esm/keyboard-DcbqYXj5.js +0 -3
  565. package/dist/esm/keyboard-DgiyREKb.js +0 -3
  566. package/dist/esm/keyboard-controller-CqGCg8tB.js +0 -3
  567. package/dist/esm/loader.js +5 -8
  568. package/dist/esm/lock-controller-B-hirT0v.js +0 -3
  569. package/dist/{components/p-DG3y4Paj.js → esm/md.transition-uHL_rMwC.js} +5 -5
  570. package/dist/{components/p-BHR1qL-B.js → esm/menu-toggle-util-LSIuEJ8L.js} +1 -4
  571. package/dist/esm/{notch-controller-DCfp6pBF.js → notch-controller-CCHQ50bA.js} +1 -4
  572. package/dist/esm/{overlays-BDbqv7G-.js → overlays-CWok3_we.js} +8 -9
  573. package/dist/esm/{refresher.utils-DOS2Tyfp.js → refresher.utils-BwmoeJ1w.js} +3 -6
  574. package/dist/esm/spinner-configs-D4RIp70E.js +0 -3
  575. package/dist/esm/{status-tap-BTOXpL_S.js → status-tap-CMJKMvwt.js} +3 -6
  576. package/dist/esm/{swipe-back-CetNYyPP.js → swipe-back-BXQCI3bV.js} +2 -5
  577. package/dist/esm/theme-DiVJyqlX.js +0 -3
  578. package/dist/esm/validity-DJztqcrH.js +0 -3
  579. package/dist/esm/watch-options-Dtdm8lKC.js +0 -3
  580. package/dist/types/components/amwal-checkout-button/amwal-checkout-button.d.ts +2 -3
  581. package/dist/types/stencil-public-runtime.d.ts +14 -3
  582. package/package.json +7 -4
  583. package/dist/checkout/checkout.esm.js.map +0 -1
  584. package/dist/checkout/index.esm.js.map +0 -1
  585. package/dist/checkout/loader.esm.js.map +0 -1
  586. package/dist/checkout/p-00a301b3.entry.js +0 -2
  587. package/dist/checkout/p-00a301b3.entry.js.map +0 -1
  588. package/dist/checkout/p-07b5d96f.entry.js +0 -2
  589. package/dist/checkout/p-07b5d96f.entry.js.map +0 -1
  590. package/dist/checkout/p-09688586.entry.js +0 -2
  591. package/dist/checkout/p-09688586.entry.js.map +0 -1
  592. package/dist/checkout/p-18addee5.entry.js +0 -2
  593. package/dist/checkout/p-18addee5.entry.js.map +0 -1
  594. package/dist/checkout/p-18ddefd1.entry.js +0 -5
  595. package/dist/checkout/p-18ddefd1.entry.js.map +0 -1
  596. package/dist/checkout/p-19f6286e.entry.js +0 -2
  597. package/dist/checkout/p-19f6286e.entry.js.map +0 -1
  598. package/dist/checkout/p-1b654d66.entry.js +0 -2
  599. package/dist/checkout/p-1b654d66.entry.js.map +0 -1
  600. package/dist/checkout/p-215f237f.entry.js +0 -2
  601. package/dist/checkout/p-215f237f.entry.js.map +0 -1
  602. package/dist/checkout/p-243533d4.entry.js +0 -2
  603. package/dist/checkout/p-243533d4.entry.js.map +0 -1
  604. package/dist/checkout/p-2641406e.entry.js +0 -5
  605. package/dist/checkout/p-2641406e.entry.js.map +0 -1
  606. package/dist/checkout/p-2683c242.entry.js +0 -2
  607. package/dist/checkout/p-2683c242.entry.js.map +0 -1
  608. package/dist/checkout/p-270607e1.entry.js +0 -2
  609. package/dist/checkout/p-270607e1.entry.js.map +0 -1
  610. package/dist/checkout/p-28d82baa.entry.js +0 -2
  611. package/dist/checkout/p-28d82baa.entry.js.map +0 -1
  612. package/dist/checkout/p-2aa4f4ab.entry.js +0 -2
  613. package/dist/checkout/p-2aa4f4ab.entry.js.map +0 -1
  614. package/dist/checkout/p-2ee1a2b5.entry.js +0 -2
  615. package/dist/checkout/p-2ee1a2b5.entry.js.map +0 -1
  616. package/dist/checkout/p-358214aa.entry.js +0 -2
  617. package/dist/checkout/p-358214aa.entry.js.map +0 -1
  618. package/dist/checkout/p-36e0fbcc.entry.js +0 -20
  619. package/dist/checkout/p-36e0fbcc.entry.js.map +0 -1
  620. package/dist/checkout/p-37e54688.entry.js +0 -2
  621. package/dist/checkout/p-37e54688.entry.js.map +0 -1
  622. package/dist/checkout/p-3ef78696.entry.js +0 -2
  623. package/dist/checkout/p-3ef78696.entry.js.map +0 -1
  624. package/dist/checkout/p-454447c5.entry.js +0 -2
  625. package/dist/checkout/p-454447c5.entry.js.map +0 -1
  626. package/dist/checkout/p-4857bfa5.entry.js +0 -2
  627. package/dist/checkout/p-4857bfa5.entry.js.map +0 -1
  628. package/dist/checkout/p-4d89a3fa.entry.js +0 -2
  629. package/dist/checkout/p-4d89a3fa.entry.js.map +0 -1
  630. package/dist/checkout/p-52764c17.entry.js +0 -2
  631. package/dist/checkout/p-52764c17.entry.js.map +0 -1
  632. package/dist/checkout/p-57f622db.entry.js +0 -2
  633. package/dist/checkout/p-57f622db.entry.js.map +0 -1
  634. package/dist/checkout/p-59888ca4.entry.js +0 -2
  635. package/dist/checkout/p-59888ca4.entry.js.map +0 -1
  636. package/dist/checkout/p-5ecfbad6.entry.js +0 -2
  637. package/dist/checkout/p-5ecfbad6.entry.js.map +0 -1
  638. package/dist/checkout/p-62ca8564.entry.js +0 -2
  639. package/dist/checkout/p-62ca8564.entry.js.map +0 -1
  640. package/dist/checkout/p-6302dd24.entry.js +0 -2
  641. package/dist/checkout/p-6302dd24.entry.js.map +0 -1
  642. package/dist/checkout/p-64ac130b.entry.js +0 -2
  643. package/dist/checkout/p-64ac130b.entry.js.map +0 -1
  644. package/dist/checkout/p-6714fa18.entry.js +0 -2
  645. package/dist/checkout/p-6714fa18.entry.js.map +0 -1
  646. package/dist/checkout/p-681ae472.entry.js +0 -2
  647. package/dist/checkout/p-681ae472.entry.js.map +0 -1
  648. package/dist/checkout/p-69f632b2.entry.js +0 -5
  649. package/dist/checkout/p-69f632b2.entry.js.map +0 -1
  650. package/dist/checkout/p-6b72bcfa.entry.js +0 -2
  651. package/dist/checkout/p-6b72bcfa.entry.js.map +0 -1
  652. package/dist/checkout/p-74c91a78.entry.js +0 -2
  653. package/dist/checkout/p-74c91a78.entry.js.map +0 -1
  654. package/dist/checkout/p-7ba2116f.entry.js +0 -2
  655. package/dist/checkout/p-7ba2116f.entry.js.map +0 -1
  656. package/dist/checkout/p-7d45a649.entry.js +0 -5
  657. package/dist/checkout/p-7d45a649.entry.js.map +0 -1
  658. package/dist/checkout/p-7df3464f.entry.js +0 -2
  659. package/dist/checkout/p-7df3464f.entry.js.map +0 -1
  660. package/dist/checkout/p-7f336a66.entry.js +0 -2
  661. package/dist/checkout/p-7f336a66.entry.js.map +0 -1
  662. package/dist/checkout/p-7f3cb127.entry.js +0 -2
  663. package/dist/checkout/p-7f3cb127.entry.js.map +0 -1
  664. package/dist/checkout/p-82e0c3f5.entry.js +0 -5
  665. package/dist/checkout/p-82e0c3f5.entry.js.map +0 -1
  666. package/dist/checkout/p-83723f22.entry.js +0 -2
  667. package/dist/checkout/p-83723f22.entry.js.map +0 -1
  668. package/dist/checkout/p-83cc118e.entry.js +0 -2
  669. package/dist/checkout/p-83cc118e.entry.js.map +0 -1
  670. package/dist/checkout/p-84d696fb.entry.js +0 -2
  671. package/dist/checkout/p-84d696fb.entry.js.map +0 -1
  672. package/dist/checkout/p-85548f6c.entry.js +0 -2
  673. package/dist/checkout/p-85548f6c.entry.js.map +0 -1
  674. package/dist/checkout/p-85ee65c9.entry.js +0 -2
  675. package/dist/checkout/p-85ee65c9.entry.js.map +0 -1
  676. package/dist/checkout/p-8b182c6a.entry.js +0 -8
  677. package/dist/checkout/p-8b182c6a.entry.js.map +0 -1
  678. package/dist/checkout/p-8d31e4f7.entry.js +0 -2
  679. package/dist/checkout/p-8d31e4f7.entry.js.map +0 -1
  680. package/dist/checkout/p-8e3dc24d.entry.js +0 -2
  681. package/dist/checkout/p-8e3dc24d.entry.js.map +0 -1
  682. package/dist/checkout/p-8e96c15d.entry.js +0 -2
  683. package/dist/checkout/p-8e96c15d.entry.js.map +0 -1
  684. package/dist/checkout/p-8fbb12d6.entry.js +0 -2
  685. package/dist/checkout/p-8fbb12d6.entry.js.map +0 -1
  686. package/dist/checkout/p-924c47c2.entry.js +0 -20
  687. package/dist/checkout/p-924c47c2.entry.js.map +0 -1
  688. package/dist/checkout/p-931cb238.entry.js +0 -2
  689. package/dist/checkout/p-931cb238.entry.js.map +0 -1
  690. package/dist/checkout/p-93bc2286.entry.js +0 -2
  691. package/dist/checkout/p-93bc2286.entry.js.map +0 -1
  692. package/dist/checkout/p-B-KuLMsZ.js +0 -8
  693. package/dist/checkout/p-B-KuLMsZ.js.map +0 -1
  694. package/dist/checkout/p-B-hirT0v.js.map +0 -1
  695. package/dist/checkout/p-B3WORC1a.js.map +0 -1
  696. package/dist/checkout/p-BGDWAHw3.js +0 -5
  697. package/dist/checkout/p-BGDWAHw3.js.map +0 -1
  698. package/dist/checkout/p-BR7SJd-v.js.map +0 -1
  699. package/dist/checkout/p-BTEOs1at.js.map +0 -1
  700. package/dist/checkout/p-BWWP5b2n.js +0 -20
  701. package/dist/checkout/p-BWWP5b2n.js.map +0 -1
  702. package/dist/checkout/p-BgOwfqIY.js.map +0 -1
  703. package/dist/checkout/p-BmVRXR1y.js.map +0 -1
  704. package/dist/checkout/p-BmlsNFZH.js.map +0 -1
  705. package/dist/checkout/p-Bp4HXTAC.js +0 -6
  706. package/dist/checkout/p-Bp4HXTAC.js.map +0 -1
  707. package/dist/checkout/p-BthJ6qTQ.js +0 -5
  708. package/dist/checkout/p-BthJ6qTQ.js.map +0 -1
  709. package/dist/checkout/p-BxybgBKJ.js +0 -9
  710. package/dist/checkout/p-BxybgBKJ.js.map +0 -1
  711. package/dist/checkout/p-C03M5ZSM.js.map +0 -1
  712. package/dist/checkout/p-C0PjLcMv.js +0 -8
  713. package/dist/checkout/p-C0PjLcMv.js.map +0 -1
  714. package/dist/checkout/p-C1xutNb4.js +0 -5
  715. package/dist/checkout/p-C1xutNb4.js.map +0 -1
  716. package/dist/checkout/p-C53feagD.js.map +0 -1
  717. package/dist/checkout/p-C6ZGuX6t.js +0 -11
  718. package/dist/checkout/p-C6ZGuX6t.js.map +0 -1
  719. package/dist/checkout/p-CG5IBVB8.js +0 -5
  720. package/dist/checkout/p-CG5IBVB8.js.map +0 -1
  721. package/dist/checkout/p-CH3Eg9_f.js.map +0 -1
  722. package/dist/checkout/p-CR1XUyil.js +0 -8
  723. package/dist/checkout/p-CR1XUyil.js.map +0 -1
  724. package/dist/checkout/p-CUNZzVQR.js +0 -5
  725. package/dist/checkout/p-CUNZzVQR.js.map +0 -1
  726. package/dist/checkout/p-CZs2_vz-.js +0 -23
  727. package/dist/checkout/p-CZs2_vz-.js.map +0 -1
  728. package/dist/checkout/p-CganX2z7.js +0 -5
  729. package/dist/checkout/p-CganX2z7.js.map +0 -1
  730. package/dist/checkout/p-CiN1CmnZ.js +0 -5
  731. package/dist/checkout/p-CiN1CmnZ.js.map +0 -1
  732. package/dist/checkout/p-D2NxOvQ8.js.map +0 -1
  733. package/dist/checkout/p-D4RIp70E.js.map +0 -1
  734. package/dist/checkout/p-DDV5ZZmu.js +0 -8
  735. package/dist/checkout/p-DDV5ZZmu.js.map +0 -1
  736. package/dist/checkout/p-DGWbKjms.js +0 -5
  737. package/dist/checkout/p-DGWbKjms.js.map +0 -1
  738. package/dist/checkout/p-DJztqcrH.js.map +0 -1
  739. package/dist/checkout/p-DKg_dYcq.js.map +0 -1
  740. package/dist/checkout/p-DQMrQygy.js +0 -17
  741. package/dist/checkout/p-DQMrQygy.js.map +0 -1
  742. package/dist/checkout/p-DiVJyqlX.js.map +0 -1
  743. package/dist/checkout/p-DokgqSDS.js +0 -8
  744. package/dist/checkout/p-DokgqSDS.js.map +0 -1
  745. package/dist/checkout/p-DpIGiwma.js +0 -5
  746. package/dist/checkout/p-DpIGiwma.js.map +0 -1
  747. package/dist/checkout/p-Dtdm8lKC.js.map +0 -1
  748. package/dist/checkout/p-LC8Dag8J.js +0 -5
  749. package/dist/checkout/p-LC8Dag8J.js.map +0 -1
  750. package/dist/checkout/p-PlOw-cTg.js +0 -2
  751. package/dist/checkout/p-PlOw-cTg.js.map +0 -1
  752. package/dist/checkout/p-ZjP4CjeZ.js.map +0 -1
  753. package/dist/checkout/p-a3af7718.entry.js +0 -2
  754. package/dist/checkout/p-a3af7718.entry.js.map +0 -1
  755. package/dist/checkout/p-a4e73261.entry.js +0 -2
  756. package/dist/checkout/p-a4e73261.entry.js.map +0 -1
  757. package/dist/checkout/p-a5f0602a.entry.js +0 -8
  758. package/dist/checkout/p-a5f0602a.entry.js.map +0 -1
  759. package/dist/checkout/p-ad8b3747.entry.js +0 -2
  760. package/dist/checkout/p-ad8b3747.entry.js.map +0 -1
  761. package/dist/checkout/p-ae1491f9.entry.js +0 -14
  762. package/dist/checkout/p-ae1491f9.entry.js.map +0 -1
  763. package/dist/checkout/p-b015f67f.entry.js +0 -2
  764. package/dist/checkout/p-b015f67f.entry.js.map +0 -1
  765. package/dist/checkout/p-b04f980c.entry.js +0 -2
  766. package/dist/checkout/p-b04f980c.entry.js.map +0 -1
  767. package/dist/checkout/p-b0b107e3.entry.js +0 -2
  768. package/dist/checkout/p-b0b107e3.entry.js.map +0 -1
  769. package/dist/checkout/p-b1db1d70.entry.js +0 -2
  770. package/dist/checkout/p-b1db1d70.entry.js.map +0 -1
  771. package/dist/checkout/p-b49b96cf.entry.js +0 -2
  772. package/dist/checkout/p-b49b96cf.entry.js.map +0 -1
  773. package/dist/checkout/p-b828e054.entry.js +0 -2
  774. package/dist/checkout/p-b828e054.entry.js.map +0 -1
  775. package/dist/checkout/p-b93a1bd6.entry.js +0 -2
  776. package/dist/checkout/p-b93a1bd6.entry.js.map +0 -1
  777. package/dist/checkout/p-bc55f859.entry.js +0 -2
  778. package/dist/checkout/p-bc55f859.entry.js.map +0 -1
  779. package/dist/checkout/p-befcbd0d.entry.js +0 -2
  780. package/dist/checkout/p-befcbd0d.entry.js.map +0 -1
  781. package/dist/checkout/p-c48a9448.entry.js +0 -2
  782. package/dist/checkout/p-c48a9448.entry.js.map +0 -1
  783. package/dist/checkout/p-c615397e.entry.js +0 -17
  784. package/dist/checkout/p-c615397e.entry.js.map +0 -1
  785. package/dist/checkout/p-cab41a25.entry.js +0 -62
  786. package/dist/checkout/p-cab41a25.entry.js.map +0 -1
  787. package/dist/checkout/p-cbf0100c.entry.js +0 -2
  788. package/dist/checkout/p-cbf0100c.entry.js.map +0 -1
  789. package/dist/checkout/p-cc591365.entry.js +0 -2
  790. package/dist/checkout/p-cc591365.entry.js.map +0 -1
  791. package/dist/checkout/p-cd8e7091.entry.js +0 -2
  792. package/dist/checkout/p-cd8e7091.entry.js.map +0 -1
  793. package/dist/checkout/p-d0d33188.entry.js +0 -2
  794. package/dist/checkout/p-d0d33188.entry.js.map +0 -1
  795. package/dist/checkout/p-d18cc858.entry.js +0 -2
  796. package/dist/checkout/p-d18cc858.entry.js.map +0 -1
  797. package/dist/checkout/p-d595c210.entry.js +0 -2
  798. package/dist/checkout/p-d595c210.entry.js.map +0 -1
  799. package/dist/checkout/p-d70b96db.entry.js +0 -2
  800. package/dist/checkout/p-d70b96db.entry.js.map +0 -1
  801. package/dist/checkout/p-d9a88167.entry.js +0 -2
  802. package/dist/checkout/p-d9a88167.entry.js.map +0 -1
  803. package/dist/checkout/p-e0fd6219.entry.js +0 -5
  804. package/dist/checkout/p-e0fd6219.entry.js.map +0 -1
  805. package/dist/checkout/p-eae47e9d.entry.js +0 -2
  806. package/dist/checkout/p-eae47e9d.entry.js.map +0 -1
  807. package/dist/checkout/p-ee1b72ba.entry.js +0 -2
  808. package/dist/checkout/p-ee1b72ba.entry.js.map +0 -1
  809. package/dist/checkout/p-eeb818b4.entry.js +0 -2
  810. package/dist/checkout/p-eeb818b4.entry.js.map +0 -1
  811. package/dist/checkout/p-f7dd0c42.entry.js +0 -2
  812. package/dist/checkout/p-f7dd0c42.entry.js.map +0 -1
  813. package/dist/checkout/p-f8f93e18.entry.js +0 -2
  814. package/dist/checkout/p-f8f93e18.entry.js.map +0 -1
  815. package/dist/checkout/p-hHmYLOfE.js.map +0 -1
  816. package/dist/checkout/p-ktzqax7n.js.map +0 -1
  817. package/dist/checkout/p-sObYyvOy.js.map +0 -1
  818. package/dist/checkout/p-syN-rRwJ.js +0 -6
  819. package/dist/checkout/p-syN-rRwJ.js.map +0 -1
  820. package/dist/cjs/animation-BtvIVax4.js.map +0 -1
  821. package/dist/cjs/app-globals-k1SzUfrO.js +0 -10
  822. package/dist/cjs/app-globals-k1SzUfrO.js.map +0 -1
  823. package/dist/cjs/ar-CbT6TM-Q.js.map +0 -1
  824. package/dist/cjs/capacitor-CqhugS19.js.map +0 -1
  825. package/dist/cjs/checkout.cjs.js.map +0 -1
  826. package/dist/cjs/compare-with-utils-JlLIkecm.js.map +0 -1
  827. package/dist/cjs/config-DUSoxbhv.js.map +0 -1
  828. package/dist/cjs/cubic-bezier-Bv3PvaRI.js.map +0 -1
  829. package/dist/cjs/data-CjHlPfPW.js.map +0 -1
  830. package/dist/cjs/dir-Br-7_bel.js.map +0 -1
  831. package/dist/cjs/focus-visible-Da2o6bTP.js.map +0 -1
  832. package/dist/cjs/framework-delegate-BoMy23Lz.js.map +0 -1
  833. package/dist/cjs/gesture-controller-CiprlUhH.js.map +0 -1
  834. package/dist/cjs/haptic-DCn793nz.js.map +0 -1
  835. package/dist/cjs/hardware-back-button-B1WYQg6m.js.map +0 -1
  836. package/dist/cjs/helpers-C5_WrFOI.js.map +0 -1
  837. package/dist/cjs/i18n-uGNv9SLK.js.map +0 -1
  838. package/dist/cjs/index-BPGqVQtz.js.map +0 -1
  839. package/dist/cjs/index-C-U8a6CY.js.map +0 -1
  840. package/dist/cjs/index-C0J_JwJB.js.map +0 -1
  841. package/dist/cjs/index-C3dD6F2g.js.map +0 -1
  842. package/dist/cjs/index-Calgykmz.js.map +0 -1
  843. package/dist/cjs/index-D3mJ1Cix.js.map +0 -1
  844. package/dist/cjs/index-DseJYF57.js.map +0 -1
  845. package/dist/cjs/index-DwdNl4cs.js.map +0 -1
  846. package/dist/cjs/index.cjs.js.map +0 -1
  847. package/dist/cjs/input-shims-DIBy37tN.js.map +0 -1
  848. package/dist/cjs/input.utils-IVavyQAZ.js.map +0 -1
  849. package/dist/cjs/ionic-global-BmDUlKDf.js.map +0 -1
  850. package/dist/cjs/ios.transition-ROXYV2qt.js.map +0 -1
  851. package/dist/cjs/keyboard-DuKzsHsS.js.map +0 -1
  852. package/dist/cjs/keyboard-controller-rH21qC_2.js.map +0 -1
  853. package/dist/cjs/keyboard-iyHR2ZF4.js.map +0 -1
  854. package/dist/cjs/loader.cjs.js.map +0 -1
  855. package/dist/cjs/lock-controller-58TZFRHC.js.map +0 -1
  856. package/dist/cjs/md.transition-NftVXx7D.js.map +0 -1
  857. package/dist/cjs/menu-toggle-util-CROwv_aL.js.map +0 -1
  858. package/dist/cjs/notch-controller-BzbZcc1N.js.map +0 -1
  859. package/dist/cjs/overlays-gyJEvMkB.js.map +0 -1
  860. package/dist/cjs/refresher.utils-DZrHDYQN.js.map +0 -1
  861. package/dist/cjs/spinner-configs-BN41iw42.js.map +0 -1
  862. package/dist/cjs/status-tap-B5QfH5DO.js.map +0 -1
  863. package/dist/cjs/swipe-back-BkT4j65k.js.map +0 -1
  864. package/dist/cjs/theme-DbHdw1Nx.js.map +0 -1
  865. package/dist/cjs/validity-ClNawnRU.js.map +0 -1
  866. package/dist/cjs/watch-options-DOFUPyuf.js.map +0 -1
  867. package/dist/collection/components/amwal-checkout-button/amwal-checkout-button.js.map +0 -1
  868. package/dist/collection/components/amwal-checkout-button/amwal-checkout-button.stories.js.map +0 -1
  869. package/dist/collection/components/amwal-installments-guide/amwal-installments-guide.js.map +0 -1
  870. package/dist/collection/components/amwal-installments-guide/amwal-installments-guide.stories.js.map +0 -1
  871. package/dist/collection/components/amwal-installments-timeline/amwal-installments-timeline.js.map +0 -1
  872. package/dist/collection/components/amwal-installments-timeline/amwal-installments-timeline.stories.js.map +0 -1
  873. package/dist/collection/components/amwal-pos/amwal-pos.js.map +0 -1
  874. package/dist/collection/components/amwal-pos/amwal-pos.stories.js.map +0 -1
  875. package/dist/collection/components/amwal-widget/amwal-widget-modal.js.map +0 -1
  876. package/dist/collection/components/amwal-widget/amwal-widget.js.map +0 -1
  877. package/dist/collection/components/amwal-widget/amwal-widget.stories.js.map +0 -1
  878. package/dist/collection/lang/i18n.js.map +0 -1
  879. package/dist/components/amwal-checkout-button.js.map +0 -1
  880. package/dist/components/amwal-installments-guide.js.map +0 -1
  881. package/dist/components/amwal-installments-timeline.js.map +0 -1
  882. package/dist/components/amwal-pos.js.map +0 -1
  883. package/dist/components/amwal-widget-modal.js.map +0 -1
  884. package/dist/components/amwal-widget.js.map +0 -1
  885. package/dist/components/index.js.map +0 -1
  886. package/dist/components/ion-accordion-group.js.map +0 -1
  887. package/dist/components/ion-accordion.js.map +0 -1
  888. package/dist/components/ion-action-sheet.js.map +0 -1
  889. package/dist/components/ion-alert.js.map +0 -1
  890. package/dist/components/ion-app.js.map +0 -1
  891. package/dist/components/ion-avatar.js.map +0 -1
  892. package/dist/components/ion-back-button.js.map +0 -1
  893. package/dist/components/ion-backdrop.js.map +0 -1
  894. package/dist/components/ion-badge.js.map +0 -1
  895. package/dist/components/ion-breadcrumb.js.map +0 -1
  896. package/dist/components/ion-breadcrumbs.js.map +0 -1
  897. package/dist/components/ion-button.js.map +0 -1
  898. package/dist/components/ion-buttons.js.map +0 -1
  899. package/dist/components/ion-card-content.js.map +0 -1
  900. package/dist/components/ion-card-header.js.map +0 -1
  901. package/dist/components/ion-card-subtitle.js.map +0 -1
  902. package/dist/components/ion-card-title.js.map +0 -1
  903. package/dist/components/ion-card.js.map +0 -1
  904. package/dist/components/ion-checkbox.js.map +0 -1
  905. package/dist/components/ion-chip.js.map +0 -1
  906. package/dist/components/ion-col.js.map +0 -1
  907. package/dist/components/ion-content.js.map +0 -1
  908. package/dist/components/ion-datetime-button.js.map +0 -1
  909. package/dist/components/ion-datetime.js.map +0 -1
  910. package/dist/components/ion-fab-button.js.map +0 -1
  911. package/dist/components/ion-fab-list.js.map +0 -1
  912. package/dist/components/ion-fab.js.map +0 -1
  913. package/dist/components/ion-footer.js.map +0 -1
  914. package/dist/components/ion-grid.js.map +0 -1
  915. package/dist/components/ion-header.js.map +0 -1
  916. package/dist/components/ion-icon.js.map +0 -1
  917. package/dist/components/ion-img.js.map +0 -1
  918. package/dist/components/ion-infinite-scroll-content.js.map +0 -1
  919. package/dist/components/ion-infinite-scroll.js.map +0 -1
  920. package/dist/components/ion-input-otp.js.map +0 -1
  921. package/dist/components/ion-input-password-toggle.js.map +0 -1
  922. package/dist/components/ion-input.js.map +0 -1
  923. package/dist/components/ion-item-divider.js.map +0 -1
  924. package/dist/components/ion-item-group.js.map +0 -1
  925. package/dist/components/ion-item-option.js.map +0 -1
  926. package/dist/components/ion-item-options.js.map +0 -1
  927. package/dist/components/ion-item-sliding.js.map +0 -1
  928. package/dist/components/ion-item.js.map +0 -1
  929. package/dist/components/ion-label.js.map +0 -1
  930. package/dist/components/ion-list-header.js.map +0 -1
  931. package/dist/components/ion-list.js.map +0 -1
  932. package/dist/components/ion-loading.js.map +0 -1
  933. package/dist/components/ion-menu-button.js.map +0 -1
  934. package/dist/components/ion-menu-toggle.js.map +0 -1
  935. package/dist/components/ion-menu.js.map +0 -1
  936. package/dist/components/ion-modal.js.map +0 -1
  937. package/dist/components/ion-nav-link.js.map +0 -1
  938. package/dist/components/ion-nav.js.map +0 -1
  939. package/dist/components/ion-note.js.map +0 -1
  940. package/dist/components/ion-picker-column-option.js.map +0 -1
  941. package/dist/components/ion-picker-column.js.map +0 -1
  942. package/dist/components/ion-picker-legacy-column.js.map +0 -1
  943. package/dist/components/ion-picker-legacy.js.map +0 -1
  944. package/dist/components/ion-picker.js.map +0 -1
  945. package/dist/components/ion-popover.js.map +0 -1
  946. package/dist/components/ion-progress-bar.js.map +0 -1
  947. package/dist/components/ion-radio-group.js.map +0 -1
  948. package/dist/components/ion-radio.js.map +0 -1
  949. package/dist/components/ion-range.js.map +0 -1
  950. package/dist/components/ion-refresher-content.js.map +0 -1
  951. package/dist/components/ion-refresher.js.map +0 -1
  952. package/dist/components/ion-reorder-group.js.map +0 -1
  953. package/dist/components/ion-reorder.js.map +0 -1
  954. package/dist/components/ion-ripple-effect.js.map +0 -1
  955. package/dist/components/ion-route-redirect.js.map +0 -1
  956. package/dist/components/ion-route.js.map +0 -1
  957. package/dist/components/ion-router-link.js.map +0 -1
  958. package/dist/components/ion-router-outlet.js.map +0 -1
  959. package/dist/components/ion-router.js.map +0 -1
  960. package/dist/components/ion-row.js.map +0 -1
  961. package/dist/components/ion-searchbar.js.map +0 -1
  962. package/dist/components/ion-segment-button.js.map +0 -1
  963. package/dist/components/ion-segment-content.js.map +0 -1
  964. package/dist/components/ion-segment-view.js.map +0 -1
  965. package/dist/components/ion-segment.js.map +0 -1
  966. package/dist/components/ion-select-modal.js.map +0 -1
  967. package/dist/components/ion-select-option.js.map +0 -1
  968. package/dist/components/ion-select-popover.js.map +0 -1
  969. package/dist/components/ion-select.js.map +0 -1
  970. package/dist/components/ion-skeleton-text.js.map +0 -1
  971. package/dist/components/ion-spinner.js.map +0 -1
  972. package/dist/components/ion-split-pane.js.map +0 -1
  973. package/dist/components/ion-tab-bar.js.map +0 -1
  974. package/dist/components/ion-tab-button.js.map +0 -1
  975. package/dist/components/ion-tab.js.map +0 -1
  976. package/dist/components/ion-tabs.js.map +0 -1
  977. package/dist/components/ion-text.js.map +0 -1
  978. package/dist/components/ion-textarea.js.map +0 -1
  979. package/dist/components/ion-thumbnail.js.map +0 -1
  980. package/dist/components/ion-title.js.map +0 -1
  981. package/dist/components/ion-toast.js.map +0 -1
  982. package/dist/components/ion-toggle.js.map +0 -1
  983. package/dist/components/ion-toolbar.js.map +0 -1
  984. package/dist/components/p-2HMA6Bk9.js +0 -199
  985. package/dist/components/p-2HMA6Bk9.js.map +0 -1
  986. package/dist/components/p-5oWdAaAi.js +0 -192
  987. package/dist/components/p-5oWdAaAi.js.map +0 -1
  988. package/dist/components/p-9R9WjA6V.js.map +0 -1
  989. package/dist/components/p-B-hirT0v.js.map +0 -1
  990. package/dist/components/p-B2gn37E3.js +0 -71
  991. package/dist/components/p-B2gn37E3.js.map +0 -1
  992. package/dist/components/p-B3WORC1a.js.map +0 -1
  993. package/dist/components/p-BHR1qL-B.js.map +0 -1
  994. package/dist/components/p-BLZx8ena.js +0 -648
  995. package/dist/components/p-BLZx8ena.js.map +0 -1
  996. package/dist/components/p-BPfqVyXF.js +0 -131
  997. package/dist/components/p-BPfqVyXF.js.map +0 -1
  998. package/dist/components/p-BRke83qH.js +0 -59
  999. package/dist/components/p-BRke83qH.js.map +0 -1
  1000. package/dist/components/p-BTEOs1at.js.map +0 -1
  1001. package/dist/components/p-BZwvoMAR.js +0 -42
  1002. package/dist/components/p-BZwvoMAR.js.map +0 -1
  1003. package/dist/components/p-BeDf61kY.js +0 -427
  1004. package/dist/components/p-BeDf61kY.js.map +0 -1
  1005. package/dist/components/p-BfUU8qUe.js +0 -42
  1006. package/dist/components/p-BfUU8qUe.js.map +0 -1
  1007. package/dist/components/p-BgOwfqIY.js.map +0 -1
  1008. package/dist/components/p-BhiX6sCr.js +0 -826
  1009. package/dist/components/p-BhiX6sCr.js.map +0 -1
  1010. package/dist/components/p-Binl0XAs.js +0 -576
  1011. package/dist/components/p-Binl0XAs.js.map +0 -1
  1012. package/dist/components/p-Bm5dgzDt.js +0 -118
  1013. package/dist/components/p-Bm5dgzDt.js.map +0 -1
  1014. package/dist/components/p-BmVRXR1y.js.map +0 -1
  1015. package/dist/components/p-BqMnDwQG.js +0 -194
  1016. package/dist/components/p-BqMnDwQG.js.map +0 -1
  1017. package/dist/components/p-BxP8TDfL.js.map +0 -1
  1018. package/dist/components/p-Byqjk7Y-.js +0 -423
  1019. package/dist/components/p-Byqjk7Y-.js.map +0 -1
  1020. package/dist/components/p-C03M5ZSM.js.map +0 -1
  1021. package/dist/components/p-C53feagD.js.map +0 -1
  1022. package/dist/components/p-C9H5b4Sp.js +0 -156
  1023. package/dist/components/p-C9H5b4Sp.js.map +0 -1
  1024. package/dist/components/p-CBE-1aIM.js +0 -342
  1025. package/dist/components/p-CBE-1aIM.js.map +0 -1
  1026. package/dist/components/p-CH3Eg9_f.js.map +0 -1
  1027. package/dist/components/p-CKAwPEA1.js.map +0 -1
  1028. package/dist/components/p-CQgmejdy.js +0 -103
  1029. package/dist/components/p-CQgmejdy.js.map +0 -1
  1030. package/dist/components/p-CS0AfHCU.js +0 -321
  1031. package/dist/components/p-CS0AfHCU.js.map +0 -1
  1032. package/dist/components/p-CTM7uu-W.js +0 -1656
  1033. package/dist/components/p-CTM7uu-W.js.map +0 -1
  1034. package/dist/components/p-Ccgs7j-d.js +0 -229
  1035. package/dist/components/p-Ccgs7j-d.js.map +0 -1
  1036. package/dist/components/p-ClEjw1rH.js +0 -235
  1037. package/dist/components/p-ClEjw1rH.js.map +0 -1
  1038. package/dist/components/p-CqzV2Pip.js +0 -459
  1039. package/dist/components/p-CqzV2Pip.js.map +0 -1
  1040. package/dist/components/p-D-0nEl_9.js +0 -75
  1041. package/dist/components/p-D-0nEl_9.js.map +0 -1
  1042. package/dist/components/p-D2NxOvQ8.js.map +0 -1
  1043. package/dist/components/p-D86aKvUI.js +0 -305
  1044. package/dist/components/p-D86aKvUI.js.map +0 -1
  1045. package/dist/components/p-DBeEVQxe.js +0 -2542
  1046. package/dist/components/p-DBeEVQxe.js.map +0 -1
  1047. package/dist/components/p-DEAe7QEa.js +0 -152
  1048. package/dist/components/p-DEAe7QEa.js.map +0 -1
  1049. package/dist/components/p-DFwbATZZ.js +0 -92
  1050. package/dist/components/p-DFwbATZZ.js.map +0 -1
  1051. package/dist/components/p-DG3y4Paj.js.map +0 -1
  1052. package/dist/components/p-DJztqcrH.js.map +0 -1
  1053. package/dist/components/p-DKTjDEAE.js +0 -477
  1054. package/dist/components/p-DKTjDEAE.js.map +0 -1
  1055. package/dist/components/p-DKg_dYcq.js.map +0 -1
  1056. package/dist/components/p-DQU52fBY.js +0 -913
  1057. package/dist/components/p-DQU52fBY.js.map +0 -1
  1058. package/dist/components/p-DXxzBbWg.js +0 -290
  1059. package/dist/components/p-DXxzBbWg.js.map +0 -1
  1060. package/dist/components/p-DiBX36NE.js +0 -73
  1061. package/dist/components/p-DiBX36NE.js.map +0 -1
  1062. package/dist/components/p-DiVJyqlX.js.map +0 -1
  1063. package/dist/components/p-DpZBHf1M.js +0 -598
  1064. package/dist/components/p-DpZBHf1M.js.map +0 -1
  1065. package/dist/components/p-DskTArru.js +0 -112
  1066. package/dist/components/p-DskTArru.js.map +0 -1
  1067. package/dist/components/p-Dtdm8lKC.js.map +0 -1
  1068. package/dist/components/p-DuZ7hY1a.js.map +0 -1
  1069. package/dist/components/p-Dw849bTq.js +0 -305
  1070. package/dist/components/p-Dw849bTq.js.map +0 -1
  1071. package/dist/components/p-DwPO21ol.js +0 -153
  1072. package/dist/components/p-DwPO21ol.js.map +0 -1
  1073. package/dist/components/p-JTTQkHB9.js +0 -139
  1074. package/dist/components/p-JTTQkHB9.js.map +0 -1
  1075. package/dist/components/p-L_Psvpkz.js +0 -222
  1076. package/dist/components/p-L_Psvpkz.js.map +0 -1
  1077. package/dist/components/p-Vjh8RfHt.js +0 -264
  1078. package/dist/components/p-Vjh8RfHt.js.map +0 -1
  1079. package/dist/components/p-XkH8uZ6p.js +0 -624
  1080. package/dist/components/p-XkH8uZ6p.js.map +0 -1
  1081. package/dist/components/p-YUfYVoix.js +0 -170
  1082. package/dist/components/p-YUfYVoix.js.map +0 -1
  1083. package/dist/components/p-ZjP4CjeZ.js.map +0 -1
  1084. package/dist/components/p-_OXvEtk1.js +0 -501
  1085. package/dist/components/p-_OXvEtk1.js.map +0 -1
  1086. package/dist/components/p-abe_AkUW.js +0 -1982
  1087. package/dist/components/p-abe_AkUW.js.map +0 -1
  1088. package/dist/components/p-cCiT8ucm.js +0 -1519
  1089. package/dist/components/p-cCiT8ucm.js.map +0 -1
  1090. package/dist/components/p-fROlYcE4.js +0 -380
  1091. package/dist/components/p-fROlYcE4.js.map +0 -1
  1092. package/dist/components/p-hHmYLOfE.js.map +0 -1
  1093. package/dist/components/p-hoAPVm-t.js +0 -354
  1094. package/dist/components/p-hoAPVm-t.js.map +0 -1
  1095. package/dist/components/p-idUkgr5D.js +0 -81
  1096. package/dist/components/p-idUkgr5D.js.map +0 -1
  1097. package/dist/components/p-jWFeuAB5.js.map +0 -1
  1098. package/dist/components/p-o42LW1q1.js +0 -70
  1099. package/dist/components/p-o42LW1q1.js.map +0 -1
  1100. package/dist/components/p-oO2T0VL-.js +0 -50
  1101. package/dist/components/p-oO2T0VL-.js.map +0 -1
  1102. package/dist/components/p-uTKLFBBy.js.map +0 -1
  1103. package/dist/esm/amwal-installments-guide.entry.js.map +0 -1
  1104. package/dist/esm/amwal-pos.entry.js.map +0 -1
  1105. package/dist/esm/amwal-widget-modal.entry.js.map +0 -1
  1106. package/dist/esm/amwal-widget.entry.js.map +0 -1
  1107. package/dist/esm/animation-BU4GfyJQ.js.map +0 -1
  1108. package/dist/esm/app-globals-DiUHe8Ib.js +0 -8
  1109. package/dist/esm/app-globals-DiUHe8Ib.js.map +0 -1
  1110. package/dist/esm/ar-B3WORC1a.js.map +0 -1
  1111. package/dist/esm/capacitor-CG3xQUND.js.map +0 -1
  1112. package/dist/esm/checkout.js.map +0 -1
  1113. package/dist/esm/compare-with-utils-sObYyvOy.js.map +0 -1
  1114. package/dist/esm/config-V6Cb8IlP.js +0 -176
  1115. package/dist/esm/config-V6Cb8IlP.js.map +0 -1
  1116. package/dist/esm/cubic-bezier-hHmYLOfE.js.map +0 -1
  1117. package/dist/esm/data-BKjeovce.js.map +0 -1
  1118. package/dist/esm/dir-C53feagD.js.map +0 -1
  1119. package/dist/esm/focus-visible-BmVRXR1y.js.map +0 -1
  1120. package/dist/esm/framework-delegate-CaqRmNBr.js +0 -143
  1121. package/dist/esm/framework-delegate-CaqRmNBr.js.map +0 -1
  1122. package/dist/esm/gesture-controller-BTEOs1at.js.map +0 -1
  1123. package/dist/esm/haptic-C3ucbArX.js.map +0 -1
  1124. package/dist/esm/hardware-back-button-Nry6hGkN.js.map +0 -1
  1125. package/dist/esm/helpers-uLqs1Gao.js.map +0 -1
  1126. package/dist/esm/i18n-C_AfxZ5D.js.map +0 -1
  1127. package/dist/esm/index-BmWsedvI.js.map +0 -1
  1128. package/dist/esm/index-BmlsNFZH.js.map +0 -1
  1129. package/dist/esm/index-BxybgBKJ.js.map +0 -1
  1130. package/dist/esm/index-CCWf5GQy.js.map +0 -1
  1131. package/dist/esm/index-CF4QYFB3.js.map +0 -1
  1132. package/dist/esm/index-Ct7Rjd6t.js.map +0 -1
  1133. package/dist/esm/index-ZjP4CjeZ.js.map +0 -1
  1134. package/dist/esm/index-ffNEk55Y.js.map +0 -1
  1135. package/dist/esm/index.js.map +0 -1
  1136. package/dist/esm/input-shims-DkzcZwWm.js.map +0 -1
  1137. package/dist/esm/input.utils-C_QovwBX.js.map +0 -1
  1138. package/dist/esm/ion-accordion-group.entry.js.map +0 -1
  1139. package/dist/esm/ion-accordion.entry.js.map +0 -1
  1140. package/dist/esm/ion-app.entry.js.map +0 -1
  1141. package/dist/esm/ion-avatar.entry.js.map +0 -1
  1142. package/dist/esm/ion-back-button.entry.js.map +0 -1
  1143. package/dist/esm/ion-backdrop.entry.js.map +0 -1
  1144. package/dist/esm/ion-badge.entry.js.map +0 -1
  1145. package/dist/esm/ion-breadcrumb.entry.js.map +0 -1
  1146. package/dist/esm/ion-breadcrumbs.entry.js.map +0 -1
  1147. package/dist/esm/ion-card-content.entry.js.map +0 -1
  1148. package/dist/esm/ion-card-header.entry.js.map +0 -1
  1149. package/dist/esm/ion-card-subtitle.entry.js.map +0 -1
  1150. package/dist/esm/ion-card-title.entry.js.map +0 -1
  1151. package/dist/esm/ion-card.entry.js.map +0 -1
  1152. package/dist/esm/ion-chip.entry.js.map +0 -1
  1153. package/dist/esm/ion-col.entry.js.map +0 -1
  1154. package/dist/esm/ion-datetime-button.entry.js.map +0 -1
  1155. package/dist/esm/ion-datetime.entry.js.map +0 -1
  1156. package/dist/esm/ion-fab-button.entry.js.map +0 -1
  1157. package/dist/esm/ion-fab-list.entry.js.map +0 -1
  1158. package/dist/esm/ion-fab.entry.js.map +0 -1
  1159. package/dist/esm/ion-footer.entry.js.map +0 -1
  1160. package/dist/esm/ion-grid.entry.js.map +0 -1
  1161. package/dist/esm/ion-icon.entry.js.map +0 -1
  1162. package/dist/esm/ion-img.entry.js.map +0 -1
  1163. package/dist/esm/ion-infinite-scroll-content.entry.js.map +0 -1
  1164. package/dist/esm/ion-infinite-scroll.entry.js.map +0 -1
  1165. package/dist/esm/ion-input-otp.entry.js.map +0 -1
  1166. package/dist/esm/ion-input-password-toggle.entry.js.map +0 -1
  1167. package/dist/esm/ion-input.entry.js.map +0 -1
  1168. package/dist/esm/ion-item-divider.entry.js.map +0 -1
  1169. package/dist/esm/ion-item-group.entry.js.map +0 -1
  1170. package/dist/esm/ion-item-option.entry.js.map +0 -1
  1171. package/dist/esm/ion-item-options.entry.js.map +0 -1
  1172. package/dist/esm/ion-item-sliding.entry.js.map +0 -1
  1173. package/dist/esm/ion-loading.entry.js.map +0 -1
  1174. package/dist/esm/ion-menu-button.entry.js.map +0 -1
  1175. package/dist/esm/ion-menu-toggle.entry.js.map +0 -1
  1176. package/dist/esm/ion-menu.entry.js.map +0 -1
  1177. package/dist/esm/ion-nav-link.entry.js.map +0 -1
  1178. package/dist/esm/ion-nav.entry.js.map +0 -1
  1179. package/dist/esm/ion-note.entry.js.map +0 -1
  1180. package/dist/esm/ion-picker-legacy-column.entry.js.map +0 -1
  1181. package/dist/esm/ion-picker-legacy.entry.js.map +0 -1
  1182. package/dist/esm/ion-popover.entry.js.map +0 -1
  1183. package/dist/esm/ion-progress-bar.entry.js.map +0 -1
  1184. package/dist/esm/ion-range.entry.js.map +0 -1
  1185. package/dist/esm/ion-refresher-content.entry.js.map +0 -1
  1186. package/dist/esm/ion-refresher.entry.js.map +0 -1
  1187. package/dist/esm/ion-reorder-group.entry.js.map +0 -1
  1188. package/dist/esm/ion-reorder.entry.js.map +0 -1
  1189. package/dist/esm/ion-route-redirect.entry.js.map +0 -1
  1190. package/dist/esm/ion-route.entry.js.map +0 -1
  1191. package/dist/esm/ion-router-link.entry.js.map +0 -1
  1192. package/dist/esm/ion-router-outlet.entry.js.map +0 -1
  1193. package/dist/esm/ion-router.entry.js.map +0 -1
  1194. package/dist/esm/ion-row.entry.js.map +0 -1
  1195. package/dist/esm/ion-searchbar.entry.js.map +0 -1
  1196. package/dist/esm/ion-segment-button.entry.js.map +0 -1
  1197. package/dist/esm/ion-segment-content.entry.js.map +0 -1
  1198. package/dist/esm/ion-segment-view.entry.js.map +0 -1
  1199. package/dist/esm/ion-segment.entry.js.map +0 -1
  1200. package/dist/esm/ion-select-option.entry.js.map +0 -1
  1201. package/dist/esm/ion-select.entry.js.map +0 -1
  1202. package/dist/esm/ion-skeleton-text.entry.js.map +0 -1
  1203. package/dist/esm/ion-spinner.entry.js.map +0 -1
  1204. package/dist/esm/ion-split-pane.entry.js.map +0 -1
  1205. package/dist/esm/ion-tab-bar.entry.js.map +0 -1
  1206. package/dist/esm/ion-tab-button.entry.js.map +0 -1
  1207. package/dist/esm/ion-tab.entry.js.map +0 -1
  1208. package/dist/esm/ion-tabs.entry.js.map +0 -1
  1209. package/dist/esm/ion-textarea.entry.js.map +0 -1
  1210. package/dist/esm/ion-thumbnail.entry.js.map +0 -1
  1211. package/dist/esm/ion-toast.entry.js.map +0 -1
  1212. package/dist/esm/ion-toggle.entry.js.map +0 -1
  1213. package/dist/esm/ionic-global-C8oJToxs.js.map +0 -1
  1214. package/dist/esm/ios.transition-BFolpAgy.js +0 -681
  1215. package/dist/esm/ios.transition-BFolpAgy.js.map +0 -1
  1216. package/dist/esm/keyboard-DcbqYXj5.js.map +0 -1
  1217. package/dist/esm/keyboard-DgiyREKb.js.map +0 -1
  1218. package/dist/esm/keyboard-controller-CqGCg8tB.js.map +0 -1
  1219. package/dist/esm/loader.js.map +0 -1
  1220. package/dist/esm/lock-controller-B-hirT0v.js.map +0 -1
  1221. package/dist/esm/md.transition-e1BRt2V0.js +0 -60
  1222. package/dist/esm/md.transition-e1BRt2V0.js.map +0 -1
  1223. package/dist/esm/menu-toggle-util-CWs_NYdI.js +0 -15
  1224. package/dist/esm/menu-toggle-util-CWs_NYdI.js.map +0 -1
  1225. package/dist/esm/notch-controller-DCfp6pBF.js.map +0 -1
  1226. package/dist/esm/overlays-BDbqv7G-.js.map +0 -1
  1227. package/dist/esm/refresher.utils-DOS2Tyfp.js.map +0 -1
  1228. package/dist/esm/spinner-configs-D4RIp70E.js.map +0 -1
  1229. package/dist/esm/status-tap-BTOXpL_S.js.map +0 -1
  1230. package/dist/esm/swipe-back-CetNYyPP.js.map +0 -1
  1231. package/dist/esm/theme-DiVJyqlX.js.map +0 -1
  1232. package/dist/esm/validity-DJztqcrH.js.map +0 -1
  1233. package/dist/esm/watch-options-Dtdm8lKC.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ion-range.entry.js","sources":["node_modules/@ionic/core/dist/collection/utils/floating-point/index.js","node_modules/@ionic/core/dist/collection/components/range/range.ios.css?tag=ion-range&mode=ios&encapsulation=shadow","node_modules/@ionic/core/dist/collection/components/range/range.md.css?tag=ion-range&mode=md&encapsulation=shadow","node_modules/@ionic/core/dist/collection/components/range/range.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { isSafeNumber } from \"../helpers\";\nexport function getDecimalPlaces(n) {\n if (!isSafeNumber(n))\n return 0;\n if (n % 1 === 0)\n return 0;\n return n.toString().split('.')[1].length;\n}\n/**\n * Fixes floating point rounding errors in a result by rounding\n * to the same specificity, or number of decimal places (*not*\n * significant figures) as provided reference numbers. If multiple\n * references are provided, the highest number of decimal places\n * between them will be used.\n *\n * The main use case is when numbers x and y are added to produce n,\n * but x and y are floats, so n may have rounding errors (such as\n * 3.1000000004 instead of 3.1). As long as only addition/subtraction\n * occurs between x and y, the specificity of the result will never\n * increase, so x and y should be passed in as the references.\n *\n * If multiplication, division, or other operations were used to\n * calculate n, the rounded result may have less specificity than\n * desired. For example, 1 / 3 = 0.33333(...), but\n * roundToMaxDecimalPlaces((1 / 3), 1, 3) will return 0, since both\n * 1 and 3 are whole numbers.\n *\n * Note that extremely precise reference numbers may lead to rounding\n * errors not being trimmed, due to the error result having the same or\n * fewer decimal places as the reference(s). This is acceptable as we\n * would not be able to tell the difference between a rounding error\n * and correct value in this case, but it does mean there is an implicit\n * precision limit. If precision that high is needed, it is recommended\n * to use a third party data type designed to handle floating point\n * errors instead.\n *\n * @param n The number to round.\n * @param references Number(s) used to calculate n, or that should otherwise\n * be used as a reference for the desired specificity.\n */\nexport function roundToMaxDecimalPlaces(n, ...references) {\n if (!isSafeNumber(n))\n return 0;\n const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));\n return Number(n.toFixed(maxPlaces));\n}\n","/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n:host {\n /**\n * @prop --bar-background: Background of the range bar\n * @prop --bar-background-active: Background of the active range bar\n * @prop --bar-height: Height of the range bar\n * @prop --bar-border-radius: Border radius of the range bar\n * @prop --height: Height of the range\n * @prop --knob-background: Background of the range knob\n * @prop --knob-border-radius: Border radius of the range knob\n * @prop --knob-box-shadow: Box shadow of the range knob\n * @prop --knob-size: Size of the range knob\n * @prop --pin-background: Background of the range pin (only available in MD mode)\n * @prop --pin-color: Color of the range pin (only available in MD mode)\n */\n --knob-handle-size: calc(var(--knob-size) * 2);\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n font-family: var(--ion-font-family, inherit);\n user-select: none;\n z-index: 2;\n}\n\n:host(.range-disabled) {\n pointer-events: none;\n}\n\n::slotted(ion-label) {\n flex: initial;\n}\n\n::slotted(ion-icon[slot]) {\n font-size: 24px;\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n.range-pin {\n position: absolute;\n background: var(--ion-color-base);\n color: var(--ion-color-contrast);\n text-align: center;\n box-sizing: border-box;\n}\n\n.range-knob-handle {\n top: calc((var(--height) - var(--knob-handle-size)) / 2);\n -webkit-margin-start: calc(0px - var(--knob-handle-size) / 2);\n margin-inline-start: calc(0px - var(--knob-handle-size) / 2);\n display: flex;\n position: absolute;\n justify-content: center;\n width: var(--knob-handle-size);\n height: var(--knob-handle-size);\n text-align: center;\n}\n.range-knob-handle {\n inset-inline-start: 0;\n}\n\n:host-context([dir=rtl]) .range-knob-handle {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-knob-handle {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-knob-handle:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n.range-knob-handle:active, .range-knob-handle:focus {\n outline: none;\n}\n\n.range-bar-container {\n border-radius: var(--bar-border-radius);\n top: calc((var(--height) - var(--bar-height)) / 2);\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n}\n.range-bar-container {\n inset-inline-start: 0;\n}\n\n:host-context([dir=rtl]) .range-bar-container {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-bar-container {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-bar-container:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n\n.range-bar {\n border-radius: var(--bar-border-radius);\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n}\n\n.range-knob {\n border-radius: var(--knob-border-radius);\n top: calc(50% - var(--knob-size) / 2);\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n}\n.range-knob {\n inset-inline-start: calc(50% - var(--knob-size) / 2);\n}\n\n:host-context([dir=rtl]) .range-knob {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-knob {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-knob:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n\n:host(.range-pressed) .range-bar-active {\n will-change: left, right;\n}\n\n:host(.in-item) {\n width: 100%;\n}\n\n/**\n * Range can be slotted\n * in components such as item and\n * toolbar which is why we do not\n * limit the below behavior to just ion-item.\n */\n:host([slot=start]),\n:host([slot=end]) {\n width: auto;\n}\n\n:host(.in-item) ::slotted(ion-label) {\n align-self: center;\n}\n\n.range-wrapper {\n display: flex;\n position: relative;\n flex-grow: 1;\n align-items: center;\n height: inherit;\n}\n\n::slotted([slot=label]) {\n /**\n * Label text should not extend\n * beyond the bounds of the range.\n * However, we do not set the max\n * width to 100% because then\n * only the label would show and users\n * would not be able to see the range.\n */\n max-width: 200px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n/**\n * If no label text is placed into the slot\n * then the element should be hidden otherwise\n * there will be additional margins added.\n */\n.label-text-wrapper-hidden {\n display: none;\n}\n\n.native-wrapper {\n display: flex;\n flex-grow: 1;\n align-items: center;\n}\n\n/**\n * Label is on the left of the range in LTR and\n * on the right in RTL.\n */\n:host(.range-label-placement-start) .range-wrapper {\n flex-direction: row;\n}\n\n:host(.range-label-placement-start) .label-text-wrapper {\n /**\n * The margin between the label and\n * the range should be on the end\n * when the label sits at the start.\n */\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 16px;\n margin-inline-end: 16px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/**\n * Label is on the right of the range in LTR and\n * on the left in RTL.\n */\n:host(.range-label-placement-end) .range-wrapper {\n flex-direction: row-reverse;\n}\n\n/**\n * The margin between the label and\n * the range should be on the start\n * when the label sits at the end.\n */\n:host(.range-label-placement-end) .label-text-wrapper {\n -webkit-margin-start: 16px;\n margin-inline-start: 16px;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host(.range-label-placement-fixed) .label-text-wrapper {\n /**\n * The margin between the label and\n * the range should be on the end\n * when the label sits at the start.\n */\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 16px;\n margin-inline-end: 16px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/**\n * Label is on the left of the range in LTR and\n * on the right in RTL. Label also has a fixed width.\n */\n:host(.range-label-placement-fixed) .label-text-wrapper {\n flex: 0 0 100px;\n width: 100px;\n min-width: 100px;\n max-width: 200px;\n}\n\n/**\n * Label is on top of the range.\n */\n:host(.range-label-placement-stacked) .range-wrapper {\n flex-direction: column;\n align-items: stretch;\n}\n\n:host(.range-label-placement-stacked) .label-text-wrapper {\n transform-origin: left top;\n transform: scale(0.75);\n /**\n * The margin between the label and\n * the range should be on the bottom\n * when the label sits on top.\n */\n margin-left: 0;\n margin-right: 0;\n margin-bottom: 16px;\n /**\n * Label text should not extend\n * beyond the bounds of the range.\n */\n max-width: calc(100% / 0.75);\n}\n:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper, :host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper {\n transform-origin: right top;\n}\n\n@supports selector(:dir(rtl)) {\n :host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper {\n transform-origin: right top;\n }\n}\n\n:host(.in-item.range-label-placement-stacked) .label-text-wrapper {\n margin-top: 10px;\n margin-bottom: 16px;\n}\n\n:host(.in-item.range-label-placement-stacked) .native-wrapper {\n margin-bottom: 0px;\n}\n\n/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n/**\n * 24px was chosen so the knob and its\n * shadow do not get cut off by the item.\n */\n:host {\n --knob-border-radius: 50%;\n --knob-background: #ffffff;\n --knob-box-shadow: 0px 0.5px 4px rgba(0, 0, 0, 0.12), 0px 6px 13px rgba(0, 0, 0, 0.12);\n --knob-size: 26px;\n --bar-height: 4px;\n --bar-background: var(--ion-color-step-900, var(--ion-background-color-step-900, #e6e6e6));\n --bar-background-active: var(--ion-color-primary, #0054e9);\n --bar-border-radius: 2px;\n --height: 42px;\n}\n\n:host(.range-item-start-adjustment) {\n -webkit-padding-start: 24px;\n padding-inline-start: 24px;\n}\n\n:host(.range-item-end-adjustment) {\n -webkit-padding-end: 24px;\n padding-inline-end: 24px;\n}\n\n:host(.ion-color) .range-bar-active,\n:host(.ion-color) .range-tick-active {\n background: var(--ion-color-base);\n}\n\n::slotted([slot=start]) {\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 16px;\n margin-inline-end: 16px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n::slotted([slot=end]) {\n -webkit-margin-start: 16px;\n margin-inline-start: 16px;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host(.range-has-pin:not(.range-label-placement-stacked)) {\n /**\n * The pin should not overlap any elements that are\n * above the range. By adding padding to the top of the\n * range, it provides a buffer for the pin to move into\n * when it is pressed.\n *\n * The padding is not included when the label is stacked\n * because the pin is below the label.\n * It still requires a buffer to prevent the pin from\n * overlapping the range. The buffer is added to the\n * bottom of the range label instead of the host.\n */\n padding-top: calc(8px + 0.75rem);\n}\n\n:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper {\n /**\n * The pin should not overlap the stacked label. By adding\n * margin to the bottom of the label, it provides a buffer\n * for the pin to move into when it is pressed.\n */\n margin-bottom: calc(8px + 0.75rem);\n}\n\n.range-bar-active {\n bottom: 0;\n width: auto;\n background: var(--bar-background-active);\n}\n.range-bar-active.has-ticks {\n border-radius: 0;\n -webkit-margin-start: -2px;\n margin-inline-start: -2px;\n -webkit-margin-end: -2px;\n margin-inline-end: -2px;\n}\n\n.range-tick {\n -webkit-margin-start: -2px;\n margin-inline-start: -2px;\n border-radius: 0;\n position: absolute;\n top: 17px;\n width: 4px;\n height: 8px;\n background: var(--ion-color-step-900, var(--ion-background-color-step-900, #e6e6e6));\n pointer-events: none;\n}\n\n.range-tick-active {\n background: var(--bar-background-active);\n}\n\n.range-pin {\n transform: translate3d(0, 100%, 0) scale(0.01);\n -webkit-padding-start: 8px;\n padding-inline-start: 8px;\n -webkit-padding-end: 8px;\n padding-inline-end: 8px;\n padding-top: 8px;\n padding-bottom: 8px;\n min-width: 28px;\n transition: transform 120ms ease;\n background: transparent;\n color: var(--ion-text-color, #000);\n font-size: 0.75rem;\n text-align: center;\n}\n\n/**\n * The -100% ensures the pin sits on top\n * of the range-knob-handle container.\n * We apply 11px so that the pin\n * text is closer to the knob inside of the container.\n * We also apply the 11px here instead of using \"top\"\n * otherwise the pin text will translate below the knob\n * when the text is scaled.\n */\n.range-knob-pressed .range-pin,\n.range-knob-handle.ion-focused .range-pin {\n transform: translate3d(0, calc(-100% + 11px), 0) scale(1);\n}\n\n:host(.range-disabled) {\n opacity: 0.3;\n}","/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n:host {\n /**\n * @prop --bar-background: Background of the range bar\n * @prop --bar-background-active: Background of the active range bar\n * @prop --bar-height: Height of the range bar\n * @prop --bar-border-radius: Border radius of the range bar\n * @prop --height: Height of the range\n * @prop --knob-background: Background of the range knob\n * @prop --knob-border-radius: Border radius of the range knob\n * @prop --knob-box-shadow: Box shadow of the range knob\n * @prop --knob-size: Size of the range knob\n * @prop --pin-background: Background of the range pin (only available in MD mode)\n * @prop --pin-color: Color of the range pin (only available in MD mode)\n */\n --knob-handle-size: calc(var(--knob-size) * 2);\n display: flex;\n position: relative;\n flex: 3;\n align-items: center;\n font-family: var(--ion-font-family, inherit);\n user-select: none;\n z-index: 2;\n}\n\n:host(.range-disabled) {\n pointer-events: none;\n}\n\n::slotted(ion-label) {\n flex: initial;\n}\n\n::slotted(ion-icon[slot]) {\n font-size: 24px;\n}\n\n.range-slider {\n position: relative;\n flex: 1;\n width: 100%;\n height: var(--height);\n contain: size layout style;\n cursor: grab;\n touch-action: pan-y;\n}\n\n:host(.range-pressed) .range-slider {\n cursor: grabbing;\n}\n\n.range-pin {\n position: absolute;\n background: var(--ion-color-base);\n color: var(--ion-color-contrast);\n text-align: center;\n box-sizing: border-box;\n}\n\n.range-knob-handle {\n top: calc((var(--height) - var(--knob-handle-size)) / 2);\n -webkit-margin-start: calc(0px - var(--knob-handle-size) / 2);\n margin-inline-start: calc(0px - var(--knob-handle-size) / 2);\n display: flex;\n position: absolute;\n justify-content: center;\n width: var(--knob-handle-size);\n height: var(--knob-handle-size);\n text-align: center;\n}\n.range-knob-handle {\n inset-inline-start: 0;\n}\n\n:host-context([dir=rtl]) .range-knob-handle {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-knob-handle {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-knob-handle:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n.range-knob-handle:active, .range-knob-handle:focus {\n outline: none;\n}\n\n.range-bar-container {\n border-radius: var(--bar-border-radius);\n top: calc((var(--height) - var(--bar-height)) / 2);\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n}\n.range-bar-container {\n inset-inline-start: 0;\n}\n\n:host-context([dir=rtl]) .range-bar-container {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-bar-container {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-bar-container:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n\n.range-bar {\n border-radius: var(--bar-border-radius);\n position: absolute;\n width: 100%;\n height: var(--bar-height);\n background: var(--bar-background);\n pointer-events: none;\n}\n\n.range-knob {\n border-radius: var(--knob-border-radius);\n top: calc(50% - var(--knob-size) / 2);\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n background: var(--knob-background);\n box-shadow: var(--knob-box-shadow);\n z-index: 2;\n pointer-events: none;\n}\n.range-knob {\n inset-inline-start: calc(50% - var(--knob-size) / 2);\n}\n\n:host-context([dir=rtl]) .range-knob {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-knob {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-knob:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n\n:host(.range-pressed) .range-bar-active {\n will-change: left, right;\n}\n\n:host(.in-item) {\n width: 100%;\n}\n\n/**\n * Range can be slotted\n * in components such as item and\n * toolbar which is why we do not\n * limit the below behavior to just ion-item.\n */\n:host([slot=start]),\n:host([slot=end]) {\n width: auto;\n}\n\n:host(.in-item) ::slotted(ion-label) {\n align-self: center;\n}\n\n.range-wrapper {\n display: flex;\n position: relative;\n flex-grow: 1;\n align-items: center;\n height: inherit;\n}\n\n::slotted([slot=label]) {\n /**\n * Label text should not extend\n * beyond the bounds of the range.\n * However, we do not set the max\n * width to 100% because then\n * only the label would show and users\n * would not be able to see the range.\n */\n max-width: 200px;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n/**\n * If no label text is placed into the slot\n * then the element should be hidden otherwise\n * there will be additional margins added.\n */\n.label-text-wrapper-hidden {\n display: none;\n}\n\n.native-wrapper {\n display: flex;\n flex-grow: 1;\n align-items: center;\n}\n\n/**\n * Label is on the left of the range in LTR and\n * on the right in RTL.\n */\n:host(.range-label-placement-start) .range-wrapper {\n flex-direction: row;\n}\n\n:host(.range-label-placement-start) .label-text-wrapper {\n /**\n * The margin between the label and\n * the range should be on the end\n * when the label sits at the start.\n */\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 16px;\n margin-inline-end: 16px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/**\n * Label is on the right of the range in LTR and\n * on the left in RTL.\n */\n:host(.range-label-placement-end) .range-wrapper {\n flex-direction: row-reverse;\n}\n\n/**\n * The margin between the label and\n * the range should be on the start\n * when the label sits at the end.\n */\n:host(.range-label-placement-end) .label-text-wrapper {\n -webkit-margin-start: 16px;\n margin-inline-start: 16px;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host(.range-label-placement-fixed) .label-text-wrapper {\n /**\n * The margin between the label and\n * the range should be on the end\n * when the label sits at the start.\n */\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 16px;\n margin-inline-end: 16px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n/**\n * Label is on the left of the range in LTR and\n * on the right in RTL. Label also has a fixed width.\n */\n:host(.range-label-placement-fixed) .label-text-wrapper {\n flex: 0 0 100px;\n width: 100px;\n min-width: 100px;\n max-width: 200px;\n}\n\n/**\n * Label is on top of the range.\n */\n:host(.range-label-placement-stacked) .range-wrapper {\n flex-direction: column;\n align-items: stretch;\n}\n\n:host(.range-label-placement-stacked) .label-text-wrapper {\n transform-origin: left top;\n transform: scale(0.75);\n /**\n * The margin between the label and\n * the range should be on the bottom\n * when the label sits on top.\n */\n margin-left: 0;\n margin-right: 0;\n margin-bottom: 16px;\n /**\n * Label text should not extend\n * beyond the bounds of the range.\n */\n max-width: calc(100% / 0.75);\n}\n:host-context([dir=rtl]):host(.range-label-placement-stacked) .label-text-wrapper, :host-context([dir=rtl]).range-label-placement-stacked .label-text-wrapper {\n transform-origin: right top;\n}\n\n@supports selector(:dir(rtl)) {\n :host(.range-label-placement-stacked:dir(rtl)) .label-text-wrapper {\n transform-origin: right top;\n }\n}\n\n:host(.in-item.range-label-placement-stacked) .label-text-wrapper {\n margin-top: 10px;\n margin-bottom: 16px;\n}\n\n:host(.in-item.range-label-placement-stacked) .native-wrapper {\n margin-bottom: 0px;\n}\n\n/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n/**\n * 18px was chosen so the knob and its focus/active\n * effects do not get cut off by the item.\n */\n:host {\n --knob-border-radius: 50%;\n --knob-background: var(--bar-background-active);\n --knob-box-shadow: none;\n --knob-size: 18px;\n --bar-height: 2px;\n --bar-background: rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.26);\n --bar-background-active: var(--ion-color-primary, #0054e9);\n --bar-border-radius: 0;\n --height: 42px;\n --pin-background: var(--ion-color-primary, #0054e9);\n --pin-color: var(--ion-color-primary-contrast, #fff);\n}\n\n::slotted(:not(ion-icon)[slot=start]),\n::slotted(:not(ion-icon)[slot=end]),\n.native-wrapper {\n font-size: 0.75rem;\n}\n\n:host(.range-item-start-adjustment) {\n -webkit-padding-start: 18px;\n padding-inline-start: 18px;\n}\n\n:host(.range-item-end-adjustment) {\n -webkit-padding-end: 18px;\n padding-inline-end: 18px;\n}\n\n:host(.ion-color) .range-bar {\n background: rgba(var(--ion-color-base-rgb), 0.26);\n}\n\n:host(.ion-color) .range-bar-active,\n:host(.ion-color) .range-knob,\n:host(.ion-color) .range-knob::before,\n:host(.ion-color) .range-pin,\n:host(.ion-color) .range-pin::before,\n:host(.ion-color) .range-tick {\n background: var(--ion-color-base);\n color: var(--ion-color-contrast);\n}\n\n::slotted([slot=start]) {\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n -webkit-margin-end: 14px;\n margin-inline-end: 14px;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n::slotted([slot=end]) {\n -webkit-margin-start: 14px;\n margin-inline-start: 14px;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n:host(.range-has-pin:not(.range-label-placement-stacked)) {\n /**\n * The pin should not overlap any elements that are\n * above the range. By adding padding to the top of the\n * range, it provides a buffer for the pin to move into\n * when it is pressed.\n *\n * The padding is not included when the label is stacked\n * because the pin is below the label.\n * It still requires a buffer to prevent the pin from\n * overlapping the range. The buffer is added to the\n * bottom of the range label instead of the host.\n */\n padding-top: 1.75rem;\n}\n\n:host(.range-has-pin.range-label-placement-stacked) .label-text-wrapper {\n /**\n * The pin should not overlap the stacked label. By adding\n * margin to the bottom of the label, it provides a buffer\n * for the pin to move into when it is pressed.\n */\n margin-bottom: 1.75rem;\n}\n\n.range-bar-active {\n bottom: 0;\n width: auto;\n background: var(--bar-background-active);\n}\n\n.range-knob {\n transform: scale(0.67);\n transition-duration: 120ms;\n transition-property: transform, background-color, border;\n transition-timing-function: ease;\n z-index: 2;\n}\n.range-knob::before {\n border-radius: 50%;\n position: absolute;\n width: var(--knob-size);\n height: var(--knob-size);\n transform: scale(1);\n transition: 0.267s cubic-bezier(0, 0, 0.58, 1);\n background: var(--knob-background);\n content: \"\";\n opacity: 0.13;\n pointer-events: none;\n}\n.range-knob::before {\n inset-inline-start: 0;\n}\n\n.range-tick {\n position: absolute;\n top: calc((var(--height) - var(--bar-height)) / 2);\n width: var(--bar-height);\n height: var(--bar-height);\n background: var(--bar-background-active);\n z-index: 1;\n pointer-events: none;\n}\n\n.range-tick-active {\n background: transparent;\n}\n\n.range-pin {\n padding-left: 0;\n padding-right: 0;\n padding-top: 8px;\n padding-bottom: 8px;\n border-radius: 50%;\n transform: translate3d(0, 0, 0) scale(0.01);\n display: flex;\n align-items: center;\n justify-content: center;\n /**\n * The dimensions of the range need\n * to scale with the size of the text\n * which is why we use dynamic dimensions here.\n */\n width: 1.75rem;\n height: 1.75rem;\n transition: transform 120ms ease, background 120ms ease;\n background: var(--pin-background);\n color: var(--pin-color);\n}\n.range-pin::before {\n /**\n * The -1px here moves the ::before\n * psuedo-element down to create a uniform pin shape.\n */\n bottom: -1px;\n -webkit-margin-start: -13px;\n margin-inline-start: -13px;\n /* stylelint-disable-next-line property-disallowed-list */\n border-radius: 50% 50% 50% 0;\n position: absolute;\n width: 26px;\n height: 26px;\n transform: rotate(-45deg);\n transition: background 120ms ease;\n background: var(--pin-background);\n content: \"\";\n z-index: -1;\n}\n.range-pin::before {\n inset-inline-start: 50%;\n}\n\n:host-context([dir=rtl]) .range-pin::before {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n[dir=rtl] .range-pin::before {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n}\n\n@supports selector(:dir(rtl)) {\n .range-pin::before:dir(rtl) {\n /* stylelint-disable-next-line property-disallowed-list */\n left: unset;\n }\n}\n\n/**\n * Move the pin up by its full height\n * plus a few pixels so the tip is above\n * (but not touching) the knob.\n */\n.range-knob-pressed .range-pin,\n.range-knob-handle.ion-focused .range-pin {\n transform: translate3d(0, calc(-100% + 4px), 0) scale(1);\n}\n\n@media (any-hover: hover) {\n .range-knob-handle:hover .range-knob:before {\n transform: scale(2);\n opacity: 0.13;\n }\n}\n.range-knob-handle.ion-activated .range-knob:before, .range-knob-handle.ion-focused .range-knob:before, .range-knob-handle.range-knob-pressed .range-knob:before {\n transform: scale(2);\n}\n.range-knob-handle.ion-focused .range-knob::before {\n opacity: 0.13;\n}\n.range-knob-handle.ion-activated .range-knob::before, .range-knob-handle.range-knob-pressed .range-knob::before {\n opacity: 0.25;\n}\n\n:host(:not(.range-has-pin)) .range-knob-pressed .range-knob,\n:host(:not(.range-has-pin)) .range-knob-handle.ion-focused .range-knob {\n transform: scale(1);\n}\n\n:host(.range-disabled) .range-bar-active,\n:host(.range-disabled) .range-bar,\n:host(.range-disabled) .range-tick {\n background-color: var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));\n}\n\n:host(.range-disabled) .range-knob {\n transform: scale(0.55);\n outline: 5px solid #fff;\n background-color: var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));\n}\n\n:host(.range-disabled) .label-text-wrapper,\n:host(.range-disabled) ::slotted([slot=start]),\n:host(.range-disabled) ::slotted([slot=end]) {\n opacity: 0.38;\n}","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Host, h } from \"@stencil/core\";\nimport { findClosestIonContent, disableContentScrollY, resetContentScrollY } from \"../../utils/content/index\";\nimport { inheritAriaAttributes, clamp, debounceEvent, renderHiddenInput, isSafeNumber } from \"../../utils/helpers\";\nimport { printIonWarning } from \"../../utils/logging/index\";\nimport { isRTL } from \"../../utils/rtl/index\";\nimport { createColorClasses, hostContext } from \"../../utils/theme\";\nimport { getIonMode } from \"../../global/ionic-global\";\nimport { roundToMaxDecimalPlaces } from \"../../utils/floating-point\";\n// TODO(FW-2832): types\n/**\n * @virtualProp {\"ios\" | \"md\"} mode - The mode determines which platform styles to use.\n *\n * @slot label - The label text to associate with the range. Use the \"labelPlacement\" property to control where the label is placed relative to the range.\n * @slot start - Content is placed to the left of the range slider in LTR, and to the right in RTL.\n * @slot end - Content is placed to the right of the range slider in LTR, and to the left in RTL.\n *\n * @part tick - An inactive tick mark.\n * @part tick-active - An active tick mark.\n * @part pin - The counter that appears above a knob.\n * @part knob - The handle that is used to drag the range.\n * @part bar - The inactive part of the bar.\n * @part bar-active - The active part of the bar.\n * @part label - The label text describing the range.\n */\nexport class Range {\n constructor() {\n this.rangeId = `ion-r-${rangeIds++}`;\n this.didLoad = false;\n this.noUpdate = false;\n this.hasFocus = false;\n this.inheritedAttributes = {};\n this.contentEl = null;\n this.initialContentScrollY = true;\n this.ratioA = 0;\n this.ratioB = 0;\n /**\n * The name of the control, which is submitted with the form data.\n */\n this.name = this.rangeId;\n /**\n * Show two knobs.\n */\n this.dualKnobs = false;\n /**\n * Minimum integer value of the range.\n */\n this.min = 0;\n /**\n * Maximum integer value of the range.\n */\n this.max = 100;\n /**\n * If `true`, a pin with integer value is shown when the knob\n * is pressed.\n */\n this.pin = false;\n /**\n * A callback used to format the pin text.\n * By default the pin text is set to `Math.round(value)`.\n *\n * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\n * if you need to access `this` from within the callback.\n */\n this.pinFormatter = (value) => Math.round(value);\n /**\n * If `true`, the knob snaps to tick marks evenly spaced based\n * on the step property value.\n */\n this.snaps = false;\n /**\n * Specifies the value granularity.\n */\n this.step = 1;\n /**\n * If `true`, tick marks are displayed based on the step value.\n * Only applies when `snaps` is `true`.\n */\n this.ticks = true;\n /**\n * If `true`, the user cannot interact with the range.\n */\n this.disabled = false;\n /**\n * the value of the range.\n */\n this.value = 0;\n /**\n * Compares two RangeValue inputs to determine if they are different.\n *\n * @param newVal - The new value.\n * @param oldVal - The old value.\n * @returns `true` if the values are different, `false` otherwise.\n */\n this.compareValues = (newVal, oldVal) => {\n if (typeof newVal === 'object' && typeof oldVal === 'object') {\n return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;\n }\n return newVal !== oldVal;\n };\n this.clampBounds = (value) => {\n return clamp(this.min, value, this.max);\n };\n this.ensureValueInBounds = (value) => {\n if (this.dualKnobs) {\n return {\n lower: this.clampBounds(value.lower),\n upper: this.clampBounds(value.upper),\n };\n }\n else {\n return this.clampBounds(value);\n }\n };\n /**\n * Where to place the label relative to the range.\n * `\"start\"`: The label will appear to the left of the range in LTR and to the right in RTL.\n * `\"end\"`: The label will appear to the right of the range in LTR and to the left in RTL.\n * `\"fixed\"`: The label has the same behavior as `\"start\"` except it also has a fixed width. Long text will be truncated with ellipses (\"...\").\n * `\"stacked\"`: The label will appear above the range regardless of the direction.\n */\n this.labelPlacement = 'start';\n this.setupGesture = async () => {\n const rangeSlider = this.rangeSlider;\n if (rangeSlider) {\n this.gesture = (await import('../../utils/gesture')).createGesture({\n el: rangeSlider,\n gestureName: 'range',\n gesturePriority: 100,\n /**\n * Provide a threshold since the drag movement\n * might be a user scrolling the view.\n * If this is true, then the range\n * should not move.\n */\n threshold: 10,\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: (ev) => this.onEnd(ev),\n });\n this.gesture.enable(!this.disabled);\n }\n };\n this.handleKeyboard = (knob, isIncrease) => {\n const { ensureValueInBounds } = this;\n let step = this.step;\n step = step > 0 ? step : 1;\n step = step / (this.max - this.min);\n if (!isIncrease) {\n step *= -1;\n }\n if (knob === 'A') {\n this.ratioA = clamp(0, this.ratioA + step, 1);\n }\n else {\n this.ratioB = clamp(0, this.ratioB + step, 1);\n }\n this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });\n this.updateValue();\n this.emitValueChange();\n this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });\n };\n this.onBlur = () => {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.ionBlur.emit();\n }\n };\n this.onFocus = () => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.ionFocus.emit();\n }\n };\n this.onKnobFocus = (knob) => {\n if (!this.hasFocus) {\n this.hasFocus = true;\n this.ionFocus.emit();\n }\n // Manually manage ion-focused class for dual knobs\n if (this.dualKnobs && this.el.shadowRoot) {\n const knobA = this.el.shadowRoot.querySelector('.range-knob-a');\n const knobB = this.el.shadowRoot.querySelector('.range-knob-b');\n // Remove ion-focused from both knobs first\n knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');\n knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');\n // Add ion-focused only to the focused knob\n const focusedKnobEl = knob === 'A' ? knobA : knobB;\n focusedKnobEl === null || focusedKnobEl === void 0 ? void 0 : focusedKnobEl.classList.add('ion-focused');\n }\n };\n this.onKnobBlur = () => {\n // Check if focus is moving to another knob within the same range\n // by delaying the reset to allow the new focus to register\n setTimeout(() => {\n var _a;\n const activeElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;\n const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');\n if (!isStillFocusedOnKnob) {\n if (this.hasFocus) {\n this.hasFocus = false;\n this.ionBlur.emit();\n }\n // Remove ion-focused from both knobs when focus leaves the range\n if (this.dualKnobs && this.el.shadowRoot) {\n const knobA = this.el.shadowRoot.querySelector('.range-knob-a');\n const knobB = this.el.shadowRoot.querySelector('.range-knob-b');\n knobA === null || knobA === void 0 ? void 0 : knobA.classList.remove('ion-focused');\n knobB === null || knobB === void 0 ? void 0 : knobB.classList.remove('ion-focused');\n }\n }\n }, 0);\n };\n }\n debounceChanged() {\n const { ionInput, debounce, originalIonInput } = this;\n /**\n * If debounce is undefined, we have to manually revert the ionInput emitter in case\n * debounce used to be set to a number. Otherwise, the event would stay debounced.\n */\n this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);\n }\n minChanged(newValue) {\n if (!isSafeNumber(newValue)) {\n this.min = 0;\n }\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n maxChanged(newValue) {\n if (!isSafeNumber(newValue)) {\n this.max = 100;\n }\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n stepChanged(newValue) {\n if (!isSafeNumber(newValue)) {\n this.step = 1;\n }\n }\n activeBarStartChanged() {\n const { activeBarStart } = this;\n if (activeBarStart !== undefined) {\n if (activeBarStart > this.max) {\n printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.max;\n }\n else if (activeBarStart < this.min) {\n printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);\n this.activeBarStart = this.min;\n }\n }\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n valueChanged(newValue, oldValue) {\n const valuesChanged = this.compareValues(newValue, oldValue);\n if (valuesChanged) {\n this.ionInput.emit({ value: this.value });\n }\n if (!this.noUpdate) {\n this.updateRatio();\n }\n }\n componentWillLoad() {\n /**\n * If user has custom ID set then we should\n * not assign the default incrementing ID.\n */\n if (this.el.hasAttribute('id')) {\n this.rangeId = this.el.getAttribute('id');\n }\n this.inheritedAttributes = inheritAriaAttributes(this.el);\n // If min, max, or step are not safe, set them to 0, 100, and 1, respectively.\n // Each watch does this, but not before the initial load.\n this.min = isSafeNumber(this.min) ? this.min : 0;\n this.max = isSafeNumber(this.max) ? this.max : 100;\n this.step = isSafeNumber(this.step) ? this.step : 1;\n }\n componentDidLoad() {\n this.originalIonInput = this.ionInput;\n this.setupGesture();\n this.updateRatio();\n this.didLoad = true;\n }\n connectedCallback() {\n var _a;\n this.updateRatio();\n this.debounceChanged();\n this.disabledChanged();\n this.activeBarStartChanged();\n /**\n * If we have not yet rendered\n * ion-range, then rangeSlider is not defined.\n * But if we are moving ion-range via appendChild,\n * then rangeSlider will be defined.\n */\n if (this.didLoad) {\n this.setupGesture();\n }\n const ionContent = findClosestIonContent(this.el);\n this.contentEl = (_a = ionContent === null || ionContent === void 0 ? void 0 : ionContent.querySelector('.ion-content-scroll-host')) !== null && _a !== void 0 ? _a : ionContent;\n }\n disconnectedCallback() {\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n getValue() {\n var _a;\n const value = (_a = this.value) !== null && _a !== void 0 ? _a : 0;\n if (this.dualKnobs) {\n if (typeof value === 'object') {\n return value;\n }\n return {\n lower: 0,\n upper: value,\n };\n }\n else {\n if (typeof value === 'object') {\n return value.upper;\n }\n return value;\n }\n }\n /**\n * Emits an `ionChange` event.\n *\n * This API should be called for user committed changes.\n * This API should not be used for external value changes.\n */\n emitValueChange() {\n this.value = this.ensureValueInBounds(this.value);\n this.ionChange.emit({ value: this.value });\n }\n /**\n * The value should be updated on touch end or\n * when the component is being dragged.\n * This follows the native behavior of mobile devices.\n *\n * For example: When the user lifts their finger from the\n * screen after tapping the bar or dragging the bar or knob.\n */\n onStart() {\n this.ionKnobMoveStart.emit({ value: this.ensureValueInBounds(this.value) });\n }\n /**\n * The value should be updated while dragging the\n * bar or knob.\n *\n * While the user is dragging, the view\n * should not scroll. This is to prevent the user from\n * feeling disoriented while dragging.\n *\n * The user can scroll on the view if the knob or\n * bar is not being dragged.\n *\n * @param detail The details of the gesture event.\n */\n onMove(detail) {\n const { contentEl, pressedKnob } = this;\n const currentX = detail.currentX;\n /**\n * Since the user is dragging on the bar or knob, the view should not scroll.\n *\n * This only needs to be done once.\n */\n if (contentEl && this.pressedKnob === undefined) {\n this.initialContentScrollY = disableContentScrollY(contentEl);\n }\n /**\n * The `pressedKnob` can be undefined if the user just\n * started dragging the knob.\n *\n * This is necessary to determine which knob the user is dragging,\n * especially when it's a dual knob.\n * Plus, it determines when to apply certain styles.\n *\n * This only needs to be done once since the knob won't change\n * while the user is dragging.\n */\n if (pressedKnob === undefined) {\n this.setPressedKnob(currentX);\n }\n this.update(currentX);\n }\n /**\n * The value should be updated on touch end:\n * - When the user lifts their finger from the screen after\n * tapping the bar.\n *\n * @param detail The details of the gesture or mouse event.\n */\n onEnd(detail) {\n var _a;\n const { contentEl, initialContentScrollY } = this;\n const currentX = (_a = detail.currentX) !== null && _a !== void 0 ? _a : detail.clientX;\n /**\n * The `pressedKnob` can be undefined if the user never\n * dragged the knob. They just tapped on the bar.\n *\n * This is necessary to determine which knob the user is changing,\n * especially when it's a dual knob.\n * Plus, it determines when to apply certain styles.\n */\n if (this.pressedKnob === undefined) {\n this.setPressedKnob(currentX);\n }\n /**\n * The user is no longer dragging the bar or\n * knob (if they were dragging it).\n *\n * The user can now scroll on the view in the next gesture event.\n */\n if (contentEl && this.pressedKnob !== undefined) {\n resetContentScrollY(contentEl, initialContentScrollY);\n }\n // update the active knob's position\n this.update(currentX);\n /**\n * Reset the pressed knob to undefined since the user\n * may start dragging a different knob in the next gesture event.\n */\n this.pressedKnob = undefined;\n this.emitValueChange();\n this.ionKnobMoveEnd.emit({ value: this.ensureValueInBounds(this.value) });\n }\n update(currentX) {\n // figure out where the pointer is currently at\n // update the knob being interacted with\n const rect = this.rect;\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n if (this.snaps) {\n // snaps the ratio to the current value\n ratio = valueToRatio(ratioToValue(ratio, this.min, this.max, this.step), this.min, this.max);\n }\n // update which knob is pressed\n if (this.pressedKnob === 'A') {\n this.ratioA = ratio;\n }\n else {\n this.ratioB = ratio;\n }\n // Update input value\n this.updateValue();\n }\n setPressedKnob(currentX) {\n const rect = (this.rect = this.rangeSlider.getBoundingClientRect());\n // figure out which knob they started closer to\n let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);\n if (isRTL(this.el)) {\n ratio = 1 - ratio;\n }\n this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';\n this.setFocus(this.pressedKnob);\n }\n get valA() {\n return ratioToValue(this.ratioA, this.min, this.max, this.step);\n }\n get valB() {\n return ratioToValue(this.ratioB, this.min, this.max, this.step);\n }\n get ratioLower() {\n if (this.dualKnobs) {\n return Math.min(this.ratioA, this.ratioB);\n }\n const { activeBarStart } = this;\n if (activeBarStart == null) {\n return 0;\n }\n return valueToRatio(activeBarStart, this.min, this.max);\n }\n get ratioUpper() {\n if (this.dualKnobs) {\n return Math.max(this.ratioA, this.ratioB);\n }\n return this.ratioA;\n }\n updateRatio() {\n const value = this.getValue();\n const { min, max } = this;\n if (this.dualKnobs) {\n this.ratioA = valueToRatio(value.lower, min, max);\n this.ratioB = valueToRatio(value.upper, min, max);\n }\n else {\n this.ratioA = valueToRatio(value, min, max);\n }\n }\n updateValue() {\n this.noUpdate = true;\n const { valA, valB } = this;\n this.value = !this.dualKnobs\n ? valA\n : {\n lower: Math.min(valA, valB),\n upper: Math.max(valA, valB),\n };\n this.noUpdate = false;\n }\n setFocus(knob) {\n if (this.el.shadowRoot) {\n const knobEl = this.el.shadowRoot.querySelector(knob === 'A' ? '.range-knob-a' : '.range-knob-b');\n if (knobEl) {\n knobEl.focus();\n }\n }\n }\n /**\n * Returns true if content was passed to the \"start\" slot\n */\n get hasStartSlotContent() {\n return this.el.querySelector('[slot=\"start\"]') !== null;\n }\n /**\n * Returns true if content was passed to the \"end\" slot\n */\n get hasEndSlotContent() {\n return this.el.querySelector('[slot=\"end\"]') !== null;\n }\n get hasLabel() {\n return this.label !== undefined || this.el.querySelector('[slot=\"label\"]') !== null;\n }\n renderRangeSlider() {\n var _a;\n const { min, max, step, handleKeyboard, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;\n let barStart = `${ratioLower * 100}%`;\n let barEnd = `${100 - ratioUpper * 100}%`;\n const rtl = isRTL(this.el);\n const start = rtl ? 'right' : 'left';\n const end = rtl ? 'left' : 'right';\n const tickStyle = (tick) => {\n return {\n [start]: tick[start],\n };\n };\n if (this.dualKnobs === false) {\n /**\n * When the value is less than the activeBarStart or the min value,\n * the knob will display at the start of the active bar.\n */\n if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {\n /**\n * Sets the bar positions relative to the upper and lower limits.\n * Converts the ratio values into percentages, used as offsets for left/right styles.\n *\n * The ratioUpper refers to the knob position on the bar.\n * The ratioLower refers to the end position of the active bar (the value).\n */\n barStart = `${ratioUpper * 100}%`;\n barEnd = `${100 - ratioLower * 100}%`;\n }\n else {\n /**\n * Otherwise, the knob will display at the end of the active bar.\n *\n * The ratioLower refers to the start position of the active bar (the value).\n * The ratioUpper refers to the knob position on the bar.\n */\n barStart = `${ratioLower * 100}%`;\n barEnd = `${100 - ratioUpper * 100}%`;\n }\n }\n const barStyle = {\n [start]: barStart,\n [end]: barEnd,\n };\n const ticks = [];\n if (this.snaps && this.ticks) {\n for (let value = min; value <= max; value += step) {\n const ratio = valueToRatio(value, min, max);\n const ratioMin = Math.min(ratioLower, ratioUpper);\n const ratioMax = Math.max(ratioLower, ratioUpper);\n const tick = {\n ratio,\n /**\n * Sets the tick mark as active when the tick is between the min bounds and the knob.\n * When using activeBarStart, the tick mark will be active between the knob and activeBarStart.\n */\n active: ratio >= ratioMin && ratio <= ratioMax,\n };\n tick[start] = `${ratio * 100}%`;\n ticks.push(tick);\n }\n }\n return (h(\"div\", { class: \"range-slider\", ref: (rangeEl) => (this.rangeSlider = rangeEl),\n /**\n * Since the gesture has a threshold, the value\n * won't change until the user has dragged past\n * the threshold. This is to prevent the range\n * from moving when the user is scrolling.\n *\n * This results in the value not being updated\n * and the event emitters not being triggered\n * if the user taps on the range. This is why\n * we need to listen for the \"pointerUp\" event.\n */\n onPointerUp: (ev) => {\n /**\n * If the user drags the knob on the web\n * version (does not occur on mobile),\n * the \"pointerUp\" event will be triggered\n * along with the gesture's events.\n * This leads to duplicate events.\n *\n * By checking if the pressedKnob is undefined,\n * we can determine if the \"pointerUp\" event was\n * triggered by a tap or a drag. If it was\n * dragged, the pressedKnob will be defined.\n */\n if (this.pressedKnob === undefined) {\n this.onStart();\n this.onEnd(ev);\n }\n } }, ticks.map((tick) => (h(\"div\", { style: tickStyle(tick), role: \"presentation\", class: {\n 'range-tick': true,\n 'range-tick-active': tick.active,\n }, part: tick.active ? 'tick-active' : 'tick' }))), h(\"div\", { class: \"range-bar-container\" }, h(\"div\", { class: \"range-bar\", role: \"presentation\", part: \"bar\" }), h(\"div\", { class: {\n 'range-bar': true,\n 'range-bar-active': true,\n 'has-ticks': ticks.length > 0,\n }, role: \"presentation\", style: barStyle, part: \"bar-active\" })), renderKnob(rtl, {\n knob: 'A',\n pressed: pressedKnob === 'A',\n value: this.valA,\n ratio: this.ratioA,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n inheritedAttributes,\n onKnobFocus: this.onKnobFocus,\n onKnobBlur: this.onKnobBlur,\n }), this.dualKnobs &&\n renderKnob(rtl, {\n knob: 'B',\n pressed: pressedKnob === 'B',\n value: this.valB,\n ratio: this.ratioB,\n pin,\n pinFormatter,\n disabled,\n handleKeyboard,\n min,\n max,\n inheritedAttributes,\n onKnobFocus: this.onKnobFocus,\n onKnobBlur: this.onKnobBlur,\n })));\n }\n render() {\n const { disabled, el, hasLabel, rangeId, pin, pressedKnob, labelPlacement, label } = this;\n const inItem = hostContext('ion-item', el);\n /**\n * If there is no start content then the knob at\n * the min value will be cut off by the item margin.\n */\n const hasStartContent = (hasLabel && (labelPlacement === 'start' || labelPlacement === 'fixed')) || this.hasStartSlotContent;\n const needsStartAdjustment = inItem && !hasStartContent;\n /**\n * If there is no end content then the knob at\n * the max value will be cut off by the item margin.\n */\n const hasEndContent = (hasLabel && labelPlacement === 'end') || this.hasEndSlotContent;\n const needsEndAdjustment = inItem && !hasEndContent;\n const mode = getIonMode(this);\n renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);\n return (h(Host, { key: 'ef7b01f80515bcaeb2983934ad7f10a6bd5d13ec', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {\n [mode]: true,\n 'in-item': inItem,\n 'range-disabled': disabled,\n 'range-pressed': pressedKnob !== undefined,\n 'range-has-pin': pin,\n [`range-label-placement-${labelPlacement}`]: true,\n 'range-item-start-adjustment': needsStartAdjustment,\n 'range-item-end-adjustment': needsEndAdjustment,\n }) }, h(\"label\", { key: 'fd8aa90a9d52be9da024b907e68858dae424449d', class: \"range-wrapper\", id: \"range-label\" }, h(\"div\", { key: '2172b4f329c22017dd23475c80aac25ba6e753eb', class: {\n 'label-text-wrapper': true,\n 'label-text-wrapper-hidden': !hasLabel,\n }, part: \"label\" }, label !== undefined ? h(\"div\", { class: \"label-text\" }, label) : h(\"slot\", { name: \"label\" })), h(\"div\", { key: '3c318bf2ea0576646d4c010bf44573fd0f483186', class: \"native-wrapper\" }, h(\"slot\", { key: '6586fd6fc96271e73f8a86c202d1913ad1a26f96', name: \"start\" }), this.renderRangeSlider(), h(\"slot\", { key: '74ac0bc2d2cb66ef708bb729f88b6ecbc1b2155d', name: \"end\" })))));\n }\n static get is() { return \"ion-range\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"ios\": [\"range.ios.scss\"],\n \"md\": [\"range.md.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"ios\": [\"range.ios.css\"],\n \"md\": [\"range.md.css\"]\n };\n }\n static get properties() {\n return {\n \"color\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Color\",\n \"resolved\": \"\\\"danger\\\" | \\\"dark\\\" | \\\"light\\\" | \\\"medium\\\" | \\\"primary\\\" | \\\"secondary\\\" | \\\"success\\\" | \\\"tertiary\\\" | \\\"warning\\\" | string & Record<never, never> | undefined\",\n \"references\": {\n \"Color\": {\n \"location\": \"import\",\n \"path\": \"../../interface\",\n \"id\": \"src/interface.d.ts::Color\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The color to use from your application's color palette.\\nDefault options are: `\\\"primary\\\"`, `\\\"secondary\\\"`, `\\\"tertiary\\\"`, `\\\"success\\\"`, `\\\"warning\\\"`, `\\\"danger\\\"`, `\\\"light\\\"`, `\\\"medium\\\"`, and `\\\"dark\\\"`.\\nFor more information on colors, see [theming](/docs/theming/basics).\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": true,\n \"attribute\": \"color\"\n },\n \"debounce\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How long, in milliseconds, to wait to trigger the\\n`ionInput` event after each change in the range value.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"debounce\"\n },\n \"name\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The name of the control, which is submitted with the form data.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"name\",\n \"defaultValue\": \"this.rangeId\"\n },\n \"label\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text to display as the control's label. Use this over the `label` slot if\\nyou only need plain text. The `label` property will take priority over the\\n`label` slot if both are used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"label\"\n },\n \"dualKnobs\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Show two knobs.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"dual-knobs\",\n \"defaultValue\": \"false\"\n },\n \"min\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Minimum integer value of the range.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"min\",\n \"defaultValue\": \"0\"\n },\n \"max\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Maximum integer value of the range.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"max\",\n \"defaultValue\": \"100\"\n },\n \"pin\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, a pin with integer value is shown when the knob\\nis pressed.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pin\",\n \"defaultValue\": \"false\"\n },\n \"pinFormatter\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"PinFormatter\",\n \"resolved\": \"(value: number) => string | number\",\n \"references\": {\n \"PinFormatter\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::PinFormatter\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A callback used to format the pin text.\\nBy default the pin text is set to `Math.round(value)`.\\n\\nSee https://ionicframework.com/docs/troubleshooting/runtime#accessing-this\\nif you need to access `this` from within the callback.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"defaultValue\": \"(value: number): number => Math.round(value)\"\n },\n \"snaps\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the knob snaps to tick marks evenly spaced based\\non the step property value.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"snaps\",\n \"defaultValue\": \"false\"\n },\n \"step\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies the value granularity.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"step\",\n \"defaultValue\": \"1\"\n },\n \"ticks\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, tick marks are displayed based on the step value.\\nOnly applies when `snaps` is `true`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"ticks\",\n \"defaultValue\": \"true\"\n },\n \"activeBarStart\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The start position of the range active bar. This feature is only available with a single knob (dualKnobs=\\\"false\\\").\\nValid values are greater than or equal to the min value and less than or equal to the max value.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"active-bar-start\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the user cannot interact with the range.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"disabled\",\n \"defaultValue\": \"false\"\n },\n \"value\": {\n \"type\": \"number\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"RangeValue\",\n \"resolved\": \"number | { lower: number; upper: number; }\",\n \"references\": {\n \"RangeValue\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::RangeValue\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"the value of the range.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"value\",\n \"defaultValue\": \"0\"\n },\n \"labelPlacement\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"'start' | 'end' | 'fixed' | 'stacked'\",\n \"resolved\": \"\\\"end\\\" | \\\"fixed\\\" | \\\"stacked\\\" | \\\"start\\\"\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Where to place the label relative to the range.\\n`\\\"start\\\"`: The label will appear to the left of the range in LTR and to the right in RTL.\\n`\\\"end\\\"`: The label will appear to the right of the range in LTR and to the left in RTL.\\n`\\\"fixed\\\"`: The label has the same behavior as `\\\"start\\\"` except it also has a fixed width. Long text will be truncated with ellipses (\\\"...\\\").\\n`\\\"stacked\\\"`: The label will appear above the range regardless of the direction.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"label-placement\",\n \"defaultValue\": \"'start'\"\n }\n };\n }\n static get states() {\n return {\n \"ratioA\": {},\n \"ratioB\": {},\n \"pressedKnob\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"ionChange\",\n \"name\": \"ionChange\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `ionChange` event is fired for `<ion-range>` elements when the user\\nmodifies the element's value:\\n- When the user releases the knob after dragging;\\n- When the user moves the knob with keyboard arrows\\n\\nThis event will not emit when programmatically setting the `value` property.\"\n },\n \"complexType\": {\n \"original\": \"RangeChangeEventDetail\",\n \"resolved\": \"RangeChangeEventDetail\",\n \"references\": {\n \"RangeChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::RangeChangeEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionInput\",\n \"name\": \"ionInput\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The `ionInput` event is fired for `<ion-range>` elements when the value\\nis modified. Unlike `ionChange`, `ionInput` is fired continuously\\nwhile the user is dragging the knob.\"\n },\n \"complexType\": {\n \"original\": \"RangeChangeEventDetail\",\n \"resolved\": \"RangeChangeEventDetail\",\n \"references\": {\n \"RangeChangeEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::RangeChangeEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionFocus\",\n \"name\": \"ionFocus\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the range has focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"ionBlur\",\n \"name\": \"ionBlur\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the range loses focus.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"ionKnobMoveStart\",\n \"name\": \"ionKnobMoveStart\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the user starts moving the range knob, whether through\\nmouse drag, touch gesture, or keyboard interaction.\"\n },\n \"complexType\": {\n \"original\": \"RangeKnobMoveStartEventDetail\",\n \"resolved\": \"RangeKnobMoveStartEventDetail\",\n \"references\": {\n \"RangeKnobMoveStartEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::RangeKnobMoveStartEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionKnobMoveEnd\",\n \"name\": \"ionKnobMoveEnd\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the user finishes moving the range knob, whether through\\nmouse drag, touch gesture, or keyboard interaction.\"\n },\n \"complexType\": {\n \"original\": \"RangeKnobMoveEndEventDetail\",\n \"resolved\": \"RangeKnobMoveEndEventDetail\",\n \"references\": {\n \"RangeKnobMoveEndEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./range-interface\",\n \"id\": \"src/components/range/range-interface.ts::RangeKnobMoveEndEventDetail\"\n }\n }\n }\n }];\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"debounce\",\n \"methodName\": \"debounceChanged\"\n }, {\n \"propName\": \"min\",\n \"methodName\": \"minChanged\"\n }, {\n \"propName\": \"max\",\n \"methodName\": \"maxChanged\"\n }, {\n \"propName\": \"step\",\n \"methodName\": \"stepChanged\"\n }, {\n \"propName\": \"activeBarStart\",\n \"methodName\": \"activeBarStartChanged\"\n }, {\n \"propName\": \"disabled\",\n \"methodName\": \"disabledChanged\"\n }, {\n \"propName\": \"value\",\n \"methodName\": \"valueChanged\"\n }];\n }\n}\nconst renderKnob = (rtl, { knob, value, ratio, min, max, disabled, pressed, pin, handleKeyboard, pinFormatter, inheritedAttributes, onKnobFocus, onKnobBlur, }) => {\n const start = rtl ? 'right' : 'left';\n const knobStyle = () => {\n const style = {};\n style[start] = `${ratio * 100}%`;\n return style;\n };\n // The aria label should be preferred over visible text if both are specified\n const ariaLabel = inheritedAttributes['aria-label'];\n return (h(\"div\", { onKeyDown: (ev) => {\n const key = ev.key;\n if (key === 'ArrowLeft' || key === 'ArrowDown') {\n handleKeyboard(knob, false);\n ev.preventDefault();\n ev.stopPropagation();\n }\n else if (key === 'ArrowRight' || key === 'ArrowUp') {\n handleKeyboard(knob, true);\n ev.preventDefault();\n ev.stopPropagation();\n }\n }, onFocus: () => onKnobFocus(knob), onBlur: onKnobBlur, class: {\n 'range-knob-handle': true,\n 'range-knob-a': knob === 'A',\n 'range-knob-b': knob === 'B',\n 'range-knob-pressed': pressed,\n 'range-knob-min': value === min,\n 'range-knob-max': value === max,\n 'ion-activatable': true,\n 'ion-focusable': true,\n }, style: knobStyle(), role: \"slider\", tabindex: disabled ? -1 : 0, \"aria-label\": ariaLabel !== undefined ? ariaLabel : null, \"aria-labelledby\": ariaLabel === undefined ? 'range-label' : null, \"aria-valuemin\": min, \"aria-valuemax\": max, \"aria-disabled\": disabled ? 'true' : null, \"aria-valuenow\": value }, pin && (h(\"div\", { class: \"range-pin\", role: \"presentation\", part: \"pin\" }, pinFormatter(value))), h(\"div\", { class: \"range-knob\", role: \"presentation\", part: \"knob\" })));\n};\nconst ratioToValue = (ratio, min, max, step) => {\n let value = (max - min) * ratio;\n if (step > 0) {\n // round to nearest multiple of step, then add min\n value = Math.round(value / step) * step + min;\n }\n const clampedValue = clamp(min, value, max);\n return roundToMaxDecimalPlaces(clampedValue, min, max, step);\n};\nconst valueToRatio = (value, min, max) => {\n return clamp(0, (value - min) / (max - min), 1);\n};\nlet rangeIds = 0;\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ion-refresher-content.entry.js","sources":["node_modules/@ionic/core/dist/collection/components/refresher-content/refresher-content.js"],"sourcesContent":["/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Host, h } from \"@stencil/core\";\nimport { ENABLE_HTML_CONTENT_DEFAULT } from \"../../utils/config\";\nimport { sanitizeDOMString } from \"../../utils/sanitization/index\";\nimport { arrowDown, caretBackSharp } from \"ionicons/icons\";\nimport { config } from \"../../global/config\";\nimport { getIonMode } from \"../../global/ionic-global\";\nimport { supportsRubberBandScrolling } from \"../refresher/refresher.utils\";\nimport { SPINNERS } from \"../spinner/spinner-configs\";\nexport class RefresherContent {\n constructor() {\n this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);\n }\n componentWillLoad() {\n if (this.pullingIcon === undefined) {\n /**\n * The native iOS refresher uses a spinner instead of\n * an icon, so we need to see if this device supports\n * the native iOS refresher.\n */\n const hasRubberBandScrolling = supportsRubberBandScrolling();\n const mode = getIonMode(this);\n const overflowRefresher = hasRubberBandScrolling ? 'lines' : arrowDown;\n this.pullingIcon = config.get('refreshingIcon', mode === 'ios' && hasRubberBandScrolling ? config.get('spinner', overflowRefresher) : 'circular');\n }\n if (this.refreshingSpinner === undefined) {\n const mode = getIonMode(this);\n this.refreshingSpinner = config.get('refreshingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'circular'));\n }\n }\n renderPullingText() {\n const { customHTMLEnabled, pullingText } = this;\n if (customHTMLEnabled) {\n return h(\"div\", { class: \"refresher-pulling-text\", innerHTML: sanitizeDOMString(pullingText) });\n }\n return h(\"div\", { class: \"refresher-pulling-text\" }, pullingText);\n }\n renderRefreshingText() {\n const { customHTMLEnabled, refreshingText } = this;\n if (customHTMLEnabled) {\n return h(\"div\", { class: \"refresher-refreshing-text\", innerHTML: sanitizeDOMString(refreshingText) });\n }\n return h(\"div\", { class: \"refresher-refreshing-text\" }, refreshingText);\n }\n render() {\n const pullingIcon = this.pullingIcon;\n const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;\n const mode = getIonMode(this);\n return (h(Host, { key: 'e235f8a9a84070ece2e2066ced234a64663bfa1d', class: mode }, h(\"div\", { key: '9121691818ddaa35801a5f442e144ac27686cf19', class: \"refresher-pulling\" }, this.pullingIcon && hasSpinner && (h(\"div\", { key: 'c8d65d740f1575041bd3b752c789077927397fe4', class: \"refresher-pulling-icon\" }, h(\"div\", { key: '309dd904977eaa788b09ea95b7fa4996a73bec5b', class: \"spinner-arrow-container\" }, h(\"ion-spinner\", { key: 'a2a1480f67775d56ca7822e76be1e9f983bca2f9', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h(\"div\", { key: '811d7e06d324bf4b6a18a31427a43e5177f3ae3a', class: \"arrow-container\" }, h(\"ion-icon\", { key: '86cc48e2e8dc054ff6ff1299094da35b524be63d', icon: caretBackSharp, \"aria-hidden\": \"true\" })))))), this.pullingIcon && !hasSpinner && (h(\"div\", { key: '464ae097dbc95c18a2dd7dfd03f8489153dab719', class: \"refresher-pulling-icon\" }, h(\"ion-icon\", { key: 'ed6875978b9035add562caa743a68353743d978f', icon: this.pullingIcon, lazy: false, \"aria-hidden\": \"true\" }))), this.pullingText !== undefined && this.renderPullingText()), h(\"div\", { key: 'aff891924e44354543fec484e5cde1ca92e69904', class: \"refresher-refreshing\" }, this.refreshingSpinner && (h(\"div\", { key: '842d7ac4ff10a1058775493d62f31cbdcd34f7a0', class: \"refresher-refreshing-icon\" }, h(\"ion-spinner\", { key: '8c3e6195501e7e78d5cde1e3ad1fef90fd4a953f', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));\n }\n static get is() { return \"ion-refresher-content\"; }\n static get properties() {\n return {\n \"pullingIcon\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"SpinnerTypes | string | null\",\n \"resolved\": \"null | string | undefined\",\n \"references\": {\n \"SpinnerTypes\": {\n \"location\": \"import\",\n \"path\": \"../spinner/spinner-configs\",\n \"id\": \"src/components/spinner/spinner-configs.ts::SpinnerTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A static icon or a spinner to display when you begin to pull down.\\nA spinner name can be provided to gradually show tick marks\\nwhen pulling down on iOS devices.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pulling-icon\"\n },\n \"pullingText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | IonicSafeString\",\n \"resolved\": \"IonicSafeString | string | undefined\",\n \"references\": {\n \"IonicSafeString\": {\n \"location\": \"import\",\n \"path\": \"../../utils/sanitization\",\n \"id\": \"src/utils/sanitization/index.ts::IonicSafeString\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text you want to display when you begin to pull down.\\n`pullingText` can accept either plaintext or HTML as a string.\\nTo display characters normally reserved for HTML, they\\nmust be escaped. For example `<Ionic>` would become\\n`&lt;Ionic&gt;`\\n\\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\\n\\nContent is parsed as plaintext by default.\\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\\nbefore custom HTML can be used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pulling-text\"\n },\n \"refreshingSpinner\": {\n \"type\": \"string\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"SpinnerTypes | null\",\n \"resolved\": \"\\\"bubbles\\\" | \\\"circles\\\" | \\\"circular\\\" | \\\"crescent\\\" | \\\"dots\\\" | \\\"lines\\\" | \\\"lines-sharp\\\" | \\\"lines-sharp-small\\\" | \\\"lines-small\\\" | null | undefined\",\n \"references\": {\n \"SpinnerTypes\": {\n \"location\": \"import\",\n \"path\": \"../spinner/spinner-configs\",\n \"id\": \"src/components/spinner/spinner-configs.ts::SpinnerTypes\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"An animated SVG spinner that shows when refreshing begins\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"refreshing-spinner\"\n },\n \"refreshingText\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string | IonicSafeString\",\n \"resolved\": \"IonicSafeString | string | undefined\",\n \"references\": {\n \"IonicSafeString\": {\n \"location\": \"import\",\n \"path\": \"../../utils/sanitization\",\n \"id\": \"src/utils/sanitization/index.ts::IonicSafeString\"\n }\n }\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The text you want to display when performing a refresh.\\n`refreshingText` can accept either plaintext or HTML as a string.\\nTo display characters normally reserved for HTML, they\\nmust be escaped. For example `<Ionic>` would become\\n`&lt;Ionic&gt;`\\n\\nFor more information: [Security Documentation](https://ionicframework.com/docs/faq/security)\\n\\nContent is parsed as plaintext by default.\\n`innerHTMLTemplatesEnabled` must be set to `true` in the Ionic config\\nbefore custom HTML can be used.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"refreshing-text\"\n }\n };\n }\n static get elementRef() { return \"el\"; }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ion-refresher.entry.js","sources":["node_modules/@ionic/core/dist/collection/components/refresher/refresher.ios.css?tag=ion-refresher&mode=ios","node_modules/@ionic/core/dist/collection/components/refresher/refresher.md.css?tag=ion-refresher&mode=md","node_modules/@ionic/core/dist/collection/components/refresher/refresher.js"],"sourcesContent":["/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\nion-refresher {\n top: 0;\n display: none;\n position: absolute;\n width: 100%;\n height: 60px;\n pointer-events: none;\n z-index: -1;\n}\nion-refresher {\n inset-inline-start: 0;\n}\n\nion-refresher.refresher-active {\n display: block;\n}\n\nion-refresher-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.refresher-pulling,\n.refresher-refreshing {\n display: none;\n width: 100%;\n}\n\n.refresher-pulling-icon,\n.refresher-refreshing-icon {\n transform-origin: center;\n transition: 200ms;\n font-size: 30px;\n text-align: center;\n}\n:host-context([dir=rtl]) .refresher-pulling-icon, :host-context([dir=rtl]) .refresher-refreshing-icon {\n transform-origin: calc(100% - center);\n}\n\n[dir=rtl] .refresher-pulling-icon, [dir=rtl] .refresher-refreshing-icon {\n transform-origin: calc(100% - center);\n}\n\n@supports selector(:dir(rtl)) {\n .refresher-pulling-icon:dir(rtl), .refresher-refreshing-icon:dir(rtl) {\n transform-origin: calc(100% - center);\n }\n}\n\n.refresher-pulling-text,\n.refresher-refreshing-text {\n font-size: 16px;\n text-align: center;\n}\n\nion-refresher-content .arrow-container {\n display: none;\n}\n\n.refresher-pulling ion-refresher-content .refresher-pulling {\n display: block;\n}\n\n.refresher-ready ion-refresher-content .refresher-pulling {\n display: block;\n}\n.refresher-ready ion-refresher-content .refresher-pulling-icon {\n transform: rotate(180deg);\n}\n\n.refresher-refreshing ion-refresher-content .refresher-refreshing {\n display: block;\n}\n\n.refresher-cancelling ion-refresher-content .refresher-pulling {\n display: block;\n}\n.refresher-cancelling ion-refresher-content .refresher-pulling-icon {\n transform: scale(0);\n}\n\n.refresher-completing ion-refresher-content .refresher-refreshing {\n display: block;\n}\n.refresher-completing ion-refresher-content .refresher-refreshing-icon {\n transform: scale(0);\n}\n\n.refresher-native .refresher-pulling-text, .refresher-native .refresher-refreshing-text {\n display: none;\n}\n\n/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n.refresher-ios .refresher-pulling-icon,\n.refresher-ios .refresher-refreshing-icon {\n color: var(--ion-text-color, #000);\n}\n\n.refresher-ios .refresher-pulling-text,\n.refresher-ios .refresher-refreshing-text {\n color: var(--ion-text-color, #000);\n}\n\n.refresher-ios .refresher-refreshing .spinner-lines-ios line,\n.refresher-ios .refresher-refreshing .spinner-lines-small-ios line,\n.refresher-ios .refresher-refreshing .spinner-crescent circle {\n stroke: var(--ion-text-color, #000);\n}\n\n.refresher-ios .refresher-refreshing .spinner-bubbles circle,\n.refresher-ios .refresher-refreshing .spinner-circles circle,\n.refresher-ios .refresher-refreshing .spinner-dots circle {\n fill: var(--ion-text-color, #000);\n}\n\nion-refresher.refresher-native {\n display: block;\n z-index: 1;\n}\nion-refresher.refresher-native ion-spinner {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.refresher-native .refresher-refreshing ion-spinner {\n --refreshing-rotation-duration: 2s;\n display: none;\n animation: var(--refreshing-rotation-duration) ease-out refresher-rotate forwards;\n}\n\n.refresher-native .refresher-refreshing {\n display: none;\n animation: 250ms linear refresher-pop forwards;\n}\n\n.refresher-native ion-spinner {\n width: 32px;\n height: 32px;\n color: var(--ion-color-step-450, var(--ion-background-color-step-450, #747577));\n}\n\n.refresher-native.refresher-refreshing .refresher-pulling ion-spinner,\n.refresher-native.refresher-completing .refresher-pulling ion-spinner {\n display: none;\n}\n.refresher-native.refresher-refreshing .refresher-refreshing ion-spinner,\n.refresher-native.refresher-completing .refresher-refreshing ion-spinner {\n display: block;\n}\n\n.refresher-native.refresher-pulling .refresher-pulling ion-spinner {\n display: block;\n}\n.refresher-native.refresher-pulling .refresher-refreshing ion-spinner {\n display: none;\n}\n\n.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing-icon {\n transform: scale(0) rotate(180deg);\n transition: 300ms;\n}\n\n@keyframes refresher-pop {\n 0% {\n transform: scale(1);\n animation-timing-function: ease-in;\n }\n 50% {\n transform: scale(1.2);\n animation-timing-function: ease-out;\n }\n 100% {\n transform: scale(1);\n }\n}\n@keyframes refresher-rotate {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(180deg);\n }\n}","/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\nion-refresher {\n top: 0;\n display: none;\n position: absolute;\n width: 100%;\n height: 60px;\n pointer-events: none;\n z-index: -1;\n}\nion-refresher {\n inset-inline-start: 0;\n}\n\nion-refresher.refresher-active {\n display: block;\n}\n\nion-refresher-content {\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.refresher-pulling,\n.refresher-refreshing {\n display: none;\n width: 100%;\n}\n\n.refresher-pulling-icon,\n.refresher-refreshing-icon {\n transform-origin: center;\n transition: 200ms;\n font-size: 30px;\n text-align: center;\n}\n:host-context([dir=rtl]) .refresher-pulling-icon, :host-context([dir=rtl]) .refresher-refreshing-icon {\n transform-origin: calc(100% - center);\n}\n\n[dir=rtl] .refresher-pulling-icon, [dir=rtl] .refresher-refreshing-icon {\n transform-origin: calc(100% - center);\n}\n\n@supports selector(:dir(rtl)) {\n .refresher-pulling-icon:dir(rtl), .refresher-refreshing-icon:dir(rtl) {\n transform-origin: calc(100% - center);\n }\n}\n\n.refresher-pulling-text,\n.refresher-refreshing-text {\n font-size: 16px;\n text-align: center;\n}\n\nion-refresher-content .arrow-container {\n display: none;\n}\n\n.refresher-pulling ion-refresher-content .refresher-pulling {\n display: block;\n}\n\n.refresher-ready ion-refresher-content .refresher-pulling {\n display: block;\n}\n.refresher-ready ion-refresher-content .refresher-pulling-icon {\n transform: rotate(180deg);\n}\n\n.refresher-refreshing ion-refresher-content .refresher-refreshing {\n display: block;\n}\n\n.refresher-cancelling ion-refresher-content .refresher-pulling {\n display: block;\n}\n.refresher-cancelling ion-refresher-content .refresher-pulling-icon {\n transform: scale(0);\n}\n\n.refresher-completing ion-refresher-content .refresher-refreshing {\n display: block;\n}\n.refresher-completing ion-refresher-content .refresher-refreshing-icon {\n transform: scale(0);\n}\n\n.refresher-native .refresher-pulling-text, .refresher-native .refresher-refreshing-text {\n display: none;\n}\n\n/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n.refresher-md .refresher-pulling-icon,\n.refresher-md .refresher-refreshing-icon {\n color: var(--ion-text-color, #000);\n}\n\n.refresher-md .refresher-pulling-text,\n.refresher-md .refresher-refreshing-text {\n color: var(--ion-text-color, #000);\n}\n\n.refresher-md .refresher-refreshing .spinner-lines-md line,\n.refresher-md .refresher-refreshing .spinner-lines-small-md line,\n.refresher-md .refresher-refreshing .spinner-crescent circle {\n stroke: var(--ion-text-color, #000);\n}\n\n.refresher-md .refresher-refreshing .spinner-bubbles circle,\n.refresher-md .refresher-refreshing .spinner-circles circle,\n.refresher-md .refresher-refreshing .spinner-dots circle {\n fill: var(--ion-text-color, #000);\n}\n\nion-refresher.refresher-native {\n display: block;\n z-index: 1;\n}\nion-refresher.refresher-native ion-spinner {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n margin-top: 0;\n margin-bottom: 0;\n width: 24px;\n height: 24px;\n color: var(--ion-color-primary, #0054e9);\n}\nion-refresher.refresher-native .spinner-arrow-container {\n display: inherit;\n}\nion-refresher.refresher-native .arrow-container {\n display: block;\n position: absolute;\n width: 24px;\n height: 24px;\n}\nion-refresher.refresher-native .arrow-container ion-icon {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n margin-top: 0;\n margin-bottom: 0;\n left: 0;\n right: 0;\n bottom: -4px;\n position: absolute;\n color: var(--ion-color-primary, #0054e9);\n font-size: 12px;\n}\nion-refresher.refresher-native.refresher-pulling ion-refresher-content .refresher-pulling, ion-refresher.refresher-native.refresher-ready ion-refresher-content .refresher-pulling {\n display: flex;\n}\nion-refresher.refresher-native.refresher-refreshing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-completing ion-refresher-content .refresher-refreshing, ion-refresher.refresher-native.refresher-cancelling ion-refresher-content .refresher-refreshing {\n display: flex;\n}\nion-refresher.refresher-native .refresher-pulling-icon {\n transform: translateY(calc(-100% - 10px));\n}\nion-refresher.refresher-native .refresher-pulling-icon,\nion-refresher.refresher-native .refresher-refreshing-icon {\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n -webkit-margin-end: auto;\n margin-inline-end: auto;\n margin-top: 0;\n margin-bottom: 0;\n border-radius: 100%;\n -webkit-padding-start: 8px;\n padding-inline-start: 8px;\n -webkit-padding-end: 8px;\n padding-inline-end: 8px;\n padding-top: 8px;\n padding-bottom: 8px;\n display: flex;\n border: 1px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #ececec));\n background: var(--ion-color-step-250, var(--ion-background-color-step-250, #ffffff));\n box-shadow: 0px 1px 6px rgba(0, 0, 0, 0.1);\n}","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Host, h, readTask, writeTask } from \"@stencil/core\";\nimport { getTimeGivenProgression } from \"../../utils/animation/cubic-bezier\";\nimport { getScrollElement, ION_CONTENT_CLASS_SELECTOR, ION_CONTENT_ELEMENT_SELECTOR, printIonContentErrorMsg, } from \"../../utils/content/index\";\nimport { clamp, componentOnReady, getElementRoot, raf, transitionEndAsync } from \"../../utils/helpers\";\nimport { printIonError } from \"../../utils/logging/index\";\nimport { ImpactStyle, hapticImpact } from \"../../utils/native/haptic\";\nimport { getIonMode } from \"../../global/ionic-global\";\nimport { createPullingAnimation, createSnapBackAnimation, getRefresherAnimationType, handleScrollWhilePulling, handleScrollWhileRefreshing, setSpinnerOpacity, shouldUseNativeRefresher, translateElement, } from \"./refresher.utils\";\n/**\n * @virtualProp {\"ios\" | \"md\"} mode - The mode determines which platform styles to use.\n */\nexport class Refresher {\n constructor() {\n this.appliedStyles = false;\n this.didStart = false;\n this.progress = 0;\n this.pointerDown = false;\n this.needsCompletion = false;\n this.didRefresh = false;\n this.contentFullscreen = false;\n this.lastVelocityY = 0;\n this.animations = [];\n this.nativeRefresher = false;\n /**\n * The current state which the refresher is in. The refresher's states include:\n *\n * - `inactive` - The refresher is not being pulled down or refreshing and is currently hidden.\n * - `pulling` - The user is actively pulling down the refresher, but has not reached the point yet that if the user lets go, it'll refresh.\n * - `cancelling` - The user pulled down the refresher and let go, but did not pull down far enough to kick off the `refreshing` state. After letting go, the refresher is in the `cancelling` state while it is closing, and will go back to the `inactive` state once closed.\n * - `ready` - The user has pulled down the refresher far enough that if they let go, it'll begin the `refreshing` state.\n * - `refreshing` - The refresher is actively waiting on the async operation to end. Once the refresh handler calls `complete()` it will begin the `completing` state.\n * - `completing` - The `refreshing` state has finished and the refresher is in the way of closing itself. Once closed, the refresher will go back to the `inactive` state.\n */\n this.state = 1 /* RefresherState.Inactive */;\n /**\n * The minimum distance the user must pull down until the\n * refresher will go into the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMin = 60;\n /**\n * The maximum distance of the pull until the refresher\n * will automatically go into the `refreshing` state.\n * Defaults to the result of `pullMin + 60`.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullMax = this.pullMin + 60;\n /**\n * Time it takes to close the refresher.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.closeDuration = '280ms';\n /**\n * Time it takes the refresher to snap back to the `refreshing` state.\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.snapbackDuration = '280ms';\n /**\n * How much to multiply the pull speed by. To slow the pull animation down,\n * pass a number less than `1`. To speed up the pull, pass a number greater\n * than `1`. The default value is `1` which is equal to the speed of the cursor.\n * If a negative value is passed in, the factor will be `1` instead.\n *\n * For example: If the value passed is `1.2` and the content is dragged by\n * `10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\n * (an increase of 20 percent). If the value passed is `0.8`, the dragged amount\n * will be `8` pixels, less than the amount the cursor has moved.\n *\n * Does not apply when the refresher content uses a spinner,\n * enabling the native refresher.\n */\n this.pullFactor = 1;\n /**\n * If `true`, the refresher will be hidden.\n */\n this.disabled = false;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async checkNativeRefresher() {\n const useNativeRefresher = await shouldUseNativeRefresher(this.el, getIonMode(this));\n if (useNativeRefresher && !this.nativeRefresher) {\n const contentEl = this.el.closest('ion-content');\n this.setupNativeRefresher(contentEl);\n }\n else if (!useNativeRefresher) {\n this.destroyNativeRefresher();\n }\n }\n destroyNativeRefresher() {\n if (this.scrollEl && this.scrollListenerCallback) {\n this.scrollEl.removeEventListener('scroll', this.scrollListenerCallback);\n this.scrollListenerCallback = undefined;\n }\n this.nativeRefresher = false;\n }\n async resetNativeRefresher(el, state) {\n this.state = state;\n if (getIonMode(this) === 'ios') {\n await translateElement(el, undefined, 300);\n }\n else {\n await transitionEndAsync(this.el.querySelector('.refresher-refreshing-icon'), 200);\n }\n this.didRefresh = false;\n this.needsCompletion = false;\n this.pointerDown = false;\n this.animations.forEach((ani) => ani.destroy());\n this.animations = [];\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n }\n async setupiOSNativeRefresher(pullingSpinner, refreshingSpinner) {\n this.elementToTransform = this.scrollEl;\n const ticks = pullingSpinner.shadowRoot.querySelectorAll('svg');\n let MAX_PULL = this.scrollEl.clientHeight * 0.16;\n const NUM_TICKS = ticks.length;\n writeTask(() => ticks.forEach((el) => el.style.setProperty('animation', 'none')));\n this.scrollListenerCallback = () => {\n // If pointer is not on screen or refresher is not active, ignore scroll\n if (!this.pointerDown && this.state === 1 /* RefresherState.Inactive */) {\n return;\n }\n readTask(() => {\n // PTR should only be active when overflow scrolling at the top\n const scrollTop = this.scrollEl.scrollTop;\n const refresherHeight = this.el.clientHeight;\n if (scrollTop > 0) {\n /**\n * If refresher is refreshing and user tries to scroll\n * progressively fade refresher out/in\n */\n if (this.state === 8 /* RefresherState.Refreshing */) {\n const ratio = clamp(0, scrollTop / (refresherHeight * 0.5), 1);\n writeTask(() => setSpinnerOpacity(refreshingSpinner, 1 - ratio));\n return;\n }\n return;\n }\n if (this.pointerDown) {\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n if (this.pointerDown) {\n this.ionPull.emit();\n }\n }\n /**\n * We want to delay the start of this gesture by ~30px\n * when initially pulling down so the refresher does not\n * overlap with the content. But when letting go of the\n * gesture before the refresher completes, we want the\n * refresher tick marks to quickly fade out.\n */\n const offset = this.didStart ? 30 : 0;\n const pullAmount = (this.progress = clamp(0, (Math.abs(scrollTop) - offset) / MAX_PULL, 1));\n const shouldShowRefreshingSpinner = this.state === 8 /* RefresherState.Refreshing */ || pullAmount === 1;\n if (shouldShowRefreshingSpinner) {\n if (this.pointerDown) {\n handleScrollWhileRefreshing(refreshingSpinner, this.lastVelocityY);\n }\n if (!this.didRefresh) {\n this.beginRefresh();\n this.didRefresh = true;\n hapticImpact({ style: ImpactStyle.Light });\n /**\n * Clear focus from any active element to prevent scroll jumps\n * when the refresh completes\n */\n const activeElement = document.activeElement;\n if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {\n activeElement.blur();\n }\n /**\n * Translate the content element otherwise when pointer is removed\n * from screen the scroll content will bounce back over the refresher\n */\n if (!this.pointerDown) {\n translateElement(this.elementToTransform, `${refresherHeight}px`);\n }\n }\n }\n else {\n this.state = 2 /* RefresherState.Pulling */;\n handleScrollWhilePulling(ticks, NUM_TICKS, pullAmount);\n }\n });\n };\n this.scrollEl.addEventListener('scroll', this.scrollListenerCallback);\n this.gesture = (await import('../../utils/gesture')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 5,\n onStart: () => {\n this.pointerDown = true;\n if (!this.didRefresh) {\n translateElement(this.elementToTransform, '0px');\n }\n /**\n * If the content had `display: none` when\n * the refresher was initialized, its clientHeight\n * will be 0. When the gesture starts, the content\n * will be visible, so try to get the correct\n * client height again. This is most common when\n * using the refresher in an ion-menu.\n */\n if (MAX_PULL === 0) {\n MAX_PULL = this.scrollEl.clientHeight * 0.16;\n }\n },\n onMove: (ev) => {\n this.lastVelocityY = ev.velocityY;\n },\n onEnd: () => {\n this.pointerDown = false;\n this.didStart = false;\n if (this.needsCompletion) {\n this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */);\n this.needsCompletion = false;\n }\n else if (this.didRefresh) {\n readTask(() => translateElement(this.elementToTransform, `${this.el.clientHeight}px`));\n }\n },\n });\n this.disabledChanged();\n }\n async setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner) {\n const circle = getElementRoot(pullingSpinner).querySelector('circle');\n const pullingRefresherIcon = this.el.querySelector('ion-refresher-content .refresher-pulling-icon');\n const refreshingCircle = getElementRoot(refreshingSpinner).querySelector('circle');\n if (circle !== null && refreshingCircle !== null) {\n writeTask(() => {\n circle.style.setProperty('animation', 'none');\n // This lines up the animation on the refreshing spinner with the pulling spinner\n refreshingSpinner.style.setProperty('animation-delay', '-655ms');\n refreshingCircle.style.setProperty('animation-delay', '-655ms');\n });\n }\n this.gesture = (await import('../../utils/gesture')).createGesture({\n el: this.scrollEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 5,\n canStart: () => this.state !== 8 /* RefresherState.Refreshing */ &&\n this.state !== 32 /* RefresherState.Completing */ &&\n this.scrollEl.scrollTop === 0,\n onStart: (ev) => {\n this.progress = 0;\n ev.data = { animation: undefined, didStart: false, cancelled: false };\n },\n onMove: (ev) => {\n if ((ev.velocityY < 0 && this.progress === 0 && !ev.data.didStart) || ev.data.cancelled) {\n ev.data.cancelled = true;\n return;\n }\n if (!ev.data.didStart) {\n ev.data.didStart = true;\n this.state = 2 /* RefresherState.Pulling */;\n // When ion-refresher is being used with a custom scroll target, the overflow styles need to be applied directly instead of via a css variable\n const { scrollEl } = this;\n const overflowProperty = scrollEl.matches(ION_CONTENT_CLASS_SELECTOR) ? 'overflow' : '--overflow';\n writeTask(() => scrollEl.style.setProperty(overflowProperty, 'hidden'));\n const animationType = getRefresherAnimationType(contentEl);\n const animation = createPullingAnimation(animationType, pullingRefresherIcon, this.el);\n ev.data.animation = animation;\n animation.progressStart(false, 0);\n this.ionStart.emit();\n this.animations.push(animation);\n return;\n }\n // Since we are using an easing curve, slow the gesture tracking down a bit\n this.progress = clamp(0, (ev.deltaY / 180) * 0.5, 1);\n ev.data.animation.progressStep(this.progress);\n this.ionPull.emit();\n },\n onEnd: (ev) => {\n if (!ev.data.didStart) {\n return;\n }\n this.gesture.enable(false);\n const { scrollEl } = this;\n const overflowProperty = scrollEl.matches(ION_CONTENT_CLASS_SELECTOR) ? 'overflow' : '--overflow';\n writeTask(() => scrollEl.style.removeProperty(overflowProperty));\n if (this.progress <= 0.4) {\n ev.data.animation.progressEnd(0, this.progress, 500).onFinish(() => {\n this.animations.forEach((ani) => ani.destroy());\n this.animations = [];\n this.gesture.enable(true);\n this.state = 1 /* RefresherState.Inactive */;\n });\n return;\n }\n const progress = getTimeGivenProgression([0, 0], [0, 0], [1, 1], [1, 1], this.progress)[0];\n const snapBackAnimation = createSnapBackAnimation(pullingRefresherIcon);\n this.animations.push(snapBackAnimation);\n writeTask(async () => {\n pullingRefresherIcon.style.setProperty('--ion-pulling-refresher-translate', `${progress * 100}px`);\n ev.data.animation.progressEnd();\n await snapBackAnimation.play();\n this.beginRefresh();\n ev.data.animation.destroy();\n this.gesture.enable(true);\n });\n },\n });\n this.disabledChanged();\n }\n async setupNativeRefresher(contentEl) {\n if (this.scrollListenerCallback || !contentEl || this.nativeRefresher || !this.scrollEl) {\n return;\n }\n /**\n * If using non-native refresher before make sure\n * we clean up any old CSS. This can happen when\n * a user manually calls the refresh method in a\n * component create callback before the native\n * refresher is setup.\n */\n this.setCss(0, '', false, '');\n this.nativeRefresher = true;\n const pullingSpinner = this.el.querySelector('ion-refresher-content .refresher-pulling ion-spinner');\n const refreshingSpinner = this.el.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');\n if (getIonMode(this) === 'ios') {\n this.setupiOSNativeRefresher(pullingSpinner, refreshingSpinner);\n }\n else {\n this.setupMDNativeRefresher(contentEl, pullingSpinner, refreshingSpinner);\n }\n }\n componentDidUpdate() {\n this.checkNativeRefresher();\n }\n async connectedCallback() {\n if (this.el.getAttribute('slot') !== 'fixed') {\n printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot=\"fixed\">');\n return;\n }\n const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);\n if (!contentEl) {\n printIonContentErrorMsg(this.el);\n return;\n }\n /**\n * Waits for the content to be ready before querying the scroll\n * or the background content element.\n */\n componentOnReady(contentEl, async () => {\n const customScrollTarget = contentEl.querySelector(ION_CONTENT_CLASS_SELECTOR);\n /**\n * Query the custom scroll target (if available), first. In refresher implementations,\n * the ion-refresher element will always be a direct child of ion-content (slot=\"fixed\"). By\n * querying the custom scroll target first and falling back to the ion-content element,\n * the correct scroll element will be returned by the implementation.\n */\n this.scrollEl = await getScrollElement(customScrollTarget !== null && customScrollTarget !== void 0 ? customScrollTarget : contentEl);\n /**\n * Query the background content element from the host ion-content element directly.\n */\n this.backgroundContentEl = await contentEl.getBackgroundElement();\n /**\n * Check if the content element is fullscreen to apply the correct styles\n * when the refresher is refreshing. Otherwise, the refresher will be\n * hidden because it is positioned behind the background content element.\n */\n this.contentFullscreen = contentEl.fullscreen;\n if (await shouldUseNativeRefresher(this.el, getIonMode(this))) {\n this.setupNativeRefresher(contentEl);\n }\n else {\n this.gesture = (await import('../../utils/gesture')).createGesture({\n el: contentEl,\n gestureName: 'refresher',\n gesturePriority: 31,\n direction: 'y',\n threshold: 20,\n passive: false,\n canStart: () => this.canStart(),\n onStart: () => this.onStart(),\n onMove: (ev) => this.onMove(ev),\n onEnd: () => this.onEnd(),\n });\n this.disabledChanged();\n }\n });\n }\n disconnectedCallback() {\n this.destroyNativeRefresher();\n this.scrollEl = undefined;\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /**\n * Call `complete()` when your async operation has completed.\n * For example, the `refreshing` state is while the app is performing\n * an asynchronous operation, such as receiving more data from an\n * AJAX request. Once the data has been received, you then call this\n * method to signify that the refreshing has completed and to close\n * the refresher. This method also changes the refresher's state from\n * `refreshing` to `completing`.\n */\n async complete() {\n if (this.nativeRefresher) {\n this.needsCompletion = true;\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 32 /* RefresherState.Completing */)));\n }\n }\n else {\n this.close(32 /* RefresherState.Completing */, '120ms');\n }\n }\n /**\n * Changes the refresher's state from `refreshing` to `cancelling`.\n */\n async cancel() {\n if (this.nativeRefresher) {\n // Do not reset scroll el until user removes pointer from screen\n if (!this.pointerDown) {\n raf(() => raf(() => this.resetNativeRefresher(this.elementToTransform, 16 /* RefresherState.Cancelling */)));\n }\n }\n else {\n this.close(16 /* RefresherState.Cancelling */, '');\n }\n }\n /**\n * A number representing how far down the user has pulled.\n * The number `0` represents the user hasn't pulled down at all. The\n * number `1`, and anything greater than `1`, represents that the user\n * has pulled far enough down that when they let go then the refresh will\n * happen. If they let go and the number is less than `1`, then the\n * refresh will not happen, and the content will return to it's original\n * position.\n */\n getProgress() {\n return Promise.resolve(this.progress);\n }\n canStart() {\n if (!this.scrollEl) {\n return false;\n }\n if (this.state !== 1 /* RefresherState.Inactive */) {\n return false;\n }\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (this.scrollEl.scrollTop > 0) {\n return false;\n }\n return true;\n }\n onStart() {\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n this.memoizeOverflowStyle();\n /**\n * If the content is fullscreen, then we need to\n * set the offset-top style on the background content\n * element to ensure that the refresher is shown.\n */\n if (this.contentFullscreen && this.backgroundContentEl) {\n this.backgroundContentEl.style.setProperty('--offset-top', '0px');\n }\n }\n onMove(detail) {\n if (!this.scrollEl) {\n return;\n }\n // this method can get called like a bazillion times per second,\n // so it's built to be as efficient as possible, and does its\n // best to do any DOM read/writes only when absolutely necessary\n // if multi-touch then get out immediately\n const ev = detail.event;\n if (ev.touches !== undefined && ev.touches.length > 1) {\n return;\n }\n // do nothing if it's actively refreshing\n // or it's in the way of closing\n // or this was never a startY\n if ((this.state & 56 /* RefresherState._BUSY_ */) !== 0) {\n return;\n }\n const pullFactor = Number.isNaN(this.pullFactor) || this.pullFactor < 0 ? 1 : this.pullFactor;\n const deltaY = detail.deltaY * pullFactor;\n // don't bother if they're scrolling up\n // and have not already started dragging\n if (deltaY <= 0) {\n // the current Y is higher than the starting Y\n // so they scrolled up enough to be ignored\n this.progress = 0;\n this.state = 1 /* RefresherState.Inactive */;\n if (this.appliedStyles) {\n // reset the styles only if they were applied\n this.setCss(0, '', false, '');\n return;\n }\n return;\n }\n if (this.state === 1 /* RefresherState.Inactive */) {\n // this refresh is not already actively pulling down\n // get the content's scrollTop\n const scrollHostScrollTop = this.scrollEl.scrollTop;\n // if the scrollTop is greater than zero then it's\n // not possible to pull the content down yet\n if (scrollHostScrollTop > 0) {\n this.progress = 0;\n return;\n }\n // content scrolled all the way to the top, and dragging down\n this.state = 2 /* RefresherState.Pulling */;\n }\n // prevent native scroll events\n if (ev.cancelable) {\n ev.preventDefault();\n }\n // the refresher is actively pulling at this point\n // move the scroll element within the content element\n this.setCss(deltaY, '0ms', true, '');\n if (deltaY === 0) {\n // don't continue if there's no delta yet\n this.progress = 0;\n return;\n }\n const pullMin = this.pullMin;\n // set pull progress\n this.progress = deltaY / pullMin;\n // emit \"start\" if it hasn't started yet\n if (!this.didStart) {\n this.didStart = true;\n this.ionStart.emit();\n }\n // emit \"pulling\" on every move\n this.ionPull.emit();\n // do nothing if the delta is less than the pull threshold\n if (deltaY < pullMin) {\n // ensure it stays in the pulling state, cuz its not ready yet\n this.state = 2 /* RefresherState.Pulling */;\n return;\n }\n if (deltaY > this.pullMax) {\n // they pulled farther than the max, so kick off the refresh\n this.beginRefresh();\n return;\n }\n // pulled farther than the pull min!!\n // it is now in the `ready` state!!\n // if they let go then it'll refresh, kerpow!!\n this.state = 4 /* RefresherState.Ready */;\n return;\n }\n onEnd() {\n // only run in a zone when absolutely necessary\n if (this.state === 4 /* RefresherState.Ready */) {\n // they pulled down far enough, so it's ready to refresh\n this.beginRefresh();\n }\n else if (this.state === 2 /* RefresherState.Pulling */) {\n // they were pulling down, but didn't pull down far enough\n // set the content back to it's original location\n // and close the refresher\n // set that the refresh is actively cancelling\n this.cancel();\n }\n else if (this.state === 1 /* RefresherState.Inactive */) {\n /**\n * The pull to refresh gesture was aborted\n * so we should immediately restore any overflow styles\n * that have been modified. Do not call this.cancel\n * because the styles will only be reset after a timeout.\n * If the gesture is aborted then scrolling should be\n * available right away.\n */\n this.restoreOverflowStyle();\n }\n }\n beginRefresh() {\n // assumes we're already back in a zone\n // they pulled down far enough, so it's ready to refresh\n this.state = 8 /* RefresherState.Refreshing */;\n // place the content in a hangout position while it thinks\n this.setCss(this.pullMin, this.snapbackDuration, true, '');\n /**\n * Clear focus from any active element to prevent the browser\n * from restoring focus and causing scroll jumps after refresh.\n * This ensures the view stays at the top after refresh completes.\n */\n const activeElement = document.activeElement;\n if ((activeElement === null || activeElement === void 0 ? void 0 : activeElement.blur) !== undefined) {\n activeElement.blur();\n }\n // emit \"refresh\" because it was pulled down far enough\n // and they let go to begin refreshing\n this.ionRefresh.emit({\n complete: this.complete.bind(this),\n });\n }\n close(state, delay) {\n // create fallback timer incase something goes wrong with transitionEnd event\n setTimeout(() => {\n var _a;\n this.state = 1 /* RefresherState.Inactive */;\n this.progress = 0;\n this.didStart = false;\n /**\n * Reset any overflow styles so the\n * user can scroll again.\n */\n this.setCss(0, '0ms', false, '', true);\n /**\n * Reset the offset-top style on the background content\n * when the refresher is no longer refreshing and the\n * content is fullscreen.\n *\n * This ensures that the behavior of background content\n * does not change when refreshing is complete.\n */\n if (this.contentFullscreen && this.backgroundContentEl) {\n (_a = this.backgroundContentEl) === null || _a === void 0 ? void 0 : _a.style.removeProperty('--offset-top');\n }\n }, 600);\n // reset the styles on the scroll element\n // set that the refresh is actively cancelling/completing\n this.state = state;\n this.setCss(0, this.closeDuration, true, delay);\n }\n setCss(y, duration, overflowVisible, delay, shouldRestoreOverflowStyle = false) {\n if (this.nativeRefresher) {\n return;\n }\n this.appliedStyles = y > 0;\n writeTask(() => {\n if (this.scrollEl && this.backgroundContentEl) {\n const scrollStyle = this.scrollEl.style;\n const backgroundStyle = this.backgroundContentEl.style;\n scrollStyle.transform = backgroundStyle.transform = y > 0 ? `translateY(${y}px) translateZ(0px)` : '';\n scrollStyle.transitionDuration = backgroundStyle.transitionDuration = duration;\n scrollStyle.transitionDelay = backgroundStyle.transitionDelay = delay;\n scrollStyle.overflow = overflowVisible ? 'hidden' : '';\n }\n /**\n * Reset the overflow styles only once\n * the pull to refresh effect has been closed.\n * This ensures that the gesture is done\n * and the refresh operation has either\n * been aborted or has completed.\n */\n if (shouldRestoreOverflowStyle) {\n this.restoreOverflowStyle();\n }\n });\n }\n memoizeOverflowStyle() {\n if (this.scrollEl) {\n const { overflow, overflowX, overflowY } = this.scrollEl.style;\n this.overflowStyles = {\n overflow: overflow !== null && overflow !== void 0 ? overflow : '',\n overflowX: overflowX !== null && overflowX !== void 0 ? overflowX : '',\n overflowY: overflowY !== null && overflowY !== void 0 ? overflowY : '',\n };\n }\n }\n restoreOverflowStyle() {\n if (this.overflowStyles !== undefined && this.scrollEl !== undefined) {\n const { overflow, overflowX, overflowY } = this.overflowStyles;\n this.scrollEl.style.overflow = overflow;\n this.scrollEl.style.overflowX = overflowX;\n this.scrollEl.style.overflowY = overflowY;\n this.overflowStyles = undefined;\n }\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { key: '2d1bd880877b698604542ab2d602d38b9504d975', slot: \"fixed\", class: {\n [mode]: true,\n // Used internally for styling\n [`refresher-${mode}`]: true,\n 'refresher-native': this.nativeRefresher,\n 'refresher-active': this.state !== 1 /* RefresherState.Inactive */,\n 'refresher-pulling': this.state === 2 /* RefresherState.Pulling */,\n 'refresher-ready': this.state === 4 /* RefresherState.Ready */,\n 'refresher-refreshing': this.state === 8 /* RefresherState.Refreshing */,\n 'refresher-cancelling': this.state === 16 /* RefresherState.Cancelling */,\n 'refresher-completing': this.state === 32 /* RefresherState.Completing */,\n } }));\n }\n static get is() { return \"ion-refresher\"; }\n static get originalStyleUrls() {\n return {\n \"ios\": [\"refresher.ios.scss\"],\n \"md\": [\"refresher.md.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"ios\": [\"refresher.ios.css\"],\n \"md\": [\"refresher.md.css\"]\n };\n }\n static get properties() {\n return {\n \"pullMin\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The minimum distance the user must pull down until the\\nrefresher will go into the `refreshing` state.\\nDoes not apply when the refresher content uses a spinner,\\nenabling the native refresher.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pull-min\",\n \"defaultValue\": \"60\"\n },\n \"pullMax\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The maximum distance of the pull until the refresher\\nwill automatically go into the `refreshing` state.\\nDefaults to the result of `pullMin + 60`.\\nDoes not apply when the refresher content uses a spinner,\\nenabling the native refresher.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pull-max\",\n \"defaultValue\": \"this.pullMin + 60\"\n },\n \"closeDuration\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Time it takes to close the refresher.\\nDoes not apply when the refresher content uses a spinner,\\nenabling the native refresher.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"close-duration\",\n \"defaultValue\": \"'280ms'\"\n },\n \"snapbackDuration\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Time it takes the refresher to snap back to the `refreshing` state.\\nDoes not apply when the refresher content uses a spinner,\\nenabling the native refresher.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"snapback-duration\",\n \"defaultValue\": \"'280ms'\"\n },\n \"pullFactor\": {\n \"type\": \"number\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"number\",\n \"resolved\": \"number\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"How much to multiply the pull speed by. To slow the pull animation down,\\npass a number less than `1`. To speed up the pull, pass a number greater\\nthan `1`. The default value is `1` which is equal to the speed of the cursor.\\nIf a negative value is passed in, the factor will be `1` instead.\\n\\nFor example: If the value passed is `1.2` and the content is dragged by\\n`10` pixels, instead of `10` pixels the content will be pulled by `12` pixels\\n(an increase of 20 percent). If the value passed is `0.8`, the dragged amount\\nwill be `8` pixels, less than the amount the cursor has moved.\\n\\nDoes not apply when the refresher content uses a spinner,\\nenabling the native refresher.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"pull-factor\",\n \"defaultValue\": \"1\"\n },\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the refresher will be hidden.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"disabled\",\n \"defaultValue\": \"false\"\n }\n };\n }\n static get states() {\n return {\n \"nativeRefresher\": {},\n \"state\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"ionRefresh\",\n \"name\": \"ionRefresh\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the user lets go of the content and has pulled down\\nfurther than the `pullMin` or pulls the content down and exceeds the pullMax.\\nUpdates the refresher state to `refreshing`. The `complete()` method should be\\ncalled when the async operation has completed.\"\n },\n \"complexType\": {\n \"original\": \"RefresherEventDetail\",\n \"resolved\": \"RefresherEventDetail\",\n \"references\": {\n \"RefresherEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./refresher-interface\",\n \"id\": \"src/components/refresher/refresher-interface.ts::RefresherEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionPull\",\n \"name\": \"ionPull\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted while the user is pulling down the content and exposing the refresher.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"ionStart\",\n \"name\": \"ionStart\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the user begins to start pulling down.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }];\n }\n static get methods() {\n return {\n \"complete\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Call `complete()` when your async operation has completed.\\nFor example, the `refreshing` state is while the app is performing\\nan asynchronous operation, such as receiving more data from an\\nAJAX request. Once the data has been received, you then call this\\nmethod to signify that the refreshing has completed and to close\\nthe refresher. This method also changes the refresher's state from\\n`refreshing` to `completing`.\",\n \"tags\": []\n }\n },\n \"cancel\": {\n \"complexType\": {\n \"signature\": \"() => Promise<void>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Changes the refresher's state from `refreshing` to `cancelling`.\",\n \"tags\": []\n }\n },\n \"getProgress\": {\n \"complexType\": {\n \"signature\": \"() => Promise<number>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<number>\"\n },\n \"docs\": {\n \"text\": \"A number representing how far down the user has pulled.\\nThe number `0` represents the user hasn't pulled down at all. The\\nnumber `1`, and anything greater than `1`, represents that the user\\nhas pulled far enough down that when they let go then the refresh will\\nhappen. If they let go and the number is less than `1`, then the\\nrefresh will not happen, and the content will return to it's original\\nposition.\",\n \"tags\": []\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"disabledChanged\"\n }];\n }\n}\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ion-reorder-group.entry.js","sources":["node_modules/@ionic/core/dist/collection/components/reorder-group/reorder-group.css?tag=ion-reorder-group","node_modules/@ionic/core/dist/collection/components/reorder-group/reorder-group.js"],"sourcesContent":["/**\n * Convert a font size to a dynamic font size.\n * Fonts that participate in Dynamic Type should use\n * dynamic font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param unit (optional) - The unit to convert to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a maximum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * a minimum font size.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * Convert a font size to a dynamic font size but impose\n * maximum and minimum font sizes.\n * @param size - The initial font size including the unit (i.e. px or pt)\n * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).\n * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).\n * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to\n * convert to a unit other than $baselineUnit.\n */\n/**\n * A heuristic that applies CSS to tablet\n * viewports.\n *\n * Usage:\n * @include tablet-viewport() {\n * :host {\n * background-color: green;\n * }\n * }\n */\n/**\n * A heuristic that applies CSS to mobile\n * viewports (i.e. phones, not tablets).\n *\n * Usage:\n * @include mobile-viewport() {\n * :host {\n * background-color: blue;\n * }\n * }\n */\n.reorder-list-active > * {\n display: block;\n transition: transform 300ms;\n will-change: transform;\n}\n\n.reorder-enabled {\n user-select: none;\n}\n\n.reorder-enabled ion-reorder {\n display: block;\n cursor: grab;\n pointer-events: all;\n touch-action: none;\n}\n\n.reorder-selected,\n.reorder-selected ion-reorder {\n cursor: grabbing;\n}\n\n.reorder-selected {\n position: relative;\n /* stylelint-disable-next-line declaration-no-important */\n transition: none !important;\n box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);\n opacity: 0.8;\n z-index: 100;\n}\n\n.reorder-visible ion-reorder .reorder-icon {\n transform: translate3d(0, 0, 0);\n}","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Host, h } from \"@stencil/core\";\nimport { findClosestIonContent, getScrollElement } from \"../../utils/content/index\";\nimport { raf } from \"../../utils/helpers\";\nimport { hapticSelectionChanged, hapticSelectionEnd, hapticSelectionStart } from \"../../utils/native/haptic\";\nimport { getIonMode } from \"../../global/ionic-global\";\nexport class ReorderGroup {\n constructor() {\n this.lastToIndex = -1;\n this.cachedHeights = [];\n this.scrollElTop = 0;\n this.scrollElBottom = 0;\n this.scrollElInitial = 0;\n this.containerTop = 0;\n this.containerBottom = 0;\n this.state = 0 /* ReorderGroupState.Idle */;\n /**\n * If `true`, the reorder will be hidden.\n */\n this.disabled = true;\n }\n disabledChanged() {\n if (this.gesture) {\n this.gesture.enable(!this.disabled);\n }\n }\n async connectedCallback() {\n const contentEl = findClosestIonContent(this.el);\n if (contentEl) {\n this.scrollEl = await getScrollElement(contentEl);\n }\n this.gesture = (await import('../../utils/gesture')).createGesture({\n el: this.el,\n gestureName: 'reorder',\n gesturePriority: 110,\n threshold: 0,\n direction: 'y',\n passive: false,\n canStart: (detail) => this.canStart(detail),\n onStart: (ev) => this.onStart(ev),\n onMove: (ev) => this.onMove(ev),\n onEnd: () => this.onEnd(),\n });\n this.disabledChanged();\n }\n disconnectedCallback() {\n this.onEnd();\n if (this.gesture) {\n this.gesture.destroy();\n this.gesture = undefined;\n }\n }\n /**\n * Completes the reorder operation. Must be called by the `ionReorderEnd` event.\n *\n * If a list of items is passed, the list will be reordered and returned in the\n * proper order.\n *\n * If no parameters are passed or if `true` is passed in, the reorder will complete\n * and the item will remain in the position it was dragged to. If `false` is passed,\n * the reorder will complete and the item will bounce back to its original position.\n *\n * @param listOrReorder A list of items to be sorted and returned in the new order or a\n * boolean of whether or not the reorder should reposition the item.\n */\n complete(listOrReorder) {\n return Promise.resolve(this.completeReorder(listOrReorder));\n }\n canStart(ev) {\n if (this.selectedItemEl || this.state !== 0 /* ReorderGroupState.Idle */) {\n return false;\n }\n const target = ev.event.target;\n const reorderEl = target.closest('ion-reorder');\n if (!reorderEl) {\n return false;\n }\n const item = findReorderItem(reorderEl, this.el);\n if (!item) {\n return false;\n }\n ev.data = item;\n return true;\n }\n onStart(ev) {\n ev.event.preventDefault();\n const item = (this.selectedItemEl = ev.data);\n const heights = this.cachedHeights;\n heights.length = 0;\n const el = this.el;\n const children = el.__children || el.children;\n if (!children || children.length === 0) {\n return;\n }\n let sum = 0;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n sum += child.offsetHeight;\n heights.push(sum);\n child.$ionIndex = i;\n }\n const box = el.getBoundingClientRect();\n this.containerTop = box.top;\n this.containerBottom = box.bottom;\n if (this.scrollEl) {\n const scrollBox = this.scrollEl.getBoundingClientRect();\n this.scrollElInitial = this.scrollEl.scrollTop;\n this.scrollElTop = scrollBox.top + AUTO_SCROLL_MARGIN;\n this.scrollElBottom = scrollBox.bottom - AUTO_SCROLL_MARGIN;\n }\n else {\n this.scrollElInitial = 0;\n this.scrollElTop = 0;\n this.scrollElBottom = 0;\n }\n this.lastToIndex = indexForItem(item);\n this.selectedItemHeight = item.offsetHeight;\n this.state = 1 /* ReorderGroupState.Active */;\n item.classList.add(ITEM_REORDER_SELECTED);\n hapticSelectionStart();\n this.ionReorderStart.emit();\n }\n onMove(ev) {\n const selectedItem = this.selectedItemEl;\n if (!selectedItem) {\n return;\n }\n // Scroll if we reach the scroll margins\n const scroll = this.autoscroll(ev.currentY);\n // // Get coordinate\n const top = this.containerTop - scroll;\n const bottom = this.containerBottom - scroll;\n const currentY = Math.max(top, Math.min(ev.currentY, bottom));\n const deltaY = scroll + currentY - ev.startY;\n const normalizedY = currentY - top;\n const fromIndex = this.lastToIndex;\n const toIndex = this.itemIndexForTop(normalizedY);\n if (toIndex !== this.lastToIndex) {\n const fromIndex = indexForItem(selectedItem);\n this.lastToIndex = toIndex;\n hapticSelectionChanged();\n this.reorderMove(fromIndex, toIndex);\n }\n // Update selected item position\n selectedItem.style.transform = `translateY(${deltaY}px)`;\n this.ionReorderMove.emit({\n from: fromIndex,\n to: toIndex,\n });\n }\n onEnd() {\n const selectedItemEl = this.selectedItemEl;\n this.state = 2 /* ReorderGroupState.Complete */;\n if (!selectedItemEl) {\n this.state = 0 /* ReorderGroupState.Idle */;\n return;\n }\n const toIndex = this.lastToIndex;\n const fromIndex = indexForItem(selectedItemEl);\n if (toIndex === fromIndex) {\n this.completeReorder();\n }\n else {\n // TODO(FW-6590): Remove this once the deprecated event is removed\n this.ionItemReorder.emit({\n from: fromIndex,\n to: toIndex,\n complete: this.completeReorder.bind(this),\n });\n }\n hapticSelectionEnd();\n this.ionReorderEnd.emit({\n from: fromIndex,\n to: toIndex,\n complete: this.completeReorder.bind(this),\n });\n }\n completeReorder(listOrReorder) {\n const selectedItemEl = this.selectedItemEl;\n if (selectedItemEl && this.state === 2 /* ReorderGroupState.Complete */) {\n const children = this.el.__children || this.el.children;\n const len = children.length;\n const toIndex = this.lastToIndex;\n const fromIndex = indexForItem(selectedItemEl);\n /**\n * insertBefore and setting the transform\n * needs to happen in the same frame otherwise\n * there will be a duplicate transition. This primarily\n * impacts Firefox where insertBefore and transform operations\n * are happening in two separate frames.\n */\n raf(() => {\n if (toIndex !== fromIndex && (listOrReorder === undefined || listOrReorder === true)) {\n const ref = fromIndex < toIndex ? children[toIndex + 1] : children[toIndex];\n this.el.insertBefore(selectedItemEl, ref);\n }\n for (let i = 0; i < len; i++) {\n children[i].style['transform'] = '';\n }\n });\n if (Array.isArray(listOrReorder)) {\n listOrReorder = reorderArray(listOrReorder, fromIndex, toIndex);\n }\n selectedItemEl.style.transition = '';\n selectedItemEl.classList.remove(ITEM_REORDER_SELECTED);\n this.selectedItemEl = undefined;\n this.state = 0 /* ReorderGroupState.Idle */;\n }\n return listOrReorder;\n }\n itemIndexForTop(deltaY) {\n const heights = this.cachedHeights;\n for (let i = 0; i < heights.length; i++) {\n if (heights[i] > deltaY) {\n return i;\n }\n }\n return heights.length - 1;\n }\n /********* DOM WRITE ********* */\n reorderMove(fromIndex, toIndex) {\n const itemHeight = this.selectedItemHeight;\n const children = this.el.__children || this.el.children;\n for (let i = 0; i < children.length; i++) {\n const style = children[i].style;\n let value = '';\n if (i > fromIndex && i <= toIndex) {\n value = `translateY(${-itemHeight}px)`;\n }\n else if (i < fromIndex && i >= toIndex) {\n value = `translateY(${itemHeight}px)`;\n }\n style['transform'] = value;\n }\n }\n autoscroll(posY) {\n if (!this.scrollEl) {\n return 0;\n }\n let amount = 0;\n if (posY < this.scrollElTop) {\n amount = -SCROLL_JUMP;\n }\n else if (posY > this.scrollElBottom) {\n amount = SCROLL_JUMP;\n }\n if (amount !== 0) {\n this.scrollEl.scrollBy(0, amount);\n }\n return this.scrollEl.scrollTop - this.scrollElInitial;\n }\n render() {\n const mode = getIonMode(this);\n return (h(Host, { key: 'b9641f3061d67fbfe68317b901ec33267046e073', class: {\n [mode]: true,\n 'reorder-enabled': !this.disabled,\n 'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,\n } }));\n }\n static get is() { return \"ion-reorder-group\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"reorder-group.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"reorder-group.css\"]\n };\n }\n static get properties() {\n return {\n \"disabled\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true`, the reorder will be hidden.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"disabled\",\n \"defaultValue\": \"true\"\n }\n };\n }\n static get states() {\n return {\n \"state\": {}\n };\n }\n static get events() {\n return [{\n \"method\": \"ionItemReorder\",\n \"name\": \"ionItemReorder\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [{\n \"name\": \"deprecated\",\n \"text\": \"Use `ionReorderEnd` instead. If you are accessing\\n`event.detail.from` or `event.detail.to` and relying on them\\nbeing different you should now add checks as they are always emitted\\nin `ionReorderEnd`, even when they are the same.\"\n }],\n \"text\": \"Event that needs to be listened to in order to complete the reorder action.\"\n },\n \"complexType\": {\n \"original\": \"ItemReorderEventDetail\",\n \"resolved\": \"ItemReorderEventDetail\",\n \"references\": {\n \"ItemReorderEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./reorder-group-interface\",\n \"id\": \"src/components/reorder-group/reorder-group-interface.ts::ItemReorderEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionReorderStart\",\n \"name\": \"ionReorderStart\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event that is emitted when the reorder gesture starts.\"\n },\n \"complexType\": {\n \"original\": \"void\",\n \"resolved\": \"void\",\n \"references\": {}\n }\n }, {\n \"method\": \"ionReorderMove\",\n \"name\": \"ionReorderMove\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event that is emitted as the reorder gesture moves.\"\n },\n \"complexType\": {\n \"original\": \"ReorderMoveEventDetail\",\n \"resolved\": \"ReorderMoveEventDetail\",\n \"references\": {\n \"ReorderMoveEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./reorder-group-interface\",\n \"id\": \"src/components/reorder-group/reorder-group-interface.ts::ReorderMoveEventDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionReorderEnd\",\n \"name\": \"ionReorderEnd\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Event that is emitted when the reorder gesture ends.\\nThe from and to properties are always available, regardless of\\nif the reorder gesture moved the item. If the item did not change\\nfrom its start position, the from and to properties will be the same.\\nOnce the event has been emitted, the `complete()` method then needs\\nto be called in order to finalize the reorder action.\"\n },\n \"complexType\": {\n \"original\": \"ReorderEndEventDetail\",\n \"resolved\": \"ReorderEndEventDetail\",\n \"references\": {\n \"ReorderEndEventDetail\": {\n \"location\": \"import\",\n \"path\": \"./reorder-group-interface\",\n \"id\": \"src/components/reorder-group/reorder-group-interface.ts::ReorderEndEventDetail\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"complete\": {\n \"complexType\": {\n \"signature\": \"(listOrReorder?: boolean | any[]) => Promise<any>\",\n \"parameters\": [{\n \"name\": \"listOrReorder\",\n \"type\": \"boolean | any[] | undefined\",\n \"docs\": \"A list of items to be sorted and returned in the new order or a\\nboolean of whether or not the reorder should reposition the item.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<any>\"\n },\n \"docs\": {\n \"text\": \"Completes the reorder operation. Must be called by the `ionReorderEnd` event.\\n\\nIf a list of items is passed, the list will be reordered and returned in the\\nproper order.\\n\\nIf no parameters are passed or if `true` is passed in, the reorder will complete\\nand the item will remain in the position it was dragged to. If `false` is passed,\\nthe reorder will complete and the item will bounce back to its original position.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"listOrReorder A list of items to be sorted and returned in the new order or a\\nboolean of whether or not the reorder should reposition the item.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"disabled\",\n \"methodName\": \"disabledChanged\"\n }];\n }\n}\nconst indexForItem = (element) => {\n return element['$ionIndex'];\n};\nconst findReorderItem = (node, container) => {\n let parent;\n while (node) {\n parent = node.parentElement;\n if (parent === container) {\n return node;\n }\n node = parent;\n }\n return undefined;\n};\nconst AUTO_SCROLL_MARGIN = 60;\nconst SCROLL_JUMP = 10;\nconst ITEM_REORDER_SELECTED = 'reorder-selected';\nconst reorderArray = (array, from, to) => {\n const element = array[from];\n array.splice(from, 1);\n array.splice(to, 0, element);\n return array.slice();\n};\n"],"names":[],"mappings":"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","x_google_ignoreList":[0,1]}