@pod-os/elements 0.17.1-fef97c9.0 → 0.18.1-a971174.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 (457) hide show
  1. package/dist/cjs/elements.cjs.js +1 -1
  2. package/dist/cjs/ion-app.cjs.entry.js +114 -0
  3. package/dist/cjs/ion-app.cjs.entry.js.map +1 -0
  4. package/dist/cjs/ion-badge_11.cjs.entry.js +1 -1
  5. package/dist/cjs/{ion-app_32.cjs.entry.js → ion-card_26.cjs.entry.js} +48 -1380
  6. package/dist/cjs/ion-card_26.cjs.entry.js.map +1 -0
  7. package/dist/cjs/ion-content.cjs.entry.js +416 -0
  8. package/dist/cjs/ion-content.cjs.entry.js.map +1 -0
  9. package/dist/cjs/ion-footer.cjs.entry.js +144 -0
  10. package/dist/cjs/ion-footer.cjs.entry.js.map +1 -0
  11. package/dist/cjs/ion-header.cjs.entry.js +346 -0
  12. package/dist/cjs/ion-header.cjs.entry.js.map +1 -0
  13. package/dist/cjs/ion-title.cjs.entry.js +58 -0
  14. package/dist/cjs/ion-title.cjs.entry.js.map +1 -0
  15. package/dist/cjs/ion-toolbar.cjs.entry.js +79 -0
  16. package/dist/cjs/ion-toolbar.cjs.entry.js.map +1 -0
  17. package/dist/cjs/loader.cjs.js +1 -1
  18. package/dist/cjs/pos-app-generic.cjs.entry.js +1 -1
  19. package/dist/cjs/pos-app-ldp-container.cjs.entry.js +1 -1
  20. package/dist/cjs/pos-app-rdf-document.cjs.entry.js +1 -1
  21. package/dist/collection/apps/pos-app-browser/pos-app-browser.css +64 -0
  22. package/dist/collection/apps/pos-app-browser/pos-app-browser.js +33 -2
  23. package/dist/collection/apps/pos-app-browser/pos-app-browser.js.map +1 -1
  24. package/dist/collection/apps/pos-app-generic/pos-app-generic.js +1 -1
  25. package/dist/collection/apps/pos-app-ldp-container/pos-app-ldp-container.js +1 -1
  26. package/dist/collection/apps/pos-app-rdf-document/pos-app-rdf-document.js +1 -1
  27. package/dist/collection/components/pos-add-new-thing/pos-add-new-thing.js +1 -1
  28. package/dist/collection/components/pos-app/pos-app.js +1 -1
  29. package/dist/collection/components/pos-dialog/pos-dialog.js +1 -1
  30. package/dist/collection/components/pos-error-toast/pos-error-toast.js +1 -1
  31. package/dist/collection/components/pos-literals/pos-literals.js +1 -1
  32. package/dist/collection/components/pos-login/pos-login.css +13 -9
  33. package/dist/collection/components/pos-login/pos-login.js +1 -1
  34. package/dist/collection/components/pos-login/pos-login.js.map +1 -1
  35. package/dist/collection/components/pos-login-form/pos-login-form.js +1 -1
  36. package/dist/collection/components/pos-navigation-bar/pos-navigation-bar.js +1 -1
  37. package/dist/collection/components/pos-new-thing-form/pos-new-thing-form.js +1 -1
  38. package/dist/collection/components/pos-rich-link/pos-rich-link.js +2 -2
  39. package/dist/collection/components/pos-router/pos-router.js +26 -2
  40. package/dist/collection/components/pos-router/pos-router.js.map +1 -1
  41. package/dist/collection/components/pos-select-term/pos-select-term.js +1 -1
  42. package/dist/components/ion-app.js +121 -1
  43. package/dist/components/ion-app.js.map +1 -1
  44. package/dist/components/ion-content.js +436 -1
  45. package/dist/components/ion-content.js.map +1 -1
  46. package/dist/components/ion-footer.js +150 -1
  47. package/dist/components/ion-footer.js.map +1 -1
  48. package/dist/components/ion-header.js +354 -1
  49. package/dist/components/ion-header.js.map +1 -1
  50. package/dist/components/ion-title.js +70 -1
  51. package/dist/components/ion-title.js.map +1 -1
  52. package/dist/components/ion-toolbar.js +88 -1
  53. package/dist/components/ion-toolbar.js.map +1 -1
  54. package/dist/components/pos-add-new-thing2.js +1 -1
  55. package/dist/components/pos-app-browser.js +40 -55
  56. package/dist/components/pos-app-browser.js.map +1 -1
  57. package/dist/components/pos-app-generic.js +1 -1
  58. package/dist/components/pos-app-ldp-container.js +1 -1
  59. package/dist/components/pos-app-rdf-document.js +1 -1
  60. package/dist/components/pos-app2.js +1 -1
  61. package/dist/components/pos-dialog2.js +1 -1
  62. package/dist/components/pos-error-toast2.js +1 -1
  63. package/dist/components/pos-literals2.js +1 -1
  64. package/dist/components/pos-login-form2.js +1 -1
  65. package/dist/components/pos-login2.js +2 -2
  66. package/dist/components/pos-login2.js.map +1 -1
  67. package/dist/components/pos-navigation-bar2.js +1 -1
  68. package/dist/components/pos-new-thing-form2.js +1 -1
  69. package/dist/components/pos-rich-link2.js +2 -2
  70. package/dist/components/pos-router2.js +6 -375
  71. package/dist/components/pos-router2.js.map +1 -1
  72. package/dist/components/pos-select-term2.js +1 -1
  73. package/dist/elements/elements.css +1 -1
  74. package/dist/elements/elements.esm.js +1 -1
  75. package/dist/elements/elements.esm.js.map +1 -1
  76. package/dist/elements/p-00ce08f0.entry.js +2 -0
  77. package/dist/elements/{p-546a0100.entry.js.map → p-00ce08f0.entry.js.map} +1 -1
  78. package/dist/elements/p-012387ef.js +5 -0
  79. package/dist/elements/{p-e06dbbcc.entry.js → p-0133f543.entry.js} +2 -2
  80. package/dist/elements/p-05e3c2f1.entry.js +2 -0
  81. package/dist/elements/{p-d5ff3d36.entry.js.map → p-05e3c2f1.entry.js.map} +1 -1
  82. package/dist/elements/{p-3aeb707f.entry.js → p-09a7b8e1.entry.js} +2 -2
  83. package/dist/elements/{p-86136480.entry.js → p-11ad53dd.entry.js} +2 -2
  84. package/dist/elements/{p-9365c31d.entry.js → p-122324d9.entry.js} +2 -2
  85. package/dist/elements/{p-530932bb.js → p-163e3e87.js} +2 -2
  86. package/dist/elements/{p-9b56d918.js → p-18d4a4f4.js} +3 -3
  87. package/dist/elements/{p-b90d29b6.entry.js → p-18d9c4f7.entry.js} +2 -2
  88. package/dist/elements/{p-69d9dbbf.entry.js → p-1a90b8bb.entry.js} +2 -2
  89. package/dist/elements/{p-02b4f408.entry.js → p-1f36a3c0.entry.js} +2 -2
  90. package/dist/elements/{p-c7ac1d8b.entry.js → p-200707c8.entry.js} +6 -6
  91. package/dist/elements/{p-78982008.entry.js → p-2072bd89.entry.js} +2 -2
  92. package/dist/elements/{p-170a54a2.js → p-20e2e8c1.js} +3 -3
  93. package/dist/elements/{p-9e7f0522.js → p-25270f1a.js} +2 -2
  94. package/dist/elements/p-27e8c19d.entry.js +2 -0
  95. package/dist/elements/{p-909f0d6e.entry.js.map → p-27e8c19d.entry.js.map} +1 -1
  96. package/dist/elements/p-27ec1e73.entry.js +2 -0
  97. package/dist/elements/{p-c4a822b5.entry.js → p-28b1f2dc.entry.js} +2 -2
  98. package/dist/elements/{p-4d47eeb5.js → p-2a17fd31.js} +2 -2
  99. package/dist/elements/{p-8d4278bb.entry.js → p-2adb9784.entry.js} +2 -2
  100. package/dist/elements/p-2f85baae.entry.js +2 -0
  101. package/dist/elements/{p-e3d72483.entry.js.map → p-2f85baae.entry.js.map} +1 -1
  102. package/dist/elements/{p-d212be68.entry.js → p-30685d32.entry.js} +2 -2
  103. package/dist/elements/{p-8e1e3e7d.js → p-359bfe6a.js} +2 -2
  104. package/dist/elements/p-382054bf.entry.js +2 -0
  105. package/dist/elements/p-382054bf.entry.js.map +1 -0
  106. package/dist/elements/{p-bba60e3b.entry.js → p-39cc0ada.entry.js} +2 -2
  107. package/dist/elements/p-4056decf.entry.js +2 -0
  108. package/dist/elements/p-4056decf.entry.js.map +1 -0
  109. package/dist/elements/p-4918fd10.entry.js +2 -0
  110. package/dist/elements/p-4918fd10.entry.js.map +1 -0
  111. package/dist/elements/{p-af43acbb.entry.js → p-4c0808b4.entry.js} +2 -2
  112. package/dist/elements/p-4cf87b24.entry.js +2 -0
  113. package/dist/elements/{p-0edf98c5.entry.js.map → p-4cf87b24.entry.js.map} +1 -1
  114. package/dist/elements/{p-b8ac0ee4.js → p-4d6e48bf.js} +2 -2
  115. package/dist/elements/{p-28ad7b6e.entry.js → p-5298b7a1.entry.js} +2 -2
  116. package/dist/elements/{p-0b1c92f2.entry.js → p-52c87099.entry.js} +2 -2
  117. package/dist/elements/{p-c0eb0e3d.entry.js → p-55fbf5f7.entry.js} +3 -3
  118. package/dist/elements/{p-c0eb0e3d.entry.js.map → p-55fbf5f7.entry.js.map} +1 -1
  119. package/dist/elements/{p-2428b6bf.js → p-592177e8.js} +2 -2
  120. package/dist/elements/{p-8b81a782.js → p-595c0a57.js} +2 -2
  121. package/dist/elements/{p-e32a52ee.js → p-5a248cff.js} +2 -2
  122. package/dist/elements/p-5b933f24.entry.js +2 -0
  123. package/dist/elements/p-5b933f24.entry.js.map +1 -0
  124. package/dist/elements/{p-cc62cb3d.entry.js → p-61a489ee.entry.js} +2 -2
  125. package/dist/elements/p-6ac0c71c.entry.js +2 -0
  126. package/dist/elements/{p-6c9053ed.entry.js → p-6bcba1f6.entry.js} +2 -2
  127. package/dist/elements/{p-ddc13326.entry.js → p-6e2a89ab.entry.js} +2 -2
  128. package/dist/elements/{p-565128c5.entry.js → p-74ebe432.entry.js} +2 -2
  129. package/dist/elements/p-76543de1.entry.js +2 -0
  130. package/dist/elements/{p-d7231d27.entry.js → p-76e7559c.entry.js} +2 -2
  131. package/dist/elements/{p-41e21640.entry.js → p-778d7821.entry.js} +6 -6
  132. package/dist/elements/{p-f941317f.entry.js → p-78ba7248.entry.js} +2 -2
  133. package/dist/elements/{p-6579450f.js → p-7a563988.js} +2 -2
  134. package/dist/elements/{p-3c2b721e.js → p-7f507bcb.js} +2 -2
  135. package/dist/elements/p-7fb554a5.entry.js +2 -0
  136. package/dist/elements/{p-cc274814.entry.js.map → p-7fb554a5.entry.js.map} +1 -1
  137. package/dist/elements/p-8206b1f1.js +6 -0
  138. package/dist/elements/{p-b097a0ac.entry.js → p-82fb9396.entry.js} +2 -2
  139. package/dist/elements/{p-d86e6e48.entry.js → p-8817e69b.entry.js} +2 -2
  140. package/dist/elements/p-8865cb08.entry.js +2 -0
  141. package/dist/elements/{p-0951f046.entry.js → p-8b9b339b.entry.js} +2 -2
  142. package/dist/elements/{p-553217d4.entry.js → p-8b9b7f79.entry.js} +2 -2
  143. package/dist/elements/{p-86eaec56.entry.js → p-8c32e0ab.entry.js} +2 -2
  144. package/dist/elements/p-8fe569b3.entry.js +2 -0
  145. package/dist/elements/p-9090e8dc.entry.js +2 -0
  146. package/dist/elements/p-90f99f85.entry.js +5 -0
  147. package/dist/elements/p-90f99f85.entry.js.map +1 -0
  148. package/dist/elements/{p-fb11bb27.entry.js → p-916a6612.entry.js} +2 -2
  149. package/dist/elements/{p-fa9aa28a.entry.js → p-a68e7901.entry.js} +2 -2
  150. package/dist/elements/p-a88c6bd6.entry.js +2 -0
  151. package/dist/elements/{p-f05a0cca.entry.js.map → p-a88c6bd6.entry.js.map} +1 -1
  152. package/dist/elements/{p-69410d36.js → p-a91046dc.js} +3 -3
  153. package/dist/elements/{p-325e5484.entry.js → p-aad12400.entry.js} +2 -2
  154. package/dist/elements/{p-58418838.entry.js → p-ab92e9ad.entry.js} +2 -2
  155. package/dist/elements/{p-d01e6782.entry.js → p-af3f8ab1.entry.js} +2 -2
  156. package/dist/elements/p-b11e8f77.entry.js +2 -0
  157. package/dist/elements/{p-77d82071.entry.js → p-b19890bd.entry.js} +2 -2
  158. package/dist/elements/p-b1d0e1fe.entry.js +5 -0
  159. package/dist/{components/header.js.map → elements/p-b1d0e1fe.entry.js.map} +1 -1
  160. package/dist/elements/{p-573b7dca.entry.js → p-b227f4a8.entry.js} +2 -2
  161. package/dist/elements/p-b8b9096d.entry.js +2 -0
  162. package/dist/elements/p-b8b9096d.entry.js.map +1 -0
  163. package/dist/elements/{p-134b66b6.js → p-bb3054a3.js} +6 -6
  164. package/dist/elements/p-bc5eefc4.entry.js +2 -0
  165. package/dist/elements/{p-b115ebcf.entry.js.map → p-bc5eefc4.entry.js.map} +1 -1
  166. package/dist/elements/{p-56bf9fdf.js → p-c2690129.js} +2 -2
  167. package/dist/elements/{p-8b0695a7.entry.js → p-c445f3ac.entry.js} +2 -2
  168. package/dist/elements/{p-2ba30f60.entry.js → p-c9faf4da.entry.js} +2 -2
  169. package/dist/elements/p-ca453b3d.js +8 -0
  170. package/dist/elements/p-cc23946c.entry.js +2 -0
  171. package/dist/elements/{p-4342e2ef.entry.js.map → p-cc23946c.entry.js.map} +1 -1
  172. package/dist/elements/{p-c23172a0.entry.js → p-cd9107d1.entry.js} +2 -2
  173. package/dist/elements/{p-9b369d09.js → p-cebe59d4.js} +2 -2
  174. package/dist/elements/{p-b67ce91f.entry.js → p-cfec477d.entry.js} +2 -2
  175. package/dist/elements/{p-1c69ca01.js → p-d0fcc589.js} +2 -2
  176. package/dist/elements/{p-257248f2.entry.js → p-d2458575.entry.js} +2 -2
  177. package/dist/elements/p-d2e7f4d4.entry.js +2 -0
  178. package/dist/elements/p-d65caf7a.entry.js +2 -0
  179. package/dist/elements/{p-acbfc962.entry.js.map → p-d65caf7a.entry.js.map} +1 -1
  180. package/dist/elements/{p-3505dfe2.js → p-d6769f21.js} +2 -2
  181. package/dist/elements/{p-a1a15808.entry.js → p-d6bf2b98.entry.js} +2 -2
  182. package/dist/elements/{p-75cbc833.entry.js → p-d86570da.entry.js} +2 -2
  183. package/dist/elements/p-d8e8bd9b.entry.js +2 -0
  184. package/dist/elements/p-d8fc8b11.js +2 -0
  185. package/dist/elements/{p-0ddd5da3.entry.js → p-da5f6dcd.entry.js} +3 -3
  186. package/dist/elements/{p-ab5544fc.entry.js → p-db793eec.entry.js} +2 -2
  187. package/dist/elements/p-db973275.js +5 -0
  188. package/dist/elements/{p-5f2c1e33.entry.js → p-e134ddc9.entry.js} +2 -2
  189. package/dist/elements/{p-0752ec21.entry.js → p-e3ae9b45.entry.js} +2 -2
  190. package/dist/elements/p-e5cefd56.entry.js +2 -0
  191. package/dist/elements/{p-64af0b46.entry.js.map → p-e5cefd56.entry.js.map} +1 -1
  192. package/dist/elements/{p-ad2273d6.js → p-ecdb52e8.js} +2 -2
  193. package/dist/elements/{p-2dddbb15.js → p-f1ef82a9.js} +4 -4
  194. package/dist/elements/p-f4440338.entry.js +2 -0
  195. package/dist/elements/{p-5bd948fa.entry.js → p-f981858f.entry.js} +2 -2
  196. package/dist/elements/{p-f6b92b3c.entry.js → p-fd200088.entry.js} +2 -2
  197. package/dist/elements/{p-b56ae71f.entry.js → p-fdeb6a78.entry.js} +3 -3
  198. package/dist/esm/{BrokenFile-0cbdf2f2.js → BrokenFile-660171a9.js} +2 -2
  199. package/dist/esm/{BrokenFile-0cbdf2f2.js.map → BrokenFile-660171a9.js.map} +1 -1
  200. package/dist/esm/{animation-0dedebd7.js → animation-8c622dae.js} +2 -2
  201. package/dist/esm/{animation-0dedebd7.js.map → animation-8c622dae.js.map} +1 -1
  202. package/dist/esm/{app-globals-8441b381.js → app-globals-a35b051d.js} +2 -2
  203. package/dist/esm/{app-globals-8441b381.js.map → app-globals-a35b051d.js.map} +1 -1
  204. package/dist/esm/{data-3bd275a7.js → data-cdc9b206.js} +2 -2
  205. package/dist/esm/{data-3bd275a7.js.map → data-cdc9b206.js.map} +1 -1
  206. package/dist/esm/elements.js +5 -5
  207. package/dist/esm/{form-controller-ba097a73.js → form-controller-1f70ed52.js} +2 -2
  208. package/dist/esm/{form-controller-ba097a73.js.map → form-controller-1f70ed52.js.map} +1 -1
  209. package/dist/esm/{framework-delegate-0ffa1682.js → framework-delegate-b5751311.js} +2 -2
  210. package/dist/esm/{framework-delegate-0ffa1682.js.map → framework-delegate-b5751311.js.map} +1 -1
  211. package/dist/esm/{hardware-back-button-80e72d27.js → hardware-back-button-e34ddb75.js} +3 -3
  212. package/dist/esm/{hardware-back-button-80e72d27.js.map → hardware-back-button-e34ddb75.js.map} +1 -1
  213. package/dist/esm/{helpers-ad2d8971.js → helpers-a93a8cd2.js} +2 -2
  214. package/dist/esm/{helpers-ad2d8971.js.map → helpers-a93a8cd2.js.map} +1 -1
  215. package/dist/esm/{index-141ce7d0.js → index-1e601862.js} +5 -5
  216. package/dist/esm/{index-141ce7d0.js.map → index-1e601862.js.map} +1 -1
  217. package/dist/esm/{index-38b2da1b.js → index-432e7c6f.js} +3 -3
  218. package/dist/esm/{index-38b2da1b.js.map → index-432e7c6f.js.map} +1 -1
  219. package/dist/esm/{index-46b2983b.js → index-538226d8.js} +2 -2
  220. package/dist/esm/{index-46b2983b.js.map → index-538226d8.js.map} +1 -1
  221. package/dist/esm/{index-049cf01c.js → index-e9b97538.js} +6 -6
  222. package/dist/esm/{index-049cf01c.js.map → index-e9b97538.js.map} +1 -1
  223. package/dist/esm/{index-c043b4c8.js → index-f69a875d.js} +2 -2
  224. package/dist/esm/{index-c043b4c8.js.map → index-f69a875d.js.map} +1 -1
  225. package/dist/esm/{index-bec78e8b.js → index-f7ac0403.js} +2 -2
  226. package/dist/esm/{index-bec78e8b.js.map → index-f7ac0403.js.map} +1 -1
  227. package/dist/esm/{input-shims-2246db96.js → input-shims-212ee02f.js} +4 -4
  228. package/dist/esm/{input-shims-2246db96.js.map → input-shims-212ee02f.js.map} +1 -1
  229. package/dist/esm/{input.utils-8550a81d.js → input.utils-d2c917c3.js} +3 -3
  230. package/dist/esm/{input.utils-8550a81d.js.map → input.utils-d2c917c3.js.map} +1 -1
  231. package/dist/esm/ion-accordion-group.entry.js +3 -3
  232. package/dist/esm/ion-accordion.entry.js +3 -3
  233. package/dist/esm/ion-action-sheet_3.entry.js +8 -8
  234. package/dist/{components/app.js → esm/ion-app.entry.js} +20 -35
  235. package/dist/esm/ion-app.entry.js.map +1 -0
  236. package/dist/esm/ion-avatar.entry.js +2 -2
  237. package/dist/esm/ion-back-button.entry.js +3 -3
  238. package/dist/esm/ion-backdrop.entry.js +2 -2
  239. package/dist/esm/ion-badge_11.entry.js +8 -8
  240. package/dist/esm/ion-breadcrumb.entry.js +3 -3
  241. package/dist/esm/ion-breadcrumbs.entry.js +2 -2
  242. package/dist/esm/ion-button_4.entry.js +4 -4
  243. package/dist/esm/ion-card-subtitle.entry.js +2 -2
  244. package/dist/esm/{ion-app_32.entry.js → ion-card_26.entry.js} +48 -1374
  245. package/dist/esm/ion-card_26.entry.js.map +1 -0
  246. package/dist/esm/ion-checkbox_4.entry.js +5 -5
  247. package/dist/esm/ion-chip.entry.js +2 -2
  248. package/dist/{components/content.js → esm/ion-content.entry.js} +14 -42
  249. package/dist/esm/ion-content.entry.js.map +1 -0
  250. package/dist/esm/ion-datetime-button.entry.js +5 -5
  251. package/dist/esm/ion-datetime.entry.js +5 -5
  252. package/dist/esm/ion-fab-button.entry.js +3 -3
  253. package/dist/esm/ion-fab-list.entry.js +2 -2
  254. package/dist/esm/ion-fab.entry.js +2 -2
  255. package/dist/{components/footer.js → esm/ion-footer.entry.js} +20 -34
  256. package/dist/esm/ion-footer.entry.js.map +1 -0
  257. package/dist/{components/header.js → esm/ion-header.entry.js} +17 -33
  258. package/dist/esm/ion-header.entry.js.map +1 -0
  259. package/dist/esm/ion-img.entry.js +3 -3
  260. package/dist/esm/ion-infinite-scroll-content.entry.js +2 -2
  261. package/dist/esm/ion-infinite-scroll.entry.js +5 -5
  262. package/dist/esm/ion-item-option.entry.js +2 -2
  263. package/dist/esm/ion-item-options.entry.js +3 -3
  264. package/dist/esm/ion-item-sliding.entry.js +5 -5
  265. package/dist/esm/ion-item_4.entry.js +4 -4
  266. package/dist/esm/ion-loading.entry.js +8 -8
  267. package/dist/esm/ion-menu-button.entry.js +8 -8
  268. package/dist/esm/ion-menu-toggle.entry.js +8 -8
  269. package/dist/esm/ion-menu.entry.js +9 -9
  270. package/dist/esm/ion-modal.entry.js +10 -10
  271. package/dist/esm/ion-nav-link.entry.js +1 -1
  272. package/dist/esm/ion-nav.entry.js +6 -6
  273. package/dist/esm/ion-picker-column.entry.js +3 -3
  274. package/dist/esm/ion-picker.entry.js +8 -8
  275. package/dist/esm/ion-popover.entry.js +9 -9
  276. package/dist/esm/ion-range.entry.js +6 -6
  277. package/dist/esm/ion-refresher-content.entry.js +5 -5
  278. package/dist/esm/ion-refresher.entry.js +7 -7
  279. package/dist/esm/ion-reorder-group.entry.js +5 -5
  280. package/dist/esm/ion-reorder.entry.js +2 -2
  281. package/dist/esm/ion-route-redirect.entry.js +1 -1
  282. package/dist/esm/ion-route.entry.js +1 -1
  283. package/dist/esm/ion-router-link.entry.js +2 -2
  284. package/dist/esm/ion-router-outlet.entry.js +6 -6
  285. package/dist/esm/ion-router.entry.js +2 -2
  286. package/dist/esm/ion-segment-button.entry.js +3 -3
  287. package/dist/esm/ion-segment.entry.js +3 -3
  288. package/dist/esm/ion-select-option.entry.js +2 -2
  289. package/dist/esm/ion-select.entry.js +9 -9
  290. package/dist/esm/ion-spinner.entry.js +2 -2
  291. package/dist/esm/ion-split-pane.entry.js +2 -2
  292. package/dist/esm/ion-tab-bar.entry.js +2 -2
  293. package/dist/esm/ion-tab-button.entry.js +3 -3
  294. package/dist/esm/ion-tab.entry.js +3 -3
  295. package/dist/esm/ion-tabs.entry.js +1 -1
  296. package/dist/esm/ion-text.entry.js +2 -2
  297. package/dist/esm/ion-textarea.entry.js +7 -7
  298. package/dist/esm/ion-thumbnail.entry.js +2 -2
  299. package/dist/{components/title.js → esm/ion-title.entry.js} +14 -34
  300. package/dist/esm/ion-title.entry.js.map +1 -0
  301. package/dist/esm/ion-toast.entry.js +8 -8
  302. package/dist/esm/ion-toggle.entry.js +5 -5
  303. package/dist/{components/toolbar.js → esm/ion-toolbar.entry.js} +14 -31
  304. package/dist/esm/ion-toolbar.entry.js.map +1 -0
  305. package/dist/esm/{ionic-global-006bfdaa.js → ionic-global-163eb7af.js} +2 -2
  306. package/dist/esm/{ionic-global-006bfdaa.js.map → ionic-global-163eb7af.js.map} +1 -1
  307. package/dist/esm/{ios.transition-e19293f7.js → ios.transition-0236708a.js} +5 -5
  308. package/dist/esm/{ios.transition-e19293f7.js.map → ios.transition-0236708a.js.map} +1 -1
  309. package/dist/esm/loader.js +5 -5
  310. package/dist/esm/{md.transition-d72e937f.js → md.transition-e93291da.js} +5 -5
  311. package/dist/esm/{md.transition-d72e937f.js.map → md.transition-e93291da.js.map} +1 -1
  312. package/dist/esm/{menu-toggle-util-dca4ccca.js → menu-toggle-util-a0afc829.js} +2 -2
  313. package/dist/esm/{menu-toggle-util-dca4ccca.js.map → menu-toggle-util-a0afc829.js.map} +1 -1
  314. package/dist/esm/{notch-controller-18232ec1.js → notch-controller-ae856621.js} +2 -2
  315. package/dist/esm/{notch-controller-18232ec1.js.map → notch-controller-ae856621.js.map} +1 -1
  316. package/dist/esm/{overlays-f768dabb.js → overlays-708b9a6f.js} +6 -6
  317. package/dist/esm/{overlays-f768dabb.js.map → overlays-708b9a6f.js.map} +1 -1
  318. package/dist/esm/pos-app-document-viewer.entry.js +1 -1
  319. package/dist/esm/pos-app-generic.entry.js +2 -2
  320. package/dist/esm/pos-app-image-viewer.entry.js +1 -1
  321. package/dist/esm/pos-app-ldp-container.entry.js +2 -2
  322. package/dist/esm/pos-app-rdf-document.entry.js +2 -2
  323. package/dist/esm/pos-container-contents.entry.js +1 -1
  324. package/dist/esm/pos-container-item.entry.js +1 -1
  325. package/dist/esm/pos-document.entry.js +2 -2
  326. package/dist/esm/pos-relations_2.entry.js +1 -1
  327. package/dist/esm/pos-subjects.entry.js +1 -1
  328. package/dist/esm/pos-value.entry.js +1 -1
  329. package/dist/esm/{refresher.utils-5cd2771a.js → refresher.utils-e3624272.js} +4 -4
  330. package/dist/esm/{refresher.utils-5cd2771a.js.map → refresher.utils-e3624272.js.map} +1 -1
  331. package/dist/esm/{status-tap-96ab3acb.js → status-tap-9b757300.js} +5 -5
  332. package/dist/esm/{status-tap-96ab3acb.js.map → status-tap-9b757300.js.map} +1 -1
  333. package/dist/esm/{swipe-back-44f8b09c.js → swipe-back-5993fe10.js} +2 -2
  334. package/dist/esm/{swipe-back-44f8b09c.js.map → swipe-back-5993fe10.js.map} +1 -1
  335. package/dist/types/apps/pos-app-browser/pos-app-browser.d.ts +1 -0
  336. package/dist/types/components/pos-router/pos-router.d.ts +10 -0
  337. package/dist/types/components.d.ts +39 -0
  338. package/package.json +1 -1
  339. package/dist/cjs/ion-app_32.cjs.entry.js.map +0 -1
  340. package/dist/components/app.js.map +0 -1
  341. package/dist/components/content.js.map +0 -1
  342. package/dist/components/footer.js.map +0 -1
  343. package/dist/components/title.js.map +0 -1
  344. package/dist/components/toolbar.js.map +0 -1
  345. package/dist/elements/p-089421d7.entry.js +0 -8
  346. package/dist/elements/p-089421d7.entry.js.map +0 -1
  347. package/dist/elements/p-0edf98c5.entry.js +0 -2
  348. package/dist/elements/p-0feec79b.js +0 -6
  349. package/dist/elements/p-118e0bed.entry.js +0 -2
  350. package/dist/elements/p-2fa5ecde.js +0 -8
  351. package/dist/elements/p-4342e2ef.entry.js +0 -2
  352. package/dist/elements/p-546a0100.entry.js +0 -2
  353. package/dist/elements/p-5f19bcb1.entry.js +0 -2
  354. package/dist/elements/p-64af0b46.entry.js +0 -2
  355. package/dist/elements/p-7e36887e.js +0 -5
  356. package/dist/elements/p-86f80c54.entry.js +0 -2
  357. package/dist/elements/p-89b3cdad.entry.js +0 -2
  358. package/dist/elements/p-8eb42424.entry.js +0 -2
  359. package/dist/elements/p-8f98459a.entry.js +0 -2
  360. package/dist/elements/p-909f0d6e.entry.js +0 -2
  361. package/dist/elements/p-963acf5e.entry.js +0 -2
  362. package/dist/elements/p-9b3608b6.entry.js +0 -2
  363. package/dist/elements/p-acbfc962.entry.js +0 -2
  364. package/dist/elements/p-b115ebcf.entry.js +0 -2
  365. package/dist/elements/p-cc274814.entry.js +0 -2
  366. package/dist/elements/p-d3a247bd.entry.js +0 -2
  367. package/dist/elements/p-d5ff3d36.entry.js +0 -2
  368. package/dist/elements/p-de267699.js +0 -2
  369. package/dist/elements/p-e3734616.entry.js +0 -2
  370. package/dist/elements/p-e3d72483.entry.js +0 -2
  371. package/dist/elements/p-f05a0cca.entry.js +0 -2
  372. package/dist/elements/p-f82feb40.js +0 -5
  373. package/dist/esm/ion-app_32.entry.js.map +0 -1
  374. /package/dist/elements/{p-f82feb40.js.map → p-012387ef.js.map} +0 -0
  375. /package/dist/elements/{p-e06dbbcc.entry.js.map → p-0133f543.entry.js.map} +0 -0
  376. /package/dist/elements/{p-3aeb707f.entry.js.map → p-09a7b8e1.entry.js.map} +0 -0
  377. /package/dist/elements/{p-86136480.entry.js.map → p-11ad53dd.entry.js.map} +0 -0
  378. /package/dist/elements/{p-9365c31d.entry.js.map → p-122324d9.entry.js.map} +0 -0
  379. /package/dist/elements/{p-530932bb.js.map → p-163e3e87.js.map} +0 -0
  380. /package/dist/elements/{p-9b56d918.js.map → p-18d4a4f4.js.map} +0 -0
  381. /package/dist/elements/{p-b90d29b6.entry.js.map → p-18d9c4f7.entry.js.map} +0 -0
  382. /package/dist/elements/{p-69d9dbbf.entry.js.map → p-1a90b8bb.entry.js.map} +0 -0
  383. /package/dist/elements/{p-02b4f408.entry.js.map → p-1f36a3c0.entry.js.map} +0 -0
  384. /package/dist/elements/{p-c7ac1d8b.entry.js.map → p-200707c8.entry.js.map} +0 -0
  385. /package/dist/elements/{p-78982008.entry.js.map → p-2072bd89.entry.js.map} +0 -0
  386. /package/dist/elements/{p-170a54a2.js.map → p-20e2e8c1.js.map} +0 -0
  387. /package/dist/elements/{p-9e7f0522.js.map → p-25270f1a.js.map} +0 -0
  388. /package/dist/elements/{p-5f19bcb1.entry.js.map → p-27ec1e73.entry.js.map} +0 -0
  389. /package/dist/elements/{p-c4a822b5.entry.js.map → p-28b1f2dc.entry.js.map} +0 -0
  390. /package/dist/elements/{p-4d47eeb5.js.map → p-2a17fd31.js.map} +0 -0
  391. /package/dist/elements/{p-8d4278bb.entry.js.map → p-2adb9784.entry.js.map} +0 -0
  392. /package/dist/elements/{p-d212be68.entry.js.map → p-30685d32.entry.js.map} +0 -0
  393. /package/dist/elements/{p-8e1e3e7d.js.map → p-359bfe6a.js.map} +0 -0
  394. /package/dist/elements/{p-bba60e3b.entry.js.map → p-39cc0ada.entry.js.map} +0 -0
  395. /package/dist/elements/{p-af43acbb.entry.js.map → p-4c0808b4.entry.js.map} +0 -0
  396. /package/dist/elements/{p-b8ac0ee4.js.map → p-4d6e48bf.js.map} +0 -0
  397. /package/dist/elements/{p-28ad7b6e.entry.js.map → p-5298b7a1.entry.js.map} +0 -0
  398. /package/dist/elements/{p-0b1c92f2.entry.js.map → p-52c87099.entry.js.map} +0 -0
  399. /package/dist/elements/{p-2428b6bf.js.map → p-592177e8.js.map} +0 -0
  400. /package/dist/elements/{p-8b81a782.js.map → p-595c0a57.js.map} +0 -0
  401. /package/dist/elements/{p-e32a52ee.js.map → p-5a248cff.js.map} +0 -0
  402. /package/dist/elements/{p-cc62cb3d.entry.js.map → p-61a489ee.entry.js.map} +0 -0
  403. /package/dist/elements/{p-118e0bed.entry.js.map → p-6ac0c71c.entry.js.map} +0 -0
  404. /package/dist/elements/{p-6c9053ed.entry.js.map → p-6bcba1f6.entry.js.map} +0 -0
  405. /package/dist/elements/{p-ddc13326.entry.js.map → p-6e2a89ab.entry.js.map} +0 -0
  406. /package/dist/elements/{p-565128c5.entry.js.map → p-74ebe432.entry.js.map} +0 -0
  407. /package/dist/elements/{p-89b3cdad.entry.js.map → p-76543de1.entry.js.map} +0 -0
  408. /package/dist/elements/{p-d7231d27.entry.js.map → p-76e7559c.entry.js.map} +0 -0
  409. /package/dist/elements/{p-41e21640.entry.js.map → p-778d7821.entry.js.map} +0 -0
  410. /package/dist/elements/{p-f941317f.entry.js.map → p-78ba7248.entry.js.map} +0 -0
  411. /package/dist/elements/{p-6579450f.js.map → p-7a563988.js.map} +0 -0
  412. /package/dist/elements/{p-3c2b721e.js.map → p-7f507bcb.js.map} +0 -0
  413. /package/dist/elements/{p-0feec79b.js.map → p-8206b1f1.js.map} +0 -0
  414. /package/dist/elements/{p-b097a0ac.entry.js.map → p-82fb9396.entry.js.map} +0 -0
  415. /package/dist/elements/{p-d86e6e48.entry.js.map → p-8817e69b.entry.js.map} +0 -0
  416. /package/dist/elements/{p-86f80c54.entry.js.map → p-8865cb08.entry.js.map} +0 -0
  417. /package/dist/elements/{p-0951f046.entry.js.map → p-8b9b339b.entry.js.map} +0 -0
  418. /package/dist/elements/{p-553217d4.entry.js.map → p-8b9b7f79.entry.js.map} +0 -0
  419. /package/dist/elements/{p-86eaec56.entry.js.map → p-8c32e0ab.entry.js.map} +0 -0
  420. /package/dist/elements/{p-8f98459a.entry.js.map → p-8fe569b3.entry.js.map} +0 -0
  421. /package/dist/elements/{p-e3734616.entry.js.map → p-9090e8dc.entry.js.map} +0 -0
  422. /package/dist/elements/{p-fb11bb27.entry.js.map → p-916a6612.entry.js.map} +0 -0
  423. /package/dist/elements/{p-fa9aa28a.entry.js.map → p-a68e7901.entry.js.map} +0 -0
  424. /package/dist/elements/{p-69410d36.js.map → p-a91046dc.js.map} +0 -0
  425. /package/dist/elements/{p-325e5484.entry.js.map → p-aad12400.entry.js.map} +0 -0
  426. /package/dist/elements/{p-58418838.entry.js.map → p-ab92e9ad.entry.js.map} +0 -0
  427. /package/dist/elements/{p-d01e6782.entry.js.map → p-af3f8ab1.entry.js.map} +0 -0
  428. /package/dist/elements/{p-8eb42424.entry.js.map → p-b11e8f77.entry.js.map} +0 -0
  429. /package/dist/elements/{p-77d82071.entry.js.map → p-b19890bd.entry.js.map} +0 -0
  430. /package/dist/elements/{p-573b7dca.entry.js.map → p-b227f4a8.entry.js.map} +0 -0
  431. /package/dist/elements/{p-134b66b6.js.map → p-bb3054a3.js.map} +0 -0
  432. /package/dist/elements/{p-56bf9fdf.js.map → p-c2690129.js.map} +0 -0
  433. /package/dist/elements/{p-8b0695a7.entry.js.map → p-c445f3ac.entry.js.map} +0 -0
  434. /package/dist/elements/{p-2ba30f60.entry.js.map → p-c9faf4da.entry.js.map} +0 -0
  435. /package/dist/elements/{p-2fa5ecde.js.map → p-ca453b3d.js.map} +0 -0
  436. /package/dist/elements/{p-c23172a0.entry.js.map → p-cd9107d1.entry.js.map} +0 -0
  437. /package/dist/elements/{p-9b369d09.js.map → p-cebe59d4.js.map} +0 -0
  438. /package/dist/elements/{p-b67ce91f.entry.js.map → p-cfec477d.entry.js.map} +0 -0
  439. /package/dist/elements/{p-1c69ca01.js.map → p-d0fcc589.js.map} +0 -0
  440. /package/dist/elements/{p-257248f2.entry.js.map → p-d2458575.entry.js.map} +0 -0
  441. /package/dist/elements/{p-9b3608b6.entry.js.map → p-d2e7f4d4.entry.js.map} +0 -0
  442. /package/dist/elements/{p-3505dfe2.js.map → p-d6769f21.js.map} +0 -0
  443. /package/dist/elements/{p-a1a15808.entry.js.map → p-d6bf2b98.entry.js.map} +0 -0
  444. /package/dist/elements/{p-75cbc833.entry.js.map → p-d86570da.entry.js.map} +0 -0
  445. /package/dist/elements/{p-963acf5e.entry.js.map → p-d8e8bd9b.entry.js.map} +0 -0
  446. /package/dist/elements/{p-de267699.js.map → p-d8fc8b11.js.map} +0 -0
  447. /package/dist/elements/{p-0ddd5da3.entry.js.map → p-da5f6dcd.entry.js.map} +0 -0
  448. /package/dist/elements/{p-ab5544fc.entry.js.map → p-db793eec.entry.js.map} +0 -0
  449. /package/dist/elements/{p-7e36887e.js.map → p-db973275.js.map} +0 -0
  450. /package/dist/elements/{p-5f2c1e33.entry.js.map → p-e134ddc9.entry.js.map} +0 -0
  451. /package/dist/elements/{p-0752ec21.entry.js.map → p-e3ae9b45.entry.js.map} +0 -0
  452. /package/dist/elements/{p-ad2273d6.js.map → p-ecdb52e8.js.map} +0 -0
  453. /package/dist/elements/{p-2dddbb15.js.map → p-f1ef82a9.js.map} +0 -0
  454. /package/dist/elements/{p-d3a247bd.entry.js.map → p-f4440338.entry.js.map} +0 -0
  455. /package/dist/elements/{p-5bd948fa.entry.js.map → p-f981858f.entry.js.map} +0 -0
  456. /package/dist/elements/{p-f6b92b3c.entry.js.map → p-fd200088.entry.js.map} +0 -0
  457. /package/dist/elements/{p-b56ae71f.entry.js.map → p-fdeb6a78.entry.js.map} +0 -0
