@revolist/revogrid 4.15.2 → 4.15.3

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 (316) hide show
  1. package/dist/cjs/{app-globals-f72a6199.js → app-globals-Dyhp_4xt.js} +3 -2
  2. package/dist/cjs/app-globals-Dyhp_4xt.js.map +1 -0
  3. package/dist/cjs/{cell-renderer-e5481ec8.js → cell-renderer-TbPNpr1V.js} +5 -4
  4. package/dist/cjs/cell-renderer-TbPNpr1V.js.map +1 -0
  5. package/dist/cjs/{column.drag.plugin-f3c54b57.js → column.drag.plugin-6uJDpdhd.js} +15 -20
  6. package/dist/cjs/column.drag.plugin-6uJDpdhd.js.map +1 -0
  7. package/dist/cjs/{column.service-e6411bc8.js → column.service-tkBPqZbF.js} +46 -15
  8. package/dist/cjs/column.service-tkBPqZbF.js.map +1 -0
  9. package/dist/cjs/{debounce-ec7a04b4.js → debounce-CcpHiH2p.js} +13 -20
  10. package/dist/cjs/debounce-CcpHiH2p.js.map +1 -0
  11. package/dist/cjs/{dimension.helpers-29797371.js → dimension.helpers-B22YFI1t.js} +73 -158
  12. package/dist/cjs/dimension.helpers-B22YFI1t.js.map +1 -0
  13. package/dist/cjs/{edit.utils-2142d37d.js → edit.utils-C4mlXiHS.js} +3 -2
  14. package/dist/cjs/edit.utils-C4mlXiHS.js.map +1 -0
  15. package/dist/cjs/{events-af8f6914.js → events-DeLDyZlb.js} +2 -1
  16. package/dist/cjs/events-DeLDyZlb.js.map +1 -0
  17. package/dist/cjs/{filter.button-2708e602.js → filter.button-0z5oxlOa.js} +3 -2
  18. package/dist/cjs/filter.button-0z5oxlOa.js.map +1 -0
  19. package/dist/cjs/{header-cell-renderer-56658ed7.js → header-cell-renderer-BsXDj6T-.js} +8 -9
  20. package/dist/cjs/header-cell-renderer-BsXDj6T-.js.map +1 -0
  21. package/dist/cjs/{index-8006d065.js → index-BkwGxxDX.js} +1403 -1119
  22. package/dist/cjs/index-BkwGxxDX.js.map +1 -0
  23. package/dist/cjs/index.cjs.js +16 -21
  24. package/dist/cjs/index.cjs.js.map +1 -1
  25. package/dist/cjs/loader.cjs.js +4 -5
  26. package/dist/cjs/loader.cjs.js.map +1 -1
  27. package/dist/cjs/{resize-observer-d009a220.js → resize-observer-BCzJvzIA.js} +2 -1
  28. package/dist/cjs/resize-observer-BCzJvzIA.js.map +1 -0
  29. package/dist/cjs/revo-grid.cjs.entry.js +134 -25
  30. package/dist/cjs/revo-grid.cjs.entry.js.map +1 -1
  31. package/dist/cjs/revo-grid.cjs.js +8 -7
  32. package/dist/cjs/revo-grid.cjs.js.map +1 -1
  33. package/dist/cjs/revo-grid.entry.cjs.js.map +1 -0
  34. package/dist/cjs/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.cjs.js.map +1 -0
  35. package/dist/cjs/revogr-attribution_7.cjs.entry.js +38 -56
  36. package/dist/cjs/revogr-attribution_7.cjs.entry.js.map +1 -1
  37. package/dist/cjs/revogr-clipboard.revogr-edit.revogr-order-editor.entry.cjs.js.map +1 -0
  38. package/dist/cjs/revogr-clipboard_3.cjs.entry.js +11 -20
  39. package/dist/cjs/revogr-clipboard_3.cjs.entry.js.map +1 -1
  40. package/dist/cjs/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.cjs.js.map +1 -0
  41. package/dist/cjs/revogr-data_4.cjs.entry.js +38 -54
  42. package/dist/cjs/revogr-data_4.cjs.entry.js.map +1 -1
  43. package/dist/cjs/revogr-filter-panel.cjs.entry.js +14 -12
  44. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +1 -1
  45. package/dist/cjs/revogr-filter-panel.entry.cjs.js.map +1 -0
  46. package/dist/cjs/{text-editor-aa356695.js → text-editor-CKL2sOoS.js} +4 -3
  47. package/dist/cjs/text-editor-CKL2sOoS.js.map +1 -0
  48. package/dist/cjs/{throttle-c7ae5154.js → throttle-DH3Y55Tf.js} +4 -3
  49. package/dist/cjs/throttle-DH3Y55Tf.js.map +1 -0
  50. package/dist/cjs/{viewport.helpers-e59a544e.js → viewport.helpers-DWmWzj7C.js} +2 -1
  51. package/dist/cjs/viewport.helpers-DWmWzj7C.js.map +1 -0
  52. package/dist/cjs/{viewport.store-7f0d0f80.js → viewport.store-CTVsdNW0.js} +3 -2
  53. package/dist/cjs/viewport.store-CTVsdNW0.js.map +1 -0
  54. package/dist/collection/collection-manifest.json +1 -1
  55. package/dist/collection/components/clipboard/revogr-clipboard.js +1 -4
  56. package/dist/collection/components/clipboard/revogr-clipboard.js.map +1 -1
  57. package/dist/collection/components/data/revogr-data.js +19 -20
  58. package/dist/collection/components/data/revogr-data.js.map +1 -1
  59. package/dist/collection/components/editors/revogr-edit.js +9 -7
  60. package/dist/collection/components/editors/revogr-edit.js.map +1 -1
  61. package/dist/collection/components/extra/revogr-extra.js +7 -0
  62. package/dist/collection/components/extra/revogr-extra.js.map +1 -1
  63. package/dist/collection/components/header/revogr-header.js +18 -16
  64. package/dist/collection/components/header/revogr-header.js.map +1 -1
  65. package/dist/collection/components/order/revogr-order-editor.js +5 -6
  66. package/dist/collection/components/order/revogr-order-editor.js.map +1 -1
  67. package/dist/collection/components/overlay/revogr-overlay-selection.js +18 -21
  68. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +1 -1
  69. package/dist/collection/components/revoGrid/revo-grid.js +156 -30
  70. package/dist/collection/components/revoGrid/revo-grid.js.map +1 -1
  71. package/dist/collection/components/rowHeaders/revogr-row-headers.js +13 -11
  72. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +1 -1
  73. package/dist/collection/components/scroll/revogr-viewport-scroll.js +10 -6
  74. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +1 -1
  75. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +8 -8
  76. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +1 -1
  77. package/dist/collection/components/selectionFocus/revogr-focus.js +12 -10
  78. package/dist/collection/components/selectionFocus/revogr-focus.js.map +1 -1
  79. package/dist/collection/components/selectionTempRange/revogr-temp-range.js +3 -3
  80. package/dist/collection/components/selectionTempRange/revogr-temp-range.js.map +1 -1
  81. package/dist/collection/components/vnode/vnode-converter.js +2 -1
  82. package/dist/collection/components/vnode/vnode-converter.js.map +1 -1
  83. package/dist/collection/plugins/filter/filter.panel.js +14 -7
  84. package/dist/collection/plugins/filter/filter.panel.js.map +1 -1
  85. package/dist/collection/plugins/wcag/index.js +3 -3
  86. package/dist/collection/plugins/wcag/index.js.map +1 -1
  87. package/dist/esm/{app-globals-6b929fd8.js → app-globals-CkPSYtJ_.js} +3 -2
  88. package/dist/esm/app-globals-CkPSYtJ_.js.map +1 -0
  89. package/dist/{revo-grid/cell-renderer-852ac653.js → esm/cell-renderer-Dtpwnxt0.js} +5 -4
  90. package/dist/esm/cell-renderer-Dtpwnxt0.js.map +1 -0
  91. package/dist/esm/{column.drag.plugin-c6b89504.js → column.drag.plugin-BZ32BSNS.js} +12 -17
  92. package/dist/esm/column.drag.plugin-BZ32BSNS.js.map +1 -0
  93. package/dist/esm/{column.service-e3c41fb8.js → column.service-Do0vf1Cg.js} +43 -13
  94. package/dist/esm/column.service-Do0vf1Cg.js.map +1 -0
  95. package/dist/esm/{debounce-b3166f78.js → debounce-BfO9dz9v.js} +11 -18
  96. package/dist/esm/debounce-BfO9dz9v.js.map +1 -0
  97. package/dist/{revo-grid/dimension.helpers-87e12689.js → esm/dimension.helpers-8nBiaJKx.js} +70 -154
  98. package/dist/esm/dimension.helpers-8nBiaJKx.js.map +1 -0
  99. package/dist/esm/{edit.utils-512f86c9.js → edit.utils-t1e44_Iw.js} +3 -2
  100. package/dist/esm/edit.utils-t1e44_Iw.js.map +1 -0
  101. package/dist/esm/{events-cf0893a3.js → events-BvSmBueA.js} +2 -1
  102. package/dist/esm/events-BvSmBueA.js.map +1 -0
  103. package/dist/{revo-grid/filter.button-84396156.js → esm/filter.button-CTclut8G.js} +3 -2
  104. package/dist/esm/filter.button-CTclut8G.js.map +1 -0
  105. package/dist/{revo-grid/header-cell-renderer-c2acd090.js → esm/header-cell-renderer-CF2Sx-Ys.js} +8 -9
  106. package/dist/esm/header-cell-renderer-CF2Sx-Ys.js.map +1 -0
  107. package/dist/esm/{index-f6fae858.js → index-CHLNwl4l.js} +1400 -1096
  108. package/dist/esm/index-CHLNwl4l.js.map +1 -0
  109. package/dist/esm/index.js +14 -13
  110. package/dist/esm/index.js.map +1 -1
  111. package/dist/esm/loader.js +5 -4
  112. package/dist/esm/loader.js.map +1 -1
  113. package/dist/esm/{resize-observer-83c9e167.js → resize-observer-Ccj7Fd8V.js} +2 -1
  114. package/dist/esm/resize-observer-Ccj7Fd8V.js.map +1 -0
  115. package/dist/esm/revo-grid.entry.js +134 -23
  116. package/dist/esm/revo-grid.entry.js.map +1 -1
  117. package/dist/esm/revo-grid.js +7 -5
  118. package/dist/esm/revo-grid.js.map +1 -1
  119. package/dist/esm/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.js.map +1 -0
  120. package/dist/esm/revogr-attribution_7.entry.js +38 -54
  121. package/dist/esm/revogr-attribution_7.entry.js.map +1 -1
  122. package/dist/esm/revogr-clipboard.revogr-edit.revogr-order-editor.entry.js.map +1 -0
  123. package/dist/esm/revogr-clipboard_3.entry.js +11 -18
  124. package/dist/esm/revogr-clipboard_3.entry.js.map +1 -1
  125. package/dist/esm/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.js.map +1 -0
  126. package/dist/esm/revogr-data_4.entry.js +38 -52
  127. package/dist/esm/revogr-data_4.entry.js.map +1 -1
  128. package/dist/esm/revogr-filter-panel.entry.js +14 -10
  129. package/dist/esm/revogr-filter-panel.entry.js.map +1 -1
  130. package/dist/{revo-grid/text-editor-4224a2f6.js → esm/text-editor-CaPIpNpL.js} +4 -3
  131. package/dist/esm/text-editor-CaPIpNpL.js.map +1 -0
  132. package/dist/{revo-grid/throttle-7c83ca69.js → esm/throttle-DXN-EdTN.js} +4 -3
  133. package/dist/esm/throttle-DXN-EdTN.js.map +1 -0
  134. package/dist/{revo-grid/viewport.helpers-7e7f9dad.js → esm/viewport.helpers-B3EYGhqf.js} +2 -1
  135. package/dist/esm/viewport.helpers-B3EYGhqf.js.map +1 -0
  136. package/dist/{revo-grid/viewport.store-84060ef5.js → esm/viewport.store-BM58GIue.js} +3 -2
  137. package/dist/esm/viewport.store-BM58GIue.js.map +1 -0
  138. package/dist/revo-grid/{app-globals-6b929fd8.js → app-globals-CkPSYtJ_.js} +3 -2
  139. package/dist/revo-grid/app-globals-CkPSYtJ_.js.map +1 -0
  140. package/dist/{esm/cell-renderer-852ac653.js → revo-grid/cell-renderer-Dtpwnxt0.js} +5 -4
  141. package/dist/revo-grid/cell-renderer-Dtpwnxt0.js.map +1 -0
  142. package/dist/revo-grid/{column.drag.plugin-c6b89504.js → column.drag.plugin-BZ32BSNS.js} +12 -17
  143. package/dist/revo-grid/column.drag.plugin-BZ32BSNS.js.map +1 -0
  144. package/dist/revo-grid/{column.service-e3c41fb8.js → column.service-Do0vf1Cg.js} +43 -13
  145. package/dist/revo-grid/column.service-Do0vf1Cg.js.map +1 -0
  146. package/dist/revo-grid/{debounce-b3166f78.js → debounce-BfO9dz9v.js} +11 -18
  147. package/dist/revo-grid/debounce-BfO9dz9v.js.map +1 -0
  148. package/dist/{esm/dimension.helpers-87e12689.js → revo-grid/dimension.helpers-8nBiaJKx.js} +70 -154
  149. package/dist/revo-grid/dimension.helpers-8nBiaJKx.js.map +1 -0
  150. package/dist/revo-grid/{edit.utils-512f86c9.js → edit.utils-t1e44_Iw.js} +3 -2
  151. package/dist/revo-grid/edit.utils-t1e44_Iw.js.map +1 -0
  152. package/dist/revo-grid/{events-cf0893a3.js → events-BvSmBueA.js} +2 -1
  153. package/dist/revo-grid/events-BvSmBueA.js.map +1 -0
  154. package/dist/{esm/filter.button-84396156.js → revo-grid/filter.button-CTclut8G.js} +3 -2
  155. package/dist/revo-grid/filter.button-CTclut8G.js.map +1 -0
  156. package/dist/{esm/header-cell-renderer-c2acd090.js → revo-grid/header-cell-renderer-CF2Sx-Ys.js} +8 -9
  157. package/dist/revo-grid/header-cell-renderer-CF2Sx-Ys.js.map +1 -0
  158. package/dist/revo-grid/{index-f6fae858.js → index-CHLNwl4l.js} +1400 -1096
  159. package/dist/revo-grid/index-CHLNwl4l.js.map +1 -0
  160. package/dist/revo-grid/index.esm.js +14 -13
  161. package/dist/revo-grid/index.esm.js.map +1 -1
  162. package/dist/revo-grid/loader.esm.js.map +1 -0
  163. package/dist/revo-grid/{resize-observer-83c9e167.js → resize-observer-Ccj7Fd8V.js} +2 -1
  164. package/dist/revo-grid/resize-observer-Ccj7Fd8V.js.map +1 -0
  165. package/dist/revo-grid/revo-grid.entry.esm.js.map +1 -0
  166. package/dist/revo-grid/revo-grid.entry.js +134 -23
  167. package/dist/revo-grid/revo-grid.entry.js.map +1 -1
  168. package/dist/revo-grid/revo-grid.esm.js +7 -5
  169. package/dist/revo-grid/revo-grid.esm.js.map +1 -1
  170. package/dist/revo-grid/revogr-attribution.revogr-extra.revogr-focus.revogr-overlay-selection.revogr-row-headers.revogr-scroll-virtual.revogr-temp-range.entry.esm.js.map +1 -0
  171. package/dist/revo-grid/revogr-attribution_7.entry.js +38 -54
  172. package/dist/revo-grid/revogr-attribution_7.entry.js.map +1 -1
  173. package/dist/revo-grid/revogr-clipboard.revogr-edit.revogr-order-editor.entry.esm.js.map +1 -0
  174. package/dist/revo-grid/revogr-clipboard_3.entry.js +11 -18
  175. package/dist/revo-grid/revogr-clipboard_3.entry.js.map +1 -1
  176. package/dist/revo-grid/revogr-data.revogr-header.revogr-viewport-scroll.vnode-html.entry.esm.js.map +1 -0
  177. package/dist/revo-grid/revogr-data_4.entry.js +38 -52
  178. package/dist/revo-grid/revogr-data_4.entry.js.map +1 -1
  179. package/dist/revo-grid/revogr-filter-panel.entry.esm.js.map +1 -0
  180. package/dist/revo-grid/revogr-filter-panel.entry.js +14 -10
  181. package/dist/revo-grid/revogr-filter-panel.entry.js.map +1 -1
  182. package/dist/{esm/text-editor-4224a2f6.js → revo-grid/text-editor-CaPIpNpL.js} +4 -3
  183. package/dist/revo-grid/text-editor-CaPIpNpL.js.map +1 -0
  184. package/dist/{esm/throttle-7c83ca69.js → revo-grid/throttle-DXN-EdTN.js} +4 -3
  185. package/dist/revo-grid/throttle-DXN-EdTN.js.map +1 -0
  186. package/dist/{esm/viewport.helpers-7e7f9dad.js → revo-grid/viewport.helpers-B3EYGhqf.js} +2 -1
  187. package/dist/revo-grid/viewport.helpers-B3EYGhqf.js.map +1 -0
  188. package/dist/{esm/viewport.store-84060ef5.js → revo-grid/viewport.store-BM58GIue.js} +3 -2
  189. package/dist/revo-grid/viewport.store-BM58GIue.js.map +1 -0
  190. package/dist/types/stencil-public-runtime.d.ts +3 -0
  191. package/hydrate/index.d.ts +34 -5
  192. package/hydrate/index.js +2629 -2051
  193. package/hydrate/index.mjs +2639 -2061
  194. package/package.json +3 -3
  195. package/standalone/column.service.js +42 -12
  196. package/standalone/column.service.js.map +1 -1
  197. package/standalone/consts.js +1 -0
  198. package/standalone/consts.js.map +1 -1
  199. package/standalone/data.store.js +59 -143
  200. package/standalone/data.store.js.map +1 -1
  201. package/standalone/debounce.js +5 -6
  202. package/standalone/debounce.js.map +1 -1
  203. package/standalone/dimension.helpers.js +10 -9
  204. package/standalone/dimension.helpers.js.map +1 -1
  205. package/standalone/filter.button.js +1 -0
  206. package/standalone/filter.button.js.map +1 -1
  207. package/standalone/index.js +3 -2
  208. package/standalone/index.js.map +1 -1
  209. package/standalone/index2.js +1 -0
  210. package/standalone/index2.js.map +1 -1
  211. package/standalone/local.scroll.timer.js +1 -0
  212. package/standalone/local.scroll.timer.js.map +1 -1
  213. package/standalone/platform.js +3 -2
  214. package/standalone/platform.js.map +1 -1
  215. package/standalone/resize-observer.js +1 -0
  216. package/standalone/resize-observer.js.map +1 -1
  217. package/standalone/revo-grid.js +140 -35
  218. package/standalone/revo-grid.js.map +1 -1
  219. package/standalone/revogr-attribution.js +1 -0
  220. package/standalone/revogr-attribution2.js +1 -0
  221. package/standalone/revogr-attribution2.js.map +1 -1
  222. package/standalone/revogr-clipboard.js +1 -0
  223. package/standalone/revogr-clipboard2.js +1 -1
  224. package/standalone/revogr-clipboard2.js.map +1 -1
  225. package/standalone/revogr-data.js +1 -0
  226. package/standalone/revogr-data2.js +16 -24
  227. package/standalone/revogr-data2.js.map +1 -1
  228. package/standalone/revogr-edit.js +1 -0
  229. package/standalone/revogr-edit2.js +8 -9
  230. package/standalone/revogr-edit2.js.map +1 -1
  231. package/standalone/revogr-extra.js +1 -0
  232. package/standalone/revogr-extra2.js +7 -0
  233. package/standalone/revogr-extra2.js.map +1 -1
  234. package/standalone/revogr-filter-panel.js +14 -10
  235. package/standalone/revogr-filter-panel.js.map +1 -1
  236. package/standalone/revogr-focus.js +1 -0
  237. package/standalone/revogr-focus2.js +12 -16
  238. package/standalone/revogr-focus2.js.map +1 -1
  239. package/standalone/revogr-header.js +1 -0
  240. package/standalone/revogr-header2.js +24 -34
  241. package/standalone/revogr-header2.js.map +1 -1
  242. package/standalone/revogr-order-editor.js +1 -0
  243. package/standalone/revogr-order-editor2.js +4 -8
  244. package/standalone/revogr-order-editor2.js.map +1 -1
  245. package/standalone/revogr-overlay-selection.js +1 -0
  246. package/standalone/revogr-overlay-selection2.js +15 -25
  247. package/standalone/revogr-overlay-selection2.js.map +1 -1
  248. package/standalone/revogr-row-headers.js +1 -0
  249. package/standalone/revogr-row-headers2.js +11 -12
  250. package/standalone/revogr-row-headers2.js.map +1 -1
  251. package/standalone/revogr-scroll-virtual.js +1 -0
  252. package/standalone/revogr-scroll-virtual2.js +6 -6
  253. package/standalone/revogr-scroll-virtual2.js.map +1 -1
  254. package/standalone/revogr-temp-range.js +1 -0
  255. package/standalone/revogr-temp-range2.js +5 -8
  256. package/standalone/revogr-temp-range2.js.map +1 -1
  257. package/standalone/revogr-viewport-scroll.js +1 -0
  258. package/standalone/revogr-viewport-scroll2.js +9 -5
  259. package/standalone/revogr-viewport-scroll2.js.map +1 -1
  260. package/standalone/selection.utils.js +2 -1
  261. package/standalone/selection.utils.js.map +1 -1
  262. package/standalone/throttle.js +2 -1
  263. package/standalone/throttle.js.map +1 -1
  264. package/standalone/toNumber.js +6 -11
  265. package/standalone/toNumber.js.map +1 -1
  266. package/standalone/vnode-converter.js +2 -1
  267. package/standalone/vnode-converter.js.map +1 -1
  268. package/standalone/vnode-html.js +1 -0
  269. package/dist/cjs/app-globals-f72a6199.js.map +0 -1
  270. package/dist/cjs/cell-renderer-e5481ec8.js.map +0 -1
  271. package/dist/cjs/column.drag.plugin-f3c54b57.js.map +0 -1
  272. package/dist/cjs/column.service-e6411bc8.js.map +0 -1
  273. package/dist/cjs/debounce-ec7a04b4.js.map +0 -1
  274. package/dist/cjs/dimension.helpers-29797371.js.map +0 -1
  275. package/dist/cjs/edit.utils-2142d37d.js.map +0 -1
  276. package/dist/cjs/events-af8f6914.js.map +0 -1
  277. package/dist/cjs/filter.button-2708e602.js.map +0 -1
  278. package/dist/cjs/header-cell-renderer-56658ed7.js.map +0 -1
  279. package/dist/cjs/index-8006d065.js.map +0 -1
  280. package/dist/cjs/resize-observer-d009a220.js.map +0 -1
  281. package/dist/cjs/text-editor-aa356695.js.map +0 -1
  282. package/dist/cjs/throttle-c7ae5154.js.map +0 -1
  283. package/dist/cjs/viewport.helpers-e59a544e.js.map +0 -1
  284. package/dist/cjs/viewport.store-7f0d0f80.js.map +0 -1
  285. package/dist/esm/app-globals-6b929fd8.js.map +0 -1
  286. package/dist/esm/cell-renderer-852ac653.js.map +0 -1
  287. package/dist/esm/column.drag.plugin-c6b89504.js.map +0 -1
  288. package/dist/esm/column.service-e3c41fb8.js.map +0 -1
  289. package/dist/esm/debounce-b3166f78.js.map +0 -1
  290. package/dist/esm/dimension.helpers-87e12689.js.map +0 -1
  291. package/dist/esm/edit.utils-512f86c9.js.map +0 -1
  292. package/dist/esm/events-cf0893a3.js.map +0 -1
  293. package/dist/esm/filter.button-84396156.js.map +0 -1
  294. package/dist/esm/header-cell-renderer-c2acd090.js.map +0 -1
  295. package/dist/esm/index-f6fae858.js.map +0 -1
  296. package/dist/esm/resize-observer-83c9e167.js.map +0 -1
  297. package/dist/esm/text-editor-4224a2f6.js.map +0 -1
  298. package/dist/esm/throttle-7c83ca69.js.map +0 -1
  299. package/dist/esm/viewport.helpers-7e7f9dad.js.map +0 -1
  300. package/dist/esm/viewport.store-84060ef5.js.map +0 -1
  301. package/dist/revo-grid/app-globals-6b929fd8.js.map +0 -1
  302. package/dist/revo-grid/cell-renderer-852ac653.js.map +0 -1
  303. package/dist/revo-grid/column.drag.plugin-c6b89504.js.map +0 -1
  304. package/dist/revo-grid/column.service-e3c41fb8.js.map +0 -1
  305. package/dist/revo-grid/debounce-b3166f78.js.map +0 -1
  306. package/dist/revo-grid/dimension.helpers-87e12689.js.map +0 -1
  307. package/dist/revo-grid/edit.utils-512f86c9.js.map +0 -1
  308. package/dist/revo-grid/events-cf0893a3.js.map +0 -1
  309. package/dist/revo-grid/filter.button-84396156.js.map +0 -1
  310. package/dist/revo-grid/header-cell-renderer-c2acd090.js.map +0 -1
  311. package/dist/revo-grid/index-f6fae858.js.map +0 -1
  312. package/dist/revo-grid/resize-observer-83c9e167.js.map +0 -1
  313. package/dist/revo-grid/text-editor-4224a2f6.js.map +0 -1
  314. package/dist/revo-grid/throttle-7c83ca69.js.map +0 -1
  315. package/dist/revo-grid/viewport.helpers-7e7f9dad.js.map +0 -1
  316. package/dist/revo-grid/viewport.store-84060ef5.js.map +0 -1
@@ -2,10 +2,10 @@
2
2
  * Built by Revolist OU ❤️
3
3
  */
4
4
  const NAMESPACE = 'revo-grid';
5
- const BUILD = /* revo-grid */ { allRenderFn: false, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: true, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalScopedSlotChanges: false, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: false, hotModuleReplacement: false, hydrateClientSide: true, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, hydratedSelectorName: "hydrated", initializeNextTick: true, invisiblePrehydration: false, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: false, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: false, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
5
+ const BUILD = /* revo-grid */ { hydratedSelectorName: "hydrated", lazyLoad: true, shadowDom: false, slotRelocation: true, updatable: true};
6
6
 
7
7
  /*
8
- Stencil Client Platform v4.23.0 | MIT Licensed | https://stenciljs.com
8
+ Stencil Client Platform v4.29.2 | MIT Licensed | https://stenciljs.com
9
9
  */
10
10
  var __defProp = Object.defineProperty;
11
11
  var __export = (target, all) => {
@@ -13,14 +13,47 @@ var __export = (target, all) => {
13
13
  __defProp(target, name, { get: all[name], enumerable: true });
14
14
  };
15
15
  var Build = {
16
- isDev: false,
17
- isBrowser: true,
18
- isServer: false,
19
- isTesting: false
20
- };
21
- var hostRefs = /* @__PURE__ */ new WeakMap();
22
- var getHostRef = (ref) => hostRefs.get(ref);
23
- var registerInstance = (lazyInstance, hostRef) => hostRefs.set(hostRef.$lazyInstance$ = lazyInstance, hostRef);
16
+ isDev: false};
17
+
18
+ // src/utils/constants.ts
19
+ var SVG_NS = "http://www.w3.org/2000/svg";
20
+ var HTML_NS = "http://www.w3.org/1999/xhtml";
21
+ var PrimitiveType = /* @__PURE__ */ ((PrimitiveType2) => {
22
+ PrimitiveType2["Undefined"] = "undefined";
23
+ PrimitiveType2["Null"] = "null";
24
+ PrimitiveType2["String"] = "string";
25
+ PrimitiveType2["Number"] = "number";
26
+ PrimitiveType2["SpecialNumber"] = "number";
27
+ PrimitiveType2["Boolean"] = "boolean";
28
+ PrimitiveType2["BigInt"] = "bigint";
29
+ return PrimitiveType2;
30
+ })(PrimitiveType || {});
31
+ var NonPrimitiveType = /* @__PURE__ */ ((NonPrimitiveType2) => {
32
+ NonPrimitiveType2["Array"] = "array";
33
+ NonPrimitiveType2["Date"] = "date";
34
+ NonPrimitiveType2["Map"] = "map";
35
+ NonPrimitiveType2["Object"] = "object";
36
+ NonPrimitiveType2["RegularExpression"] = "regexp";
37
+ NonPrimitiveType2["Set"] = "set";
38
+ NonPrimitiveType2["Channel"] = "channel";
39
+ NonPrimitiveType2["Symbol"] = "symbol";
40
+ return NonPrimitiveType2;
41
+ })(NonPrimitiveType || {});
42
+ var TYPE_CONSTANT = "type";
43
+ var VALUE_CONSTANT = "value";
44
+ var SERIALIZED_PREFIX = "serialized:";
45
+
46
+ // src/client/client-host-ref.ts
47
+ var getHostRef = (ref) => {
48
+ if (ref.__stencil__getHostRef) {
49
+ return ref.__stencil__getHostRef();
50
+ }
51
+ return void 0;
52
+ };
53
+ var registerInstance = (lazyInstance, hostRef) => {
54
+ lazyInstance.__stencil__getHostRef = () => hostRef;
55
+ hostRef.$lazyInstance$ = lazyInstance;
56
+ };
24
57
  var registerHost = (hostElement, cmpMeta) => {
25
58
  const hostRef = {
26
59
  $flags$: 0,
@@ -36,7 +69,9 @@ var registerHost = (hostElement, cmpMeta) => {
36
69
  hostElement["s-p"] = [];
37
70
  hostElement["s-rc"] = [];
38
71
  }
39
- return hostRefs.set(hostElement, hostRef);
72
+ const ref = hostRef;
73
+ hostElement.__stencil__getHostRef = () => ref;
74
+ return ref;
40
75
  };
41
76
  var isMemberInElement = (elm, memberName) => memberName in elm;
42
77
  var consoleError = (e, el) => (0, console.error)(e, el);
@@ -89,12 +124,17 @@ var loadModule = (cmpMeta, hostRef, hmrVersionId) => {
89
124
  /* webpackExclude: /\.system\.entry\.js$/ */
90
125
  /* webpackMode: "lazy" */
91
126
  `./${bundleId}.entry.js${""}`
92
- ).then((importedModule) => {
93
- {
94
- cmpModules.set(bundleId, importedModule);
127
+ ).then(
128
+ (importedModule) => {
129
+ {
130
+ cmpModules.set(bundleId, importedModule);
131
+ }
132
+ return importedModule[exportName];
133
+ },
134
+ (e) => {
135
+ consoleError(e, hostRef.$hostElement$);
95
136
  }
96
- return importedModule[exportName];
97
- }, consoleError);
137
+ );
98
138
  };
99
139
 
100
140
  // src/client/client-style.ts
@@ -112,7 +152,6 @@ var HYDRATE_CHILD_ID = "c-id";
112
152
  var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
113
153
  var XLINK_NS = "http://www.w3.org/1999/xlink";
114
154
  var win = typeof window !== "undefined" ? window : {};
115
- var doc = win.document || { head: {} };
116
155
  var plt = {
117
156
  $flags$: 0,
118
157
  $resourcesUrl$: "",
@@ -124,9 +163,10 @@ var plt = {
124
163
  };
125
164
  var supportsShadow = BUILD.shadowDom;
126
165
  var supportsListenerOptions = /* @__PURE__ */ (() => {
166
+ var _a;
127
167
  let supportsListenerOptions2 = false;
128
168
  try {
129
- doc.addEventListener(
169
+ (_a = win.document) == null ? void 0 : _a.addEventListener(
130
170
  "e",
131
171
  null,
132
172
  Object.defineProperty({}, "passive", {
@@ -183,25 +223,112 @@ var flush = () => {
183
223
  };
184
224
  var nextTick = (cb) => promiseResolve().then(cb);
185
225
  var writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);
186
-
187
- // src/utils/constants.ts
188
- var EMPTY_OBJ = {};
189
- var SVG_NS = "http://www.w3.org/2000/svg";
190
- var HTML_NS = "http://www.w3.org/1999/xhtml";
191
-
192
- // src/utils/helpers.ts
193
- var isDef = (v) => v != null;
194
226
  var isComplexType = (o) => {
195
227
  o = typeof o;
196
228
  return o === "object" || o === "function";
197
229
  };
198
230
 
199
231
  // src/utils/query-nonce-meta-tag-content.ts
200
- function queryNonceMetaTagContent(doc2) {
232
+ function queryNonceMetaTagContent(doc) {
201
233
  var _a, _b, _c;
202
- return (_c = (_b = (_a = doc2.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
234
+ return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) == null ? void 0 : _b.getAttribute("content")) != null ? _c : void 0;
203
235
  }
204
236
 
237
+ // src/utils/remote-value.ts
238
+ var RemoteValue = class _RemoteValue {
239
+ /**
240
+ * Deserializes a LocalValue serialized object back to its original JavaScript representation
241
+ *
242
+ * @param serialized The serialized LocalValue object
243
+ * @returns The original JavaScript value/object
244
+ */
245
+ static fromLocalValue(serialized) {
246
+ const type = serialized[TYPE_CONSTANT];
247
+ const value = VALUE_CONSTANT in serialized ? serialized[VALUE_CONSTANT] : void 0;
248
+ switch (type) {
249
+ case "string" /* String */:
250
+ return value;
251
+ case "boolean" /* Boolean */:
252
+ return value;
253
+ case "bigint" /* BigInt */:
254
+ return BigInt(value);
255
+ case "undefined" /* Undefined */:
256
+ return void 0;
257
+ case "null" /* Null */:
258
+ return null;
259
+ case "number" /* Number */:
260
+ if (value === "NaN") return NaN;
261
+ if (value === "-0") return -0;
262
+ if (value === "Infinity") return Infinity;
263
+ if (value === "-Infinity") return -Infinity;
264
+ return value;
265
+ case "array" /* Array */:
266
+ return value.map((item) => _RemoteValue.fromLocalValue(item));
267
+ case "date" /* Date */:
268
+ return new Date(value);
269
+ case "map" /* Map */:
270
+ const map2 = /* @__PURE__ */ new Map();
271
+ for (const [key, val] of value) {
272
+ const deserializedKey = typeof key === "object" && key !== null ? _RemoteValue.fromLocalValue(key) : key;
273
+ const deserializedValue = _RemoteValue.fromLocalValue(val);
274
+ map2.set(deserializedKey, deserializedValue);
275
+ }
276
+ return map2;
277
+ case "object" /* Object */:
278
+ const obj = {};
279
+ for (const [key, val] of value) {
280
+ obj[key] = _RemoteValue.fromLocalValue(val);
281
+ }
282
+ return obj;
283
+ case "regexp" /* RegularExpression */:
284
+ const { pattern, flags } = value;
285
+ return new RegExp(pattern, flags);
286
+ case "set" /* Set */:
287
+ const set = /* @__PURE__ */ new Set();
288
+ for (const item of value) {
289
+ set.add(_RemoteValue.fromLocalValue(item));
290
+ }
291
+ return set;
292
+ case "symbol" /* Symbol */:
293
+ return Symbol(value);
294
+ default:
295
+ throw new Error(`Unsupported type: ${type}`);
296
+ }
297
+ }
298
+ /**
299
+ * Utility method to deserialize multiple LocalValues at once
300
+ *
301
+ * @param serializedValues Array of serialized LocalValue objects
302
+ * @returns Array of deserialized JavaScript values
303
+ */
304
+ static fromLocalValueArray(serializedValues) {
305
+ return serializedValues.map((value) => _RemoteValue.fromLocalValue(value));
306
+ }
307
+ /**
308
+ * Verifies if the given object matches the structure of a serialized LocalValue
309
+ *
310
+ * @param obj Object to verify
311
+ * @returns boolean indicating if the object has LocalValue structure
312
+ */
313
+ static isLocalValueObject(obj) {
314
+ if (typeof obj !== "object" || obj === null) {
315
+ return false;
316
+ }
317
+ if (!obj.hasOwnProperty(TYPE_CONSTANT)) {
318
+ return false;
319
+ }
320
+ const type = obj[TYPE_CONSTANT];
321
+ const hasTypeProperty = Object.values({ ...PrimitiveType, ...NonPrimitiveType }).includes(type);
322
+ if (!hasTypeProperty) {
323
+ return false;
324
+ }
325
+ if (type !== "null" /* Null */ && type !== "undefined" /* Undefined */) {
326
+ return obj.hasOwnProperty(VALUE_CONSTANT);
327
+ }
328
+ return true;
329
+ }
330
+ };
331
+
205
332
  // src/utils/result.ts
206
333
  var result_exports = {};
207
334
  __export(result_exports, {
@@ -250,6 +377,162 @@ var unwrapErr = (result) => {
250
377
  throw result.value;
251
378
  }
252
379
  };
380
+
381
+ // src/utils/serialize.ts
382
+ function deserializeProperty(value) {
383
+ if (typeof value !== "string" || !value.startsWith(SERIALIZED_PREFIX)) {
384
+ return value;
385
+ }
386
+ return RemoteValue.fromLocalValue(JSON.parse(atob(value.slice(SERIALIZED_PREFIX.length))));
387
+ }
388
+ var updateFallbackSlotVisibility = (elm) => {
389
+ const childNodes = internalCall(elm, "childNodes");
390
+ if (elm.tagName && elm.tagName.includes("-") && elm["s-cr"] && elm.tagName !== "SLOT-FB") {
391
+ getHostSlotNodes(childNodes, elm.tagName).forEach((slotNode) => {
392
+ if (slotNode.nodeType === 1 /* ElementNode */ && slotNode.tagName === "SLOT-FB") {
393
+ if (getSlotChildSiblings(slotNode, getSlotName(slotNode), false).length) {
394
+ slotNode.hidden = true;
395
+ } else {
396
+ slotNode.hidden = false;
397
+ }
398
+ }
399
+ });
400
+ }
401
+ let i2 = 0;
402
+ for (i2 = 0; i2 < childNodes.length; i2++) {
403
+ const childNode = childNodes[i2];
404
+ if (childNode.nodeType === 1 /* ElementNode */ && internalCall(childNode, "childNodes").length) {
405
+ updateFallbackSlotVisibility(childNode);
406
+ }
407
+ }
408
+ };
409
+ var getSlottedChildNodes = (childNodes) => {
410
+ const result = [];
411
+ for (let i2 = 0; i2 < childNodes.length; i2++) {
412
+ const slottedNode = childNodes[i2]["s-nr"] || void 0;
413
+ if (slottedNode && slottedNode.isConnected) {
414
+ result.push(slottedNode);
415
+ }
416
+ }
417
+ return result;
418
+ };
419
+ function getHostSlotNodes(childNodes, hostName, slotName) {
420
+ let i2 = 0;
421
+ let slottedNodes = [];
422
+ let childNode;
423
+ for (; i2 < childNodes.length; i2++) {
424
+ childNode = childNodes[i2];
425
+ if (childNode["s-sr"] && (!hostName || childNode["s-hn"] === hostName) && (slotName === void 0)) {
426
+ slottedNodes.push(childNode);
427
+ }
428
+ slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
429
+ }
430
+ return slottedNodes;
431
+ }
432
+ var getSlotChildSiblings = (slot, slotName, includeSlot = true) => {
433
+ const childNodes = [];
434
+ if (includeSlot && slot["s-sr"] || !slot["s-sr"]) childNodes.push(slot);
435
+ let node = slot;
436
+ while (node = node.nextSibling) {
437
+ if (getSlotName(node) === slotName && (includeSlot || !node["s-sr"])) childNodes.push(node);
438
+ }
439
+ return childNodes;
440
+ };
441
+ var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
442
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
443
+ if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
444
+ return true;
445
+ }
446
+ if (nodeToRelocate.getAttribute("slot") === slotName) {
447
+ return true;
448
+ }
449
+ return false;
450
+ }
451
+ if (nodeToRelocate["s-sn"] === slotName) {
452
+ return true;
453
+ }
454
+ return slotName === "";
455
+ };
456
+ var addSlotRelocateNode = (newChild, slotNode, prepend, position) => {
457
+ if (newChild["s-ol"] && newChild["s-ol"].isConnected) {
458
+ return;
459
+ }
460
+ const slottedNodeLocation = document.createTextNode("");
461
+ slottedNodeLocation["s-nr"] = newChild;
462
+ if (!slotNode["s-cr"] || !slotNode["s-cr"].parentNode) return;
463
+ const parent = slotNode["s-cr"].parentNode;
464
+ const appendMethod = internalCall(parent, "appendChild");
465
+ if (typeof position !== "undefined") {
466
+ slottedNodeLocation["s-oo"] = position;
467
+ const childNodes = internalCall(parent, "childNodes");
468
+ const slotRelocateNodes = [slottedNodeLocation];
469
+ childNodes.forEach((n) => {
470
+ if (n["s-nr"]) slotRelocateNodes.push(n);
471
+ });
472
+ slotRelocateNodes.sort((a, b) => {
473
+ if (!a["s-oo"] || a["s-oo"] < (b["s-oo"] || 0)) return -1;
474
+ else if (!b["s-oo"] || b["s-oo"] < a["s-oo"]) return 1;
475
+ return 0;
476
+ });
477
+ slotRelocateNodes.forEach((n) => appendMethod.call(parent, n));
478
+ } else {
479
+ appendMethod.call(parent, slottedNodeLocation);
480
+ }
481
+ newChild["s-ol"] = slottedNodeLocation;
482
+ newChild["s-sh"] = slotNode["s-hn"];
483
+ };
484
+ var getSlotName = (node) => typeof node["s-sn"] === "string" ? node["s-sn"] : node.nodeType === 1 && node.getAttribute("slot") || void 0;
485
+ function patchSlotNode(node) {
486
+ if (node.assignedElements || node.assignedNodes || !node["s-sr"]) return;
487
+ const assignedFactory = (elementsOnly) => (function(opts) {
488
+ const toReturn = [];
489
+ const slotName = this["s-sn"];
490
+ if (opts == null ? void 0 : opts.flatten) {
491
+ console.error(`
492
+ Flattening is not supported for Stencil non-shadow slots.
493
+ You can use \`.childNodes\` to nested slot fallback content.
494
+ If you have a particular use case, please open an issue on the Stencil repo.
495
+ `);
496
+ }
497
+ const parent = this["s-cr"].parentElement;
498
+ const slottedNodes = parent.__childNodes ? parent.childNodes : getSlottedChildNodes(parent.childNodes);
499
+ slottedNodes.forEach((n) => {
500
+ if (slotName === getSlotName(n)) {
501
+ toReturn.push(n);
502
+ }
503
+ });
504
+ if (elementsOnly) {
505
+ return toReturn.filter((n) => n.nodeType === 1 /* ElementNode */);
506
+ }
507
+ return toReturn;
508
+ }).bind(node);
509
+ node.assignedElements = assignedFactory(true);
510
+ node.assignedNodes = assignedFactory(false);
511
+ }
512
+ function internalCall(node, method) {
513
+ if ("__" + method in node) {
514
+ const toReturn = node["__" + method];
515
+ if (typeof toReturn !== "function") return toReturn;
516
+ return toReturn.bind(node);
517
+ } else {
518
+ if (typeof node[method] !== "function") return node[method];
519
+ return node[method].bind(node);
520
+ }
521
+ }
522
+ var createTime = (fnName, tagName = "") => {
523
+ {
524
+ return () => {
525
+ return;
526
+ };
527
+ }
528
+ };
529
+ var uniqueTime = (key, measureText) => {
530
+ {
531
+ return () => {
532
+ return;
533
+ };
534
+ }
535
+ };
253
536
  var h = (nodeName, vnodeData, ...children) => {
254
537
  let child = null;
255
538
  let key = null;
@@ -361,1119 +644,1108 @@ var convertToPrivate = (node) => {
361
644
  vnode.$name$ = node.vname;
362
645
  return vnode;
363
646
  };
364
- var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
365
- if (oldValue !== newValue) {
366
- let isProp = isMemberInElement(elm, memberName);
367
- let ln = memberName.toLowerCase();
368
- if (memberName === "class") {
369
- const classList = elm.classList;
370
- const oldClasses = parseClassList(oldValue);
371
- const newClasses = parseClassList(newValue);
372
- if (elm["s-si"] && newClasses.indexOf(elm["s-si"]) < 0) {
373
- newClasses.push(elm["s-si"]);
647
+
648
+ // src/runtime/client-hydrate.ts
649
+ var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
650
+ var _a;
651
+ const endHydrate = createTime("hydrateClient", tagName);
652
+ const shadowRoot = hostElm.shadowRoot;
653
+ const childRenderNodes = [];
654
+ const slotNodes = [];
655
+ const slottedNodes = [];
656
+ const shadowRootNodes = null;
657
+ const vnode = newVNode(tagName, null);
658
+ vnode.$elm$ = hostElm;
659
+ const members = Object.entries(((_a = hostRef.$cmpMeta$) == null ? void 0 : _a.$members$) || {});
660
+ members.forEach(([memberName, [memberFlags, metaAttributeName]]) => {
661
+ var _a2;
662
+ if (!(memberFlags & 31 /* Prop */)) {
663
+ return;
664
+ }
665
+ const attributeName = metaAttributeName || memberName;
666
+ const attrVal = hostElm.getAttribute(attributeName);
667
+ if (attrVal !== null) {
668
+ const attrPropVal = parsePropertyValue(attrVal, memberFlags);
669
+ (_a2 = hostRef == null ? void 0 : hostRef.$instanceValues$) == null ? void 0 : _a2.set(memberName, attrPropVal);
670
+ }
671
+ });
672
+ if (win.document && (!plt.$orgLocNodes$ || !plt.$orgLocNodes$.size)) {
673
+ initializeDocumentHydrate(win.document.body, plt.$orgLocNodes$ = /* @__PURE__ */ new Map());
674
+ }
675
+ hostElm[HYDRATE_ID] = hostId;
676
+ hostElm.removeAttribute(HYDRATE_ID);
677
+ hostRef.$vnode$ = clientHydrate(
678
+ vnode,
679
+ childRenderNodes,
680
+ slotNodes,
681
+ shadowRootNodes,
682
+ hostElm,
683
+ hostElm,
684
+ hostId,
685
+ slottedNodes
686
+ );
687
+ let crIndex = 0;
688
+ const crLength = childRenderNodes.length;
689
+ let childRenderNode;
690
+ for (crIndex; crIndex < crLength; crIndex++) {
691
+ childRenderNode = childRenderNodes[crIndex];
692
+ const orgLocationId = childRenderNode.$hostId$ + "." + childRenderNode.$nodeId$;
693
+ const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);
694
+ const node = childRenderNode.$elm$;
695
+ if (!shadowRoot) {
696
+ node["s-hn"] = tagName.toUpperCase();
697
+ if (childRenderNode.$tag$ === "slot") {
698
+ node["s-cr"] = hostElm["s-cr"];
374
699
  }
375
- classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
376
- classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
377
- } else if (memberName === "style") {
378
- {
379
- for (const prop in oldValue) {
380
- if (!newValue || newValue[prop] == null) {
381
- if (prop.includes("-")) {
382
- elm.style.removeProperty(prop);
383
- } else {
384
- elm.style[prop] = "";
385
- }
386
- }
700
+ }
701
+ if (childRenderNode.$tag$ === "slot") {
702
+ childRenderNode.$name$ = childRenderNode.$elm$["s-sn"] || childRenderNode.$elm$["name"] || null;
703
+ if (childRenderNode.$children$) {
704
+ childRenderNode.$flags$ |= 2 /* isSlotFallback */;
705
+ if (!childRenderNode.$elm$.childNodes.length) {
706
+ childRenderNode.$children$.forEach((c) => {
707
+ childRenderNode.$elm$.appendChild(c.$elm$);
708
+ });
387
709
  }
710
+ } else {
711
+ childRenderNode.$flags$ |= 1 /* isSlotReference */;
388
712
  }
389
- for (const prop in newValue) {
390
- if (!oldValue || newValue[prop] !== oldValue[prop]) {
391
- if (prop.includes("-")) {
392
- elm.style.setProperty(prop, newValue[prop]);
393
- } else {
394
- elm.style[prop] = newValue[prop];
395
- }
396
- }
713
+ }
714
+ if (orgLocationNode && orgLocationNode.isConnected) {
715
+ if (shadowRoot && orgLocationNode["s-en"] === "") {
716
+ orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);
397
717
  }
398
- } else if (memberName === "key") ; else if (memberName === "ref") {
399
- if (newValue) {
400
- newValue(elm);
718
+ orgLocationNode.parentNode.removeChild(orgLocationNode);
719
+ if (!shadowRoot) {
720
+ node["s-oo"] = parseInt(childRenderNode.$nodeId$);
401
721
  }
402
- } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
403
- if (memberName[2] === "-") {
404
- memberName = memberName.slice(3);
405
- } else if (isMemberInElement(win, ln)) {
406
- memberName = ln.slice(2);
407
- } else {
408
- memberName = ln[2] + memberName.slice(3);
722
+ }
723
+ plt.$orgLocNodes$.delete(orgLocationId);
724
+ }
725
+ const hosts = [];
726
+ const snLen = slottedNodes.length;
727
+ let snIndex = 0;
728
+ let slotGroup;
729
+ let snGroupIdx;
730
+ let snGroupLen;
731
+ let slottedItem;
732
+ for (snIndex; snIndex < snLen; snIndex++) {
733
+ slotGroup = slottedNodes[snIndex];
734
+ if (!slotGroup || !slotGroup.length) continue;
735
+ snGroupLen = slotGroup.length;
736
+ snGroupIdx = 0;
737
+ for (snGroupIdx; snGroupIdx < snGroupLen; snGroupIdx++) {
738
+ slottedItem = slotGroup[snGroupIdx];
739
+ if (!hosts[slottedItem.hostId]) {
740
+ hosts[slottedItem.hostId] = plt.$orgLocNodes$.get(slottedItem.hostId);
409
741
  }
410
- if (oldValue || newValue) {
411
- const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
412
- memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
413
- if (oldValue) {
414
- plt.rel(elm, memberName, oldValue, capture);
415
- }
416
- if (newValue) {
417
- plt.ael(elm, memberName, newValue, capture);
742
+ if (!hosts[slottedItem.hostId]) continue;
743
+ const hostEle = hosts[slottedItem.hostId];
744
+ if (!hostEle.shadowRoot || !shadowRoot) {
745
+ slottedItem.slot["s-cr"] = hostEle["s-cr"];
746
+ if (!slottedItem.slot["s-cr"] && hostEle.shadowRoot) {
747
+ slottedItem.slot["s-cr"] = hostEle;
748
+ } else {
749
+ slottedItem.slot["s-cr"] = (hostEle.__childNodes || hostEle.childNodes)[0];
418
750
  }
751
+ addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node["s-oo"]);
419
752
  }
420
- } else {
421
- const isComplex = isComplexType(newValue);
422
- if ((isProp || isComplex && newValue !== null) && !isSvg) {
423
- try {
424
- if (!elm.tagName.includes("-")) {
425
- const n = newValue == null ? "" : newValue;
426
- if (memberName === "list") {
427
- isProp = false;
428
- } else if (oldValue == null || elm[memberName] != n) {
429
- if (typeof elm.__lookupSetter__(memberName) === "function") {
430
- elm[memberName] = n;
431
- } else {
432
- elm.setAttribute(memberName, n);
433
- }
434
- }
435
- } else {
436
- elm[memberName] = newValue;
437
- }
438
- } catch (e) {
439
- }
753
+ if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {
754
+ hostEle.appendChild(slottedItem.node);
440
755
  }
441
- let xlink = false;
442
- {
443
- if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
444
- memberName = ln;
445
- xlink = true;
756
+ }
757
+ }
758
+ plt.$orgLocNodes$.delete(hostElm["s-id"]);
759
+ hostRef.$hostElement$ = hostElm;
760
+ endHydrate();
761
+ };
762
+ var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId, slottedNodes = []) => {
763
+ let childNodeType;
764
+ let childIdSplt;
765
+ let childVNode;
766
+ let i2;
767
+ if (node.nodeType === 1 /* ElementNode */) {
768
+ childNodeType = node.getAttribute(HYDRATE_CHILD_ID);
769
+ if (childNodeType) {
770
+ childIdSplt = childNodeType.split(".");
771
+ if (childIdSplt[0] === hostId || childIdSplt[0] === "0") {
772
+ childVNode = createSimpleVNode({
773
+ $flags$: 0,
774
+ $hostId$: childIdSplt[0],
775
+ $nodeId$: childIdSplt[1],
776
+ $depth$: childIdSplt[2],
777
+ $index$: childIdSplt[3],
778
+ $tag$: node.tagName.toLowerCase(),
779
+ $elm$: node,
780
+ // If we don't add the initial classes to the VNode, the first `vdom-render.ts` patch
781
+ // won't try to reconcile them. Classes set on the node will be blown away.
782
+ $attrs$: { class: node.className || "" }
783
+ });
784
+ childRenderNodes.push(childVNode);
785
+ node.removeAttribute(HYDRATE_CHILD_ID);
786
+ if (!parentVNode.$children$) {
787
+ parentVNode.$children$ = [];
446
788
  }
447
- }
448
- if (newValue == null || newValue === false) {
449
- if (newValue !== false || elm.getAttribute(memberName) === "") {
450
- if (xlink) {
451
- elm.removeAttributeNS(XLINK_NS, memberName);
452
- } else {
453
- elm.removeAttribute(memberName);
789
+ const slotName = childVNode.$elm$.getAttribute("s-sn");
790
+ if (typeof slotName === "string") {
791
+ if (childVNode.$tag$ === "slot-fb") {
792
+ addSlot(
793
+ slotName,
794
+ childIdSplt[2],
795
+ childVNode,
796
+ node,
797
+ parentVNode,
798
+ childRenderNodes,
799
+ slotNodes,
800
+ shadowRootNodes,
801
+ slottedNodes
802
+ );
454
803
  }
804
+ childVNode.$elm$["s-sn"] = slotName;
805
+ childVNode.$elm$.removeAttribute("s-sn");
455
806
  }
456
- } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
457
- newValue = newValue === true ? "" : newValue;
458
- if (xlink) {
459
- elm.setAttributeNS(XLINK_NS, memberName, newValue);
460
- } else {
461
- elm.setAttribute(memberName, newValue);
807
+ if (childVNode.$index$ !== void 0) {
808
+ parentVNode.$children$[childVNode.$index$] = childVNode;
462
809
  }
810
+ parentVNode = childVNode;
463
811
  }
464
812
  }
465
- }
466
- };
467
- var parseClassListRegex = /\s/;
468
- var parseClassList = (value) => !value ? [] : value.split(parseClassListRegex);
469
- var CAPTURE_EVENT_SUFFIX = "Capture";
470
- var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
471
-
472
- // src/runtime/vdom/update-element.ts
473
- var updateElement = (oldVnode, newVnode, isSvgMode2) => {
474
- const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
475
- const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || EMPTY_OBJ;
476
- const newVnodeAttrs = newVnode.$attrs$ || EMPTY_OBJ;
477
- {
478
- for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
479
- if (!(memberName in newVnodeAttrs)) {
480
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], void 0, isSvgMode2, newVnode.$flags$);
813
+ if (node.shadowRoot) {
814
+ for (i2 = node.shadowRoot.childNodes.length - 1; i2 >= 0; i2--) {
815
+ clientHydrate(
816
+ parentVNode,
817
+ childRenderNodes,
818
+ slotNodes,
819
+ shadowRootNodes,
820
+ hostElm,
821
+ node.shadowRoot.childNodes[i2],
822
+ hostId,
823
+ slottedNodes
824
+ );
481
825
  }
482
826
  }
483
- }
484
- for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
485
- setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode2, newVnode.$flags$);
486
- }
487
- };
488
- function sortedAttrNames(attrNames) {
489
- return attrNames.includes("ref") ? (
490
- // we need to sort these to ensure that `'ref'` is the last attr
491
- [...attrNames.filter((attr) => attr !== "ref"), "ref"]
492
- ) : (
493
- // no need to sort, return the original array
494
- attrNames
495
- );
496
- }
497
-
498
- // src/runtime/vdom/vdom-render.ts
499
- var scopeId;
500
- var contentRef;
501
- var hostTagName;
502
- var useNativeShadowDom = false;
503
- var checkSlotFallbackVisibility = false;
504
- var checkSlotRelocate = false;
505
- var isSvgMode = false;
506
- var createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
507
- var _a;
508
- const newVNode2 = newParentVNode.$children$[childIndex];
509
- let i2 = 0;
510
- let elm;
511
- let childNode;
512
- let oldVNode;
513
- if (!useNativeShadowDom) {
514
- checkSlotRelocate = true;
515
- if (newVNode2.$tag$ === "slot") {
516
- newVNode2.$flags$ |= newVNode2.$children$ ? (
517
- // slot element has fallback content
518
- // still create an element that "mocks" the slot element
519
- 2 /* isSlotFallback */
520
- ) : (
521
- // slot element does not have fallback content
522
- // create an html comment we'll use to always reference
523
- // where actual slot content should sit next to
524
- 1 /* isSlotReference */
827
+ const nonShadowNodes = node.__childNodes || node.childNodes;
828
+ for (i2 = nonShadowNodes.length - 1; i2 >= 0; i2--) {
829
+ clientHydrate(
830
+ parentVNode,
831
+ childRenderNodes,
832
+ slotNodes,
833
+ shadowRootNodes,
834
+ hostElm,
835
+ nonShadowNodes[i2],
836
+ hostId,
837
+ slottedNodes
525
838
  );
526
839
  }
527
- }
528
- if (newVNode2.$text$ !== null) {
529
- elm = newVNode2.$elm$ = doc.createTextNode(newVNode2.$text$);
530
- } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
531
- elm = newVNode2.$elm$ = doc.createTextNode("");
532
- } else {
533
- if (!isSvgMode) {
534
- isSvgMode = newVNode2.$tag$ === "svg";
535
- }
536
- elm = newVNode2.$elm$ = doc.createElementNS(
537
- isSvgMode ? SVG_NS : HTML_NS,
538
- !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
539
- ) ;
540
- if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
541
- isSvgMode = false;
840
+ } else if (node.nodeType === 8 /* CommentNode */) {
841
+ childIdSplt = node.nodeValue.split(".");
842
+ if (childIdSplt[1] === hostId || childIdSplt[1] === "0") {
843
+ childNodeType = childIdSplt[0];
844
+ childVNode = createSimpleVNode({
845
+ $hostId$: childIdSplt[1],
846
+ $nodeId$: childIdSplt[2],
847
+ $depth$: childIdSplt[3],
848
+ $index$: childIdSplt[4] || "0",
849
+ $elm$: node,
850
+ $attrs$: null,
851
+ $children$: null,
852
+ $key$: null,
853
+ $name$: null,
854
+ $tag$: null,
855
+ $text$: null
856
+ });
857
+ if (childNodeType === TEXT_NODE_ID) {
858
+ childVNode.$elm$ = findCorrespondingNode(node, 3 /* TextNode */);
859
+ if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* TextNode */) {
860
+ childVNode.$text$ = childVNode.$elm$.textContent;
861
+ childRenderNodes.push(childVNode);
862
+ node.remove();
863
+ if (hostId === childVNode.$hostId$) {
864
+ if (!parentVNode.$children$) {
865
+ parentVNode.$children$ = [];
866
+ }
867
+ parentVNode.$children$[childVNode.$index$] = childVNode;
868
+ }
869
+ }
870
+ } else if (childNodeType === COMMENT_NODE_ID) {
871
+ childVNode.$elm$ = findCorrespondingNode(node, 8 /* CommentNode */);
872
+ if (childVNode.$elm$ && childVNode.$elm$.nodeType === 8 /* CommentNode */) {
873
+ childRenderNodes.push(childVNode);
874
+ node.remove();
875
+ }
876
+ } else if (childVNode.$hostId$ === hostId) {
877
+ if (childNodeType === SLOT_NODE_ID) {
878
+ const slotName = node["s-sn"] = childIdSplt[5] || "";
879
+ addSlot(
880
+ slotName,
881
+ childIdSplt[2],
882
+ childVNode,
883
+ node,
884
+ parentVNode,
885
+ childRenderNodes,
886
+ slotNodes,
887
+ shadowRootNodes,
888
+ slottedNodes
889
+ );
890
+ } else if (childNodeType === CONTENT_REF_ID) {
891
+ {
892
+ hostElm["s-cr"] = node;
893
+ node["s-cn"] = true;
894
+ }
895
+ }
896
+ }
542
897
  }
543
- {
544
- updateElement(null, newVNode2, isSvgMode);
898
+ } else if (parentVNode && parentVNode.$tag$ === "style") {
899
+ const vnode = newVNode(null, node.textContent);
900
+ vnode.$elm$ = node;
901
+ vnode.$index$ = "0";
902
+ parentVNode.$children$ = [vnode];
903
+ } else {
904
+ if (node.nodeType === 3 /* TextNode */ && !node.wholeText.trim()) {
905
+ node.remove();
545
906
  }
546
- const rootNode = elm.getRootNode();
547
- const isElementWithinShadowRoot = !rootNode.querySelector("body");
548
- if (!isElementWithinShadowRoot && BUILD.scoped && isDef(scopeId) && elm["s-si"] !== scopeId) {
549
- elm.classList.add(elm["s-si"] = scopeId);
907
+ }
908
+ return parentVNode;
909
+ };
910
+ var initializeDocumentHydrate = (node, orgLocNodes) => {
911
+ if (node.nodeType === 1 /* ElementNode */) {
912
+ const componentId = node[HYDRATE_ID] || node.getAttribute(HYDRATE_ID);
913
+ if (componentId) {
914
+ orgLocNodes.set(componentId, node);
550
915
  }
551
- if (newVNode2.$children$) {
552
- for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
553
- childNode = createElm(oldParentVNode, newVNode2, i2);
554
- if (childNode) {
555
- elm.appendChild(childNode);
556
- }
916
+ let i2 = 0;
917
+ if (node.shadowRoot) {
918
+ for (; i2 < node.shadowRoot.childNodes.length; i2++) {
919
+ initializeDocumentHydrate(node.shadowRoot.childNodes[i2], orgLocNodes);
557
920
  }
558
921
  }
559
- {
560
- if (newVNode2.$tag$ === "svg") {
561
- isSvgMode = false;
562
- } else if (elm.tagName === "foreignObject") {
563
- isSvgMode = true;
564
- }
922
+ const nonShadowNodes = node.__childNodes || node.childNodes;
923
+ for (i2 = 0; i2 < nonShadowNodes.length; i2++) {
924
+ initializeDocumentHydrate(nonShadowNodes[i2], orgLocNodes);
925
+ }
926
+ } else if (node.nodeType === 8 /* CommentNode */) {
927
+ const childIdSplt = node.nodeValue.split(".");
928
+ if (childIdSplt[0] === ORG_LOCATION_ID) {
929
+ orgLocNodes.set(childIdSplt[1] + "." + childIdSplt[2], node);
930
+ node.nodeValue = "";
931
+ node["s-en"] = childIdSplt[3];
565
932
  }
566
933
  }
567
- elm["s-hn"] = hostTagName;
934
+ };
935
+ var createSimpleVNode = (vnode) => {
936
+ const defaultVNode = {
937
+ $flags$: 0,
938
+ $hostId$: null,
939
+ $nodeId$: null,
940
+ $depth$: null,
941
+ $index$: "0",
942
+ $elm$: null,
943
+ $attrs$: null,
944
+ $children$: null,
945
+ $key$: null,
946
+ $name$: null,
947
+ $tag$: null,
948
+ $text$: null
949
+ };
950
+ return { ...defaultVNode, ...vnode };
951
+ };
952
+ function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNodes, slotNodes, shadowRootNodes, slottedNodes) {
953
+ node["s-sr"] = true;
954
+ childVNode.$name$ = slotName || null;
955
+ childVNode.$tag$ = "slot";
956
+ const parentNodeId = (parentVNode == null ? void 0 : parentVNode.$elm$) ? parentVNode.$elm$["s-id"] || parentVNode.$elm$.getAttribute("s-id") : "";
568
957
  {
569
- if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
570
- elm["s-sr"] = true;
571
- elm["s-cr"] = contentRef;
572
- elm["s-sn"] = newVNode2.$name$ || "";
573
- elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
574
- oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
575
- if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
576
- {
577
- putBackInOriginalLocation(oldParentVNode.$elm$, false);
578
- }
579
- }
958
+ const slot = childVNode.$elm$;
959
+ const shouldMove = parentNodeId && parentNodeId !== childVNode.$hostId$ && parentVNode.$elm$.shadowRoot;
960
+ addSlottedNodes(slottedNodes, slotId, slotName, node, shouldMove ? parentNodeId : childVNode.$hostId$);
961
+ patchSlotNode(node);
962
+ if (shouldMove) {
963
+ parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);
580
964
  }
965
+ childRenderNodes.push(childVNode);
966
+ }
967
+ slotNodes.push(childVNode);
968
+ if (!parentVNode.$children$) {
969
+ parentVNode.$children$ = [];
970
+ }
971
+ parentVNode.$children$[childVNode.$index$] = childVNode;
972
+ }
973
+ var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
974
+ let slottedNode = slotNode.nextSibling;
975
+ slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
976
+ while (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (slottedNode.nodeType === 8 /* CommentNode */ && slottedNode.nodeValue.indexOf(".") !== 1 || slottedNode.nodeType === 3 /* TextNode */))) {
977
+ slottedNode["s-sn"] = slotName;
978
+ slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });
979
+ slottedNode = slottedNode.nextSibling;
581
980
  }
582
- return elm;
583
981
  };
584
- var putBackInOriginalLocation = (parentElm, recursive) => {
585
- plt.$flags$ |= 1 /* isTmpDisconnected */;
586
- const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
587
- if (parentElm["s-sr"] && BUILD.experimentalSlotFixes) {
588
- let node = parentElm;
589
- while (node = node.nextSibling) {
590
- if (node && node["s-sn"] === parentElm["s-sn"] && node["s-sh"] === hostTagName) {
591
- oldSlotChildNodes.push(node);
592
- }
982
+ var findCorrespondingNode = (node, type) => {
983
+ let sibling = node;
984
+ do {
985
+ sibling = sibling.nextSibling;
986
+ } while (sibling && (sibling.nodeType !== type || !sibling.nodeValue));
987
+ return sibling;
988
+ };
989
+ var parsePropertyValue = (propValue, propType) => {
990
+ if (typeof propValue === "string" && (propValue.startsWith("{") && propValue.endsWith("}") || propValue.startsWith("[") && propValue.endsWith("]"))) {
991
+ try {
992
+ propValue = JSON.parse(propValue);
993
+ return propValue;
994
+ } catch (e) {
593
995
  }
594
996
  }
595
- for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
596
- const childNode = oldSlotChildNodes[i2];
597
- if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
598
- insertBefore(parentReferenceNode(childNode), childNode, referenceNode(childNode));
599
- childNode["s-ol"].remove();
600
- childNode["s-ol"] = void 0;
601
- childNode["s-sh"] = void 0;
602
- checkSlotRelocate = true;
997
+ if (typeof propValue === "string" && propValue.startsWith(SERIALIZED_PREFIX)) {
998
+ propValue = deserializeProperty(propValue);
999
+ return propValue;
1000
+ }
1001
+ if (propValue != null && !isComplexType(propValue)) {
1002
+ if (propType & 4 /* Boolean */) {
1003
+ return propValue === "false" ? false : propValue === "" || !!propValue;
603
1004
  }
604
- if (recursive) {
605
- putBackInOriginalLocation(childNode, recursive);
1005
+ if (propType & 2 /* Number */) {
1006
+ return typeof propValue === "string" ? parseFloat(propValue) : typeof propValue === "number" ? propValue : NaN;
1007
+ }
1008
+ if (propType & 1 /* String */) {
1009
+ return String(propValue);
606
1010
  }
1011
+ return propValue;
607
1012
  }
608
- plt.$flags$ &= ~1 /* isTmpDisconnected */;
1013
+ return propValue;
609
1014
  };
610
- var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
611
- let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
612
- let childNode;
613
- for (; startIdx <= endIdx; ++startIdx) {
614
- if (vnodes[startIdx]) {
615
- childNode = createElm(null, parentVNode, startIdx);
616
- if (childNode) {
617
- vnodes[startIdx].$elm$ = childNode;
618
- insertBefore(containerElm, childNode, referenceNode(before) );
619
- }
1015
+ var getElement = (ref) => getHostRef(ref).$hostElement$ ;
1016
+
1017
+ // src/runtime/event-emitter.ts
1018
+ var createEvent = (ref, name, flags) => {
1019
+ const elm = getElement(ref);
1020
+ return {
1021
+ emit: (detail) => {
1022
+ return emitEvent(elm, name, {
1023
+ bubbles: !!(flags & 4 /* Bubbles */),
1024
+ composed: !!(flags & 2 /* Composed */),
1025
+ cancelable: !!(flags & 1 /* Cancellable */),
1026
+ detail
1027
+ });
620
1028
  }
621
- }
1029
+ };
622
1030
  };
623
- var removeVnodes = (vnodes, startIdx, endIdx) => {
624
- for (let index = startIdx; index <= endIdx; ++index) {
625
- const vnode = vnodes[index];
626
- if (vnode) {
627
- const elm = vnode.$elm$;
628
- nullifyVNodeRefs(vnode);
629
- if (elm) {
630
- {
631
- checkSlotFallbackVisibility = true;
632
- if (elm["s-ol"]) {
633
- elm["s-ol"].remove();
634
- } else {
635
- putBackInOriginalLocation(elm, true);
636
- }
637
- }
638
- elm.remove();
639
- }
1031
+ var emitEvent = (elm, name, opts) => {
1032
+ const ev = plt.ce(name, opts);
1033
+ elm.dispatchEvent(ev);
1034
+ return ev;
1035
+ };
1036
+ var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
1037
+ var registerStyle = (scopeId2, cssText, allowCS) => {
1038
+ let style = styles.get(scopeId2);
1039
+ if (supportsConstructableStylesheets && allowCS) {
1040
+ style = style || new CSSStyleSheet();
1041
+ if (typeof style === "string") {
1042
+ style = cssText;
1043
+ } else {
1044
+ style.replaceSync(cssText);
640
1045
  }
1046
+ } else {
1047
+ style = cssText;
641
1048
  }
1049
+ styles.set(scopeId2, style);
642
1050
  };
643
- var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {
644
- let oldStartIdx = 0;
645
- let newStartIdx = 0;
646
- let idxInOld = 0;
647
- let i2 = 0;
648
- let oldEndIdx = oldCh.length - 1;
649
- let oldStartVnode = oldCh[0];
650
- let oldEndVnode = oldCh[oldEndIdx];
651
- let newEndIdx = newCh.length - 1;
652
- let newStartVnode = newCh[0];
653
- let newEndVnode = newCh[newEndIdx];
654
- let node;
655
- let elmToMove;
656
- while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
657
- if (oldStartVnode == null) {
658
- oldStartVnode = oldCh[++oldStartIdx];
659
- } else if (oldEndVnode == null) {
660
- oldEndVnode = oldCh[--oldEndIdx];
661
- } else if (newStartVnode == null) {
662
- newStartVnode = newCh[++newStartIdx];
663
- } else if (newEndVnode == null) {
664
- newEndVnode = newCh[--newEndIdx];
665
- } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {
666
- patch(oldStartVnode, newStartVnode, isInitialRender);
667
- oldStartVnode = oldCh[++oldStartIdx];
668
- newStartVnode = newCh[++newStartIdx];
669
- } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {
670
- patch(oldEndVnode, newEndVnode, isInitialRender);
671
- oldEndVnode = oldCh[--oldEndIdx];
672
- newEndVnode = newCh[--newEndIdx];
673
- } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
674
- if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
675
- putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
676
- }
677
- patch(oldStartVnode, newEndVnode, isInitialRender);
678
- insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
679
- oldStartVnode = oldCh[++oldStartIdx];
680
- newEndVnode = newCh[--newEndIdx];
681
- } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
682
- if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
683
- putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
1051
+ var addStyle = (styleContainerNode, cmpMeta, mode) => {
1052
+ var _a;
1053
+ const scopeId2 = getScopeId(cmpMeta);
1054
+ const style = styles.get(scopeId2);
1055
+ if (!win.document) {
1056
+ return scopeId2;
1057
+ }
1058
+ styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;
1059
+ if (style) {
1060
+ if (typeof style === "string") {
1061
+ styleContainerNode = styleContainerNode.head || styleContainerNode;
1062
+ let appliedStyles = rootAppliedStyles.get(styleContainerNode);
1063
+ let styleElm;
1064
+ if (!appliedStyles) {
1065
+ rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
684
1066
  }
685
- patch(oldEndVnode, newStartVnode, isInitialRender);
686
- insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
687
- oldEndVnode = oldCh[--oldEndIdx];
688
- newStartVnode = newCh[++newStartIdx];
689
- } else {
690
- idxInOld = -1;
691
- {
692
- for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {
693
- if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {
694
- idxInOld = i2;
695
- break;
1067
+ if (!appliedStyles.has(scopeId2)) {
1068
+ if (styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`))) {
1069
+ styleElm.innerHTML = style;
1070
+ } else {
1071
+ styleElm = document.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`) || win.document.createElement("style");
1072
+ styleElm.innerHTML = style;
1073
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
1074
+ if (nonce != null) {
1075
+ styleElm.setAttribute("nonce", nonce);
1076
+ }
1077
+ if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
1078
+ if (styleContainerNode.nodeName === "HEAD") {
1079
+ const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
1080
+ const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
1081
+ styleContainerNode.insertBefore(
1082
+ styleElm,
1083
+ (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null
1084
+ );
1085
+ } else if ("host" in styleContainerNode) {
1086
+ if (supportsConstructableStylesheets) {
1087
+ const stylesheet = new CSSStyleSheet();
1088
+ stylesheet.replaceSync(style);
1089
+ styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
1090
+ } else {
1091
+ const existingStyleContainer = styleContainerNode.querySelector("style");
1092
+ if (existingStyleContainer) {
1093
+ existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
1094
+ } else {
1095
+ styleContainerNode.prepend(styleElm);
1096
+ }
1097
+ }
1098
+ } else {
1099
+ styleContainerNode.append(styleElm);
1100
+ }
1101
+ }
1102
+ if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {
1103
+ styleContainerNode.insertBefore(styleElm, null);
696
1104
  }
697
1105
  }
698
- }
699
- if (idxInOld >= 0) {
700
- elmToMove = oldCh[idxInOld];
701
- if (elmToMove.$tag$ !== newStartVnode.$tag$) {
702
- node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);
703
- } else {
704
- patch(elmToMove, newStartVnode, isInitialRender);
705
- oldCh[idxInOld] = void 0;
706
- node = elmToMove.$elm$;
1106
+ if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
1107
+ styleElm.innerHTML += SLOT_FB_CSS;
707
1108
  }
708
- newStartVnode = newCh[++newStartIdx];
709
- } else {
710
- node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);
711
- newStartVnode = newCh[++newStartIdx];
712
- }
713
- if (node) {
714
- {
715
- insertBefore(parentReferenceNode(oldStartVnode.$elm$), node, referenceNode(oldStartVnode.$elm$));
1109
+ if (appliedStyles) {
1110
+ appliedStyles.add(scopeId2);
716
1111
  }
717
1112
  }
1113
+ } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
1114
+ styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
718
1115
  }
719
1116
  }
720
- if (oldStartIdx > oldEndIdx) {
721
- addVnodes(
722
- parentElm,
723
- newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,
724
- newVNode2,
725
- newCh,
726
- newStartIdx,
727
- newEndIdx
728
- );
729
- } else if (newStartIdx > newEndIdx) {
730
- removeVnodes(oldCh, oldStartIdx, oldEndIdx);
731
- }
732
- };
733
- var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
734
- if (leftVNode.$tag$ === rightVNode.$tag$) {
735
- if (leftVNode.$tag$ === "slot") {
736
- if (
737
- // The component gets hydrated and no VDOM has been initialized.
738
- // Here the comparison can't happen as $name$ property is not set for `leftNode`.
739
- "$nodeId$" in leftVNode && isInitialRender && // `leftNode` is not from type HTMLComment which would cause many
740
- // hydration comments to be removed
741
- leftVNode.$elm$.nodeType !== 8
742
- ) {
743
- return false;
744
- }
745
- return leftVNode.$name$ === rightVNode.$name$;
746
- }
747
- if (!isInitialRender) {
748
- return leftVNode.$key$ === rightVNode.$key$;
749
- }
750
- return true;
751
- }
752
- return false;
753
- };
754
- var referenceNode = (node) => {
755
- return node && node["s-ol"] || node;
1117
+ return scopeId2;
756
1118
  };
757
- var parentReferenceNode = (node) => (node["s-ol"] ? node["s-ol"] : node).parentNode;
758
- var patch = (oldVNode, newVNode2, isInitialRender = false) => {
759
- const elm = newVNode2.$elm$ = oldVNode.$elm$;
760
- const oldChildren = oldVNode.$children$;
761
- const newChildren = newVNode2.$children$;
762
- const tag = newVNode2.$tag$;
763
- const text = newVNode2.$text$;
764
- let defaultHolder;
765
- if (text === null) {
766
- {
767
- isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
1119
+ var attachStyles = (hostRef) => {
1120
+ const cmpMeta = hostRef.$cmpMeta$;
1121
+ const elm = hostRef.$hostElement$;
1122
+ const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
1123
+ addStyle(
1124
+ elm.getRootNode(),
1125
+ cmpMeta);
1126
+ endAttachStyles();
1127
+ };
1128
+ var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
1129
+ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {
1130
+ if (oldValue === newValue) {
1131
+ return;
1132
+ }
1133
+ let isProp = isMemberInElement(elm, memberName);
1134
+ let ln = memberName.toLowerCase();
1135
+ if (memberName === "class") {
1136
+ const classList = elm.classList;
1137
+ const oldClasses = parseClassList(oldValue);
1138
+ let newClasses = parseClassList(newValue);
1139
+ if (elm["s-si"] && initialRender) {
1140
+ newClasses.push(elm["s-si"]);
1141
+ oldClasses.forEach((c) => {
1142
+ if (c.startsWith(elm["s-si"])) newClasses.push(c);
1143
+ });
1144
+ newClasses = [...new Set(newClasses)];
1145
+ classList.add(...newClasses);
1146
+ } else {
1147
+ classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));
1148
+ classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));
768
1149
  }
1150
+ } else if (memberName === "style") {
769
1151
  {
770
- if (tag === "slot" && !useNativeShadowDom) ; else {
771
- updateElement(oldVNode, newVNode2, isSvgMode);
1152
+ for (const prop in oldValue) {
1153
+ if (!newValue || newValue[prop] == null) {
1154
+ if (prop.includes("-")) {
1155
+ elm.style.removeProperty(prop);
1156
+ } else {
1157
+ elm.style[prop] = "";
1158
+ }
1159
+ }
772
1160
  }
773
1161
  }
774
- if (oldChildren !== null && newChildren !== null) {
775
- updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
776
- } else if (newChildren !== null) {
777
- if (oldVNode.$text$ !== null) {
778
- elm.textContent = "";
1162
+ for (const prop in newValue) {
1163
+ if (!oldValue || newValue[prop] !== oldValue[prop]) {
1164
+ if (prop.includes("-")) {
1165
+ elm.style.setProperty(prop, newValue[prop]);
1166
+ } else {
1167
+ elm.style[prop] = newValue[prop];
1168
+ }
779
1169
  }
780
- addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);
781
- } else if (
782
- // don't do this on initial render as it can cause non-hydrated content to be removed
783
- !isInitialRender && BUILD.updatable && oldChildren !== null
784
- ) {
785
- removeVnodes(oldChildren, 0, oldChildren.length - 1);
786
1170
  }
787
- if (isSvgMode && tag === "svg") {
788
- isSvgMode = false;
1171
+ } else if (memberName === "key") ; else if (memberName === "ref") {
1172
+ if (newValue) {
1173
+ newValue(elm);
789
1174
  }
790
- } else if ((defaultHolder = elm["s-cr"])) {
791
- defaultHolder.parentNode.textContent = text;
792
- } else if (oldVNode.$text$ !== text) {
793
- elm.data = text;
794
- }
795
- };
796
- var updateFallbackSlotVisibility = (elm) => {
797
- const childNodes = elm.__childNodes || elm.childNodes;
798
- for (const childNode of childNodes) {
799
- if (childNode.nodeType === 1 /* ElementNode */) {
800
- if (childNode["s-sr"]) {
801
- const slotName = childNode["s-sn"];
802
- childNode.hidden = false;
803
- for (const siblingNode of childNodes) {
804
- if (siblingNode !== childNode) {
805
- if (siblingNode["s-hn"] !== childNode["s-hn"] || slotName !== "") {
806
- if (siblingNode.nodeType === 1 /* ElementNode */ && (slotName === siblingNode.getAttribute("slot") || slotName === siblingNode["s-sn"]) || siblingNode.nodeType === 3 /* TextNode */ && slotName === siblingNode["s-sn"]) {
807
- childNode.hidden = true;
808
- break;
809
- }
810
- } else if (slotName === siblingNode["s-sn"]) {
811
- if (siblingNode.nodeType === 1 /* ElementNode */ || siblingNode.nodeType === 3 /* TextNode */ && siblingNode.textContent.trim() !== "") {
812
- childNode.hidden = true;
813
- break;
814
- }
815
- }
816
- }
817
- }
1175
+ } else if ((!isProp ) && memberName[0] === "o" && memberName[1] === "n") {
1176
+ if (memberName[2] === "-") {
1177
+ memberName = memberName.slice(3);
1178
+ } else if (isMemberInElement(win, ln)) {
1179
+ memberName = ln.slice(2);
1180
+ } else {
1181
+ memberName = ln[2] + memberName.slice(3);
1182
+ }
1183
+ if (oldValue || newValue) {
1184
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
1185
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, "");
1186
+ if (oldValue) {
1187
+ plt.rel(elm, memberName, oldValue, capture);
1188
+ }
1189
+ if (newValue) {
1190
+ plt.ael(elm, memberName, newValue, capture);
818
1191
  }
819
- updateFallbackSlotVisibility(childNode);
820
1192
  }
821
- }
822
- };
823
- var relocateNodes = [];
824
- var markSlotContentForRelocation = (elm) => {
825
- let node;
826
- let hostContentNodes;
827
- let j;
828
- const children = elm.__childNodes || elm.childNodes;
829
- for (const childNode of children) {
830
- if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
831
- hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
832
- const slotName = childNode["s-sn"];
833
- for (j = hostContentNodes.length - 1; j >= 0; j--) {
834
- node = hostContentNodes[j];
835
- if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!BUILD.experimentalSlotFixes )) {
836
- if (isNodeLocatedInSlot(node, slotName)) {
837
- let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
838
- checkSlotFallbackVisibility = true;
839
- node["s-sn"] = node["s-sn"] || slotName;
840
- if (relocateNodeData) {
841
- relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
842
- relocateNodeData.$slotRefNode$ = childNode;
1193
+ } else {
1194
+ const isComplex = isComplexType(newValue);
1195
+ if ((isProp || isComplex && newValue !== null) && !isSvg) {
1196
+ try {
1197
+ if (!elm.tagName.includes("-")) {
1198
+ const n = newValue == null ? "" : newValue;
1199
+ if (memberName === "list") {
1200
+ isProp = false;
1201
+ } else if (oldValue == null || elm[memberName] != n) {
1202
+ if (typeof elm.__lookupSetter__(memberName) === "function") {
1203
+ elm[memberName] = n;
843
1204
  } else {
844
- node["s-sh"] = childNode["s-hn"];
845
- relocateNodes.push({
846
- $slotRefNode$: childNode,
847
- $nodeToRelocate$: node
848
- });
1205
+ elm.setAttribute(memberName, n);
849
1206
  }
850
- if (node["s-sr"]) {
851
- relocateNodes.map((relocateNode) => {
852
- if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
853
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
854
- if (relocateNodeData && !relocateNode.$slotRefNode$) {
855
- relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
856
- }
857
- }
858
- });
859
- }
860
- } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
861
- relocateNodes.push({
862
- $nodeToRelocate$: node
863
- });
864
1207
  }
1208
+ } else if (elm[memberName] !== newValue) {
1209
+ elm[memberName] = newValue;
865
1210
  }
1211
+ } catch (e) {
866
1212
  }
867
1213
  }
868
- if (childNode.nodeType === 1 /* ElementNode */) {
869
- markSlotContentForRelocation(childNode);
1214
+ let xlink = false;
1215
+ {
1216
+ if (ln !== (ln = ln.replace(/^xlink\:?/, ""))) {
1217
+ memberName = ln;
1218
+ xlink = true;
1219
+ }
1220
+ }
1221
+ if (newValue == null || newValue === false) {
1222
+ if (newValue !== false || elm.getAttribute(memberName) === "") {
1223
+ if (xlink) {
1224
+ elm.removeAttributeNS(XLINK_NS, memberName);
1225
+ } else {
1226
+ elm.removeAttribute(memberName);
1227
+ }
1228
+ }
1229
+ } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {
1230
+ newValue = newValue === true ? "" : newValue;
1231
+ if (xlink) {
1232
+ elm.setAttributeNS(XLINK_NS, memberName, newValue);
1233
+ } else {
1234
+ elm.setAttribute(memberName, newValue);
1235
+ }
870
1236
  }
871
1237
  }
872
1238
  };
873
- var isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
874
- if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
875
- if (nodeToRelocate.getAttribute("slot") === null && slotName === "") {
876
- return true;
877
- }
878
- if (nodeToRelocate.getAttribute("slot") === slotName) {
879
- return true;
880
- }
881
- return false;
1239
+ var parseClassListRegex = /\s/;
1240
+ var parseClassList = (value) => {
1241
+ if (typeof value === "object" && value && "baseVal" in value) {
1242
+ value = value.baseVal;
882
1243
  }
883
- if (nodeToRelocate["s-sn"] === slotName) {
884
- return true;
1244
+ if (!value || typeof value !== "string") {
1245
+ return [];
885
1246
  }
886
- return slotName === "";
1247
+ return value.split(parseClassListRegex);
887
1248
  };
888
- var nullifyVNodeRefs = (vNode) => {
1249
+ var CAPTURE_EVENT_SUFFIX = "Capture";
1250
+ var CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$");
1251
+
1252
+ // src/runtime/vdom/update-element.ts
1253
+ var updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {
1254
+ const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;
1255
+ const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};
1256
+ const newVnodeAttrs = newVnode.$attrs$ || {};
889
1257
  {
890
- vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
891
- vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
1258
+ for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {
1259
+ if (!(memberName in newVnodeAttrs)) {
1260
+ setAccessor(
1261
+ elm,
1262
+ memberName,
1263
+ oldVnodeAttrs[memberName],
1264
+ void 0,
1265
+ isSvgMode2,
1266
+ newVnode.$flags$,
1267
+ isInitialRender
1268
+ );
1269
+ }
1270
+ }
892
1271
  }
893
- };
894
- var insertBefore = (parent, newNode, reference) => {
895
- const inserted = parent == null ? void 0 : parent.insertBefore(newNode, reference);
896
- return inserted;
897
- };
898
- var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
899
- var _a, _b, _c, _d;
900
- const hostElm = hostRef.$hostElement$;
901
- const cmpMeta = hostRef.$cmpMeta$;
902
- const oldVNode = hostRef.$vnode$ || newVNode(null, null);
903
- const rootVnode = isHost(renderFnResults) ? renderFnResults : h(null, null, renderFnResults);
904
- hostTagName = hostElm.tagName;
905
- if (cmpMeta.$attrsToReflect$) {
906
- rootVnode.$attrs$ = rootVnode.$attrs$ || {};
907
- cmpMeta.$attrsToReflect$.map(
908
- ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]
1272
+ for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {
1273
+ setAccessor(
1274
+ elm,
1275
+ memberName,
1276
+ oldVnodeAttrs[memberName],
1277
+ newVnodeAttrs[memberName],
1278
+ isSvgMode2,
1279
+ newVnode.$flags$,
1280
+ isInitialRender
909
1281
  );
910
1282
  }
911
- if (isInitialLoad && rootVnode.$attrs$) {
912
- for (const key of Object.keys(rootVnode.$attrs$)) {
913
- if (hostElm.hasAttribute(key) && !["key", "ref", "style", "class"].includes(key)) {
914
- rootVnode.$attrs$[key] = hostElm[key];
915
- }
1283
+ };
1284
+ function sortedAttrNames(attrNames) {
1285
+ return attrNames.includes("ref") ? (
1286
+ // we need to sort these to ensure that `'ref'` is the last attr
1287
+ [...attrNames.filter((attr) => attr !== "ref"), "ref"]
1288
+ ) : (
1289
+ // no need to sort, return the original array
1290
+ attrNames
1291
+ );
1292
+ }
1293
+ var contentRef;
1294
+ var hostTagName;
1295
+ var useNativeShadowDom = false;
1296
+ var checkSlotFallbackVisibility = false;
1297
+ var checkSlotRelocate = false;
1298
+ var isSvgMode = false;
1299
+ var createElm = (oldParentVNode, newParentVNode, childIndex) => {
1300
+ var _a;
1301
+ const newVNode2 = newParentVNode.$children$[childIndex];
1302
+ let i2 = 0;
1303
+ let elm;
1304
+ let childNode;
1305
+ let oldVNode;
1306
+ if (!useNativeShadowDom) {
1307
+ checkSlotRelocate = true;
1308
+ if (newVNode2.$tag$ === "slot") {
1309
+ newVNode2.$flags$ |= newVNode2.$children$ ? (
1310
+ // slot element has fallback content
1311
+ // still create an element that "mocks" the slot element
1312
+ 2 /* isSlotFallback */
1313
+ ) : (
1314
+ // slot element does not have fallback content
1315
+ // create an html comment we'll use to always reference
1316
+ // where actual slot content should sit next to
1317
+ 1 /* isSlotReference */
1318
+ );
916
1319
  }
917
1320
  }
918
- rootVnode.$tag$ = null;
919
- rootVnode.$flags$ |= 4 /* isHost */;
920
- hostRef.$vnode$ = rootVnode;
921
- rootVnode.$elm$ = oldVNode.$elm$ = hostElm;
922
- useNativeShadowDom = supportsShadow ;
923
- {
924
- contentRef = hostElm["s-cr"];
925
- checkSlotFallbackVisibility = false;
926
- }
927
- patch(oldVNode, rootVnode, isInitialLoad);
928
- {
929
- plt.$flags$ |= 1 /* isTmpDisconnected */;
930
- if (checkSlotRelocate) {
931
- markSlotContentForRelocation(rootVnode.$elm$);
932
- for (const relocateData of relocateNodes) {
933
- const nodeToRelocate = relocateData.$nodeToRelocate$;
934
- if (!nodeToRelocate["s-ol"]) {
935
- const orgLocationNode = doc.createTextNode("");
936
- orgLocationNode["s-nr"] = nodeToRelocate;
937
- insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
938
- }
939
- }
940
- for (const relocateData of relocateNodes) {
941
- const nodeToRelocate = relocateData.$nodeToRelocate$;
942
- const slotRefNode = relocateData.$slotRefNode$;
943
- if (slotRefNode) {
944
- const parentNodeRef = slotRefNode.parentNode;
945
- let insertBeforeNode = slotRefNode.nextSibling;
946
- {
947
- let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
948
- while (orgLocationNode) {
949
- let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
950
- if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === refNode.parentNode) {
951
- refNode = refNode.nextSibling;
952
- while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
953
- refNode = refNode == null ? void 0 : refNode.nextSibling;
954
- }
955
- if (!refNode || !refNode["s-nr"]) {
956
- insertBeforeNode = refNode;
957
- break;
958
- }
959
- }
960
- orgLocationNode = orgLocationNode.previousSibling;
961
- }
962
- }
963
- if (!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode || nodeToRelocate.nextSibling !== insertBeforeNode) {
964
- if (nodeToRelocate !== insertBeforeNode) {
965
- if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
966
- nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
967
- }
968
- insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
969
- if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
970
- nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
971
- }
972
- }
973
- }
974
- nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](nodeToRelocate);
975
- } else {
976
- if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
977
- if (isInitialLoad) {
978
- nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
979
- }
980
- nodeToRelocate.hidden = true;
981
- }
1321
+ if (newVNode2.$text$ !== null) {
1322
+ elm = newVNode2.$elm$ = win.document.createTextNode(newVNode2.$text$);
1323
+ } else if (newVNode2.$flags$ & 1 /* isSlotReference */) {
1324
+ elm = newVNode2.$elm$ = win.document.createTextNode("");
1325
+ {
1326
+ updateElement(null, newVNode2, isSvgMode);
1327
+ }
1328
+ } else {
1329
+ if (!isSvgMode) {
1330
+ isSvgMode = newVNode2.$tag$ === "svg";
1331
+ }
1332
+ if (!win.document) {
1333
+ throw new Error(
1334
+ "You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component."
1335
+ );
1336
+ }
1337
+ elm = newVNode2.$elm$ = win.document.createElementNS(
1338
+ isSvgMode ? SVG_NS : HTML_NS,
1339
+ !useNativeShadowDom && BUILD.slotRelocation && newVNode2.$flags$ & 2 /* isSlotFallback */ ? "slot-fb" : newVNode2.$tag$
1340
+ ) ;
1341
+ if (isSvgMode && newVNode2.$tag$ === "foreignObject") {
1342
+ isSvgMode = false;
1343
+ }
1344
+ {
1345
+ updateElement(null, newVNode2, isSvgMode);
1346
+ }
1347
+ if (newVNode2.$children$) {
1348
+ for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {
1349
+ childNode = createElm(oldParentVNode, newVNode2, i2);
1350
+ if (childNode) {
1351
+ elm.appendChild(childNode);
982
1352
  }
983
1353
  }
984
1354
  }
985
- if (checkSlotFallbackVisibility) {
986
- updateFallbackSlotVisibility(rootVnode.$elm$);
987
- }
988
- plt.$flags$ &= ~1 /* isTmpDisconnected */;
989
- relocateNodes.length = 0;
990
- }
991
- contentRef = void 0;
992
- };
993
- var addSlotRelocateNode = (newChild, slotNode, prepend, position) => {
994
- let slottedNodeLocation;
995
- if (newChild["s-ol"] && newChild["s-ol"].isConnected) {
996
- slottedNodeLocation = newChild["s-ol"];
997
- } else {
998
- slottedNodeLocation = document.createTextNode("");
999
- slottedNodeLocation["s-nr"] = newChild;
1000
- }
1001
- if (!slotNode["s-cr"] || !slotNode["s-cr"].parentNode) return;
1002
- const parent = slotNode["s-cr"].parentNode;
1003
- const appendMethod = prepend ? parent.__prepend || parent.prepend : parent.__appendChild || parent.appendChild;
1004
- if (typeof position !== "undefined") {
1005
1355
  {
1006
- slottedNodeLocation["s-oo"] = position;
1007
- const childNodes = parent.__childNodes || parent.childNodes;
1008
- const slotRelocateNodes = [slottedNodeLocation];
1009
- childNodes.forEach((n) => {
1010
- if (n["s-nr"]) slotRelocateNodes.push(n);
1011
- });
1012
- slotRelocateNodes.sort((a, b) => {
1013
- if (!a["s-oo"] || a["s-oo"] < b["s-oo"]) return -1;
1014
- else if (!b["s-oo"] || b["s-oo"] < a["s-oo"]) return 1;
1015
- return 0;
1016
- });
1017
- slotRelocateNodes.forEach((n) => appendMethod.call(parent, n));
1356
+ if (newVNode2.$tag$ === "svg") {
1357
+ isSvgMode = false;
1358
+ } else if (elm.tagName === "foreignObject") {
1359
+ isSvgMode = true;
1360
+ }
1018
1361
  }
1019
- } else {
1020
- appendMethod.call(parent, slottedNodeLocation);
1021
1362
  }
1022
- newChild["s-ol"] = slottedNodeLocation;
1023
- newChild["s-sh"] = slotNode["s-hn"];
1024
- };
1025
- var createTime = (fnName, tagName = "") => {
1363
+ elm["s-hn"] = hostTagName;
1026
1364
  {
1027
- return () => {
1028
- return;
1029
- };
1365
+ if (newVNode2.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
1366
+ elm["s-sr"] = true;
1367
+ elm["s-cr"] = contentRef;
1368
+ elm["s-sn"] = newVNode2.$name$ || "";
1369
+ elm["s-rf"] = (_a = newVNode2.$attrs$) == null ? void 0 : _a.ref;
1370
+ patchSlotNode(elm);
1371
+ oldVNode = oldParentVNode && oldParentVNode.$children$ && oldParentVNode.$children$[childIndex];
1372
+ if (oldVNode && oldVNode.$tag$ === newVNode2.$tag$ && oldParentVNode.$elm$) {
1373
+ {
1374
+ putBackInOriginalLocation(oldParentVNode.$elm$, false);
1375
+ }
1376
+ }
1377
+ }
1030
1378
  }
1379
+ return elm;
1031
1380
  };
1032
- var uniqueTime = (key, measureText) => {
1033
- {
1034
- return () => {
1035
- return;
1036
- };
1381
+ var putBackInOriginalLocation = (parentElm, recursive) => {
1382
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1383
+ const oldSlotChildNodes = Array.from(parentElm.__childNodes || parentElm.childNodes);
1384
+ for (let i2 = oldSlotChildNodes.length - 1; i2 >= 0; i2--) {
1385
+ const childNode = oldSlotChildNodes[i2];
1386
+ if (childNode["s-hn"] !== hostTagName && childNode["s-ol"]) {
1387
+ insertBefore(referenceNode(childNode).parentNode, childNode, referenceNode(childNode));
1388
+ childNode["s-ol"].remove();
1389
+ childNode["s-ol"] = void 0;
1390
+ childNode["s-sh"] = void 0;
1391
+ checkSlotRelocate = true;
1392
+ }
1393
+ if (recursive) {
1394
+ putBackInOriginalLocation(childNode, recursive);
1395
+ }
1037
1396
  }
1397
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1038
1398
  };
1039
-
1040
- // src/runtime/client-hydrate.ts
1041
- var initializeClientHydrate = (hostElm, tagName, hostId, hostRef) => {
1042
- const endHydrate = createTime("hydrateClient", tagName);
1043
- const shadowRoot = hostElm.shadowRoot;
1044
- const childRenderNodes = [];
1045
- const slotNodes = [];
1046
- const slottedNodes = [];
1047
- const shadowRootNodes = null;
1048
- const vnode = newVNode(tagName, null);
1049
- vnode.$elm$ = hostElm;
1050
- if (!plt.$orgLocNodes$) {
1051
- initializeDocumentHydrate(doc.body, plt.$orgLocNodes$ = /* @__PURE__ */ new Map());
1052
- }
1053
- hostElm[HYDRATE_ID] = hostId;
1054
- hostElm.removeAttribute(HYDRATE_ID);
1055
- hostRef.$vnode$ = clientHydrate(
1056
- vnode,
1057
- childRenderNodes,
1058
- slotNodes,
1059
- shadowRootNodes,
1060
- hostElm,
1061
- hostElm,
1062
- hostId,
1063
- slottedNodes
1064
- );
1065
- let crIndex = 0;
1066
- const crLength = childRenderNodes.length;
1067
- let childRenderNode;
1068
- for (crIndex; crIndex < crLength; crIndex++) {
1069
- childRenderNode = childRenderNodes[crIndex];
1070
- const orgLocationId = childRenderNode.$hostId$ + "." + childRenderNode.$nodeId$;
1071
- const orgLocationNode = plt.$orgLocNodes$.get(orgLocationId);
1072
- const node = childRenderNode.$elm$;
1073
- if (!shadowRoot) {
1074
- node["s-hn"] = tagName.toUpperCase();
1075
- if (childRenderNode.$tag$ === "slot") {
1076
- node["s-cr"] = hostElm["s-cr"];
1077
- }
1078
- }
1079
- if (orgLocationNode && orgLocationNode.isConnected) {
1080
- if (shadowRoot && orgLocationNode["s-en"] === "") {
1081
- orgLocationNode.parentNode.insertBefore(node, orgLocationNode.nextSibling);
1082
- }
1083
- orgLocationNode.parentNode.removeChild(orgLocationNode);
1084
- if (!shadowRoot) {
1085
- node["s-oo"] = parseInt(childRenderNode.$nodeId$);
1399
+ var addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
1400
+ let containerElm = parentElm["s-cr"] && parentElm["s-cr"].parentNode || parentElm;
1401
+ let childNode;
1402
+ for (; startIdx <= endIdx; ++startIdx) {
1403
+ if (vnodes[startIdx]) {
1404
+ childNode = createElm(null, parentVNode, startIdx);
1405
+ if (childNode) {
1406
+ vnodes[startIdx].$elm$ = childNode;
1407
+ insertBefore(containerElm, childNode, referenceNode(before) );
1086
1408
  }
1087
1409
  }
1088
- plt.$orgLocNodes$.delete(orgLocationId);
1089
1410
  }
1090
- const hosts = [];
1091
- let snIndex = 0;
1092
- const snLen = slottedNodes.length;
1093
- let slotGroup;
1094
- let snGroupIdx;
1095
- let snGroupLen;
1096
- let slottedItem;
1097
- for (snIndex; snIndex < snLen; snIndex++) {
1098
- slotGroup = slottedNodes[snIndex];
1099
- if (!slotGroup || !slotGroup.length) continue;
1100
- snGroupLen = slotGroup.length;
1101
- snGroupIdx = 0;
1102
- for (snGroupIdx; snGroupIdx < snGroupLen; snGroupIdx++) {
1103
- slottedItem = slotGroup[snGroupIdx];
1104
- if (!hosts[slottedItem.hostId]) {
1105
- hosts[slottedItem.hostId] = plt.$orgLocNodes$.get(slottedItem.hostId);
1106
- }
1107
- if (!hosts[slottedItem.hostId]) continue;
1108
- const hostEle = hosts[slottedItem.hostId];
1109
- if (!hostEle.shadowRoot || !shadowRoot) {
1110
- slottedItem.slot["s-cr"] = hostEle["s-cr"];
1111
- if (!slottedItem.slot["s-cr"] && hostEle.shadowRoot) {
1112
- slottedItem.slot["s-cr"] = hostEle;
1113
- } else {
1114
- const hostChildren = hostEle.__childNodes || hostEle.childNodes;
1115
- slottedItem.slot["s-cr"] = hostChildren[0];
1411
+ };
1412
+ var removeVnodes = (vnodes, startIdx, endIdx) => {
1413
+ for (let index = startIdx; index <= endIdx; ++index) {
1414
+ const vnode = vnodes[index];
1415
+ if (vnode) {
1416
+ const elm = vnode.$elm$;
1417
+ nullifyVNodeRefs(vnode);
1418
+ if (elm) {
1419
+ {
1420
+ checkSlotFallbackVisibility = true;
1421
+ if (elm["s-ol"]) {
1422
+ elm["s-ol"].remove();
1423
+ } else {
1424
+ putBackInOriginalLocation(elm, true);
1425
+ }
1116
1426
  }
1117
- addSlotRelocateNode(slottedItem.node, slottedItem.slot, false, slottedItem.node["s-oo"]);
1118
- }
1119
- if (hostEle.shadowRoot && slottedItem.node.parentElement !== hostEle) {
1120
- hostEle.appendChild(slottedItem.node);
1427
+ elm.remove();
1121
1428
  }
1122
1429
  }
1123
1430
  }
1124
- hostRef.$hostElement$ = hostElm;
1125
- endHydrate();
1126
1431
  };
1127
- var clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes, hostElm, node, hostId, slottedNodes = []) => {
1128
- let childNodeType;
1129
- let childIdSplt;
1130
- let childVNode;
1131
- let i2;
1132
- const scopeId2 = hostElm["s-sc"];
1133
- if (node.nodeType === 1 /* ElementNode */) {
1134
- childNodeType = node.getAttribute(HYDRATE_CHILD_ID);
1135
- if (childNodeType) {
1136
- childIdSplt = childNodeType.split(".");
1137
- if (childIdSplt[0] === hostId || childIdSplt[0] === "0") {
1138
- childVNode = createSimpleVNode({
1139
- $flags$: 0,
1140
- $hostId$: childIdSplt[0],
1141
- $nodeId$: childIdSplt[1],
1142
- $depth$: childIdSplt[2],
1143
- $index$: childIdSplt[3],
1144
- $tag$: node.tagName.toLowerCase(),
1145
- $elm$: node,
1146
- // If we don't add the initial classes to the VNode, the first `vdom-render.ts` reconciliation will fail:
1147
- // client side changes before componentDidLoad will be ignored, `set-accessor.ts` will just take the element's initial classes
1148
- $attrs$: { class: node.className }
1149
- });
1150
- childRenderNodes.push(childVNode);
1151
- node.removeAttribute(HYDRATE_CHILD_ID);
1152
- if (!parentVNode.$children$) {
1153
- parentVNode.$children$ = [];
1154
- }
1155
- const slotName = childVNode.$elm$.getAttribute("s-sn");
1156
- if (typeof slotName === "string") {
1157
- if (childVNode.$tag$ === "slot-fb") {
1158
- addSlot(
1159
- slotName,
1160
- childIdSplt[2],
1161
- childVNode,
1162
- node,
1163
- parentVNode,
1164
- childRenderNodes,
1165
- slotNodes,
1166
- shadowRootNodes,
1167
- slottedNodes
1168
- );
1169
- }
1170
- childVNode.$elm$["s-sn"] = slotName;
1171
- childVNode.$elm$.removeAttribute("s-sn");
1172
- }
1173
- if (childVNode.$index$ !== void 0) {
1174
- parentVNode.$children$[childVNode.$index$] = childVNode;
1175
- }
1176
- if (scopeId2) node["s-si"] = scopeId2;
1177
- parentVNode = childVNode;
1178
- if (shadowRootNodes && childVNode.$depth$ === "0") {
1179
- shadowRootNodes[childVNode.$index$] = childVNode.$elm$;
1180
- }
1432
+ var updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {
1433
+ let oldStartIdx = 0;
1434
+ let newStartIdx = 0;
1435
+ let idxInOld = 0;
1436
+ let i2 = 0;
1437
+ let oldEndIdx = oldCh.length - 1;
1438
+ let oldStartVnode = oldCh[0];
1439
+ let oldEndVnode = oldCh[oldEndIdx];
1440
+ let newEndIdx = newCh.length - 1;
1441
+ let newStartVnode = newCh[0];
1442
+ let newEndVnode = newCh[newEndIdx];
1443
+ let node;
1444
+ let elmToMove;
1445
+ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
1446
+ if (oldStartVnode == null) {
1447
+ oldStartVnode = oldCh[++oldStartIdx];
1448
+ } else if (oldEndVnode == null) {
1449
+ oldEndVnode = oldCh[--oldEndIdx];
1450
+ } else if (newStartVnode == null) {
1451
+ newStartVnode = newCh[++newStartIdx];
1452
+ } else if (newEndVnode == null) {
1453
+ newEndVnode = newCh[--newEndIdx];
1454
+ } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {
1455
+ patch(oldStartVnode, newStartVnode, isInitialRender);
1456
+ oldStartVnode = oldCh[++oldStartIdx];
1457
+ newStartVnode = newCh[++newStartIdx];
1458
+ } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {
1459
+ patch(oldEndVnode, newEndVnode, isInitialRender);
1460
+ oldEndVnode = oldCh[--oldEndIdx];
1461
+ newEndVnode = newCh[--newEndIdx];
1462
+ } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {
1463
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1464
+ putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
1181
1465
  }
1182
- }
1183
- if (node.shadowRoot) {
1184
- for (i2 = node.shadowRoot.childNodes.length - 1; i2 >= 0; i2--) {
1185
- clientHydrate(
1186
- parentVNode,
1187
- childRenderNodes,
1188
- slotNodes,
1189
- shadowRootNodes,
1190
- hostElm,
1191
- node.shadowRoot.childNodes[i2],
1192
- hostId,
1193
- slottedNodes
1194
- );
1466
+ patch(oldStartVnode, newEndVnode, isInitialRender);
1467
+ insertBefore(parentElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
1468
+ oldStartVnode = oldCh[++oldStartIdx];
1469
+ newEndVnode = newCh[--newEndIdx];
1470
+ } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {
1471
+ if ((oldStartVnode.$tag$ === "slot" || newEndVnode.$tag$ === "slot")) {
1472
+ putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
1195
1473
  }
1196
- }
1197
- const nonShadowNodes = node.__childNodes || node.childNodes;
1198
- for (i2 = nonShadowNodes.length - 1; i2 >= 0; i2--) {
1199
- clientHydrate(
1200
- parentVNode,
1201
- childRenderNodes,
1202
- slotNodes,
1203
- shadowRootNodes,
1204
- hostElm,
1205
- nonShadowNodes[i2],
1206
- hostId,
1207
- slottedNodes
1208
- );
1209
- }
1210
- } else if (node.nodeType === 8 /* CommentNode */) {
1211
- childIdSplt = node.nodeValue.split(".");
1212
- if (childIdSplt[1] === hostId || childIdSplt[1] === "0") {
1213
- childNodeType = childIdSplt[0];
1214
- childVNode = createSimpleVNode({
1215
- $hostId$: childIdSplt[1],
1216
- $nodeId$: childIdSplt[2],
1217
- $depth$: childIdSplt[3],
1218
- $index$: childIdSplt[4] || "0",
1219
- $elm$: node,
1220
- $attrs$: null,
1221
- $children$: null,
1222
- $key$: null,
1223
- $name$: null,
1224
- $tag$: null,
1225
- $text$: null
1226
- });
1227
- if (childNodeType === TEXT_NODE_ID) {
1228
- childVNode.$elm$ = node.nextSibling;
1229
- if (childVNode.$elm$ && childVNode.$elm$.nodeType === 3 /* TextNode */) {
1230
- childVNode.$text$ = childVNode.$elm$.textContent;
1231
- childRenderNodes.push(childVNode);
1232
- node.remove();
1233
- if (hostId === childVNode.$hostId$) {
1234
- if (!parentVNode.$children$) {
1235
- parentVNode.$children$ = [];
1236
- }
1237
- parentVNode.$children$[childVNode.$index$] = childVNode;
1238
- }
1239
- if (shadowRootNodes && childVNode.$depth$ === "0") {
1240
- shadowRootNodes[childVNode.$index$] = childVNode.$elm$;
1474
+ patch(oldEndVnode, newStartVnode, isInitialRender);
1475
+ insertBefore(parentElm, oldEndVnode.$elm$, oldStartVnode.$elm$);
1476
+ oldEndVnode = oldCh[--oldEndIdx];
1477
+ newStartVnode = newCh[++newStartIdx];
1478
+ } else {
1479
+ idxInOld = -1;
1480
+ {
1481
+ for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {
1482
+ if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {
1483
+ idxInOld = i2;
1484
+ break;
1241
1485
  }
1242
1486
  }
1243
- } else if (childNodeType === COMMENT_NODE_ID) {
1244
- childVNode.$elm$ = node.nextSibling;
1245
- if (childVNode.$elm$ && childVNode.$elm$.nodeType === 8 /* CommentNode */) {
1246
- childRenderNodes.push(childVNode);
1247
- node.remove();
1487
+ }
1488
+ if (idxInOld >= 0) {
1489
+ elmToMove = oldCh[idxInOld];
1490
+ if (elmToMove.$tag$ !== newStartVnode.$tag$) {
1491
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);
1492
+ } else {
1493
+ patch(elmToMove, newStartVnode, isInitialRender);
1494
+ oldCh[idxInOld] = void 0;
1495
+ node = elmToMove.$elm$;
1248
1496
  }
1249
- } else if (childVNode.$hostId$ === hostId) {
1250
- if (childNodeType === SLOT_NODE_ID) {
1251
- childVNode.$tag$ = "slot";
1252
- const slotName = node["s-sn"] = childVNode.$name$ = childIdSplt[5] || "";
1253
- addSlot(
1254
- slotName,
1255
- childIdSplt[2],
1256
- childVNode,
1497
+ newStartVnode = newCh[++newStartIdx];
1498
+ } else {
1499
+ node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);
1500
+ newStartVnode = newCh[++newStartIdx];
1501
+ }
1502
+ if (node) {
1503
+ {
1504
+ insertBefore(
1505
+ referenceNode(oldStartVnode.$elm$).parentNode,
1257
1506
  node,
1258
- parentVNode,
1259
- childRenderNodes,
1260
- slotNodes,
1261
- shadowRootNodes,
1262
- slottedNodes
1507
+ referenceNode(oldStartVnode.$elm$)
1263
1508
  );
1264
- } else if (childNodeType === CONTENT_REF_ID) {
1265
- {
1266
- hostElm["s-cr"] = node;
1267
- node["s-cn"] = true;
1268
- }
1269
1509
  }
1270
1510
  }
1271
1511
  }
1272
- } else if (parentVNode && parentVNode.$tag$ === "style") {
1273
- const vnode = newVNode(null, node.textContent);
1274
- vnode.$elm$ = node;
1275
- vnode.$index$ = "0";
1276
- parentVNode.$children$ = [vnode];
1277
1512
  }
1278
- return parentVNode;
1513
+ if (oldStartIdx > oldEndIdx) {
1514
+ addVnodes(
1515
+ parentElm,
1516
+ newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,
1517
+ newVNode2,
1518
+ newCh,
1519
+ newStartIdx,
1520
+ newEndIdx
1521
+ );
1522
+ } else if (newStartIdx > newEndIdx) {
1523
+ removeVnodes(oldCh, oldStartIdx, oldEndIdx);
1524
+ }
1279
1525
  };
1280
- var initializeDocumentHydrate = (node, orgLocNodes) => {
1281
- if (node.nodeType === 1 /* ElementNode */) {
1282
- const componentId = node[HYDRATE_ID] || node.getAttribute(HYDRATE_ID);
1283
- if (componentId) {
1284
- orgLocNodes.set(componentId, node);
1285
- }
1286
- let i2 = 0;
1287
- if (node.shadowRoot) {
1288
- for (; i2 < node.shadowRoot.childNodes.length; i2++) {
1289
- initializeDocumentHydrate(node.shadowRoot.childNodes[i2], orgLocNodes);
1290
- }
1526
+ var isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {
1527
+ if (leftVNode.$tag$ === rightVNode.$tag$) {
1528
+ if (leftVNode.$tag$ === "slot") {
1529
+ return leftVNode.$name$ === rightVNode.$name$;
1291
1530
  }
1292
- const nonShadowNodes = node.__childNodes || node.childNodes;
1293
- for (i2 = 0; i2 < nonShadowNodes.length; i2++) {
1294
- initializeDocumentHydrate(nonShadowNodes[i2], orgLocNodes);
1531
+ if (!isInitialRender) {
1532
+ return leftVNode.$key$ === rightVNode.$key$;
1295
1533
  }
1296
- } else if (node.nodeType === 8 /* CommentNode */) {
1297
- const childIdSplt = node.nodeValue.split(".");
1298
- if (childIdSplt[0] === ORG_LOCATION_ID) {
1299
- orgLocNodes.set(childIdSplt[1] + "." + childIdSplt[2], node);
1300
- node.nodeValue = "";
1301
- node["s-en"] = childIdSplt[3];
1534
+ if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {
1535
+ leftVNode.$key$ = rightVNode.$key$;
1302
1536
  }
1537
+ return true;
1303
1538
  }
1539
+ return false;
1304
1540
  };
1305
- var createSimpleVNode = (vnode) => {
1306
- const defaultVNode = {
1307
- $flags$: 0,
1308
- $hostId$: null,
1309
- $nodeId$: null,
1310
- $depth$: null,
1311
- $index$: "0",
1312
- $elm$: null,
1313
- $attrs$: null,
1314
- $children$: null,
1315
- $key$: null,
1316
- $name$: null,
1317
- $tag$: null,
1318
- $text$: null
1319
- };
1320
- return { ...defaultVNode, ...vnode };
1321
- };
1322
- function addSlot(slotName, slotId, childVNode, node, parentVNode, childRenderNodes, slotNodes, shadowRootNodes, slottedNodes) {
1323
- node["s-sr"] = true;
1324
- const parentNodeId = (parentVNode == null ? void 0 : parentVNode.$elm$) ? parentVNode.$elm$["s-id"] || parentVNode.$elm$.getAttribute("s-id") : "";
1325
- {
1326
- const slot = childVNode.$elm$;
1327
- const shouldMove = parentNodeId && parentNodeId !== childVNode.$hostId$ && parentVNode.$elm$.shadowRoot;
1328
- addSlottedNodes(slottedNodes, slotId, slotName, node, shouldMove ? parentNodeId : childVNode.$hostId$);
1329
- if (shouldMove) {
1330
- parentVNode.$elm$.insertBefore(slot, parentVNode.$elm$.children[0]);
1541
+ var referenceNode = (node) => node && node["s-ol"] || node;
1542
+ var patch = (oldVNode, newVNode2, isInitialRender = false) => {
1543
+ const elm = newVNode2.$elm$ = oldVNode.$elm$;
1544
+ const oldChildren = oldVNode.$children$;
1545
+ const newChildren = newVNode2.$children$;
1546
+ const tag = newVNode2.$tag$;
1547
+ const text = newVNode2.$text$;
1548
+ let defaultHolder;
1549
+ if (text === null) {
1550
+ {
1551
+ isSvgMode = tag === "svg" ? true : tag === "foreignObject" ? false : isSvgMode;
1331
1552
  }
1332
- childRenderNodes.push(childVNode);
1333
- }
1334
- slotNodes.push(childVNode);
1335
- if (!parentVNode.$children$) {
1336
- parentVNode.$children$ = [];
1337
- }
1338
- parentVNode.$children$[childVNode.$index$] = childVNode;
1339
- }
1340
- var addSlottedNodes = (slottedNodes, slotNodeId, slotName, slotNode, hostId) => {
1341
- let slottedNode = slotNode.nextSibling;
1342
- slottedNodes[slotNodeId] = slottedNodes[slotNodeId] || [];
1343
- while (slottedNode && ((slottedNode["getAttribute"] && slottedNode.getAttribute("slot") || slottedNode["s-sn"]) === slotName || slotName === "" && !slottedNode["s-sn"] && (slottedNode.nodeType === 8 /* CommentNode */ && slottedNode.nodeValue.indexOf(".") !== 1 || slottedNode.nodeType === 3 /* TextNode */))) {
1344
- slottedNode["s-sn"] = slotName;
1345
- slottedNodes[slotNodeId].push({ slot: slotNode, node: slottedNode, hostId });
1346
- slottedNode = slottedNode.nextSibling;
1553
+ {
1554
+ updateElement(oldVNode, newVNode2, isSvgMode, isInitialRender);
1555
+ }
1556
+ if (oldChildren !== null && newChildren !== null) {
1557
+ updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);
1558
+ } else if (newChildren !== null) {
1559
+ if (oldVNode.$text$ !== null) {
1560
+ elm.textContent = "";
1561
+ }
1562
+ addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);
1563
+ } else if (
1564
+ // don't do this on initial render as it can cause non-hydrated content to be removed
1565
+ !isInitialRender && BUILD.updatable && oldChildren !== null
1566
+ ) {
1567
+ removeVnodes(oldChildren, 0, oldChildren.length - 1);
1568
+ }
1569
+ if (isSvgMode && tag === "svg") {
1570
+ isSvgMode = false;
1571
+ }
1572
+ } else if ((defaultHolder = elm["s-cr"])) {
1573
+ defaultHolder.parentNode.textContent = text;
1574
+ } else if (oldVNode.$text$ !== text) {
1575
+ elm.data = text;
1347
1576
  }
1348
1577
  };
1349
- var parsePropertyValue = (propValue, propType) => {
1350
- if (propValue != null && !isComplexType(propValue)) {
1351
- if (propType & 4 /* Boolean */) {
1352
- return propValue === "false" ? false : propValue === "" || !!propValue;
1353
- }
1354
- if (propType & 2 /* Number */) {
1355
- return parseFloat(propValue);
1578
+ var relocateNodes = [];
1579
+ var markSlotContentForRelocation = (elm) => {
1580
+ let node;
1581
+ let hostContentNodes;
1582
+ let j;
1583
+ const children = elm.__childNodes || elm.childNodes;
1584
+ for (const childNode of children) {
1585
+ if (childNode["s-sr"] && (node = childNode["s-cr"]) && node.parentNode) {
1586
+ hostContentNodes = node.parentNode.__childNodes || node.parentNode.childNodes;
1587
+ const slotName = childNode["s-sn"];
1588
+ for (j = hostContentNodes.length - 1; j >= 0; j--) {
1589
+ node = hostContentNodes[j];
1590
+ if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (true)) {
1591
+ if (isNodeLocatedInSlot(node, slotName)) {
1592
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1593
+ checkSlotFallbackVisibility = true;
1594
+ node["s-sn"] = node["s-sn"] || slotName;
1595
+ if (relocateNodeData) {
1596
+ relocateNodeData.$nodeToRelocate$["s-sh"] = childNode["s-hn"];
1597
+ relocateNodeData.$slotRefNode$ = childNode;
1598
+ } else {
1599
+ node["s-sh"] = childNode["s-hn"];
1600
+ relocateNodes.push({
1601
+ $slotRefNode$: childNode,
1602
+ $nodeToRelocate$: node
1603
+ });
1604
+ }
1605
+ if (node["s-sr"]) {
1606
+ relocateNodes.map((relocateNode) => {
1607
+ if (isNodeLocatedInSlot(relocateNode.$nodeToRelocate$, node["s-sn"])) {
1608
+ relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1609
+ if (relocateNodeData && !relocateNode.$slotRefNode$) {
1610
+ relocateNode.$slotRefNode$ = relocateNodeData.$slotRefNode$;
1611
+ }
1612
+ }
1613
+ });
1614
+ }
1615
+ } else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1616
+ relocateNodes.push({
1617
+ $nodeToRelocate$: node
1618
+ });
1619
+ }
1620
+ }
1621
+ }
1356
1622
  }
1357
- if (propType & 1 /* String */) {
1358
- return String(propValue);
1623
+ if (childNode.nodeType === 1 /* ElementNode */) {
1624
+ markSlotContentForRelocation(childNode);
1359
1625
  }
1360
- return propValue;
1361
1626
  }
1362
- return propValue;
1363
1627
  };
1364
- var getElement = (ref) => getHostRef(ref).$hostElement$ ;
1365
-
1366
- // src/runtime/event-emitter.ts
1367
- var createEvent = (ref, name, flags) => {
1368
- const elm = getElement(ref);
1369
- return {
1370
- emit: (detail) => {
1371
- return emitEvent(elm, name, {
1372
- bubbles: !!(flags & 4 /* Bubbles */),
1373
- composed: !!(flags & 2 /* Composed */),
1374
- cancelable: !!(flags & 1 /* Cancellable */),
1375
- detail
1376
- });
1377
- }
1378
- };
1628
+ var nullifyVNodeRefs = (vNode) => {
1629
+ {
1630
+ vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
1631
+ vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
1632
+ }
1379
1633
  };
1380
- var emitEvent = (elm, name, opts) => {
1381
- const ev = plt.ce(name, opts);
1382
- elm.dispatchEvent(ev);
1383
- return ev;
1634
+ var insertBefore = (parent, newNode, reference) => {
1635
+ {
1636
+ return parent == null ? void 0 : parent.insertBefore(newNode, reference);
1637
+ }
1384
1638
  };
1385
- var rootAppliedStyles = /* @__PURE__ */ new WeakMap();
1386
- var registerStyle = (scopeId2, cssText, allowCS) => {
1387
- let style = styles.get(scopeId2);
1388
- if (supportsConstructableStylesheets && allowCS) {
1389
- style = style || new CSSStyleSheet();
1390
- if (typeof style === "string") {
1391
- style = cssText;
1392
- } else {
1393
- style.replaceSync(cssText);
1639
+ var renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1640
+ var _a, _b, _c, _d;
1641
+ const hostElm = hostRef.$hostElement$;
1642
+ const cmpMeta = hostRef.$cmpMeta$;
1643
+ const oldVNode = hostRef.$vnode$ || newVNode(null, null);
1644
+ const isHostElement = isHost(renderFnResults);
1645
+ const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);
1646
+ hostTagName = hostElm.tagName;
1647
+ if (cmpMeta.$attrsToReflect$) {
1648
+ rootVnode.$attrs$ = rootVnode.$attrs$ || {};
1649
+ cmpMeta.$attrsToReflect$.map(
1650
+ ([propName, attribute]) => rootVnode.$attrs$[attribute] = hostElm[propName]
1651
+ );
1652
+ }
1653
+ if (isInitialLoad && rootVnode.$attrs$) {
1654
+ for (const key of Object.keys(rootVnode.$attrs$)) {
1655
+ if (hostElm.hasAttribute(key) && !["key", "ref", "style", "class"].includes(key)) {
1656
+ rootVnode.$attrs$[key] = hostElm[key];
1657
+ }
1394
1658
  }
1395
- } else {
1396
- style = cssText;
1397
1659
  }
1398
- styles.set(scopeId2, style);
1399
- };
1400
- var addStyle = (styleContainerNode, cmpMeta, mode) => {
1401
- var _a;
1402
- const scopeId2 = getScopeId(cmpMeta);
1403
- const style = styles.get(scopeId2);
1404
- styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
1405
- if (style) {
1406
- if (typeof style === "string") {
1407
- styleContainerNode = styleContainerNode.head || styleContainerNode;
1408
- let appliedStyles = rootAppliedStyles.get(styleContainerNode);
1409
- let styleElm;
1410
- if (!appliedStyles) {
1411
- rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());
1660
+ rootVnode.$tag$ = null;
1661
+ rootVnode.$flags$ |= 4 /* isHost */;
1662
+ hostRef.$vnode$ = rootVnode;
1663
+ rootVnode.$elm$ = oldVNode.$elm$ = hostElm;
1664
+ useNativeShadowDom = supportsShadow;
1665
+ {
1666
+ contentRef = hostElm["s-cr"];
1667
+ checkSlotFallbackVisibility = false;
1668
+ }
1669
+ patch(oldVNode, rootVnode, isInitialLoad);
1670
+ {
1671
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1672
+ if (checkSlotRelocate) {
1673
+ markSlotContentForRelocation(rootVnode.$elm$);
1674
+ for (const relocateData of relocateNodes) {
1675
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1676
+ if (!nodeToRelocate["s-ol"] && win.document) {
1677
+ const orgLocationNode = win.document.createTextNode("");
1678
+ orgLocationNode["s-nr"] = nodeToRelocate;
1679
+ insertBefore(nodeToRelocate.parentNode, nodeToRelocate["s-ol"] = orgLocationNode, nodeToRelocate);
1680
+ }
1412
1681
  }
1413
- if (!appliedStyles.has(scopeId2)) {
1414
- if (styleContainerNode.host && (styleElm = styleContainerNode.querySelector(`[${HYDRATED_STYLE_ID}="${scopeId2}"]`))) {
1415
- styleElm.innerHTML = style;
1416
- } else {
1417
- styleElm = doc.createElement("style");
1418
- styleElm.innerHTML = style;
1419
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
1420
- if (nonce != null) {
1421
- styleElm.setAttribute("nonce", nonce);
1422
- }
1423
- if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {
1424
- if (styleContainerNode.nodeName === "HEAD") {
1425
- const preconnectLinks = styleContainerNode.querySelectorAll("link[rel=preconnect]");
1426
- const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector("style");
1427
- styleContainerNode.insertBefore(styleElm, referenceNode2);
1428
- } else if ("host" in styleContainerNode) {
1429
- if (supportsConstructableStylesheets) {
1430
- const stylesheet = new CSSStyleSheet();
1431
- stylesheet.replaceSync(style);
1432
- styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];
1433
- } else {
1434
- const existingStyleContainer = styleContainerNode.querySelector("style");
1435
- if (existingStyleContainer) {
1436
- existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;
1437
- } else {
1438
- styleContainerNode.prepend(styleElm);
1682
+ for (const relocateData of relocateNodes) {
1683
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1684
+ const slotRefNode = relocateData.$slotRefNode$;
1685
+ if (slotRefNode) {
1686
+ const parentNodeRef = slotRefNode.parentNode;
1687
+ let insertBeforeNode = slotRefNode.nextSibling;
1688
+ {
1689
+ let orgLocationNode = (_a = nodeToRelocate["s-ol"]) == null ? void 0 : _a.previousSibling;
1690
+ while (orgLocationNode) {
1691
+ let refNode = (_b = orgLocationNode["s-nr"]) != null ? _b : null;
1692
+ if (refNode && refNode["s-sn"] === nodeToRelocate["s-sn"] && parentNodeRef === (refNode.__parentNode || refNode.parentNode)) {
1693
+ refNode = refNode.nextSibling;
1694
+ while (refNode === nodeToRelocate || (refNode == null ? void 0 : refNode["s-sr"])) {
1695
+ refNode = refNode == null ? void 0 : refNode.nextSibling;
1696
+ }
1697
+ if (!refNode || !refNode["s-nr"]) {
1698
+ insertBeforeNode = refNode;
1699
+ break;
1439
1700
  }
1440
1701
  }
1441
- } else {
1442
- styleContainerNode.append(styleElm);
1702
+ orgLocationNode = orgLocationNode.previousSibling;
1443
1703
  }
1444
1704
  }
1445
- if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */ && styleContainerNode.nodeName !== "HEAD") {
1446
- styleContainerNode.insertBefore(styleElm, null);
1705
+ const parent = nodeToRelocate.__parentNode || nodeToRelocate.parentNode;
1706
+ const nextSibling = nodeToRelocate.__nextSibling || nodeToRelocate.nextSibling;
1707
+ if (!insertBeforeNode && parentNodeRef !== parent || nextSibling !== insertBeforeNode) {
1708
+ if (nodeToRelocate !== insertBeforeNode) {
1709
+ if (!nodeToRelocate["s-hn"] && nodeToRelocate["s-ol"]) {
1710
+ nodeToRelocate["s-hn"] = nodeToRelocate["s-ol"].parentNode.nodeName;
1711
+ }
1712
+ insertBefore(parentNodeRef, nodeToRelocate, insertBeforeNode);
1713
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */ && nodeToRelocate.tagName !== "SLOT-FB") {
1714
+ nodeToRelocate.hidden = (_c = nodeToRelocate["s-ih"]) != null ? _c : false;
1715
+ }
1716
+ }
1717
+ }
1718
+ nodeToRelocate && typeof slotRefNode["s-rf"] === "function" && slotRefNode["s-rf"](slotRefNode);
1719
+ } else {
1720
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1721
+ if (isInitialLoad) {
1722
+ nodeToRelocate["s-ih"] = (_d = nodeToRelocate.hidden) != null ? _d : false;
1723
+ }
1724
+ nodeToRelocate.hidden = true;
1447
1725
  }
1448
- }
1449
- if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {
1450
- styleElm.innerHTML += SLOT_FB_CSS;
1451
- }
1452
- if (appliedStyles) {
1453
- appliedStyles.add(scopeId2);
1454
1726
  }
1455
1727
  }
1456
- } else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
1457
- styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
1458
1728
  }
1729
+ if (checkSlotFallbackVisibility) {
1730
+ updateFallbackSlotVisibility(rootVnode.$elm$);
1731
+ }
1732
+ plt.$flags$ &= -2 /* isTmpDisconnected */;
1733
+ relocateNodes.length = 0;
1459
1734
  }
1460
- return scopeId2;
1461
- };
1462
- var attachStyles = (hostRef) => {
1463
- const cmpMeta = hostRef.$cmpMeta$;
1464
- const elm = hostRef.$hostElement$;
1465
- const endAttachStyles = createTime("attachStyles", cmpMeta.$tagName$);
1466
- addStyle(
1467
- elm.getRootNode(),
1468
- cmpMeta);
1469
- endAttachStyles();
1735
+ contentRef = void 0;
1470
1736
  };
1471
- var getScopeId = (cmp, mode) => "sc-" + (cmp.$tagName$);
1472
1737
 
1473
1738
  // src/runtime/update-component.ts
1474
1739
  var attachToAncestor = (hostRef, ancestorComponent) => {
1475
1740
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent["s-p"]) {
1476
- ancestorComponent["s-p"].push(new Promise((r) => hostRef.$onRenderResolve$ = r));
1741
+ const index = ancestorComponent["s-p"].push(
1742
+ new Promise(
1743
+ (r) => hostRef.$onRenderResolve$ = () => {
1744
+ ancestorComponent["s-p"].splice(index - 1, 1);
1745
+ r();
1746
+ }
1747
+ )
1748
+ );
1477
1749
  }
1478
1750
  };
1479
1751
  var scheduleUpdate = (hostRef, isInitialLoad) => {
@@ -1502,17 +1774,15 @@ var dispatchHooks = (hostRef, isInitialLoad) => {
1502
1774
  {
1503
1775
  hostRef.$flags$ |= 256 /* isListenReady */;
1504
1776
  if (hostRef.$queuedListeners$) {
1505
- hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));
1777
+ hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event, elm));
1506
1778
  hostRef.$queuedListeners$ = void 0;
1507
1779
  }
1508
1780
  }
1509
- {
1510
- maybePromise = safeCall(instance, "componentWillLoad");
1511
- }
1512
- }
1513
- {
1514
- maybePromise = enqueue(maybePromise, () => safeCall(instance, "componentWillRender"));
1781
+ maybePromise = safeCall(instance, "componentWillLoad", void 0, elm);
1782
+ } else {
1783
+ maybePromise = safeCall(instance, "componentWillUpdate", void 0, elm);
1515
1784
  }
1785
+ maybePromise = enqueue(maybePromise, () => safeCall(instance, "componentWillRender", void 0, elm));
1516
1786
  endSchedule();
1517
1787
  return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
1518
1788
  };
@@ -1557,7 +1827,7 @@ var callRender = (hostRef, instance, elm, isInitialLoad) => {
1557
1827
  renderingRef = instance;
1558
1828
  instance = instance.render && instance.render();
1559
1829
  {
1560
- hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
1830
+ hostRef.$flags$ &= -17 /* isQueuedForUpdate */;
1561
1831
  }
1562
1832
  {
1563
1833
  hostRef.$flags$ |= 2 /* hasRendered */;
@@ -1582,17 +1852,13 @@ var postUpdateComponent = (hostRef) => {
1582
1852
  const endPostUpdate = createTime("postUpdate", tagName);
1583
1853
  const instance = hostRef.$lazyInstance$ ;
1584
1854
  const ancestorComponent = hostRef.$ancestorComponent$;
1585
- {
1586
- safeCall(instance, "componentDidRender");
1587
- }
1855
+ safeCall(instance, "componentDidRender", void 0, elm);
1588
1856
  if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
1589
1857
  hostRef.$flags$ |= 64 /* hasLoadedComponent */;
1590
1858
  {
1591
1859
  addHydratedFlag(elm);
1592
1860
  }
1593
- {
1594
- safeCall(instance, "componentDidLoad");
1595
- }
1861
+ safeCall(instance, "componentDidLoad", void 0, elm);
1596
1862
  endPostUpdate();
1597
1863
  {
1598
1864
  hostRef.$onReadyResolve$(elm);
@@ -1601,6 +1867,7 @@ var postUpdateComponent = (hostRef) => {
1601
1867
  }
1602
1868
  }
1603
1869
  } else {
1870
+ safeCall(instance, "componentDidUpdate", void 0, elm);
1604
1871
  endPostUpdate();
1605
1872
  }
1606
1873
  {
@@ -1614,7 +1881,7 @@ var postUpdateComponent = (hostRef) => {
1614
1881
  if (hostRef.$flags$ & 512 /* needsRerender */) {
1615
1882
  nextTick(() => scheduleUpdate(hostRef, false));
1616
1883
  }
1617
- hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);
1884
+ hostRef.$flags$ &= -517;
1618
1885
  }
1619
1886
  };
1620
1887
  var forceUpdate = (ref) => {
@@ -1628,17 +1895,14 @@ var forceUpdate = (ref) => {
1628
1895
  }
1629
1896
  };
1630
1897
  var appDidLoad = (who) => {
1631
- {
1632
- addHydratedFlag(doc.documentElement);
1633
- }
1634
1898
  nextTick(() => emitEvent(win, "appload", { detail: { namespace: NAMESPACE } }));
1635
1899
  };
1636
- var safeCall = (instance, method, arg) => {
1900
+ var safeCall = (instance, method, arg, elm) => {
1637
1901
  if (instance && instance[method]) {
1638
1902
  try {
1639
1903
  return instance[method](arg);
1640
1904
  } catch (e) {
1641
- consoleError(e);
1905
+ consoleError(e, elm);
1642
1906
  }
1643
1907
  }
1644
1908
  return void 0;
@@ -1654,7 +1918,7 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1654
1918
  const hostRef = getHostRef(ref);
1655
1919
  if (!hostRef) {
1656
1920
  throw new Error(
1657
- `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/ionic-team/stencil/issues/5457).`
1921
+ `Couldn't find host element for "${cmpMeta.$tagName$}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`
1658
1922
  );
1659
1923
  }
1660
1924
  const elm = hostRef.$hostElement$ ;
@@ -1680,6 +1944,11 @@ var setValue = (ref, propName, newVal, cmpMeta) => {
1680
1944
  }
1681
1945
  }
1682
1946
  if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1947
+ if (instance.componentShouldUpdate) {
1948
+ if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {
1949
+ return;
1950
+ }
1951
+ }
1683
1952
  scheduleUpdate(hostRef, false);
1684
1953
  }
1685
1954
  }
@@ -1697,62 +1966,69 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1697
1966
  const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
1698
1967
  members.map(([memberName, [memberFlags]]) => {
1699
1968
  if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {
1700
- if ((memberFlags & 2048 /* Getter */) === 0) {
1969
+ const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};
1970
+ if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;
1971
+ if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;
1972
+ if (flags & 1 /* isElementConstructor */ || !origGetter) {
1701
1973
  Object.defineProperty(prototype, memberName, {
1702
1974
  get() {
1703
- return getValue(this, memberName);
1704
- },
1705
- set(newValue) {
1706
- setValue(this, memberName, newValue, cmpMeta);
1707
- },
1708
- configurable: true,
1709
- enumerable: true
1710
- });
1711
- } else if (flags & 1 /* isElementConstructor */ && memberFlags & 2048 /* Getter */) {
1712
- {
1713
- Object.defineProperty(prototype, memberName, {
1714
- get() {
1975
+ {
1976
+ if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {
1977
+ return getValue(this, memberName);
1978
+ }
1715
1979
  const ref = getHostRef(this);
1716
1980
  const instance = ref ? ref.$lazyInstance$ : prototype;
1717
1981
  if (!instance) return;
1718
1982
  return instance[memberName];
1719
- },
1720
- configurable: true,
1721
- enumerable: true
1722
- });
1723
- }
1724
- if (memberFlags & 4096 /* Setter */) {
1725
- const origSetter = Object.getOwnPropertyDescriptor(prototype, memberName).set;
1726
- Object.defineProperty(prototype, memberName, {
1727
- set(newValue) {
1728
- const ref = getHostRef(this);
1729
- if (origSetter) {
1730
- const currentValue = ref.$hostElement$[memberName];
1731
- if (!ref.$instanceValues$.get(memberName) && currentValue) {
1732
- ref.$instanceValues$.set(memberName, currentValue);
1733
- }
1734
- origSetter.apply(this, [parsePropertyValue(newValue, cmpMeta.$members$[memberName][0])]);
1735
- setValue(this, memberName, ref.$hostElement$[memberName], cmpMeta);
1736
- return;
1983
+ }
1984
+ },
1985
+ configurable: true,
1986
+ enumerable: true
1987
+ });
1988
+ }
1989
+ Object.defineProperty(prototype, memberName, {
1990
+ set(newValue) {
1991
+ const ref = getHostRef(this);
1992
+ if (origSetter) {
1993
+ const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
1994
+ if (typeof currentValue === "undefined" && ref.$instanceValues$.get(memberName)) {
1995
+ newValue = ref.$instanceValues$.get(memberName);
1996
+ } else if (!ref.$instanceValues$.get(memberName) && currentValue) {
1997
+ ref.$instanceValues$.set(memberName, currentValue);
1998
+ }
1999
+ origSetter.apply(this, [parsePropertyValue(newValue, memberFlags)]);
2000
+ newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];
2001
+ setValue(this, memberName, newValue, cmpMeta);
2002
+ return;
2003
+ }
2004
+ {
2005
+ if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {
2006
+ setValue(this, memberName, newValue, cmpMeta);
2007
+ if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {
2008
+ ref.$onReadyPromise$.then(() => {
2009
+ if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {
2010
+ ref.$lazyInstance$[memberName] = newValue;
2011
+ }
2012
+ });
1737
2013
  }
1738
- if (!ref) return;
1739
- const setterSetVal = () => {
1740
- const currentValue = ref.$lazyInstance$[memberName];
1741
- if (!ref.$instanceValues$.get(memberName) && currentValue) {
1742
- ref.$instanceValues$.set(memberName, currentValue);
1743
- }
1744
- ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, cmpMeta.$members$[memberName][0]);
1745
- setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
1746
- };
1747
- if (ref.$lazyInstance$) {
1748
- setterSetVal();
1749
- } else {
1750
- ref.$onReadyPromise$.then(() => setterSetVal());
2014
+ return;
2015
+ }
2016
+ const setterSetVal = () => {
2017
+ const currentValue = ref.$lazyInstance$[memberName];
2018
+ if (!ref.$instanceValues$.get(memberName) && currentValue) {
2019
+ ref.$instanceValues$.set(memberName, currentValue);
1751
2020
  }
2021
+ ref.$lazyInstance$[memberName] = parsePropertyValue(newValue, memberFlags);
2022
+ setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);
2023
+ };
2024
+ if (ref.$lazyInstance$) {
2025
+ setterSetVal();
2026
+ } else {
2027
+ ref.$onReadyPromise$.then(() => setterSetVal());
1752
2028
  }
1753
- });
2029
+ }
1754
2030
  }
1755
- }
2031
+ });
1756
2032
  } else if (flags & 1 /* isElementConstructor */ && memberFlags & 64 /* Method */) {
1757
2033
  Object.defineProperty(prototype, memberName, {
1758
2034
  value(...args) {
@@ -1772,7 +2048,7 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1772
2048
  plt.jmp(() => {
1773
2049
  var _a2;
1774
2050
  const propName = attrNameToPropName.get(attrName);
1775
- if (this.hasOwnProperty(propName)) {
2051
+ if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {
1776
2052
  newValue = this[propName];
1777
2053
  delete this[propName];
1778
2054
  } else if (prototype.hasOwnProperty(propName) && typeof this[propName] === "number" && // cast type to number to avoid TS compiler issues
@@ -1793,8 +2069,9 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
1793
2069
  return;
1794
2070
  }
1795
2071
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
1796
- if (!propDesc.get || !!propDesc.set) {
1797
- this[propName] = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
2072
+ newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
2073
+ if (newValue !== this[propName] && (!propDesc.get || !!propDesc.set)) {
2074
+ this[propName] = newValue;
1798
2075
  }
1799
2076
  });
1800
2077
  };
@@ -1824,7 +2101,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1824
2101
  hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1825
2102
  const bundleId = cmpMeta.$lazyBundleId$;
1826
2103
  if (bundleId) {
1827
- const CstrImport = loadModule(cmpMeta);
2104
+ const CstrImport = loadModule(cmpMeta, hostRef);
1828
2105
  if (CstrImport && "then" in CstrImport) {
1829
2106
  const endLoad = uniqueTime();
1830
2107
  Cstr = await CstrImport;
@@ -1849,16 +2126,16 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1849
2126
  try {
1850
2127
  new Cstr(hostRef);
1851
2128
  } catch (e) {
1852
- consoleError(e);
2129
+ consoleError(e, elm);
1853
2130
  }
1854
2131
  {
1855
- hostRef.$flags$ &= ~8 /* isConstructingInstance */;
2132
+ hostRef.$flags$ &= -9 /* isConstructingInstance */;
1856
2133
  }
1857
2134
  {
1858
2135
  hostRef.$flags$ |= 128 /* isWatchReady */;
1859
2136
  }
1860
2137
  endNewInstance();
1861
- fireConnectedCallback(hostRef.$lazyInstance$);
2138
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1862
2139
  } else {
1863
2140
  Cstr = elm.constructor;
1864
2141
  const cmpTag = elm.localName;
@@ -1885,9 +2162,9 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1885
2162
  schedule();
1886
2163
  }
1887
2164
  };
1888
- var fireConnectedCallback = (instance) => {
2165
+ var fireConnectedCallback = (instance, elm) => {
1889
2166
  {
1890
- safeCall(instance, "connectedCallback");
2167
+ safeCall(instance, "connectedCallback", void 0, elm);
1891
2168
  }
1892
2169
  };
1893
2170
 
@@ -1936,24 +2213,27 @@ var connectedCallback = (elm) => {
1936
2213
  } else {
1937
2214
  addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
1938
2215
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1939
- fireConnectedCallback(hostRef.$lazyInstance$);
2216
+ fireConnectedCallback(hostRef.$lazyInstance$, elm);
1940
2217
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1941
- hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$));
2218
+ hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
1942
2219
  }
1943
2220
  }
1944
2221
  endConnected();
1945
2222
  }
1946
2223
  };
1947
2224
  var setContentReference = (elm) => {
1948
- const contentRefElm = elm["s-cr"] = doc.createComment(
2225
+ if (!win.document) {
2226
+ return;
2227
+ }
2228
+ const contentRefElm = elm["s-cr"] = win.document.createComment(
1949
2229
  ""
1950
2230
  );
1951
2231
  contentRefElm["s-cn"] = true;
1952
2232
  insertBefore(elm, contentRefElm, elm.firstChild);
1953
2233
  };
1954
- var disconnectInstance = (instance) => {
2234
+ var disconnectInstance = (instance, elm) => {
1955
2235
  {
1956
- safeCall(instance, "disconnectedCallback");
2236
+ safeCall(instance, "disconnectedCallback", void 0, elm || instance);
1957
2237
  }
1958
2238
  };
1959
2239
  var disconnectedCallback = async (elm) => {
@@ -1966,28 +2246,38 @@ var disconnectedCallback = async (elm) => {
1966
2246
  }
1967
2247
  }
1968
2248
  if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
1969
- disconnectInstance(hostRef.$lazyInstance$);
2249
+ disconnectInstance(hostRef.$lazyInstance$, elm);
1970
2250
  } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
1971
- hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$));
2251
+ hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));
1972
2252
  }
1973
2253
  }
2254
+ if (rootAppliedStyles.has(elm)) {
2255
+ rootAppliedStyles.delete(elm);
2256
+ }
2257
+ if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {
2258
+ rootAppliedStyles.delete(elm.shadowRoot);
2259
+ }
1974
2260
  };
1975
2261
 
1976
2262
  // src/runtime/bootstrap-lazy.ts
1977
2263
  var bootstrapLazy = (lazyBundles, options = {}) => {
1978
2264
  var _a;
2265
+ if (!win.document) {
2266
+ console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");
2267
+ return;
2268
+ }
1979
2269
  const endBootstrap = createTime();
1980
2270
  const cmpTags = [];
1981
2271
  const exclude = options.exclude || [];
1982
2272
  const customElements2 = win.customElements;
1983
- const head = doc.head;
2273
+ const head = win.document.head;
1984
2274
  const metaCharset = /* @__PURE__ */ head.querySelector("meta[charset]");
1985
- const dataStyles = /* @__PURE__ */ doc.createElement("style");
2275
+ const dataStyles = /* @__PURE__ */ win.document.createElement("style");
1986
2276
  const deferredConnectedCallbacks = [];
1987
2277
  let appLoadFallback;
1988
2278
  let isBootstrapping = true;
1989
2279
  Object.assign(plt, options);
1990
- plt.$resourcesUrl$ = new URL(options.resourcesUrl || "./", doc.baseURI).href;
2280
+ plt.$resourcesUrl$ = new URL(options.resourcesUrl || "./", win.document.baseURI).href;
1991
2281
  {
1992
2282
  plt.$flags$ |= 2 /* appLoaded */;
1993
2283
  }
@@ -2043,6 +2333,17 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2043
2333
  }
2044
2334
  disconnectedCallback() {
2045
2335
  plt.jmp(() => disconnectedCallback(this));
2336
+ plt.raf(() => {
2337
+ var _a3;
2338
+ const hostRef = getHostRef(this);
2339
+ const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);
2340
+ if (i2 > -1) {
2341
+ deferredConnectedCallbacks.splice(i2, 1);
2342
+ }
2343
+ if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {
2344
+ delete hostRef.$vnode$.$elm$;
2345
+ }
2346
+ });
2046
2347
  }
2047
2348
  componentOnReady() {
2048
2349
  return getHostRef(this).$onReadyPromise$;
@@ -2064,7 +2365,7 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2064
2365
  }
2065
2366
  if (dataStyles.innerHTML.length) {
2066
2367
  dataStyles.setAttribute("data-styles", "");
2067
- const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(doc);
2368
+ const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);
2068
2369
  if (nonce != null) {
2069
2370
  dataStyles.setAttribute("nonce", nonce);
2070
2371
  }
@@ -2082,9 +2383,9 @@ var bootstrapLazy = (lazyBundles, options = {}) => {
2082
2383
  endBootstrap();
2083
2384
  };
2084
2385
  var addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
2085
- if (listeners) {
2386
+ if (listeners && win.document) {
2086
2387
  listeners.map(([flags, name, method]) => {
2087
- const target = getHostListenerTarget(elm, flags) ;
2388
+ const target = getHostListenerTarget(win.document, elm, flags) ;
2088
2389
  const handler = hostListenerProxy(hostRef, method);
2089
2390
  const opts = hostListenerOpts(flags);
2090
2391
  plt.ael(target, name, handler, opts);
@@ -2103,11 +2404,13 @@ var hostListenerProxy = (hostRef, methodName) => (ev) => {
2103
2404
  }
2104
2405
  }
2105
2406
  } catch (e) {
2106
- consoleError(e);
2407
+ consoleError(e, hostRef.$hostElement$);
2107
2408
  }
2108
2409
  };
2109
- var getHostListenerTarget = (elm, flags) => {
2110
- if (flags & 4 /* TargetDocument */) return doc;
2410
+ var getHostListenerTarget = (doc, elm, flags) => {
2411
+ if (flags & 4 /* TargetDocument */) {
2412
+ return doc;
2413
+ }
2111
2414
  return elm;
2112
2415
  };
2113
2416
  var hostListenerOpts = (flags) => supportsListenerOptions ? {
@@ -2118,6 +2421,7 @@ var hostListenerOpts = (flags) => supportsListenerOptions ? {
2118
2421
  // src/runtime/nonce.ts
2119
2422
  var setNonce = (nonce) => plt.$nonce$ = nonce;
2120
2423
 
2121
- export { Build as B, Host as H, getElement as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, getRenderingRef as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2424
+ export { Build as B, Host as H, getRenderingRef as a, bootstrapLazy as b, createEvent as c, forceUpdate as f, getElement as g, h, promiseResolve as p, registerInstance as r, setNonce as s };
2425
+ //# sourceMappingURL=index-CHLNwl4l.js.map
2122
2426
 
2123
- //# sourceMappingURL=index-f6fae858.js.map
2427
+ //# sourceMappingURL=index-CHLNwl4l.js.map