@@ -0,0 +1,416 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-b86da440.js');
6
+ const helpers = require('./helpers-95c22e6d.js');
7
+ const ionicGlobal = require('./ionic-global-dcebbee3.js');
8
+ const dir = require('./dir-e6b438e6.js');
9
+ const theme = require('./theme-187bbc7d.js');
10
+
11
+ const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:flex;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;transform:scaleX(-1)}::slotted([slot=fixed]){position:absolute;transform:translateZ(0)}";
12
+ const IonContentStyle0 = contentCss;
13
+
14
+ const Content = class {
15
+ constructor(hostRef) {
16
+ index.registerInstance(this, hostRef);
17
+ this.ionScrollStart = index.createEvent(this, "ionScrollStart", 7);
18
+ this.ionScroll = index.createEvent(this, "ionScroll", 7);
19
+ this.ionScrollEnd = index.createEvent(this, "ionScrollEnd", 7);
20
+ this.watchDog = null;
21
+ this.isScrolling = false;
22
+ this.lastScroll = 0;
23
+ this.queued = false;
24
+ this.cTop = -1;
25
+ this.cBottom = -1;
26
+ this.isMainContent = true;
27
+ this.resizeTimeout = null;
28
+ this.tabsElement = null;
29
+ // Detail is used in a hot loop in the scroll event, by allocating it here
30
+ // V8 will be able to inline any read/write to it since it's a monomorphic class.
31
+ // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
32
+ this.detail = {
33
+ scrollTop: 0,
34
+ scrollLeft: 0,
35
+ type: 'scroll',
36
+ event: undefined,
37
+ startX: 0,
38
+ startY: 0,
39
+ startTime: 0,
40
+ currentX: 0,
41
+ currentY: 0,
42
+ velocityX: 0,
43
+ velocityY: 0,
44
+ deltaX: 0,
45
+ deltaY: 0,
46
+ currentTime: 0,
47
+ data: undefined,
48
+ isScrolling: true,
49
+ };
50
+ this.color = undefined;
51
+ this.fullscreen = false;
52
+ this.forceOverscroll = undefined;
53
+ this.scrollX = false;
54
+ this.scrollY = true;
55
+ this.scrollEvents = false;
56
+ }
57
+ connectedCallback() {
58
+ this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
59
+ /**
60
+ * The fullscreen content offsets need to be
61
+ * computed after the tab bar has loaded. Since
62
+ * lazy evaluation means components are not hydrated
63
+ * at the same time, we need to wait for the ionTabBarLoaded
64
+ * event to fire. This does not impact dist-custom-elements
65
+ * because there is no hydration there.
66
+ */
67
+ if (helpers.hasLazyBuild(this.el)) {
68
+ /**
69
+ * We need to cache the reference to the tabs.
70
+ * If just the content is unmounted then we won't
71
+ * be able to query for the closest tabs on disconnectedCallback
72
+ * since the content has been removed from the DOM tree.
73
+ */
74
+ const closestTabs = (this.tabsElement = this.el.closest('ion-tabs'));
75
+ if (closestTabs !== null) {
76
+ /**
77
+ * When adding and removing the event listener
78
+ * we need to make sure we pass the same function reference
79
+ * otherwise the event listener will not be removed properly.
80
+ * We can't only pass `this.resize` because "this" in the function
81
+ * context becomes a reference to IonTabs instead of IonContent.
82
+ *
83
+ * Additionally, we listen for ionTabBarLoaded on the IonTabs
84
+ * instance rather than the IonTabBar instance. It's possible for
85
+ * a tab bar to be conditionally rendered/mounted. Since ionTabBarLoaded
86
+ * bubbles, we can catch any instances of child tab bars loading by listening
87
+ * on IonTabs.
88
+ */
89
+ this.tabsLoadCallback = () => this.resize();
90
+ closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);
91
+ }
92
+ }
93
+ }
94
+ disconnectedCallback() {
95
+ this.onScrollEnd();
96
+ if (helpers.hasLazyBuild(this.el)) {
97
+ /**
98
+ * The event listener and tabs caches need to
99
+ * be cleared otherwise this will create a memory
100
+ * leak where the IonTabs instance can never be
101
+ * garbage collected.
102
+ */
103
+ const { tabsElement, tabsLoadCallback } = this;
104
+ if (tabsElement !== null && tabsLoadCallback !== undefined) {
105
+ tabsElement.removeEventListener('ionTabBarLoaded', tabsLoadCallback);
106
+ }
107
+ this.tabsElement = null;
108
+ this.tabsLoadCallback = undefined;
109
+ }
110
+ }
111
+ /**
112
+ * Rotating certain devices can update
113
+ * the safe area insets. As a result,
114
+ * the fullscreen feature on ion-content
115
+ * needs to be recalculated.
116
+ *
117
+ * We listen for "resize" because we
118
+ * do not care what the orientation of
119
+ * the device is. Other APIs
120
+ * such as ScreenOrientation or
121
+ * the deviceorientation event must have
122
+ * permission from the user first whereas
123
+ * the "resize" event does not.
124
+ *
125
+ * We also throttle the callback to minimize
126
+ * thrashing when quickly resizing a window.
127
+ */
128
+ onResize() {
129
+ if (this.resizeTimeout) {
130
+ clearTimeout(this.resizeTimeout);
131
+ this.resizeTimeout = null;
132
+ }
133
+ this.resizeTimeout = setTimeout(() => {
134
+ /**
135
+ * Resize should only happen
136
+ * if the content is visible.
137
+ * When the content is hidden
138
+ * then offsetParent will be null.
139
+ */
140
+ if (this.el.offsetParent === null) {
141
+ return;
142
+ }
143
+ this.resize();
144
+ }, 100);
145
+ }
146
+ shouldForceOverscroll() {
147
+ const { forceOverscroll } = this;
148
+ const mode = ionicGlobal.getIonMode(this);
149
+ return forceOverscroll === undefined ? mode === 'ios' && ionicGlobal.isPlatform('ios') : forceOverscroll;
150
+ }
151
+ resize() {
152
+ /**
153
+ * Only force update if the component is rendered in a browser context.
154
+ * Using `forceUpdate` in a server context with pre-rendering can lead to an infinite loop.
155
+ * The `hydrateDocument` function in `@stencil/core` will render the `ion-content`, but
156
+ * `forceUpdate` will trigger another render, locking up the server.
157
+ *
158
+ * TODO: Remove if STENCIL-834 determines Stencil will account for this.
159
+ */
160
+ {
161
+ if (this.fullscreen) {
162
+ index.readTask(() => this.readDimensions());
163
+ }
164
+ else if (this.cTop !== 0 || this.cBottom !== 0) {
165
+ this.cTop = this.cBottom = 0;
166
+ index.forceUpdate(this);
167
+ }
168
+ }
169
+ }
170
+ readDimensions() {
171
+ const page = getPageElement(this.el);
172
+ const top = Math.max(this.el.offsetTop, 0);
173
+ const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);
174
+ const dirty = top !== this.cTop || bottom !== this.cBottom;
175
+ if (dirty) {
176
+ this.cTop = top;
177
+ this.cBottom = bottom;
178
+ index.forceUpdate(this);
179
+ }
180
+ }
181
+ onScroll(ev) {
182
+ const timeStamp = Date.now();
183
+ const shouldStart = !this.isScrolling;
184
+ this.lastScroll = timeStamp;
185
+ if (shouldStart) {
186
+ this.onScrollStart();
187
+ }
188
+ if (!this.queued && this.scrollEvents) {
189
+ this.queued = true;
190
+ index.readTask((ts) => {
191
+ this.queued = false;
192
+ this.detail.event = ev;
193
+ updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);
194
+ this.ionScroll.emit(this.detail);
195
+ });
196
+ }
197
+ }
198
+ /**
199
+ * Get the element where the actual scrolling takes place.
200
+ * This element can be used to subscribe to `scroll` events or manually modify
201
+ * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:
202
+ *
203
+ * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
204
+ * and `scrollToPoint()` to scroll the content into a certain point.
205
+ */
206
+ async getScrollElement() {
207
+ /**
208
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
209
+ * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.
210
+ */
211
+ if (!this.scrollEl) {
212
+ await new Promise((resolve) => helpers.componentOnReady(this.el, resolve));
213
+ }
214
+ return Promise.resolve(this.scrollEl);
215
+ }
216
+ /**
217
+ * Returns the background content element.
218
+ * @internal
219
+ */
220
+ async getBackgroundElement() {
221
+ if (!this.backgroundContentEl) {
222
+ await new Promise((resolve) => helpers.componentOnReady(this.el, resolve));
223
+ }
224
+ return Promise.resolve(this.backgroundContentEl);
225
+ }
226
+ /**
227
+ * Scroll to the top of the component.
228
+ *
229
+ * @param duration The amount of time to take scrolling to the top. Defaults to `0`.
230
+ */
231
+ scrollToTop(duration = 0) {
232
+ return this.scrollToPoint(undefined, 0, duration);
233
+ }
234
+ /**
235
+ * Scroll to the bottom of the component.
236
+ *
237
+ * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
238
+ */
239
+ async scrollToBottom(duration = 0) {
240
+ const scrollEl = await this.getScrollElement();
241
+ const y = scrollEl.scrollHeight - scrollEl.clientHeight;
242
+ return this.scrollToPoint(undefined, y, duration);
243
+ }
244
+ /**
245
+ * Scroll by a specified X/Y distance in the component.
246
+ *
247
+ * @param x The amount to scroll by on the horizontal axis.
248
+ * @param y The amount to scroll by on the vertical axis.
249
+ * @param duration The amount of time to take scrolling by that amount.
250
+ */
251
+ async scrollByPoint(x, y, duration) {
252
+ const scrollEl = await this.getScrollElement();
253
+ return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);
254
+ }
255
+ /**
256
+ * Scroll to a specified X/Y location in the component.
257
+ *
258
+ * @param x The point to scroll to on the horizontal axis.
259
+ * @param y The point to scroll to on the vertical axis.
260
+ * @param duration The amount of time to take scrolling to that point. Defaults to `0`.
261
+ */
262
+ async scrollToPoint(x, y, duration = 0) {
263
+ const el = await this.getScrollElement();
264
+ if (duration < 32) {
265
+ if (y != null) {
266
+ el.scrollTop = y;
267
+ }
268
+ if (x != null) {
269
+ el.scrollLeft = x;
270
+ }
271
+ return;
272
+ }
273
+ let resolve;
274
+ let startTime = 0;
275
+ const promise = new Promise((r) => (resolve = r));
276
+ const fromY = el.scrollTop;
277
+ const fromX = el.scrollLeft;
278
+ const deltaY = y != null ? y - fromY : 0;
279
+ const deltaX = x != null ? x - fromX : 0;
280
+ // scroll loop
281
+ const step = (timeStamp) => {
282
+ const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;
283
+ const easedT = Math.pow(linearTime, 3) + 1;
284
+ if (deltaY !== 0) {
285
+ el.scrollTop = Math.floor(easedT * deltaY + fromY);
286
+ }
287
+ if (deltaX !== 0) {
288
+ el.scrollLeft = Math.floor(easedT * deltaX + fromX);
289
+ }
290
+ if (easedT < 1) {
291
+ // do not use DomController here
292
+ // must use nativeRaf in order to fire in the next frame
293
+ requestAnimationFrame(step);
294
+ }
295
+ else {
296
+ resolve();
297
+ }
298
+ };
299
+ // chill out for a frame first
300
+ requestAnimationFrame((ts) => {
301
+ startTime = ts;
302
+ step(ts);
303
+ });
304
+ return promise;
305
+ }
306
+ onScrollStart() {
307
+ this.isScrolling = true;
308
+ this.ionScrollStart.emit({
309
+ isScrolling: true,
310
+ });
311
+ if (this.watchDog) {
312
+ clearInterval(this.watchDog);
313
+ }
314
+ // watchdog
315
+ this.watchDog = setInterval(() => {
316
+ if (this.lastScroll < Date.now() - 120) {
317
+ this.onScrollEnd();
318
+ }
319
+ }, 100);
320
+ }
321
+ onScrollEnd() {
322
+ if (this.watchDog)
323
+ clearInterval(this.watchDog);
324
+ this.watchDog = null;
325
+ if (this.isScrolling) {
326
+ this.isScrolling = false;
327
+ this.ionScrollEnd.emit({
328
+ isScrolling: false,
329
+ });
330
+ }
331
+ }
332
+ render() {
333
+ const { isMainContent, scrollX, scrollY, el } = this;
334
+ const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
335
+ const mode = ionicGlobal.getIonMode(this);
336
+ const forceOverscroll = this.shouldForceOverscroll();
337
+ const transitionShadow = mode === 'ios';
338
+ const TagType = isMainContent ? 'main' : 'div';
339
+ this.resize();
340
+ return (index.h(index.Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: theme.createColorClasses(this.color, {
341
+ [mode]: true,
342
+ 'content-sizing': theme.hostContext('ion-popover', this.el),
343
+ overscroll: forceOverscroll,
344
+ [`content-${rtl}`]: true,
345
+ }), style: {
346
+ '--offset-top': `${this.cTop}px`,
347
+ '--offset-bottom': `${this.cBottom}px`,
348
+ } }, index.h("div", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), index.h(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {
349
+ 'inner-scroll': true,
350
+ 'scroll-x': scrollX,
351
+ 'scroll-y': scrollY,
352
+ overscroll: (scrollX || scrollY) && forceOverscroll,
353
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, index.h("slot", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (index.h("div", { class: "transition-effect" }, index.h("div", { class: "transition-cover" }), index.h("div", { class: "transition-shadow" }))) : null, index.h("slot", { key: '8f696583903af0548d064dca1a6bae060e127485', name: "fixed" })));
354
+ }
355
+ get el() { return index.getElement(this); }
356
+ };
357
+ const getParentElement = (el) => {
358
+ var _a;
359
+ if (el.parentElement) {
360
+ // normal element with a parent element
361
+ return el.parentElement;
362
+ }
363
+ if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {
364
+ // shadow dom's document fragment
365
+ return el.parentNode.host;
366
+ }
367
+ return null;
368
+ };
369
+ const getPageElement = (el) => {
370
+ const tabs = el.closest('ion-tabs');
371
+ if (tabs) {
372
+ return tabs;
373
+ }
374
+ /**
375
+ * If we're in a popover, we need to use its wrapper so we can account for space
376
+ * between the popover and the edges of the screen. But if the popover contains
377
+ * its own page element, we should use that instead.
378
+ */
379
+ const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');
380
+ if (page) {
381
+ return page;
382
+ }
383
+ return getParentElement(el);
384
+ };
385
+ // ******** DOM READ ****************
386
+ const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
387
+ const prevX = detail.currentX;
388
+ const prevY = detail.currentY;
389
+ const prevT = detail.currentTime;
390
+ const currentX = el.scrollLeft;
391
+ const currentY = el.scrollTop;
392
+ const timeDelta = timestamp - prevT;
393
+ if (shouldStart) {
394
+ // remember the start positions
395
+ detail.startTime = timestamp;
396
+ detail.startX = currentX;
397
+ detail.startY = currentY;
398
+ detail.velocityX = detail.velocityY = 0;
399
+ }
400
+ detail.currentTime = timestamp;
401
+ detail.currentX = detail.scrollLeft = currentX;
402
+ detail.currentY = detail.scrollTop = currentY;
403
+ detail.deltaX = currentX - detail.startX;
404
+ detail.deltaY = currentY - detail.startY;
405
+ if (timeDelta > 0 && timeDelta < 100) {
406
+ const velocityX = (currentX - prevX) / timeDelta;
407
+ const velocityY = (currentY - prevY) / timeDelta;
408
+ detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;
409
+ detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
410
+ }
411
+ };
412
+ Content.style = IonContentStyle0;
413
+
414
+ exports.ion_content = Content;
415
+
416
+ //# sourceMappingURL=ion-content.cjs.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"ion-content.entry.cjs.js","mappings":";;;;;;;;;;AAAA,MAAM,UAAU,GAAG,q7EAAq7E,CAAC;AACz8E,yBAAe,UAAU;;MCeZ,OAAO;IAChB;;;;;QACI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;;;;QAIxB,IAAI,CAAC,MAAM,GAAG;YACV,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,CAAC;YACb,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,SAAS,EAAE,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,WAAW,EAAE,CAAC;YACd,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,IAAI;SACpB,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC7B;IACD,iBAAiB;QACb,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,IAAI,CAAC;;;;;;;;;QASlF,IAAIA,oBAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;;;;;;;YAOvB,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACrE,IAAI,WAAW,KAAK,IAAI,EAAE;;;;;;;;;;;;;;gBActB,IAAI,CAAC,gBAAgB,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5C,WAAW,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;aAC1E;SACJ;KACJ;IACD,oBAAoB;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAIA,oBAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;;;;;;;YAOvB,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;YAC/C,IAAI,WAAW,KAAK,IAAI,IAAI,gBAAgB,KAAK,SAAS,EAAE;gBACxD,WAAW,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC;aACxE;YACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACrC;KACJ;;;;;;;;;;;;;;;;;;IAkBD,QAAQ;QACJ,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;QACD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;;;;;;;YAO5B,IAAI,IAAI,CAAC,EAAE,CAAC,YAAY,KAAK,IAAI,EAAE;gBAC/B,OAAO;aACV;YACD,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB,EAAE,GAAG,CAAC,CAAC;KACX;IACD,qBAAqB;QACjB,MAAM,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;QACjC,MAAM,IAAI,GAAGC,sBAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,eAAe,KAAK,SAAS,GAAG,IAAI,KAAK,KAAK,IAAIC,sBAAU,CAAC,KAAK,CAAC,GAAG,eAAe,CAAC;KAChG;IACD,MAAM;;;;;;;;;QASmB;YACjB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjBC,cAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;aACzC;iBACI,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;gBAC5C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;gBAC7BC,iBAAW,CAAC,IAAI,CAAC,CAAC;aACrB;SACJ;KACJ;IACD,cAAc;QACV,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC;QAC3D,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtBA,iBAAW,CAAC,IAAI,CAAC,CAAC;SACrB;KACJ;IACD,QAAQ,CAAC,EAAE;QACP,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,WAAW,EAAE;YACb,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;YACnC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnBD,cAAQ,CAAC,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;gBACvB,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;gBAChE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACpC,CAAC,CAAC;SACN;KACJ;;;;;;;;;IASD,MAAM,gBAAgB;;;;;QAKlB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAChB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAKE,wBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACzC;;;;;IAKD,MAAM,oBAAoB;QACtB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,KAAKA,wBAAgB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;SACtE;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;KACpD;;;;;;IAMD,WAAW,CAAC,QAAQ,GAAG,CAAC;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;KACrD;;;;;;IAMD,MAAM,cAAc,CAAC,QAAQ,GAAG,CAAC;QAC7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,MAAM,CAAC,GAAG,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACxD,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;KACrD;;;;;;;;IAQD,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC/C,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACxF;;;;;;;;IAQD,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,GAAG,CAAC;QAClC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzC,IAAI,QAAQ,GAAG,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,IAAI,EAAE;gBACX,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC;aACpB;YACD,IAAI,CAAC,IAAI,IAAI,EAAE;gBACX,EAAE,CAAC,UAAU,GAAG,CAAC,CAAC;aACrB;YACD,OAAO;SACV;QACD,IAAI,OAAO,CAAC;QACZ,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAE,CAAC,UAAU,CAAC;QAC5B,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;;QAEzC,MAAM,IAAI,GAAG,CAAC,SAAS;YACnB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,SAAS,GAAG,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,EAAE,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;aACtD;YACD,IAAI,MAAM,KAAK,CAAC,EAAE;gBACd,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,CAAC;aACvD;YACD,IAAI,MAAM,GAAG,CAAC,EAAE;;;gBAGZ,qBAAqB,CAAC,IAAI,CAAC,CAAC;aAC/B;iBACI;gBACD,OAAO,EAAE,CAAC;aACb;SACJ,CAAC;;QAEF,qBAAqB,CAAC,CAAC,EAAE;YACrB,SAAS,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,EAAE,CAAC,CAAC;SACZ,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;KAClB;IACD,aAAa;QACT,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;YACrB,WAAW,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC;;QAED,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YACxB,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;SACJ,EAAE,GAAG,CAAC,CAAC;KACX;IACD,WAAW;QACP,IAAI,IAAI,CAAC,QAAQ;YACb,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE;YAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBACnB,WAAW,EAAE,KAAK;aACrB,CAAC,CAAC;SACN;KACJ;IACD,MAAM;QACF,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;QACrD,MAAM,GAAG,GAAGC,SAAK,CAAC,EAAE,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;QACtC,MAAM,IAAI,GAAGL,sBAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,gBAAgB,GAAG,IAAI,KAAK,KAAK,CAAC;QACxC,MAAM,OAAO,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,QAAQM,OAAC,CAACC,UAAI,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,KAAK,EAAEC,wBAAkB,CAAC,IAAI,CAAC,KAAK,EAAE;gBACjG,CAAC,IAAI,GAAG,IAAI;gBACZ,gBAAgB,EAAEC,iBAAW,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,CAAC;gBACrD,UAAU,EAAE,eAAe;gBAC3B,CAAC,WAAW,GAAG,EAAE,GAAG,IAAI;aAC3B,CAAC,EAAE,KAAK,EAAE;gBACP,cAAc,EAAE,GAAG,IAAI,CAAC,IAAI,IAAI;gBAChC,iBAAiB,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI;aACzC,EAAE,EAAEH,OAAC,CAAC,KAAK,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAEA,OAAC,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,KAAK,EAAE;gBACjO,cAAc,EAAE,IAAI;gBACpB,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,CAAC,OAAO,IAAI,OAAO,KAAK,eAAe;aACtD,EAAE,GAAG,EAAE,CAAC,QAAQ,MAAM,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAEA,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,CAAC,CAAC,EAAE,gBAAgB,IAAIA,OAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAAEA,OAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAEA,OAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC,IAAI,IAAI,EAAEA,OAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,0CAA0C,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE;KAC1b;;;AA2XL,MAAM,gBAAgB,GAAG,CAAC,EAAE;IACxB,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC,aAAa,EAAE;;QAElB,OAAO,EAAE,CAAC,aAAa,CAAC;KAC3B;IACD,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,UAAU,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE;;QAEnE,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;KAC7B;IACD,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,MAAM,cAAc,GAAG,CAAC,EAAE;IACtB,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,IAAI,EAAE;QACN,OAAO,IAAI,CAAC;KACf;;;;;;IAMD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC;IACtF,IAAI,IAAI,EAAE;QACN,OAAO,IAAI,CAAC;KACf;IACD,OAAO,gBAAgB,CAAC,EAAE,CAAC,CAAC;AAChC,CAAC,CAAC;AACF;AACA,MAAM,kBAAkB,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW;IAC1D,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC9B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;IACjC,MAAM,QAAQ,GAAG,EAAE,CAAC,UAAU,CAAC;IAC/B,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;IAC9B,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IACpC,IAAI,WAAW,EAAE;;QAEb,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;QACzB,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC;KAC3C;IACD,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC/C,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC9C,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,MAAM,CAAC,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;IACzC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG,EAAE;QAClC,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAI,SAAS,CAAC;QACjD,MAAM,SAAS,GAAG,CAAC,QAAQ,GAAG,KAAK,IAAI,SAAS,CAAC;QACjD,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;QAC5D,MAAM,CAAC,SAAS,GAAG,SAAS,GAAG,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC;KAC/D;AACL,CAAC,CAAC;;;;;","names":["hasLazyBuild","getIonMode","isPlatform","readTask","forceUpdate","componentOnReady","isRTL","h","Host","createColorClasses","hostContext"],"sources":["../node_modules/@ionic/core/dist/collection/components/content/content.css?tag=ion-content&encapsulation=shadow","../node_modules/@ionic/core/dist/collection/components/content/content.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:host {\n /**\n * @prop --background: Background of the content\n *\n * @prop --color: Color of the content\n *\n * @prop --padding-top: Top padding of the content\n * @prop --padding-end: Right padding if direction is left-to-right, and left padding if direction is right-to-left of the content\n * @prop --padding-bottom: Bottom padding of the content\n * @prop --padding-start: Left padding if direction is left-to-right, and right padding if direction is right-to-left of the content\n *\n * @prop --keyboard-offset: Keyboard offset of the content\n *\n * @prop --offset-top: Offset top of the content\n * @prop --offset-bottom: Offset bottom of the content\n */\n --background: var(--ion-background-color, #fff);\n --color: var(--ion-text-color, #000);\n --padding-top: 0px;\n --padding-bottom: 0px;\n --padding-start: 0px;\n --padding-end: 0px;\n --keyboard-offset: 0px;\n --offset-top: 0px;\n --offset-bottom: 0px;\n --overflow: auto;\n display: block;\n position: relative;\n flex: 1;\n width: 100%;\n height: 100%;\n /* stylelint-disable */\n margin: 0 !important;\n padding: 0 !important;\n /* stylelint-enable */\n font-family: var(--ion-font-family, inherit);\n contain: size style;\n}\n\n:host(.ion-color) .inner-scroll {\n background: var(--ion-color-base);\n color: var(--ion-color-contrast);\n}\n\n:host(.outer-content) {\n --background: var(--ion-color-step-50, #f2f2f2);\n}\n\n#background-content {\n left: 0px;\n right: 0px;\n top: calc(var(--offset-top) * -1);\n bottom: calc(var(--offset-bottom) * -1);\n position: absolute;\n background: var(--background);\n}\n\n.inner-scroll {\n left: 0px;\n right: 0px;\n top: calc(var(--offset-top) * -1);\n bottom: calc(var(--offset-bottom) * -1);\n -webkit-padding-start: var(--padding-start);\n padding-inline-start: var(--padding-start);\n -webkit-padding-end: var(--padding-end);\n padding-inline-end: var(--padding-end);\n padding-top: calc(var(--padding-top) + var(--offset-top));\n padding-bottom: calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));\n position: absolute;\n color: var(--color);\n box-sizing: border-box;\n overflow: hidden;\n /**\n * touch-action: manipulation is an alias\n * for this, but WebKit has an issue\n * where pointercancel events are not fired\n * when scrolling: https://bugs.webkit.org/show_bug.cgi?id=240917\n * Using the long form below avoids the issue.\n */\n touch-action: pan-x pan-y pinch-zoom;\n}\n\n.scroll-y,\n.scroll-x {\n -webkit-overflow-scrolling: touch;\n /**\n * This adds `.inner-scroll` as part of the\n * stacking context in WebKit. Without it,\n * children of ion-content are treated as\n * siblings rather than descendants. This\n * can result in the children being put\n * into their own layers, degrading\n * scrolling performance.\n *\n * An optimization called \"layer backing\n * sharing\" usually kicks in to prevent\n * this, but having translate3d defeats\n * this optimization.\n *\n * See: https://bugs.webkit.org/show_bug.cgi?id=216701\n */\n z-index: 0;\n will-change: scroll-position;\n}\n\n.scroll-y {\n overflow-y: var(--overflow);\n overscroll-behavior-y: contain;\n}\n\n.scroll-x {\n overflow-x: var(--overflow);\n overscroll-behavior-x: contain;\n}\n\n.overscroll::before,\n.overscroll::after {\n position: absolute;\n width: 1px;\n height: 1px;\n content: \"\";\n}\n\n.overscroll::before {\n bottom: -1px;\n}\n\n.overscroll::after {\n top: -1px;\n}\n\n:host(.content-sizing) {\n display: flex;\n flex-direction: column;\n /**\n * This resolves a sizing issue in popovers where extra long content\n * would overflow the popover's height, preventing scrolling. It's a\n * quirk of flexbox that forces the content to shrink to fit.\n *\n * overflow: hidden can't be used here because it prevents the visual\n * effect from showing on translucent headers.\n */\n min-height: 0;\n contain: none;\n}\n\n:host(.content-sizing) .inner-scroll {\n position: relative;\n /**\n * Because the outer content has display: flex here (to help enable\n * scrolling in a popover), offsetting via `top` (such as when using\n * a translucent header) creates white space under the content. Use\n * a negative margin instead to keep the bottom in place. (A similar\n * thing happens with `bottom` and footers.)\n */\n top: 0;\n bottom: 0;\n margin-top: calc(var(--offset-top) * -1);\n margin-bottom: calc(var(--offset-bottom) * -1);\n}\n\n.transition-effect {\n display: none;\n position: absolute;\n width: 100%;\n height: 100vh;\n opacity: 0;\n pointer-events: none;\n}\n\n:host(.content-ltr) .transition-effect {\n /* stylelint-disable property-disallowed-list */\n left: -100%;\n /* stylelint-enable property-disallowed-list */\n}\n\n:host(.content-rtl) .transition-effect {\n /* stylelint-disable property-disallowed-list */\n right: -100%;\n /* stylelint-enable property-disallowed-list */\n}\n\n.transition-cover {\n position: absolute;\n /* stylelint-disable property-disallowed-list */\n right: 0;\n /* stylelint-enable property-disallowed-list */\n width: 100%;\n height: 100%;\n background: black;\n opacity: 0.1;\n}\n\n.transition-shadow {\n display: block;\n position: absolute;\n width: 100%;\n height: 100%;\n box-shadow: inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);\n}\n\n:host(.content-ltr) .transition-shadow {\n /* stylelint-disable property-disallowed-list */\n right: 0;\n /* stylelint-enable property-disallowed-list */\n}\n\n:host(.content-rtl) .transition-shadow {\n /* stylelint-disable property-disallowed-list */\n left: 0;\n /* stylelint-enable property-disallowed-list */\n transform: scaleX(-1);\n}\n\n::slotted([slot=fixed]) {\n position: absolute;\n /**\n * When presenting ion-content inside of an ion-modal, the .inner-scroll\n * element is composited. In WebKit, the fixed content is not composited\n * causing it to appear under the main scrollable content as a result.\n * The fixed content is correctly composited in other browsers. Adding\n * the translateZ forces the fixed content to be composited so it correctly\n * shows on top of the scrollable content. Setting a negative z-index will\n * still allow the fixed content to appear under the scroll content if specified.\n */\n transform: translateZ(0);\n}","/*!\n * (C) Ionic http://ionicframework.com - MIT License\n */\nimport { Build, Host, forceUpdate, h, readTask } from \"@stencil/core\";\nimport { componentOnReady, hasLazyBuild } from \"../../utils/helpers\";\nimport { isPlatform } from \"../../utils/platform\";\nimport { isRTL } from \"../../utils/rtl/index\";\nimport { createColorClasses, hostContext } from \"../../utils/theme\";\nimport { getIonMode } from \"../../global/ionic-global\";\n/**\n * @slot - Content is placed in the scrollable area if provided without a slot.\n * @slot fixed - Should be used for fixed content that should not scroll.\n *\n * @part background - The background of the content.\n * @part scroll - The scrollable container of the content.\n */\nexport class Content {\n constructor() {\n this.watchDog = null;\n this.isScrolling = false;\n this.lastScroll = 0;\n this.queued = false;\n this.cTop = -1;\n this.cBottom = -1;\n this.isMainContent = true;\n this.resizeTimeout = null;\n this.tabsElement = null;\n // Detail is used in a hot loop in the scroll event, by allocating it here\n // V8 will be able to inline any read/write to it since it's a monomorphic class.\n // https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html\n this.detail = {\n scrollTop: 0,\n scrollLeft: 0,\n type: 'scroll',\n event: undefined,\n startX: 0,\n startY: 0,\n startTime: 0,\n currentX: 0,\n currentY: 0,\n velocityX: 0,\n velocityY: 0,\n deltaX: 0,\n deltaY: 0,\n currentTime: 0,\n data: undefined,\n isScrolling: true,\n };\n this.color = undefined;\n this.fullscreen = false;\n this.forceOverscroll = undefined;\n this.scrollX = false;\n this.scrollY = true;\n this.scrollEvents = false;\n }\n connectedCallback() {\n this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;\n /**\n * The fullscreen content offsets need to be\n * computed after the tab bar has loaded. Since\n * lazy evaluation means components are not hydrated\n * at the same time, we need to wait for the ionTabBarLoaded\n * event to fire. This does not impact dist-custom-elements\n * because there is no hydration there.\n */\n if (hasLazyBuild(this.el)) {\n /**\n * We need to cache the reference to the tabs.\n * If just the content is unmounted then we won't\n * be able to query for the closest tabs on disconnectedCallback\n * since the content has been removed from the DOM tree.\n */\n const closestTabs = (this.tabsElement = this.el.closest('ion-tabs'));\n if (closestTabs !== null) {\n /**\n * When adding and removing the event listener\n * we need to make sure we pass the same function reference\n * otherwise the event listener will not be removed properly.\n * We can't only pass `this.resize` because \"this\" in the function\n * context becomes a reference to IonTabs instead of IonContent.\n *\n * Additionally, we listen for ionTabBarLoaded on the IonTabs\n * instance rather than the IonTabBar instance. It's possible for\n * a tab bar to be conditionally rendered/mounted. Since ionTabBarLoaded\n * bubbles, we can catch any instances of child tab bars loading by listening\n * on IonTabs.\n */\n this.tabsLoadCallback = () => this.resize();\n closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);\n }\n }\n }\n disconnectedCallback() {\n this.onScrollEnd();\n if (hasLazyBuild(this.el)) {\n /**\n * The event listener and tabs caches need to\n * be cleared otherwise this will create a memory\n * leak where the IonTabs instance can never be\n * garbage collected.\n */\n const { tabsElement, tabsLoadCallback } = this;\n if (tabsElement !== null && tabsLoadCallback !== undefined) {\n tabsElement.removeEventListener('ionTabBarLoaded', tabsLoadCallback);\n }\n this.tabsElement = null;\n this.tabsLoadCallback = undefined;\n }\n }\n /**\n * Rotating certain devices can update\n * the safe area insets. As a result,\n * the fullscreen feature on ion-content\n * needs to be recalculated.\n *\n * We listen for \"resize\" because we\n * do not care what the orientation of\n * the device is. Other APIs\n * such as ScreenOrientation or\n * the deviceorientation event must have\n * permission from the user first whereas\n * the \"resize\" event does not.\n *\n * We also throttle the callback to minimize\n * thrashing when quickly resizing a window.\n */\n onResize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n this.resizeTimeout = null;\n }\n this.resizeTimeout = setTimeout(() => {\n /**\n * Resize should only happen\n * if the content is visible.\n * When the content is hidden\n * then offsetParent will be null.\n */\n if (this.el.offsetParent === null) {\n return;\n }\n this.resize();\n }, 100);\n }\n shouldForceOverscroll() {\n const { forceOverscroll } = this;\n const mode = getIonMode(this);\n return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;\n }\n resize() {\n /**\n * Only force update if the component is rendered in a browser context.\n * Using `forceUpdate` in a server context with pre-rendering can lead to an infinite loop.\n * The `hydrateDocument` function in `@stencil/core` will render the `ion-content`, but\n * `forceUpdate` will trigger another render, locking up the server.\n *\n * TODO: Remove if STENCIL-834 determines Stencil will account for this.\n */\n if (Build.isBrowser) {\n if (this.fullscreen) {\n readTask(() => this.readDimensions());\n }\n else if (this.cTop !== 0 || this.cBottom !== 0) {\n this.cTop = this.cBottom = 0;\n forceUpdate(this);\n }\n }\n }\n readDimensions() {\n const page = getPageElement(this.el);\n const top = Math.max(this.el.offsetTop, 0);\n const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);\n const dirty = top !== this.cTop || bottom !== this.cBottom;\n if (dirty) {\n this.cTop = top;\n this.cBottom = bottom;\n forceUpdate(this);\n }\n }\n onScroll(ev) {\n const timeStamp = Date.now();\n const shouldStart = !this.isScrolling;\n this.lastScroll = timeStamp;\n if (shouldStart) {\n this.onScrollStart();\n }\n if (!this.queued && this.scrollEvents) {\n this.queued = true;\n readTask((ts) => {\n this.queued = false;\n this.detail.event = ev;\n updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);\n this.ionScroll.emit(this.detail);\n });\n }\n }\n /**\n * Get the element where the actual scrolling takes place.\n * This element can be used to subscribe to `scroll` events or manually modify\n * `scrollTop`. However, it's recommended to use the API provided by `ion-content`:\n *\n * i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events\n * and `scrollToPoint()` to scroll the content into a certain point.\n */\n async getScrollElement() {\n /**\n * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),\n * scrollEl won't be defined yet with the custom elements build, so wait for it to load in.\n */\n if (!this.scrollEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.scrollEl);\n }\n /**\n * Returns the background content element.\n * @internal\n */\n async getBackgroundElement() {\n if (!this.backgroundContentEl) {\n await new Promise((resolve) => componentOnReady(this.el, resolve));\n }\n return Promise.resolve(this.backgroundContentEl);\n }\n /**\n * Scroll to the top of the component.\n *\n * @param duration The amount of time to take scrolling to the top. Defaults to `0`.\n */\n scrollToTop(duration = 0) {\n return this.scrollToPoint(undefined, 0, duration);\n }\n /**\n * Scroll to the bottom of the component.\n *\n * @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.\n */\n async scrollToBottom(duration = 0) {\n const scrollEl = await this.getScrollElement();\n const y = scrollEl.scrollHeight - scrollEl.clientHeight;\n return this.scrollToPoint(undefined, y, duration);\n }\n /**\n * Scroll by a specified X/Y distance in the component.\n *\n * @param x The amount to scroll by on the horizontal axis.\n * @param y The amount to scroll by on the vertical axis.\n * @param duration The amount of time to take scrolling by that amount.\n */\n async scrollByPoint(x, y, duration) {\n const scrollEl = await this.getScrollElement();\n return this.scrollToPoint(x + scrollEl.scrollLeft, y + scrollEl.scrollTop, duration);\n }\n /**\n * Scroll to a specified X/Y location in the component.\n *\n * @param x The point to scroll to on the horizontal axis.\n * @param y The point to scroll to on the vertical axis.\n * @param duration The amount of time to take scrolling to that point. Defaults to `0`.\n */\n async scrollToPoint(x, y, duration = 0) {\n const el = await this.getScrollElement();\n if (duration < 32) {\n if (y != null) {\n el.scrollTop = y;\n }\n if (x != null) {\n el.scrollLeft = x;\n }\n return;\n }\n let resolve;\n let startTime = 0;\n const promise = new Promise((r) => (resolve = r));\n const fromY = el.scrollTop;\n const fromX = el.scrollLeft;\n const deltaY = y != null ? y - fromY : 0;\n const deltaX = x != null ? x - fromX : 0;\n // scroll loop\n const step = (timeStamp) => {\n const linearTime = Math.min(1, (timeStamp - startTime) / duration) - 1;\n const easedT = Math.pow(linearTime, 3) + 1;\n if (deltaY !== 0) {\n el.scrollTop = Math.floor(easedT * deltaY + fromY);\n }\n if (deltaX !== 0) {\n el.scrollLeft = Math.floor(easedT * deltaX + fromX);\n }\n if (easedT < 1) {\n // do not use DomController here\n // must use nativeRaf in order to fire in the next frame\n requestAnimationFrame(step);\n }\n else {\n resolve();\n }\n };\n // chill out for a frame first\n requestAnimationFrame((ts) => {\n startTime = ts;\n step(ts);\n });\n return promise;\n }\n onScrollStart() {\n this.isScrolling = true;\n this.ionScrollStart.emit({\n isScrolling: true,\n });\n if (this.watchDog) {\n clearInterval(this.watchDog);\n }\n // watchdog\n this.watchDog = setInterval(() => {\n if (this.lastScroll < Date.now() - 120) {\n this.onScrollEnd();\n }\n }, 100);\n }\n onScrollEnd() {\n if (this.watchDog)\n clearInterval(this.watchDog);\n this.watchDog = null;\n if (this.isScrolling) {\n this.isScrolling = false;\n this.ionScrollEnd.emit({\n isScrolling: false,\n });\n }\n }\n render() {\n const { isMainContent, scrollX, scrollY, el } = this;\n const rtl = isRTL(el) ? 'rtl' : 'ltr';\n const mode = getIonMode(this);\n const forceOverscroll = this.shouldForceOverscroll();\n const transitionShadow = mode === 'ios';\n const TagType = isMainContent ? 'main' : 'div';\n this.resize();\n return (h(Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: createColorClasses(this.color, {\n [mode]: true,\n 'content-sizing': hostContext('ion-popover', this.el),\n overscroll: forceOverscroll,\n [`content-${rtl}`]: true,\n }), style: {\n '--offset-top': `${this.cTop}px`,\n '--offset-bottom': `${this.cBottom}px`,\n } }, h(\"div\", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: \"background-content\", part: \"background\" }), h(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {\n 'inner-scroll': true,\n 'scroll-x': scrollX,\n 'scroll-y': scrollY,\n overscroll: (scrollX || scrollY) && forceOverscroll,\n }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: \"scroll\" }, h(\"slot\", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (h(\"div\", { class: \"transition-effect\" }, h(\"div\", { class: \"transition-cover\" }), h(\"div\", { class: \"transition-shadow\" }))) : null, h(\"slot\", { key: '8f696583903af0548d064dca1a6bae060e127485', name: \"fixed\" })));\n }\n static get is() { return \"ion-content\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"content.scss\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"content.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 \"attribute\": \"color\",\n \"reflect\": true\n },\n \"fullscreen\": {\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 content will scroll behind the headers\\nand footers. This effect can easily be seen by setting the toolbar\\nto transparent.\"\n },\n \"attribute\": \"fullscreen\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"forceOverscroll\": {\n \"type\": \"boolean\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If `true` and the content does not cause an overflow scroll, the scroll interaction will cause a bounce.\\nIf the content exceeds the bounds of ionContent, nothing will change.\\nNote, this does not disable the system bounce on iOS. That is an OS level setting.\"\n },\n \"attribute\": \"force-overscroll\",\n \"reflect\": false\n },\n \"scrollX\": {\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 you want to enable the content scrolling in the X axis, set this property to `true`.\"\n },\n \"attribute\": \"scroll-x\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"scrollY\": {\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 you want to disable the content scrolling in the Y axis, set this property to `false`.\"\n },\n \"attribute\": \"scroll-y\",\n \"reflect\": false,\n \"defaultValue\": \"true\"\n },\n \"scrollEvents\": {\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\": \"Because of performance reasons, ionScroll events are disabled by default, in order to enable them\\nand start listening from (ionScroll), set this property to `true`.\"\n },\n \"attribute\": \"scroll-events\",\n \"reflect\": false,\n \"defaultValue\": \"false\"\n }\n };\n }\n static get events() {\n return [{\n \"method\": \"ionScrollStart\",\n \"name\": \"ionScrollStart\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the scroll has started. This event is disabled by default.\\nSet `scrollEvents` to `true` to enable.\"\n },\n \"complexType\": {\n \"original\": \"ScrollBaseDetail\",\n \"resolved\": \"ScrollBaseDetail\",\n \"references\": {\n \"ScrollBaseDetail\": {\n \"location\": \"import\",\n \"path\": \"./content-interface\",\n \"id\": \"src/components/content/content-interface.ts::ScrollBaseDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionScroll\",\n \"name\": \"ionScroll\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted while scrolling. This event is disabled by default.\\nSet `scrollEvents` to `true` to enable.\"\n },\n \"complexType\": {\n \"original\": \"ScrollDetail\",\n \"resolved\": \"ScrollDetail\",\n \"references\": {\n \"ScrollDetail\": {\n \"location\": \"import\",\n \"path\": \"./content-interface\",\n \"id\": \"src/components/content/content-interface.ts::ScrollDetail\"\n }\n }\n }\n }, {\n \"method\": \"ionScrollEnd\",\n \"name\": \"ionScrollEnd\",\n \"bubbles\": true,\n \"cancelable\": true,\n \"composed\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Emitted when the scroll has ended. This event is disabled by default.\\nSet `scrollEvents` to `true` to enable.\"\n },\n \"complexType\": {\n \"original\": \"ScrollBaseDetail\",\n \"resolved\": \"ScrollBaseDetail\",\n \"references\": {\n \"ScrollBaseDetail\": {\n \"location\": \"import\",\n \"path\": \"./content-interface\",\n \"id\": \"src/components/content/content-interface.ts::ScrollBaseDetail\"\n }\n }\n }\n }];\n }\n static get methods() {\n return {\n \"getScrollElement\": {\n \"complexType\": {\n \"signature\": \"() => Promise<HTMLElement>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n },\n \"return\": \"Promise<HTMLElement>\"\n },\n \"docs\": {\n \"text\": \"Get the element where the actual scrolling takes place.\\nThis element can be used to subscribe to `scroll` events or manually modify\\n`scrollTop`. However, it's recommended to use the API provided by `ion-content`:\\n\\ni.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events\\nand `scrollToPoint()` to scroll the content into a certain point.\",\n \"tags\": []\n }\n },\n \"getBackgroundElement\": {\n \"complexType\": {\n \"signature\": \"() => Promise<HTMLElement>\",\n \"parameters\": [],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n },\n \"HTMLElement\": {\n \"location\": \"global\",\n \"id\": \"global::HTMLElement\"\n }\n },\n \"return\": \"Promise<HTMLElement>\"\n },\n \"docs\": {\n \"text\": \"Returns the background content element.\",\n \"tags\": [{\n \"name\": \"internal\",\n \"text\": undefined\n }]\n }\n },\n \"scrollToTop\": {\n \"complexType\": {\n \"signature\": \"(duration?: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"duration\",\n \"type\": \"number\",\n \"docs\": \"The amount of time to take scrolling to the top. Defaults to `0`.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Scroll to the top of the component.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"duration The amount of time to take scrolling to the top. Defaults to `0`.\"\n }]\n }\n },\n \"scrollToBottom\": {\n \"complexType\": {\n \"signature\": \"(duration?: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"duration\",\n \"type\": \"number\",\n \"docs\": \"The amount of time to take scrolling to the bottom. Defaults to `0`.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Scroll to the bottom of the component.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"duration The amount of time to take scrolling to the bottom. Defaults to `0`.\"\n }]\n }\n },\n \"scrollByPoint\": {\n \"complexType\": {\n \"signature\": \"(x: number, y: number, duration: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"x\",\n \"type\": \"number\",\n \"docs\": \"The amount to scroll by on the horizontal axis.\"\n }, {\n \"name\": \"y\",\n \"type\": \"number\",\n \"docs\": \"The amount to scroll by on the vertical axis.\"\n }, {\n \"name\": \"duration\",\n \"type\": \"number\",\n \"docs\": \"The amount of time to take scrolling by that amount.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Scroll by a specified X/Y distance in the component.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"x The amount to scroll by on the horizontal axis.\"\n }, {\n \"name\": \"param\",\n \"text\": \"y The amount to scroll by on the vertical axis.\"\n }, {\n \"name\": \"param\",\n \"text\": \"duration The amount of time to take scrolling by that amount.\"\n }]\n }\n },\n \"scrollToPoint\": {\n \"complexType\": {\n \"signature\": \"(x: number | undefined | null, y: number | undefined | null, duration?: number) => Promise<void>\",\n \"parameters\": [{\n \"name\": \"x\",\n \"type\": \"number | null | undefined\",\n \"docs\": \"The point to scroll to on the horizontal axis.\"\n }, {\n \"name\": \"y\",\n \"type\": \"number | null | undefined\",\n \"docs\": \"The point to scroll to on the vertical axis.\"\n }, {\n \"name\": \"duration\",\n \"type\": \"number\",\n \"docs\": \"The amount of time to take scrolling to that point. Defaults to `0`.\"\n }],\n \"references\": {\n \"Promise\": {\n \"location\": \"global\",\n \"id\": \"global::Promise\"\n }\n },\n \"return\": \"Promise<void>\"\n },\n \"docs\": {\n \"text\": \"Scroll to a specified X/Y location in the component.\",\n \"tags\": [{\n \"name\": \"param\",\n \"text\": \"x The point to scroll to on the horizontal axis.\"\n }, {\n \"name\": \"param\",\n \"text\": \"y The point to scroll to on the vertical axis.\"\n }, {\n \"name\": \"param\",\n \"text\": \"duration The amount of time to take scrolling to that point. Defaults to `0`.\"\n }]\n }\n }\n };\n }\n static get elementRef() { return \"el\"; }\n static get listeners() {\n return [{\n \"name\": \"resize\",\n \"method\": \"onResize\",\n \"target\": \"window\",\n \"capture\": false,\n \"passive\": true\n }];\n }\n}\nconst getParentElement = (el) => {\n var _a;\n if (el.parentElement) {\n // normal element with a parent element\n return el.parentElement;\n }\n if ((_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.host) {\n // shadow dom's document fragment\n return el.parentNode.host;\n }\n return null;\n};\nconst getPageElement = (el) => {\n const tabs = el.closest('ion-tabs');\n if (tabs) {\n return tabs;\n }\n /**\n * If we're in a popover, we need to use its wrapper so we can account for space\n * between the popover and the edges of the screen. But if the popover contains\n * its own page element, we should use that instead.\n */\n const page = el.closest('ion-app, ion-page, .ion-page, page-inner, .popover-content');\n if (page) {\n return page;\n }\n return getParentElement(el);\n};\n// ******** DOM READ ****************\nconst updateScrollDetail = (detail, el, timestamp, shouldStart) => {\n const prevX = detail.currentX;\n const prevY = detail.currentY;\n const prevT = detail.currentTime;\n const currentX = el.scrollLeft;\n const currentY = el.scrollTop;\n const timeDelta = timestamp - prevT;\n if (shouldStart) {\n // remember the start positions\n detail.startTime = timestamp;\n detail.startX = currentX;\n detail.startY = currentY;\n detail.velocityX = detail.velocityY = 0;\n }\n detail.currentTime = timestamp;\n detail.currentX = detail.scrollLeft = currentX;\n detail.currentY = detail.scrollTop = currentY;\n detail.deltaX = currentX - detail.startX;\n detail.deltaY = currentY - detail.startY;\n if (timeDelta > 0 && timeDelta < 100) {\n const velocityX = (currentX - prevX) / timeDelta;\n const velocityY = (currentY - prevY) / timeDelta;\n detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;\n detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;\n }\n};\n"],"version":3}