@revolist/revogrid 3.6.13 → 3.6.14

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 (451) hide show
  1. package/custom-element/_baseIteratee.js +1 -3
  2. package/custom-element/columnService.js +4 -6
  3. package/custom-element/consts.js +1 -3
  4. package/custom-element/data.store.js +33 -55
  5. package/custom-element/debounce.js +1 -3
  6. package/custom-element/dimension.helpers.js +1 -3
  7. package/custom-element/each.js +0 -2
  8. package/custom-element/filter.button.js +0 -2
  9. package/custom-element/identity.js +0 -2
  10. package/custom-element/index.d.ts +16 -9
  11. package/custom-element/index.js +15 -4
  12. package/custom-element/isSymbol.js +1 -3
  13. package/custom-element/keys.js +1 -3
  14. package/custom-element/localScrollService.js +0 -2
  15. package/custom-element/resize-observer.js +0 -2
  16. package/custom-element/revo-grid.js +154 -29
  17. package/custom-element/revogr-clipboard.js +4 -4
  18. package/custom-element/revogr-data.js +0 -2
  19. package/custom-element/revogr-data2.js +3 -14
  20. package/custom-element/revogr-edit.js +0 -2
  21. package/custom-element/revogr-edit2.js +3 -7
  22. package/custom-element/revogr-filter-panel.js +6 -10
  23. package/custom-element/revogr-focus.js +0 -2
  24. package/custom-element/revogr-focus2.js +2 -8
  25. package/custom-element/revogr-header.js +0 -2
  26. package/custom-element/revogr-header2.js +3 -11
  27. package/custom-element/revogr-order-editor.js +0 -2
  28. package/custom-element/revogr-order-editor2.js +3 -8
  29. package/custom-element/revogr-overlay-selection.js +0 -2
  30. package/custom-element/revogr-overlay-selection2.js +3 -15
  31. package/custom-element/revogr-row-headers.js +0 -2
  32. package/custom-element/revogr-row-headers2.js +2 -9
  33. package/custom-element/revogr-scroll-virtual.js +0 -2
  34. package/custom-element/revogr-scroll-virtual2.js +2 -5
  35. package/custom-element/revogr-temp-range.js +0 -2
  36. package/custom-element/revogr-temp-range2.js +4 -8
  37. package/custom-element/revogr-viewport-scroll.js +0 -2
  38. package/custom-element/revogr-viewport-scroll2.js +11 -6
  39. package/custom-element/selection.utils.js +0 -2
  40. package/custom-element/toInteger.js +0 -2
  41. package/custom-element/toNumber.js +1 -3
  42. package/custom-element/utils.js +0 -2
  43. package/dist/cjs/css-shim-9f5bc84d.js +9 -0
  44. package/dist/cjs/{debounce-a0628875.js → debounce-6cea2774.js} +1 -3
  45. package/dist/cjs/dom-fcb646f0.js +78 -0
  46. package/dist/cjs/{index-c209f988.js → index-cb904e00.js} +315 -667
  47. package/dist/cjs/index.cjs.js +0 -2
  48. package/dist/cjs/loader.cjs.js +25 -5
  49. package/dist/cjs/{resize-observer-cc749e66.js → resize-observer-bf327d6a.js} +0 -2
  50. package/dist/cjs/revo-grid.cjs.js +59 -8
  51. package/dist/cjs/revo-grid_11.cjs.entry.js +144 -143
  52. package/dist/cjs/revogr-clipboard.cjs.entry.js +3 -4
  53. package/dist/cjs/revogr-filter-panel.cjs.entry.js +6 -11
  54. package/dist/collection/collection-manifest.json +16 -16
  55. package/dist/collection/components/button/button.js +1 -2
  56. package/dist/collection/components/clipboard/revogr-clipboard.js +80 -86
  57. package/dist/collection/components/data/cellRenderer.js +5 -5
  58. package/dist/collection/components/data/columnService.js +8 -9
  59. package/dist/collection/components/data/revogr-data.js +226 -258
  60. package/dist/collection/components/data/rowRenderer.js +1 -2
  61. package/dist/collection/components/header/headerCellRenderer.js +7 -6
  62. package/dist/collection/components/header/headerRenderer.js +8 -7
  63. package/dist/collection/components/header/revogr-header.js +233 -259
  64. package/dist/collection/components/order/orderRenderer.js +6 -3
  65. package/dist/collection/components/order/revogr-order-editor.js +252 -279
  66. package/dist/collection/components/order/rowOrderService.js +1 -2
  67. package/dist/collection/components/overlay/autofill.service.js +7 -8
  68. package/dist/collection/components/overlay/clipboard.service.js +3 -4
  69. package/dist/collection/components/overlay/editors/edit.utils.js +1 -2
  70. package/dist/collection/components/overlay/editors/text.js +3 -4
  71. package/dist/collection/components/overlay/keyboard.service.js +5 -6
  72. package/dist/collection/components/overlay/revogr-edit.js +96 -112
  73. package/dist/collection/components/overlay/revogr-overlay-selection.js +476 -520
  74. package/dist/collection/components/overlay/selection.utils.js +1 -2
  75. package/dist/collection/components/revo-grid/revo-grid-style.css +13 -7
  76. package/dist/collection/components/revo-grid/revo-grid.js +1638 -1668
  77. package/dist/collection/components/revo-grid/viewport.helpers.js +0 -1
  78. package/dist/collection/components/revo-grid/viewport.interfaces.js +3 -1
  79. package/dist/collection/components/revo-grid/viewport.js +7 -4
  80. package/dist/collection/components/revo-grid/viewport.resize.service.js +2 -3
  81. package/dist/collection/components/revo-grid/viewport.scrolling.service.js +0 -1
  82. package/dist/collection/components/revo-grid/viewport.section.js +7 -5
  83. package/dist/collection/components/revo-grid/viewport.service.js +6 -7
  84. package/dist/collection/components/rowHeaders/revogr-row-headers.js +147 -161
  85. package/dist/collection/components/rowHeaders/row-header-render.js +0 -1
  86. package/dist/collection/components/scroll/revogr-viewport-scroll-style.css +4 -2
  87. package/dist/collection/components/scroll/revogr-viewport-scroll.js +168 -172
  88. package/dist/collection/components/scrollable/revogr-scroll-virtual.js +137 -159
  89. package/dist/collection/components/selection-focus/revogr-focus.js +128 -153
  90. package/dist/collection/components/selection-temp-range/revogr-temp-range-style.css +1 -1
  91. package/dist/collection/components/selection-temp-range/revogr-temp-range.js +77 -92
  92. package/dist/collection/global/global.js +2 -3
  93. package/dist/collection/index.js +0 -1
  94. package/dist/collection/plugins/autoSizeColumn.js +6 -7
  95. package/dist/collection/plugins/basePlugin.js +0 -1
  96. package/dist/collection/plugins/dispatcher.js +0 -1
  97. package/dist/collection/plugins/export/csv.js +1 -2
  98. package/dist/collection/plugins/export/export.plugin.js +5 -6
  99. package/dist/collection/plugins/export/types.js +3 -1
  100. package/dist/collection/plugins/filter/conditions/equal.js +0 -1
  101. package/dist/collection/plugins/filter/conditions/number/greaterThan.js +0 -1
  102. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js +2 -3
  103. package/dist/collection/plugins/filter/conditions/number/lessThan.js +0 -1
  104. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js +2 -3
  105. package/dist/collection/plugins/filter/conditions/set.js +0 -1
  106. package/dist/collection/plugins/filter/conditions/string/beginswith.js +0 -1
  107. package/dist/collection/plugins/filter/conditions/string/contains.js +0 -1
  108. package/dist/collection/plugins/filter/filter.button.js +12 -7
  109. package/dist/collection/plugins/filter/filter.plugin.js +4 -5
  110. package/dist/collection/plugins/filter/filter.pop.js +238 -254
  111. package/dist/collection/plugins/filter/filter.service.js +8 -9
  112. package/dist/collection/plugins/filter/filter.style.css +3 -2
  113. package/dist/collection/plugins/filter/filter.types.js +3 -1
  114. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js +5 -6
  115. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js +3 -4
  116. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js +3 -4
  117. package/dist/collection/plugins/groupingRow/grouping.const.js +1 -2
  118. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js +2 -3
  119. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js +13 -14
  120. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js +10 -6
  121. package/dist/collection/plugins/groupingRow/grouping.row.types.js +3 -1
  122. package/dist/collection/plugins/groupingRow/grouping.service.js +1 -2
  123. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js +1 -2
  124. package/dist/collection/plugins/moveColumn/columnDragPlugin.js +7 -8
  125. package/dist/collection/plugins/moveColumn/columnOrderHandler.js +1 -2
  126. package/dist/collection/plugins/sorting/sorting.plugin.js +7 -8
  127. package/dist/collection/plugins/sorting/sorting.sign.js +1 -2
  128. package/dist/collection/plugins/stretchPlugin.js +3 -4
  129. package/dist/collection/plugins/trimmed/trimmed.plugin.js +0 -1
  130. package/dist/collection/services/cell.helpers.js +1 -2
  131. package/dist/collection/services/column.data.provider.js +13 -14
  132. package/dist/collection/services/data.provider.js +3 -4
  133. package/dist/collection/services/dimension.provider.js +4 -5
  134. package/dist/collection/services/localScrollService.js +1 -2
  135. package/dist/collection/services/resizable.directive.js +4 -3
  136. package/dist/collection/services/selection.store.connector.js +2 -3
  137. package/dist/collection/services/viewport.provider.js +3 -4
  138. package/dist/collection/store/dataSource/data.proxy.js +0 -1
  139. package/dist/collection/store/dataSource/data.store.js +9 -10
  140. package/dist/collection/store/dimension/dimension.helpers.js +4 -5
  141. package/dist/collection/store/dimension/dimension.store.js +7 -9
  142. package/dist/collection/store/selection/selection.helpers.js +1 -2
  143. package/dist/collection/store/selection/selection.store.js +3 -4
  144. package/dist/collection/store/selection/selection.store.service.js +1 -2
  145. package/dist/collection/store/storeTypes.js +0 -1
  146. package/dist/collection/store/viewPort/viewport.helpers.js +1 -2
  147. package/dist/collection/store/viewPort/viewport.store.js +3 -4
  148. package/dist/collection/themeManager/theme.compact.js +0 -1
  149. package/dist/collection/themeManager/theme.default.js +0 -1
  150. package/dist/collection/themeManager/theme.material.js +0 -1
  151. package/dist/collection/themeManager/themeService.js +8 -9
  152. package/dist/collection/utils/closestPolifill.js +0 -1
  153. package/dist/collection/utils/consts.js +0 -1
  154. package/dist/collection/utils/generateAlphabetHeader.js +0 -1
  155. package/dist/collection/utils/keyCodes.js +0 -1
  156. package/dist/collection/utils/keyCodes.utils.js +3 -4
  157. package/dist/collection/utils/platform.js +0 -1
  158. package/dist/collection/utils/resizeObserver.js +0 -1
  159. package/dist/collection/utils/store.utils.js +0 -1
  160. package/dist/collection/utils/utils.js +0 -1
  161. package/dist/esm/css-shim-e1e1ea5e.js +7 -0
  162. package/dist/esm/{debounce-cb7aac48.js → debounce-e4e6dd45.js} +1 -3
  163. package/dist/esm/dom-21bd1807.js +76 -0
  164. package/dist/esm/{index-f21f8a13.js → index-6f753b3c.js} +311 -667
  165. package/dist/esm/index.js +0 -2
  166. package/dist/esm/loader.js +25 -5
  167. package/dist/esm/polyfills/css-shim.js +1 -0
  168. package/dist/esm/{resize-observer-4f34a839.js → resize-observer-00c48d78.js} +0 -2
  169. package/dist/esm/revo-grid.js +60 -6
  170. package/dist/esm/revo-grid_11.entry.js +144 -143
  171. package/dist/esm/revogr-clipboard.entry.js +3 -4
  172. package/dist/esm/revogr-filter-panel.entry.js +6 -11
  173. package/dist/esm-es5/css-shim-e1e1ea5e.js +4 -0
  174. package/dist/esm-es5/{debounce-cb7aac48.js → debounce-e4e6dd45.js} +1 -2
  175. package/dist/esm-es5/dom-21bd1807.js +24 -0
  176. package/dist/esm-es5/index-6f753b3c.js +4 -0
  177. package/dist/esm-es5/index.js +0 -1
  178. package/dist/esm-es5/loader.js +1 -2
  179. package/dist/esm-es5/{resize-observer-4f34a839.js → resize-observer-00c48d78.js} +1 -2
  180. package/dist/esm-es5/revo-grid.js +1 -2
  181. package/dist/esm-es5/revo-grid_11.entry.js +2 -3
  182. package/dist/esm-es5/revogr-clipboard.entry.js +2 -3
  183. package/dist/esm-es5/revogr-filter-panel.entry.js +2 -3
  184. package/dist/revo-grid/css-shim-bcf89cc0.system.js +4 -0
  185. package/dist/revo-grid/css-shim-e1e1ea5e.js +4 -0
  186. package/dist/revo-grid/{debounce-3aba7c4d.system.js → debounce-5a33c710.system.js} +1 -2
  187. package/dist/revo-grid/debounce-726bdadb.js +4 -0
  188. package/dist/revo-grid/dom-21bd1807.js +22 -0
  189. package/dist/revo-grid/dom-726246e2.system.js +24 -0
  190. package/dist/revo-grid/index-f14b41a0.system.js +5 -0
  191. package/dist/revo-grid/index-f30d1de1.js +5 -0
  192. package/dist/revo-grid/index.esm.js +0 -2
  193. package/dist/revo-grid/index.system.js +1 -2
  194. package/dist/revo-grid/resize-observer-00c48d78.js +4 -0
  195. package/dist/revo-grid/{resize-observer-2a36c9e4.system.js → resize-observer-8af0bc0e.system.js} +1 -2
  196. package/dist/revo-grid/revo-grid.esm.js +1 -2
  197. package/dist/revo-grid/revo-grid.js +7 -1
  198. package/dist/revo-grid/revo-grid.system.js +1 -2
  199. package/dist/revo-grid/revo-grid_11.entry.js +1 -2
  200. package/dist/revo-grid/revo-grid_11.system.entry.js +2 -3
  201. package/dist/revo-grid/revogr-clipboard.entry.js +1 -2
  202. package/dist/revo-grid/revogr-clipboard.system.entry.js +2 -3
  203. package/dist/revo-grid/revogr-filter-panel.entry.js +1 -2
  204. package/dist/revo-grid/revogr-filter-panel.system.entry.js +2 -3
  205. package/dist/types/components/data/cellRenderer.d.ts +1 -1
  206. package/dist/types/components/data/columnService.d.ts +4 -4
  207. package/dist/types/components/header/headerCellRenderer.d.ts +1 -1
  208. package/dist/types/components/header/headerRenderer.d.ts +1 -1
  209. package/dist/types/components/order/orderRenderer.d.ts +1 -1
  210. package/dist/types/components/order/rowOrderService.d.ts +1 -1
  211. package/dist/types/components/overlay/autofill.service.d.ts +1 -1
  212. package/dist/types/components/overlay/clipboard.service.d.ts +1 -1
  213. package/dist/types/components/overlay/editors/text.d.ts +1 -1
  214. package/dist/types/components/overlay/keyboard.service.d.ts +1 -1
  215. package/dist/types/components/overlay/selection.utils.d.ts +1 -1
  216. package/dist/types/components/revo-grid/viewport.d.ts +1 -1
  217. package/dist/types/components/revo-grid/viewport.interfaces.d.ts +5 -5
  218. package/dist/types/components/revo-grid/viewport.scrolling.service.d.ts +1 -1
  219. package/dist/types/components/revo-grid/viewport.section.d.ts +1 -1
  220. package/dist/types/components/revo-grid/viewport.service.d.ts +3 -3
  221. package/dist/types/components/rowHeaders/row-header-render.d.ts +1 -1
  222. package/dist/types/components.d.ts +0 -26
  223. package/dist/types/plugins/autoSizeColumn.d.ts +1 -1
  224. package/dist/types/plugins/dispatcher.d.ts +1 -1
  225. package/dist/types/plugins/export/csv.d.ts +1 -1
  226. package/dist/types/plugins/export/export.plugin.d.ts +1 -1
  227. package/dist/types/plugins/export/types.d.ts +2 -2
  228. package/dist/types/plugins/filter/filter.button.d.ts +1 -1
  229. package/dist/types/plugins/filter/filter.plugin.d.ts +6 -6
  230. package/dist/types/plugins/filter/filter.pop.d.ts +4 -4
  231. package/dist/types/plugins/filter/filter.service.d.ts +1 -1
  232. package/dist/types/plugins/filter/filter.types.d.ts +5 -5
  233. package/dist/types/plugins/groupingColumn/columnGroupsRenderer.d.ts +1 -1
  234. package/dist/types/plugins/groupingColumn/grouping.col.plugin.d.ts +1 -1
  235. package/dist/types/plugins/groupingColumn/headerGroupRenderer.d.ts +1 -1
  236. package/dist/types/plugins/groupingRow/grouping.row.renderer.d.ts +1 -1
  237. package/dist/types/plugins/groupingRow/grouping.row.types.d.ts +5 -5
  238. package/dist/types/plugins/groupingRow/grouping.service.d.ts +1 -1
  239. package/dist/types/plugins/moveColumn/columnDragPlugin.d.ts +5 -5
  240. package/dist/types/plugins/sorting/sorting.plugin.d.ts +1 -1
  241. package/dist/types/plugins/sorting/sorting.sign.d.ts +1 -1
  242. package/dist/types/plugins/trimmed/trimmed.plugin.d.ts +2 -2
  243. package/dist/types/services/column.data.provider.d.ts +4 -4
  244. package/dist/types/services/data.provider.d.ts +1 -1
  245. package/dist/types/services/dimension.provider.d.ts +2 -2
  246. package/dist/types/services/localScrollService.d.ts +1 -1
  247. package/dist/types/services/resizable.directive.d.ts +2 -2
  248. package/dist/types/services/selection.store.connector.d.ts +2 -2
  249. package/dist/types/services/viewport.provider.d.ts +1 -1
  250. package/dist/types/stencil-public-runtime.d.ts +20 -95
  251. package/dist/types/store/dataSource/data.proxy.d.ts +1 -1
  252. package/dist/types/store/dataSource/data.store.d.ts +4 -4
  253. package/dist/types/store/dimension/dimension.helpers.d.ts +3 -3
  254. package/dist/types/store/selection/selection.store.d.ts +1 -1
  255. package/dist/types/store/viewPort/viewport.helpers.d.ts +2 -2
  256. package/loader/index.d.ts +1 -10
  257. package/loader/package.json +0 -1
  258. package/package.json +1 -1
  259. package/custom-element/_baseIteratee.js.map +0 -1
  260. package/custom-element/columnService.js.map +0 -1
  261. package/custom-element/consts.js.map +0 -1
  262. package/custom-element/data.store.js.map +0 -1
  263. package/custom-element/debounce.js.map +0 -1
  264. package/custom-element/dimension.helpers.js.map +0 -1
  265. package/custom-element/each.js.map +0 -1
  266. package/custom-element/filter.button.js.map +0 -1
  267. package/custom-element/identity.js.map +0 -1
  268. package/custom-element/index.js.map +0 -1
  269. package/custom-element/isSymbol.js.map +0 -1
  270. package/custom-element/keys.js.map +0 -1
  271. package/custom-element/localScrollService.js.map +0 -1
  272. package/custom-element/resize-observer.js.map +0 -1
  273. package/custom-element/revo-grid.js.map +0 -1
  274. package/custom-element/revogr-clipboard.js.map +0 -1
  275. package/custom-element/revogr-data.js.map +0 -1
  276. package/custom-element/revogr-data2.js.map +0 -1
  277. package/custom-element/revogr-edit.js.map +0 -1
  278. package/custom-element/revogr-edit2.js.map +0 -1
  279. package/custom-element/revogr-filter-panel.js.map +0 -1
  280. package/custom-element/revogr-focus.js.map +0 -1
  281. package/custom-element/revogr-focus2.js.map +0 -1
  282. package/custom-element/revogr-header.js.map +0 -1
  283. package/custom-element/revogr-header2.js.map +0 -1
  284. package/custom-element/revogr-order-editor.js.map +0 -1
  285. package/custom-element/revogr-order-editor2.js.map +0 -1
  286. package/custom-element/revogr-overlay-selection.js.map +0 -1
  287. package/custom-element/revogr-overlay-selection2.js.map +0 -1
  288. package/custom-element/revogr-row-headers.js.map +0 -1
  289. package/custom-element/revogr-row-headers2.js.map +0 -1
  290. package/custom-element/revogr-scroll-virtual.js.map +0 -1
  291. package/custom-element/revogr-scroll-virtual2.js.map +0 -1
  292. package/custom-element/revogr-temp-range.js.map +0 -1
  293. package/custom-element/revogr-temp-range2.js.map +0 -1
  294. package/custom-element/revogr-viewport-scroll.js.map +0 -1
  295. package/custom-element/revogr-viewport-scroll2.js.map +0 -1
  296. package/custom-element/selection.utils.js.map +0 -1
  297. package/custom-element/themeService.js +0 -65
  298. package/custom-element/themeService.js.map +0 -1
  299. package/custom-element/toInteger.js.map +0 -1
  300. package/custom-element/toNumber.js.map +0 -1
  301. package/custom-element/utils.js.map +0 -1
  302. package/dist/cjs/debounce-a0628875.js.map +0 -1
  303. package/dist/cjs/index-c209f988.js.map +0 -1
  304. package/dist/cjs/index.cjs.js.map +0 -1
  305. package/dist/cjs/loader.cjs.js.map +0 -1
  306. package/dist/cjs/resize-observer-cc749e66.js.map +0 -1
  307. package/dist/cjs/revo-grid.cjs.js.map +0 -1
  308. package/dist/cjs/revo-grid_11.cjs.entry.js.map +0 -1
  309. package/dist/cjs/revogr-clipboard.cjs.entry.js.map +0 -1
  310. package/dist/cjs/revogr-filter-panel.cjs.entry.js.map +0 -1
  311. package/dist/collection/components/button/button.js.map +0 -1
  312. package/dist/collection/components/clipboard/revogr-clipboard.js.map +0 -1
  313. package/dist/collection/components/data/cellRenderer.js.map +0 -1
  314. package/dist/collection/components/data/columnService.js.map +0 -1
  315. package/dist/collection/components/data/revogr-data.js.map +0 -1
  316. package/dist/collection/components/data/rowRenderer.js.map +0 -1
  317. package/dist/collection/components/header/headerCellRenderer.js.map +0 -1
  318. package/dist/collection/components/header/headerRenderer.js.map +0 -1
  319. package/dist/collection/components/header/revogr-header.js.map +0 -1
  320. package/dist/collection/components/order/orderRenderer.js.map +0 -1
  321. package/dist/collection/components/order/revogr-order-editor.js.map +0 -1
  322. package/dist/collection/components/order/rowOrderService.js.map +0 -1
  323. package/dist/collection/components/overlay/autofill.service.js.map +0 -1
  324. package/dist/collection/components/overlay/clipboard.service.js.map +0 -1
  325. package/dist/collection/components/overlay/editors/edit.utils.js.map +0 -1
  326. package/dist/collection/components/overlay/editors/text.js.map +0 -1
  327. package/dist/collection/components/overlay/keyboard.service.js.map +0 -1
  328. package/dist/collection/components/overlay/revogr-edit.js.map +0 -1
  329. package/dist/collection/components/overlay/revogr-overlay-selection.js.map +0 -1
  330. package/dist/collection/components/overlay/selection.utils.js.map +0 -1
  331. package/dist/collection/components/revo-grid/revo-grid.js.map +0 -1
  332. package/dist/collection/components/revo-grid/viewport.helpers.js.map +0 -1
  333. package/dist/collection/components/revo-grid/viewport.interfaces.js.map +0 -1
  334. package/dist/collection/components/revo-grid/viewport.js.map +0 -1
  335. package/dist/collection/components/revo-grid/viewport.resize.service.js.map +0 -1
  336. package/dist/collection/components/revo-grid/viewport.scrolling.service.js.map +0 -1
  337. package/dist/collection/components/revo-grid/viewport.section.js.map +0 -1
  338. package/dist/collection/components/revo-grid/viewport.service.js.map +0 -1
  339. package/dist/collection/components/rowHeaders/revogr-row-headers.js.map +0 -1
  340. package/dist/collection/components/rowHeaders/row-header-render.js.map +0 -1
  341. package/dist/collection/components/scroll/revogr-viewport-scroll.js.map +0 -1
  342. package/dist/collection/components/scrollable/revogr-scroll-virtual.js.map +0 -1
  343. package/dist/collection/components/selection-focus/revogr-focus.js.map +0 -1
  344. package/dist/collection/components/selection-temp-range/revogr-temp-range.js.map +0 -1
  345. package/dist/collection/global/global.js.map +0 -1
  346. package/dist/collection/index.js.map +0 -1
  347. package/dist/collection/plugins/autoSizeColumn.js.map +0 -1
  348. package/dist/collection/plugins/basePlugin.js.map +0 -1
  349. package/dist/collection/plugins/dispatcher.js.map +0 -1
  350. package/dist/collection/plugins/export/csv.js.map +0 -1
  351. package/dist/collection/plugins/export/export.plugin.js.map +0 -1
  352. package/dist/collection/plugins/export/types.js.map +0 -1
  353. package/dist/collection/plugins/filter/conditions/equal.js.map +0 -1
  354. package/dist/collection/plugins/filter/conditions/number/greaterThan.js.map +0 -1
  355. package/dist/collection/plugins/filter/conditions/number/greaterThanOrEqual.js.map +0 -1
  356. package/dist/collection/plugins/filter/conditions/number/lessThan.js.map +0 -1
  357. package/dist/collection/plugins/filter/conditions/number/lessThanOrEqual.js.map +0 -1
  358. package/dist/collection/plugins/filter/conditions/set.js.map +0 -1
  359. package/dist/collection/plugins/filter/conditions/string/beginswith.js.map +0 -1
  360. package/dist/collection/plugins/filter/conditions/string/contains.js.map +0 -1
  361. package/dist/collection/plugins/filter/filter.button.js.map +0 -1
  362. package/dist/collection/plugins/filter/filter.plugin.js.map +0 -1
  363. package/dist/collection/plugins/filter/filter.pop.js.map +0 -1
  364. package/dist/collection/plugins/filter/filter.service.js.map +0 -1
  365. package/dist/collection/plugins/filter/filter.types.js.map +0 -1
  366. package/dist/collection/plugins/groupingColumn/columnGroupsRenderer.js.map +0 -1
  367. package/dist/collection/plugins/groupingColumn/grouping.col.plugin.js.map +0 -1
  368. package/dist/collection/plugins/groupingColumn/headerGroupRenderer.js.map +0 -1
  369. package/dist/collection/plugins/groupingRow/grouping.const.js.map +0 -1
  370. package/dist/collection/plugins/groupingRow/grouping.row.expand.service.js.map +0 -1
  371. package/dist/collection/plugins/groupingRow/grouping.row.plugin.js.map +0 -1
  372. package/dist/collection/plugins/groupingRow/grouping.row.renderer.js.map +0 -1
  373. package/dist/collection/plugins/groupingRow/grouping.row.types.js.map +0 -1
  374. package/dist/collection/plugins/groupingRow/grouping.service.js.map +0 -1
  375. package/dist/collection/plugins/groupingRow/grouping.trimmed.service.js.map +0 -1
  376. package/dist/collection/plugins/moveColumn/columnDragPlugin.js.map +0 -1
  377. package/dist/collection/plugins/moveColumn/columnOrderHandler.js.map +0 -1
  378. package/dist/collection/plugins/sorting/sorting.plugin.js.map +0 -1
  379. package/dist/collection/plugins/sorting/sorting.sign.js.map +0 -1
  380. package/dist/collection/plugins/stretchPlugin.js.map +0 -1
  381. package/dist/collection/plugins/trimmed/trimmed.plugin.js.map +0 -1
  382. package/dist/collection/services/cell.helpers.js.map +0 -1
  383. package/dist/collection/services/column.data.provider.js.map +0 -1
  384. package/dist/collection/services/data.provider.js.map +0 -1
  385. package/dist/collection/services/dimension.provider.js.map +0 -1
  386. package/dist/collection/services/localScrollService.js.map +0 -1
  387. package/dist/collection/services/resizable.directive.js.map +0 -1
  388. package/dist/collection/services/selection.store.connector.js.map +0 -1
  389. package/dist/collection/services/viewport.provider.js.map +0 -1
  390. package/dist/collection/store/dataSource/data.proxy.js.map +0 -1
  391. package/dist/collection/store/dataSource/data.store.js.map +0 -1
  392. package/dist/collection/store/dimension/dimension.helpers.js.map +0 -1
  393. package/dist/collection/store/dimension/dimension.store.js.map +0 -1
  394. package/dist/collection/store/selection/selection.helpers.js.map +0 -1
  395. package/dist/collection/store/selection/selection.store.js.map +0 -1
  396. package/dist/collection/store/selection/selection.store.service.js.map +0 -1
  397. package/dist/collection/store/storeTypes.js.map +0 -1
  398. package/dist/collection/store/viewPort/viewport.helpers.js.map +0 -1
  399. package/dist/collection/store/viewPort/viewport.store.js.map +0 -1
  400. package/dist/collection/themeManager/theme.compact.js.map +0 -1
  401. package/dist/collection/themeManager/theme.default.js.map +0 -1
  402. package/dist/collection/themeManager/theme.material.js.map +0 -1
  403. package/dist/collection/themeManager/themeService.js.map +0 -1
  404. package/dist/collection/utils/closestPolifill.js.map +0 -1
  405. package/dist/collection/utils/consts.js.map +0 -1
  406. package/dist/collection/utils/generateAlphabetHeader.js.map +0 -1
  407. package/dist/collection/utils/keyCodes.js.map +0 -1
  408. package/dist/collection/utils/keyCodes.utils.js.map +0 -1
  409. package/dist/collection/utils/platform.js.map +0 -1
  410. package/dist/collection/utils/resizeObserver.js.map +0 -1
  411. package/dist/collection/utils/store.utils.js.map +0 -1
  412. package/dist/collection/utils/utils.js.map +0 -1
  413. package/dist/esm/debounce-cb7aac48.js.map +0 -1
  414. package/dist/esm/index-f21f8a13.js.map +0 -1
  415. package/dist/esm/index.js.map +0 -1
  416. package/dist/esm/loader.js.map +0 -1
  417. package/dist/esm/resize-observer-4f34a839.js.map +0 -1
  418. package/dist/esm/revo-grid.js.map +0 -1
  419. package/dist/esm/revo-grid_11.entry.js.map +0 -1
  420. package/dist/esm/revogr-clipboard.entry.js.map +0 -1
  421. package/dist/esm/revogr-filter-panel.entry.js.map +0 -1
  422. package/dist/esm-es5/debounce-cb7aac48.js.map +0 -1
  423. package/dist/esm-es5/index-f21f8a13.js +0 -5
  424. package/dist/esm-es5/index-f21f8a13.js.map +0 -1
  425. package/dist/esm-es5/index.js.map +0 -1
  426. package/dist/esm-es5/loader.js.map +0 -1
  427. package/dist/esm-es5/resize-observer-4f34a839.js.map +0 -1
  428. package/dist/esm-es5/revo-grid.js.map +0 -1
  429. package/dist/esm-es5/revo-grid_11.entry.js.map +0 -1
  430. package/dist/esm-es5/revogr-clipboard.entry.js.map +0 -1
  431. package/dist/esm-es5/revogr-filter-panel.entry.js.map +0 -1
  432. package/dist/revo-grid/debounce-3aba7c4d.system.js.map +0 -1
  433. package/dist/revo-grid/debounce-cb7aac48.js +0 -5
  434. package/dist/revo-grid/debounce-cb7aac48.js.map +0 -1
  435. package/dist/revo-grid/index-20224007.system.js +0 -6
  436. package/dist/revo-grid/index-20224007.system.js.map +0 -1
  437. package/dist/revo-grid/index-f21f8a13.js +0 -6
  438. package/dist/revo-grid/index-f21f8a13.js.map +0 -1
  439. package/dist/revo-grid/index.esm.js.map +0 -1
  440. package/dist/revo-grid/index.system.js.map +0 -1
  441. package/dist/revo-grid/resize-observer-2a36c9e4.system.js.map +0 -1
  442. package/dist/revo-grid/resize-observer-4f34a839.js +0 -5
  443. package/dist/revo-grid/resize-observer-4f34a839.js.map +0 -1
  444. package/dist/revo-grid/revo-grid.esm.js.map +0 -1
  445. package/dist/revo-grid/revo-grid.system.js.map +0 -1
  446. package/dist/revo-grid/revo-grid_11.entry.js.map +0 -1
  447. package/dist/revo-grid/revo-grid_11.system.entry.js.map +0 -1
  448. package/dist/revo-grid/revogr-clipboard.entry.js.map +0 -1
  449. package/dist/revo-grid/revogr-clipboard.system.entry.js.map +0 -1
  450. package/dist/revo-grid/revogr-filter-panel.entry.js.map +0 -1
  451. package/dist/revo-grid/revogr-filter-panel.system.entry.js.map +0 -1
@@ -3,14 +3,6 @@
3
3
  */
4
4
  const NAMESPACE = 'revo-grid';
5
5
 
6
- /**
7
- * Virtual DOM patching algorithm based on Snabbdom by
8
- * Simon Friis Vindum (@paldepind)
9
- * Licensed under the MIT License
10
- * https://github.com/snabbdom/snabbdom/blob/master/LICENSE
11
- *
12
- * Modified for Stencil's renderer and slot projection
13
- */
14
6
  let contentRef;
15
7
  let hostTagName;
16
8
  let useNativeShadowDom = false;
@@ -19,6 +11,64 @@ let checkSlotRelocate = false;
19
11
  let isSvgMode = false;
20
12
  let renderingRef = null;
21
13
  let queuePending = false;
14
+ const win = typeof window !== 'undefined' ? window : {};
15
+ const CSS = win.CSS ;
16
+ const doc = win.document || { head: {} };
17
+ const plt = {
18
+ $flags$: 0,
19
+ $resourcesUrl$: '',
20
+ jmp: (h) => h(),
21
+ raf: (h) => requestAnimationFrame(h),
22
+ ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
23
+ rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
24
+ ce: (eventName, opts) => new CustomEvent(eventName, opts),
25
+ };
26
+ const promiseResolve = (v) => Promise.resolve(v);
27
+ const supportsConstructableStylesheets = /*@__PURE__*/ (() => {
28
+ try {
29
+ new CSSStyleSheet();
30
+ return typeof new CSSStyleSheet().replaceSync === 'function';
31
+ }
32
+ catch (e) { }
33
+ return false;
34
+ })()
35
+ ;
36
+ const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
37
+ if (listeners) {
38
+ listeners.map(([flags, name, method]) => {
39
+ const target = getHostListenerTarget(elm, flags) ;
40
+ const handler = hostListenerProxy(hostRef, method);
41
+ const opts = hostListenerOpts(flags);
42
+ plt.ael(target, name, handler, opts);
43
+ (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
44
+ });
45
+ }
46
+ };
47
+ const hostListenerProxy = (hostRef, methodName) => (ev) => {
48
+ try {
49
+ {
50
+ if (hostRef.$flags$ & 256 /* isListenReady */) {
51
+ // instance is ready, let's call it's member method for this event
52
+ hostRef.$lazyInstance$[methodName](ev);
53
+ }
54
+ else {
55
+ (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
56
+ }
57
+ }
58
+ }
59
+ catch (e) {
60
+ consoleError(e);
61
+ }
62
+ };
63
+ const getHostListenerTarget = (elm, flags) => {
64
+ if (flags & 4 /* TargetDocument */)
65
+ return doc;
66
+ return elm;
67
+ };
68
+ // prettier-ignore
69
+ const hostListenerOpts = (flags) => (flags & 2 /* Capture */) !== 0;
70
+ const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
71
+ const XLINK_NS = 'http://www.w3.org/1999/xlink';
22
72
  const createTime = (fnName, tagName = '') => {
23
73
  {
24
74
  return () => {
@@ -33,8 +83,75 @@ const uniqueTime = (key, measureText) => {
33
83
  };
34
84
  }
35
85
  };
36
- const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
37
- const XLINK_NS = 'http://www.w3.org/1999/xlink';
86
+ const rootAppliedStyles = new WeakMap();
87
+ const registerStyle = (scopeId, cssText, allowCS) => {
88
+ let style = styles.get(scopeId);
89
+ if (supportsConstructableStylesheets && allowCS) {
90
+ style = (style || new CSSStyleSheet());
91
+ if (typeof style === 'string') {
92
+ style = cssText;
93
+ }
94
+ else {
95
+ style.replaceSync(cssText);
96
+ }
97
+ }
98
+ else {
99
+ style = cssText;
100
+ }
101
+ styles.set(scopeId, style);
102
+ };
103
+ const addStyle = (styleContainerNode, cmpMeta, mode, hostElm) => {
104
+ let scopeId = getScopeId(cmpMeta);
105
+ const style = styles.get(scopeId);
106
+ // if an element is NOT connected then getRootNode() will return the wrong root node
107
+ // so the fallback is to always use the document for the root node in those cases
108
+ styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : doc;
109
+ if (style) {
110
+ if (typeof style === 'string') {
111
+ styleContainerNode = styleContainerNode.head || styleContainerNode;
112
+ let appliedStyles = rootAppliedStyles.get(styleContainerNode);
113
+ let styleElm;
114
+ if (!appliedStyles) {
115
+ rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));
116
+ }
117
+ if (!appliedStyles.has(scopeId)) {
118
+ {
119
+ if (plt.$cssShim$) {
120
+ styleElm = plt.$cssShim$.createHostStyle(hostElm, scopeId, style, !!(cmpMeta.$flags$ & 10 /* needsScopedEncapsulation */));
121
+ const newScopeId = styleElm['s-sc'];
122
+ if (newScopeId) {
123
+ scopeId = newScopeId;
124
+ // we don't want to add this styleID to the appliedStyles Set
125
+ // since the cssVarShim might need to apply several different
126
+ // stylesheets for the same component
127
+ appliedStyles = null;
128
+ }
129
+ }
130
+ else {
131
+ styleElm = doc.createElement('style');
132
+ styleElm.innerHTML = style;
133
+ }
134
+ styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
135
+ }
136
+ if (appliedStyles) {
137
+ appliedStyles.add(scopeId);
138
+ }
139
+ }
140
+ }
141
+ else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
142
+ styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
143
+ }
144
+ }
145
+ return scopeId;
146
+ };
147
+ const attachStyles = (hostRef) => {
148
+ const cmpMeta = hostRef.$cmpMeta$;
149
+ const elm = hostRef.$hostElement$;
150
+ const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
151
+ addStyle(elm.getRootNode(), cmpMeta, hostRef.$modeName$, elm);
152
+ endAttachStyles();
153
+ };
154
+ const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
38
155
  /**
39
156
  * Default style mode id
40
157
  */
@@ -48,30 +165,11 @@ const EMPTY_OBJ = {};
48
165
  */
49
166
  const SVG_NS = 'http://www.w3.org/2000/svg';
50
167
  const HTML_NS = 'http://www.w3.org/1999/xhtml';
51
- /**
52
- * Check whether a value is a 'complex type', defined here as an object or a
53
- * function.
54
- *
55
- * @param o the value to check
56
- * @returns whether it's a complex type or not
57
- */
58
168
  const isComplexType = (o) => {
59
169
  // https://jsperf.com/typeof-fn-object/5
60
170
  o = typeof o;
61
171
  return o === 'object' || o === 'function';
62
172
  };
63
- /**
64
- * Helper method for querying a `meta` tag that contains a nonce value
65
- * out of a DOM's head.
66
- *
67
- * @param doc The DOM containing the `head` to query against
68
- * @returns The content of the meta tag representing the nonce value, or `undefined` if no tag
69
- * exists or the tag has no content.
70
- */
71
- function queryNonceMetaTagContent(doc) {
72
- var _a, _b, _c;
73
- return (_c = (_b = (_a = doc.head) === null || _a === void 0 ? void 0 : _a.querySelector('meta[name="csp-nonce"]')) === null || _b === void 0 ? void 0 : _b.getAttribute('content')) !== null && _c !== void 0 ? _c : undefined;
74
- }
75
173
  /**
76
174
  * Production h() function based on Preact by
77
175
  * Jason Miller (@developit)
@@ -80,6 +178,7 @@ function queryNonceMetaTagContent(doc) {
80
178
  *
81
179
  * Modified for Stencil's compiler and vdom
82
180
  */
181
+ // const stack: any[] = [];
83
182
  // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, child?: d.ChildType): d.VNode;
84
183
  // export function h(nodeName: string | d.FunctionalComponent, vnodeData: d.PropsType, ...children: d.ChildType[]): d.VNode;
85
184
  const h = (nodeName, vnodeData, ...children) => {
@@ -149,14 +248,6 @@ const h = (nodeName, vnodeData, ...children) => {
149
248
  }
150
249
  return vnode;
151
250
  };
152
- /**
153
- * A utility function for creating a virtual DOM node from a tag and some
154
- * possible text content.
155
- *
156
- * @param tag the tag for this element
157
- * @param text possible text content for the node
158
- * @returns a newly-minted virtual DOM node
159
- */
160
251
  const newVNode = (tag, text) => {
161
252
  const vnode = {
162
253
  $flags$: 0,
@@ -177,31 +268,11 @@ const newVNode = (tag, text) => {
177
268
  return vnode;
178
269
  };
179
270
  const Host = {};
180
- /**
181
- * Check whether a given node is a Host node or not
182
- *
183
- * @param node the virtual DOM node to check
184
- * @returns whether it's a Host node or not
185
- */
186
271
  const isHost = (node) => node && node.$tag$ === Host;
187
- /**
188
- * Implementation of {@link d.FunctionalUtilities} for Stencil's VDom.
189
- *
190
- * Note that these functions convert from {@link d.VNode} to
191
- * {@link d.ChildNode} to give functional component developers a friendly
192
- * interface.
193
- */
194
272
  const vdomFnUtils = {
195
273
  forEach: (children, cb) => children.map(convertToPublic).forEach(cb),
196
274
  map: (children, cb) => children.map(convertToPublic).map(cb).map(convertToPrivate),
197
275
  };
198
- /**
199
- * Convert a {@link d.VNode} to a {@link d.ChildNode} in order to present a
200
- * friendlier public interface (hence, 'convertToPublic').
201
- *
202
- * @param node the virtual DOM node to convert
203
- * @returns a converted child node
204
- */
205
276
  const convertToPublic = (node) => ({
206
277
  vattrs: node.$attrs$,
207
278
  vchildren: node.$children$,
@@ -210,15 +281,6 @@ const convertToPublic = (node) => ({
210
281
  vtag: node.$tag$,
211
282
  vtext: node.$text$,
212
283
  });
213
- /**
214
- * Convert a {@link d.ChildNode} back to an equivalent {@link d.VNode} in
215
- * order to use the resulting object in the virtual DOM. The initial object was
216
- * likely created as part of presenting a public API, so converting it back
217
- * involved making it 'private' again (hence, `convertToPrivate`).
218
- *
219
- * @param node the child node to convert
220
- * @returns a converted virtual DOM node
221
- */
222
284
  const convertToPrivate = (node) => {
223
285
  if (typeof node.vtag === 'function') {
224
286
  const vnodeData = Object.assign({}, node.vattrs);
@@ -237,141 +299,6 @@ const convertToPrivate = (node) => {
237
299
  vnode.$name$ = node.vname;
238
300
  return vnode;
239
301
  };
240
- /**
241
- * Parse a new property value for a given property type.
242
- *
243
- * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
244
- * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
245
- * 1. `any`, the type given to `propValue` in the function signature
246
- * 2. the type stored from `propType`.
247
- *
248
- * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
249
- *
250
- * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
251
- * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
252
- * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
253
- * ```tsx
254
- * <my-cmp prop-val={0}></my-cmp>
255
- * ```
256
- *
257
- * HTML prop values on the other hand, will always a string
258
- *
259
- * @param propValue the new value to coerce to some type
260
- * @param propType the type of the prop, expressed as a binary number
261
- * @returns the parsed/coerced value
262
- */
263
- const parsePropertyValue = (propValue, propType) => {
264
- // ensure this value is of the correct prop type
265
- if (propValue != null && !isComplexType(propValue)) {
266
- if (propType & 4 /* MEMBER_FLAGS.Boolean */) {
267
- // per the HTML spec, any string value means it is a boolean true value
268
- // but we'll cheat here and say that the string "false" is the boolean false
269
- return propValue === 'false' ? false : propValue === '' || !!propValue;
270
- }
271
- if (propType & 2 /* MEMBER_FLAGS.Number */) {
272
- // force it to be a number
273
- return parseFloat(propValue);
274
- }
275
- if (propType & 1 /* MEMBER_FLAGS.String */) {
276
- // could have been passed as a number or boolean
277
- // but we still want it as a string
278
- return String(propValue);
279
- }
280
- // redundant return here for better minification
281
- return propValue;
282
- }
283
- // not sure exactly what type we want
284
- // so no need to change to a different type
285
- return propValue;
286
- };
287
- const getElement = (ref) => (getHostRef(ref).$hostElement$ );
288
- const createEvent = (ref, name, flags) => {
289
- const elm = getElement(ref);
290
- return {
291
- emit: (detail) => {
292
- return emitEvent(elm, name, {
293
- bubbles: !!(flags & 4 /* EVENT_FLAGS.Bubbles */),
294
- composed: !!(flags & 2 /* EVENT_FLAGS.Composed */),
295
- cancelable: !!(flags & 1 /* EVENT_FLAGS.Cancellable */),
296
- detail,
297
- });
298
- },
299
- };
300
- };
301
- /**
302
- * Helper function to create & dispatch a custom Event on a provided target
303
- * @param elm the target of the Event
304
- * @param name the name to give the custom Event
305
- * @param opts options for configuring a custom Event
306
- * @returns the custom Event
307
- */
308
- const emitEvent = (elm, name, opts) => {
309
- const ev = plt.ce(name, opts);
310
- elm.dispatchEvent(ev);
311
- return ev;
312
- };
313
- const rootAppliedStyles = /*@__PURE__*/ new WeakMap();
314
- const registerStyle = (scopeId, cssText, allowCS) => {
315
- let style = styles.get(scopeId);
316
- if (supportsConstructableStylesheets && allowCS) {
317
- style = (style || new CSSStyleSheet());
318
- if (typeof style === 'string') {
319
- style = cssText;
320
- }
321
- else {
322
- style.replaceSync(cssText);
323
- }
324
- }
325
- else {
326
- style = cssText;
327
- }
328
- styles.set(scopeId, style);
329
- };
330
- const addStyle = (styleContainerNode, cmpMeta, mode) => {
331
- var _a;
332
- const scopeId = getScopeId(cmpMeta);
333
- const style = styles.get(scopeId);
334
- // if an element is NOT connected then getRootNode() will return the wrong root node
335
- // so the fallback is to always use the document for the root node in those cases
336
- styleContainerNode = styleContainerNode.nodeType === 11 /* NODE_TYPE.DocumentFragment */ ? styleContainerNode : doc;
337
- if (style) {
338
- if (typeof style === 'string') {
339
- styleContainerNode = styleContainerNode.head || styleContainerNode;
340
- let appliedStyles = rootAppliedStyles.get(styleContainerNode);
341
- let styleElm;
342
- if (!appliedStyles) {
343
- rootAppliedStyles.set(styleContainerNode, (appliedStyles = new Set()));
344
- }
345
- if (!appliedStyles.has(scopeId)) {
346
- {
347
- styleElm = doc.createElement('style');
348
- styleElm.innerHTML = style;
349
- // Apply CSP nonce to the style tag if it exists
350
- const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
351
- if (nonce != null) {
352
- styleElm.setAttribute('nonce', nonce);
353
- }
354
- styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
355
- }
356
- if (appliedStyles) {
357
- appliedStyles.add(scopeId);
358
- }
359
- }
360
- }
361
- else if (!styleContainerNode.adoptedStyleSheets.includes(style)) {
362
- styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, style];
363
- }
364
- }
365
- return scopeId;
366
- };
367
- const attachStyles = (hostRef) => {
368
- const cmpMeta = hostRef.$cmpMeta$;
369
- const elm = hostRef.$hostElement$;
370
- const endAttachStyles = createTime('attachStyles', cmpMeta.$tagName$);
371
- addStyle(elm.getRootNode(), cmpMeta);
372
- endAttachStyles();
373
- };
374
- const getScopeId = (cmp, mode) => 'sc-' + (cmp.$tagName$);
375
302
  /**
376
303
  * Production setAccessor() function based on Preact by
377
304
  * Jason Miller (@developit)
@@ -508,7 +435,7 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
508
435
  }
509
436
  }
510
437
  }
511
- else if ((!isProp || flags & 4 /* VNODE_FLAGS.isHost */ || isSvg) && !isComplex) {
438
+ else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex) {
512
439
  newValue = newValue === true ? '' : newValue;
513
440
  if (xlink) {
514
441
  elm.setAttributeNS(XLINK_NS, memberName, newValue);
@@ -526,7 +453,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
526
453
  // if the element passed in is a shadow root, which is a document fragment
527
454
  // then we want to be adding attrs/props to the shadow root's "host" element
528
455
  // if it's not a shadow root, then we add attrs/props to the same element
529
- const elm = newVnode.$elm$.nodeType === 11 /* NODE_TYPE.DocumentFragment */ && newVnode.$elm$.host
456
+ const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host
530
457
  ? newVnode.$elm$.host
531
458
  : newVnode.$elm$;
532
459
  const oldVnodeAttrs = (oldVnode && oldVnode.$attrs$) || EMPTY_OBJ;
@@ -544,16 +471,6 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
544
471
  setAccessor(elm, memberName, oldVnodeAttrs[memberName], newVnodeAttrs[memberName], isSvgMode, newVnode.$flags$);
545
472
  }
546
473
  };
547
- /**
548
- * Create a DOM Node corresponding to one of the children of a given VNode.
549
- *
550
- * @param oldParentVNode the parent VNode from the previous render
551
- * @param newParentVNode the parent VNode from the current render
552
- * @param childIndex the index of the VNode, in the _new_ parent node's
553
- * children, for which we will create a new DOM node
554
- * @param parentElm the parent DOM node which our new node will be a child of
555
- * @returns the newly created node
556
- */
557
474
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
558
475
  // tslint:disable-next-line: prefer-const
559
476
  const newVNode = newParentVNode.$children$[childIndex];
@@ -567,16 +484,16 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
567
484
  if (newVNode.$tag$ === 'slot') {
568
485
  newVNode.$flags$ |= newVNode.$children$
569
486
  ? // slot element has fallback content
570
- 2 /* VNODE_FLAGS.isSlotFallback */
487
+ 2 /* isSlotFallback */
571
488
  : // slot element does not have fallback content
572
- 1 /* VNODE_FLAGS.isSlotReference */;
489
+ 1 /* isSlotReference */;
573
490
  }
574
491
  }
575
492
  if (newVNode.$text$ !== null) {
576
493
  // create text node
577
494
  elm = newVNode.$elm$ = doc.createTextNode(newVNode.$text$);
578
495
  }
579
- else if (newVNode.$flags$ & 1 /* VNODE_FLAGS.isSlotReference */) {
496
+ else if (newVNode.$flags$ & 1 /* isSlotReference */) {
580
497
  // create a slot reference node
581
498
  elm = newVNode.$elm$ =
582
499
  doc.createTextNode('');
@@ -586,7 +503,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
586
503
  isSvgMode = newVNode.$tag$ === 'svg';
587
504
  }
588
505
  // create element
589
- elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* VNODE_FLAGS.isSlotFallback */
506
+ elm = newVNode.$elm$ = (doc.createElementNS(isSvgMode ? SVG_NS : HTML_NS, newVNode.$flags$ & 2 /* isSlotFallback */
590
507
  ? 'slot-fb'
591
508
  : newVNode.$tag$)
592
509
  );
@@ -621,7 +538,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
621
538
  }
622
539
  {
623
540
  elm['s-hn'] = hostTagName;
624
- if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
541
+ if (newVNode.$flags$ & (2 /* isSlotFallback */ | 1 /* isSlotReference */)) {
625
542
  // remember the content reference comment
626
543
  elm['s-sr'] = true;
627
544
  // remember the content reference comment
@@ -640,7 +557,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
640
557
  return elm;
641
558
  };
642
559
  const putBackInOriginalLocation = (parentElm, recursive) => {
643
- plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
560
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
644
561
  const oldSlotChildNodes = parentElm.childNodes;
645
562
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
646
563
  const childNode = oldSlotChildNodes[i];
@@ -661,23 +578,8 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
661
578
  putBackInOriginalLocation(childNode, recursive);
662
579
  }
663
580
  }
664
- plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
581
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
665
582
  };
666
- /**
667
- * Create DOM nodes corresponding to a list of {@link d.Vnode} objects and
668
- * add them to the DOM in the appropriate place.
669
- *
670
- * @param parentElm the DOM node which should be used as a parent for the new
671
- * DOM nodes
672
- * @param before a child of the `parentElm` which the new children should be
673
- * inserted before (optional)
674
- * @param parentVNode the parent virtual DOM node
675
- * @param vnodes the new child virtual DOM nodes to produce DOM nodes for
676
- * @param startIdx the index in the child virtual DOM nodes at which to start
677
- * creating DOM nodes (inclusive)
678
- * @param endIdx the index in the child virtual DOM nodes at which to stop
679
- * creating DOM nodes (inclusive)
680
- */
681
583
  const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {
682
584
  let containerElm = ((parentElm['s-cr'] && parentElm['s-cr'].parentNode) || parentElm);
683
585
  let childNode;
@@ -691,112 +593,30 @@ const addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) =>
691
593
  }
692
594
  }
693
595
  };
694
- /**
695
- * Remove the DOM elements corresponding to a list of {@link d.VNode} objects.
696
- * This can be used to, for instance, clean up after a list of children which
697
- * should no longer be shown.
698
- *
699
- * This function also handles some of Stencil's slot relocation logic.
700
- *
701
- * @param vnodes a list of virtual DOM nodes to remove
702
- * @param startIdx the index at which to start removing nodes (inclusive)
703
- * @param endIdx the index at which to stop removing nodes (inclusive)
704
- */
705
- const removeVnodes = (vnodes, startIdx, endIdx) => {
706
- for (let index = startIdx; index <= endIdx; ++index) {
707
- const vnode = vnodes[index];
708
- if (vnode) {
709
- const elm = vnode.$elm$;
710
- nullifyVNodeRefs(vnode);
711
- if (elm) {
712
- {
713
- // we're removing this element
714
- // so it's possible we need to show slot fallback content now
715
- checkSlotFallbackVisibility = true;
716
- if (elm['s-ol']) {
717
- // remove the original location comment
718
- elm['s-ol'].remove();
719
- }
720
- else {
721
- // it's possible that child nodes of the node
722
- // that's being removed are slot nodes
723
- putBackInOriginalLocation(elm, true);
724
- }
596
+ const removeVnodes = (vnodes, startIdx, endIdx, vnode, elm) => {
597
+ for (; startIdx <= endIdx; ++startIdx) {
598
+ if ((vnode = vnodes[startIdx])) {
599
+ elm = vnode.$elm$;
600
+ callNodeRefs(vnode);
601
+ {
602
+ // we're removing this element
603
+ // so it's possible we need to show slot fallback content now
604
+ checkSlotFallbackVisibility = true;
605
+ if (elm['s-ol']) {
606
+ // remove the original location comment
607
+ elm['s-ol'].remove();
608
+ }
609
+ else {
610
+ // it's possible that child nodes of the node
611
+ // that's being removed are slot nodes
612
+ putBackInOriginalLocation(elm, true);
725
613
  }
726
- // remove the vnode's element from the dom
727
- elm.remove();
728
614
  }
615
+ // remove the vnode's element from the dom
616
+ elm.remove();
729
617
  }
730
618
  }
731
619
  };
732
- /**
733
- * Reconcile the children of a new VNode with the children of an old VNode by
734
- * traversing the two collections of children, identifying nodes that are
735
- * conserved or changed, calling out to `patch` to make any necessary
736
- * updates to the DOM, and rearranging DOM nodes as needed.
737
- *
738
- * The algorithm for reconciling children works by analyzing two 'windows' onto
739
- * the two arrays of children (`oldCh` and `newCh`). We keep track of the
740
- * 'windows' by storing start and end indices and references to the
741
- * corresponding array entries. Initially the two 'windows' are basically equal
742
- * to the entire array, but we progressively narrow the windows until there are
743
- * no children left to update by doing the following:
744
- *
745
- * 1. Skip any `null` entries at the beginning or end of the two arrays, so
746
- * that if we have an initial array like the following we'll end up dealing
747
- * only with a window bounded by the highlighted elements:
748
- *
749
- * [null, null, VNode1 , ... , VNode2, null, null]
750
- * ^^^^^^ ^^^^^^
751
- *
752
- * 2. Check to see if the elements at the head and tail positions are equal
753
- * across the windows. This will basically detect elements which haven't
754
- * been added, removed, or changed position, i.e. if you had the following
755
- * VNode elements (represented as HTML):
756
- *
757
- * oldVNode: `<div><p><span>HEY</span></p></div>`
758
- * newVNode: `<div><p><span>THERE</span></p></div>`
759
- *
760
- * Then when comparing the children of the `<div>` tag we check the equality
761
- * of the VNodes corresponding to the `<p>` tags and, since they are the
762
- * same tag in the same position, we'd be able to avoid completely
763
- * re-rendering the subtree under them with a new DOM element and would just
764
- * call out to `patch` to handle reconciling their children and so on.
765
- *
766
- * 3. Check, for both windows, to see if the element at the beginning of the
767
- * window corresponds to the element at the end of the other window. This is
768
- * a heuristic which will let us identify _some_ situations in which
769
- * elements have changed position, for instance it _should_ detect that the
770
- * children nodes themselves have not changed but merely moved in the
771
- * following example:
772
- *
773
- * oldVNode: `<div><element-one /><element-two /></div>`
774
- * newVNode: `<div><element-two /><element-one /></div>`
775
- *
776
- * If we find cases like this then we also need to move the concrete DOM
777
- * elements corresponding to the moved children to write the re-order to the
778
- * DOM.
779
- *
780
- * 4. Finally, if VNodes have the `key` attribute set on them we check for any
781
- * nodes in the old children which have the same key as the first element in
782
- * our window on the new children. If we find such a node we handle calling
783
- * out to `patch`, moving relevant DOM nodes, and so on, in accordance with
784
- * what we find.
785
- *
786
- * Finally, once we've narrowed our 'windows' to the point that either of them
787
- * collapse (i.e. they have length 0) we then handle any remaining VNode
788
- * insertion or deletion that needs to happen to get a DOM state that correctly
789
- * reflects the new child VNodes. If, for instance, after our window on the old
790
- * children has collapsed we still have more nodes on the new children that
791
- * we haven't dealt with yet then we need to add them, or if the new children
792
- * collapse but we still have unhandled _old_ children then we need to make
793
- * sure the corresponding DOM nodes are removed.
794
- *
795
- * @param parentElm the node into which the parent VNode is rendered
796
- * @param oldCh the old children of the parent node
797
- * @param newVNode the new VNode which will replace the parent
798
- * @param newCh the new children of the parent node
799
- */
800
620
  const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
801
621
  let oldStartIdx = 0;
802
622
  let newStartIdx = 0;
@@ -812,7 +632,7 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
812
632
  let elmToMove;
813
633
  while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
814
634
  if (oldStartVnode == null) {
815
- // VNode might have been moved left
635
+ // Vnode might have been moved left
816
636
  oldStartVnode = oldCh[++oldStartIdx];
817
637
  }
818
638
  else if (oldEndVnode == null) {
@@ -825,100 +645,37 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
825
645
  newEndVnode = newCh[--newEndIdx];
826
646
  }
827
647
  else if (isSameVnode(oldStartVnode, newStartVnode)) {
828
- // if the start nodes are the same then we should patch the new VNode
829
- // onto the old one, and increment our `newStartIdx` and `oldStartIdx`
830
- // indices to reflect that. We don't need to move any DOM Nodes around
831
- // since things are matched up in order.
832
648
  patch(oldStartVnode, newStartVnode);
833
649
  oldStartVnode = oldCh[++oldStartIdx];
834
650
  newStartVnode = newCh[++newStartIdx];
835
651
  }
836
652
  else if (isSameVnode(oldEndVnode, newEndVnode)) {
837
- // likewise, if the end nodes are the same we patch new onto old and
838
- // decrement our end indices, and also likewise in this case we don't
839
- // need to move any DOM Nodes.
840
653
  patch(oldEndVnode, newEndVnode);
841
654
  oldEndVnode = oldCh[--oldEndIdx];
842
655
  newEndVnode = newCh[--newEndIdx];
843
656
  }
844
657
  else if (isSameVnode(oldStartVnode, newEndVnode)) {
845
- // case: "Vnode moved right"
846
- //
847
- // We've found that the last node in our window on the new children is
848
- // the same VNode as the _first_ node in our window on the old children
849
- // we're dealing with now. Visually, this is the layout of these two
850
- // nodes:
851
- //
852
- // newCh: [..., newStartVnode , ... , newEndVnode , ...]
853
- // ^^^^^^^^^^^
854
- // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
855
- // ^^^^^^^^^^^^^
856
- //
857
- // In this situation we need to patch `newEndVnode` onto `oldStartVnode`
858
- // and move the DOM element for `oldStartVnode`.
658
+ // Vnode moved right
859
659
  if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
860
660
  putBackInOriginalLocation(oldStartVnode.$elm$.parentNode, false);
861
661
  }
862
662
  patch(oldStartVnode, newEndVnode);
863
- // We need to move the element for `oldStartVnode` into a position which
864
- // will be appropriate for `newEndVnode`. For this we can use
865
- // `.insertBefore` and `oldEndVnode.$elm$.nextSibling`. If there is a
866
- // sibling for `oldEndVnode.$elm$` then we want to move the DOM node for
867
- // `oldStartVnode` between `oldEndVnode` and it's sibling, like so:
868
- //
869
- // <old-start-node />
870
- // <some-intervening-node />
871
- // <old-end-node />
872
- // <!-- -> <-- `oldStartVnode.$elm$` should be inserted here
873
- // <next-sibling />
874
- //
875
- // If instead `oldEndVnode.$elm$` has no sibling then we just want to put
876
- // the node for `oldStartVnode` at the end of the children of
877
- // `parentElm`. Luckily, `Node.nextSibling` will return `null` if there
878
- // aren't any siblings, and passing `null` to `Node.insertBefore` will
879
- // append it to the children of the parent element.
880
663
  parentElm.insertBefore(oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);
881
664
  oldStartVnode = oldCh[++oldStartIdx];
882
665
  newEndVnode = newCh[--newEndIdx];
883
666
  }
884
667
  else if (isSameVnode(oldEndVnode, newStartVnode)) {
885
- // case: "Vnode moved left"
886
- //
887
- // We've found that the first node in our window on the new children is
888
- // the same VNode as the _last_ node in our window on the old children.
889
- // Visually, this is the layout of these two nodes:
890
- //
891
- // newCh: [..., newStartVnode , ... , newEndVnode , ...]
892
- // ^^^^^^^^^^^^^
893
- // oldCh: [..., oldStartVnode , ... , oldEndVnode , ...]
894
- // ^^^^^^^^^^^
895
- //
896
- // In this situation we need to patch `newStartVnode` onto `oldEndVnode`
897
- // (which will handle updating any changed attributes, reconciling their
898
- // children etc) but we also need to move the DOM node to which
899
- // `oldEndVnode` corresponds.
668
+ // Vnode moved left
900
669
  if ((oldStartVnode.$tag$ === 'slot' || newEndVnode.$tag$ === 'slot')) {
901
670
  putBackInOriginalLocation(oldEndVnode.$elm$.parentNode, false);
902
671
  }
903
672
  patch(oldEndVnode, newStartVnode);
904
- // We've already checked above if `oldStartVnode` and `newStartVnode` are
905
- // the same node, so since we're here we know that they are not. Thus we
906
- // can move the element for `oldEndVnode` _before_ the element for
907
- // `oldStartVnode`, leaving `oldStartVnode` to be reconciled in the
908
- // future.
909
673
  parentElm.insertBefore(oldEndVnode.$elm$, oldStartVnode.$elm$);
910
674
  oldEndVnode = oldCh[--oldEndIdx];
911
675
  newStartVnode = newCh[++newStartIdx];
912
676
  }
913
677
  else {
914
- // Here we do some checks to match up old and new nodes based on the
915
- // `$key$` attribute, which is set by putting a `key="my-key"` attribute
916
- // in the JSX for a DOM element in the implementation of a Stencil
917
- // component.
918
- //
919
- // First we check to see if there are any nodes in the array of old
920
- // children which have the same key as the first node in the new
921
- // children.
678
+ // createKeyToOldIdx
922
679
  idxInOld = -1;
923
680
  {
924
681
  for (i = oldStartIdx; i <= oldEndIdx; ++i) {
@@ -929,32 +686,23 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
929
686
  }
930
687
  }
931
688
  if (idxInOld >= 0) {
932
- // We found a node in the old children which matches up with the first
933
- // node in the new children! So let's deal with that
934
689
  elmToMove = oldCh[idxInOld];
935
690
  if (elmToMove.$tag$ !== newStartVnode.$tag$) {
936
- // the tag doesn't match so we'll need a new DOM element
937
691
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, idxInOld);
938
692
  }
939
693
  else {
940
694
  patch(elmToMove, newStartVnode);
941
- // invalidate the matching old node so that we won't try to update it
942
- // again later on
943
695
  oldCh[idxInOld] = undefined;
944
696
  node = elmToMove.$elm$;
945
697
  }
946
698
  newStartVnode = newCh[++newStartIdx];
947
699
  }
948
700
  else {
949
- // We either didn't find an element in the old children that matches
950
- // the key of the first new child OR the build is not using `key`
951
- // attributes at all. In either case we need to create a new element
952
- // for the new node.
701
+ // new element
953
702
  node = createElm(oldCh && oldCh[newStartIdx], newVNode, newStartIdx);
954
703
  newStartVnode = newCh[++newStartIdx];
955
704
  }
956
705
  if (node) {
957
- // if we created a new node then handle inserting it to the DOM
958
706
  {
959
707
  parentReferenceNode(oldStartVnode.$elm$).insertBefore(node, referenceNode(oldStartVnode.$elm$));
960
708
  }
@@ -962,44 +710,21 @@ const updateChildren = (parentElm, oldCh, newVNode, newCh) => {
962
710
  }
963
711
  }
964
712
  if (oldStartIdx > oldEndIdx) {
965
- // we have some more new nodes to add which don't match up with old nodes
966
713
  addVnodes(parentElm, newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$, newVNode, newCh, newStartIdx, newEndIdx);
967
714
  }
968
715
  else if (newStartIdx > newEndIdx) {
969
- // there are nodes in the `oldCh` array which no longer correspond to nodes
970
- // in the new array, so lets remove them (which entails cleaning up the
971
- // relevant DOM nodes)
972
716
  removeVnodes(oldCh, oldStartIdx, oldEndIdx);
973
717
  }
974
718
  };
975
- /**
976
- * Compare two VNodes to determine if they are the same
977
- *
978
- * **NB**: This function is an equality _heuristic_ based on the available
979
- * information set on the two VNodes and can be misleading under certain
980
- * circumstances. In particular, if the two nodes do not have `key` attrs
981
- * (available under `$key$` on VNodes) then the function falls back on merely
982
- * checking that they have the same tag.
983
- *
984
- * So, in other words, if `key` attrs are not set on VNodes which may be
985
- * changing order within a `children` array or something along those lines then
986
- * we could obtain a false negative and then have to do needless re-rendering
987
- * (i.e. we'd say two VNodes aren't equal when in fact they should be).
988
- *
989
- * @param leftVNode the first VNode to check
990
- * @param rightVNode the second VNode to check
991
- * @returns whether they're equal or not
992
- */
993
- const isSameVnode = (leftVNode, rightVNode) => {
719
+ const isSameVnode = (vnode1, vnode2) => {
994
720
  // compare if two vnode to see if they're "technically" the same
995
721
  // need to have the same element tag, and same key to be the same
996
- if (leftVNode.$tag$ === rightVNode.$tag$) {
997
- if (leftVNode.$tag$ === 'slot') {
998
- return leftVNode.$name$ === rightVNode.$name$;
722
+ if (vnode1.$tag$ === vnode2.$tag$) {
723
+ if (vnode1.$tag$ === 'slot') {
724
+ return vnode1.$name$ === vnode2.$name$;
999
725
  }
1000
- // this will be set if components in the build have `key` attrs set on them
1001
726
  {
1002
- return leftVNode.$key$ === rightVNode.$key$;
727
+ return vnode1.$key$ === vnode2.$key$;
1003
728
  }
1004
729
  }
1005
730
  return false;
@@ -1012,14 +737,6 @@ const referenceNode = (node) => {
1012
737
  return (node && node['s-ol']) || node;
1013
738
  };
1014
739
  const parentReferenceNode = (node) => (node['s-ol'] ? node['s-ol'] : node).parentNode;
1015
- /**
1016
- * Handle reconciling an outdated VNode with a new one which corresponds to
1017
- * it. This function handles flushing updates to the DOM and reconciling the
1018
- * children of the two nodes (if any).
1019
- *
1020
- * @param oldVNode an old VNode whose DOM element and children we want to update
1021
- * @param newVNode a new VNode representing an updated version of the old one
1022
- */
1023
740
  const patch = (oldVNode, newVNode) => {
1024
741
  const elm = (newVNode.$elm$ = oldVNode.$elm$);
1025
742
  const oldChildren = oldVNode.$children$;
@@ -1033,6 +750,7 @@ const patch = (oldVNode, newVNode) => {
1033
750
  // only add this to the when the compiler sees we're using an svg somewhere
1034
751
  isSvgMode = tag === 'svg' ? true : tag === 'foreignObject' ? false : isSvgMode;
1035
752
  }
753
+ // element node
1036
754
  {
1037
755
  if (tag === 'slot')
1038
756
  ;
@@ -1045,7 +763,6 @@ const patch = (oldVNode, newVNode) => {
1045
763
  }
1046
764
  if (oldChildren !== null && newChildren !== null) {
1047
765
  // looks like there's child vnodes for both the old and new vnodes
1048
- // so we need to call `updateChildren` to reconcile them
1049
766
  updateChildren(elm, oldChildren, newVNode, newChildren);
1050
767
  }
1051
768
  else if (newChildren !== null) {
@@ -1086,7 +803,7 @@ const updateFallbackSlotVisibility = (elm) => {
1086
803
  let nodeType;
1087
804
  for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1088
805
  childNode = childNodes[i];
1089
- if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
806
+ if (childNode.nodeType === 1 /* ElementNode */) {
1090
807
  if (childNode['s-sr']) {
1091
808
  // this is a slot fallback node
1092
809
  // get the slot name for this slot reference node
@@ -1098,7 +815,7 @@ const updateFallbackSlotVisibility = (elm) => {
1098
815
  nodeType = childNodes[j].nodeType;
1099
816
  if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1100
817
  // this sibling node is from a different component OR is a named fallback slot node
1101
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
818
+ if (nodeType === 1 /* ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1102
819
  childNode.hidden = true;
1103
820
  break;
1104
821
  }
@@ -1107,8 +824,8 @@ const updateFallbackSlotVisibility = (elm) => {
1107
824
  // this is a default fallback slot node
1108
825
  // any element or text node (with content)
1109
826
  // should hide the default fallback slot node
1110
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1111
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
827
+ if (nodeType === 1 /* ElementNode */ ||
828
+ (nodeType === 3 /* TextNode */ && childNodes[j].textContent.trim() !== '')) {
1112
829
  childNode.hidden = true;
1113
830
  break;
1114
831
  }
@@ -1186,13 +903,13 @@ const relocateSlotContent = (elm) => {
1186
903
  }
1187
904
  }
1188
905
  }
1189
- if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
906
+ if (childNode.nodeType === 1 /* ElementNode */) {
1190
907
  relocateSlotContent(childNode);
1191
908
  }
1192
909
  }
1193
910
  };
1194
911
  const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1195
- if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
912
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1196
913
  if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1197
914
  return true;
1198
915
  }
@@ -1206,31 +923,12 @@ const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1206
923
  }
1207
924
  return slotNameAttr === '';
1208
925
  };
1209
- /**
1210
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1211
- * calling them with `null`. This signals that the DOM element corresponding to
1212
- * the VDom node has been removed from the DOM.
1213
- *
1214
- * @param vNode a virtual DOM node
1215
- */
1216
- const nullifyVNodeRefs = (vNode) => {
926
+ const callNodeRefs = (vNode) => {
1217
927
  {
1218
928
  vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);
1219
- vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);
929
+ vNode.$children$ && vNode.$children$.map(callNodeRefs);
1220
930
  }
1221
931
  };
1222
- /**
1223
- * The main entry point for Stencil's virtual DOM-based rendering engine
1224
- *
1225
- * Given a {@link d.HostRef} container and some virtual DOM nodes, this
1226
- * function will handle creating a virtual DOM tree with a single root, patching
1227
- * the current virtual DOM tree onto an old one (if any), dealing with slot
1228
- * relocation, and reflecting attributes.
1229
- *
1230
- * @param hostRef data needed to root and render the virtual DOM tree, such as
1231
- * the DOM node into which it should be rendered.
1232
- * @param renderFnResults the virtual DOM nodes to be rendered
1233
- */
1234
932
  const renderVdom = (hostRef, renderFnResults) => {
1235
933
  const hostElm = hostRef.$hostElement$;
1236
934
  const cmpMeta = hostRef.$cmpMeta$;
@@ -1242,12 +940,12 @@ const renderVdom = (hostRef, renderFnResults) => {
1242
940
  cmpMeta.$attrsToReflect$.map(([propName, attribute]) => (rootVnode.$attrs$[attribute] = hostElm[propName]));
1243
941
  }
1244
942
  rootVnode.$tag$ = null;
1245
- rootVnode.$flags$ |= 4 /* VNODE_FLAGS.isHost */;
943
+ rootVnode.$flags$ |= 4 /* isHost */;
1246
944
  hostRef.$vnode$ = rootVnode;
1247
945
  rootVnode.$elm$ = oldVNode.$elm$ = (hostElm);
1248
946
  {
1249
947
  contentRef = hostElm['s-cr'];
1250
- useNativeShadowDom = (cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */) !== 0;
948
+ useNativeShadowDom = (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) !== 0;
1251
949
  // always reset
1252
950
  checkSlotFallbackVisibility = false;
1253
951
  }
@@ -1256,7 +954,7 @@ const renderVdom = (hostRef, renderFnResults) => {
1256
954
  {
1257
955
  // while we're moving nodes around existing nodes, temporarily disable
1258
956
  // the disconnectCallback from working
1259
- plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
957
+ plt.$flags$ |= 1 /* isTmpDisconnected */;
1260
958
  if (checkSlotRelocate) {
1261
959
  relocateSlotContent(rootVnode.$elm$);
1262
960
  let relocateData;
@@ -1314,7 +1012,7 @@ const renderVdom = (hostRef, renderFnResults) => {
1314
1012
  }
1315
1013
  else {
1316
1014
  // this node doesn't have a slot home to go to, so let's hide it
1317
- if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1015
+ if (nodeToRelocate.nodeType === 1 /* ElementNode */) {
1318
1016
  nodeToRelocate.hidden = true;
1319
1017
  }
1320
1018
  }
@@ -1325,11 +1023,37 @@ const renderVdom = (hostRef, renderFnResults) => {
1325
1023
  }
1326
1024
  // done moving nodes around
1327
1025
  // allow the disconnect callback to work again
1328
- plt.$flags$ &= ~1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1026
+ plt.$flags$ &= ~1 /* isTmpDisconnected */;
1329
1027
  // always reset
1330
1028
  relocateNodes.length = 0;
1331
1029
  }
1332
1030
  };
1031
+ const getElement = (ref) => (getHostRef(ref).$hostElement$ );
1032
+ const createEvent = (ref, name, flags) => {
1033
+ const elm = getElement(ref);
1034
+ return {
1035
+ emit: (detail) => {
1036
+ return emitEvent(elm, name, {
1037
+ bubbles: !!(flags & 4 /* Bubbles */),
1038
+ composed: !!(flags & 2 /* Composed */),
1039
+ cancelable: !!(flags & 1 /* Cancellable */),
1040
+ detail,
1041
+ });
1042
+ },
1043
+ };
1044
+ };
1045
+ /**
1046
+ * Helper function to create & dispatch a custom Event on a provided target
1047
+ * @param elm the target of the Event
1048
+ * @param name the name to give the custom Event
1049
+ * @param opts options for configuring a custom Event
1050
+ * @returns the custom Event
1051
+ */
1052
+ const emitEvent = (elm, name, opts) => {
1053
+ const ev = plt.ce(name, opts);
1054
+ elm.dispatchEvent(ev);
1055
+ return ev;
1056
+ };
1333
1057
  const attachToAncestor = (hostRef, ancestorComponent) => {
1334
1058
  if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent['s-p']) {
1335
1059
  ancestorComponent['s-p'].push(new Promise((r) => (hostRef.$onRenderResolve$ = r)));
@@ -1337,10 +1061,10 @@ const attachToAncestor = (hostRef, ancestorComponent) => {
1337
1061
  };
1338
1062
  const scheduleUpdate = (hostRef, isInitialLoad) => {
1339
1063
  {
1340
- hostRef.$flags$ |= 16 /* HOST_FLAGS.isQueuedForUpdate */;
1064
+ hostRef.$flags$ |= 16 /* isQueuedForUpdate */;
1341
1065
  }
1342
- if (hostRef.$flags$ & 4 /* HOST_FLAGS.isWaitingForChildren */) {
1343
- hostRef.$flags$ |= 512 /* HOST_FLAGS.needsRerender */;
1066
+ if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {
1067
+ hostRef.$flags$ |= 512 /* needsRerender */;
1344
1068
  return;
1345
1069
  }
1346
1070
  attachToAncestor(hostRef, hostRef.$ancestorComponent$);
@@ -1350,86 +1074,30 @@ const scheduleUpdate = (hostRef, isInitialLoad) => {
1350
1074
  const dispatch = () => dispatchHooks(hostRef, isInitialLoad);
1351
1075
  return writeTask(dispatch) ;
1352
1076
  };
1353
- /**
1354
- * Dispatch initial-render and update lifecycle hooks, enqueuing calls to
1355
- * component lifecycle methods like `componentWillLoad` as well as
1356
- * {@link updateComponent}, which will kick off the virtual DOM re-render.
1357
- *
1358
- * @param hostRef a reference to a host DOM node
1359
- * @param isInitialLoad whether we're on the initial load or not
1360
- * @returns an empty Promise which is used to enqueue a series of operations for
1361
- * the component
1362
- */
1363
1077
  const dispatchHooks = (hostRef, isInitialLoad) => {
1364
1078
  const endSchedule = createTime('scheduleUpdate', hostRef.$cmpMeta$.$tagName$);
1365
1079
  const instance = hostRef.$lazyInstance$ ;
1366
- // We're going to use this variable together with `enqueue` to implement a
1367
- // little promise-based queue. We start out with it `undefined`. When we add
1368
- // the first function to the queue we'll set this variable to be that
1369
- // function's return value. When we attempt to add subsequent values to the
1370
- // queue we'll check that value and, if it was a `Promise`, we'll then chain
1371
- // the new function off of that `Promise` using `.then()`. This will give our
1372
- // queue two nice properties:
1373
- //
1374
- // 1. If all functions added to the queue are synchronous they'll be called
1375
- // synchronously right away.
1376
- // 2. If all functions added to the queue are asynchronous they'll all be
1377
- // called in order after `dispatchHooks` exits.
1378
- let maybePromise;
1080
+ let promise;
1379
1081
  if (isInitialLoad) {
1380
1082
  {
1381
- hostRef.$flags$ |= 256 /* HOST_FLAGS.isListenReady */;
1083
+ hostRef.$flags$ |= 256 /* isListenReady */;
1382
1084
  if (hostRef.$queuedListeners$) {
1383
1085
  hostRef.$queuedListeners$.map(([methodName, event]) => safeCall(instance, methodName, event));
1384
- hostRef.$queuedListeners$ = undefined;
1086
+ hostRef.$queuedListeners$ = null;
1385
1087
  }
1386
1088
  }
1387
1089
  {
1388
- // If `componentWillLoad` returns a `Promise` then we want to wait on
1389
- // whatever's going on in that `Promise` before we launch into
1390
- // rendering the component, doing other lifecycle stuff, etc. So
1391
- // in that case we assign the returned promise to the variable we
1392
- // declared above to hold a possible 'queueing' Promise
1393
- maybePromise = safeCall(instance, 'componentWillLoad');
1090
+ promise = safeCall(instance, 'componentWillLoad');
1394
1091
  }
1395
1092
  }
1396
1093
  {
1397
- maybePromise = enqueue(maybePromise, () => safeCall(instance, 'componentWillRender'));
1094
+ promise = then(promise, () => safeCall(instance, 'componentWillRender'));
1398
1095
  }
1399
1096
  endSchedule();
1400
- return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));
1097
+ return then(promise, () => updateComponent(hostRef, instance, isInitialLoad));
1401
1098
  };
1402
- /**
1403
- * This function uses a Promise to implement a simple first-in, first-out queue
1404
- * of functions to be called.
1405
- *
1406
- * The queue is ordered on the basis of the first argument. If it's
1407
- * `undefined`, then nothing is on the queue yet, so the provided function can
1408
- * be called synchronously (although note that this function may return a
1409
- * `Promise`). The idea is that then the return value of that enqueueing
1410
- * operation is kept around, so that if it was a `Promise` then subsequent
1411
- * functions can be enqueued by calling this function again with that `Promise`
1412
- * as the first argument.
1413
- *
1414
- * @param maybePromise either a `Promise` which should resolve before the next function is called or an 'empty' sentinel
1415
- * @param fn a function to enqueue
1416
- * @returns either a `Promise` or the return value of the provided function
1417
- */
1418
- const enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn) : fn();
1419
- /**
1420
- * Check that a value is a `Promise`. To check, we first see if the value is an
1421
- * instance of the `Promise` global. In a few circumstances, in particular if
1422
- * the global has been overwritten, this is could be misleading, so we also do
1423
- * a little 'duck typing' check to see if the `.then` property of the value is
1424
- * defined and a function.
1425
- *
1426
- * @param maybePromise it might be a promise!
1427
- * @returns whether it is or not
1428
- */
1429
- const isPromisey = (maybePromise) => maybePromise instanceof Promise ||
1430
- (maybePromise && maybePromise.then && typeof maybePromise.then === 'function');
1431
1099
  const updateComponent = async (hostRef, instance, isInitialLoad) => {
1432
- var _a;
1100
+ // updateComponent
1433
1101
  const elm = hostRef.$hostElement$;
1434
1102
  const endUpdate = createTime('update', hostRef.$cmpMeta$.$tagName$);
1435
1103
  const rc = elm['s-rc'];
@@ -1441,6 +1109,9 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1441
1109
  {
1442
1110
  callRender(hostRef, instance);
1443
1111
  }
1112
+ if (plt.$cssShim$) {
1113
+ plt.$cssShim$.updateHost(elm);
1114
+ }
1444
1115
  if (rc) {
1445
1116
  // ok, so turns out there are some child host elements
1446
1117
  // waiting on this parent element to load
@@ -1451,14 +1122,14 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1451
1122
  endRender();
1452
1123
  endUpdate();
1453
1124
  {
1454
- const childrenPromises = (_a = elm['s-p']) !== null && _a !== void 0 ? _a : [];
1125
+ const childrenPromises = elm['s-p'];
1455
1126
  const postUpdate = () => postUpdateComponent(hostRef);
1456
1127
  if (childrenPromises.length === 0) {
1457
1128
  postUpdate();
1458
1129
  }
1459
1130
  else {
1460
1131
  Promise.all(childrenPromises).then(postUpdate);
1461
- hostRef.$flags$ |= 4 /* HOST_FLAGS.isWaitingForChildren */;
1132
+ hostRef.$flags$ |= 4 /* isWaitingForChildren */;
1462
1133
  childrenPromises.length = 0;
1463
1134
  }
1464
1135
  }
@@ -1468,10 +1139,10 @@ const callRender = (hostRef, instance, elm) => {
1468
1139
  renderingRef = instance;
1469
1140
  instance = instance.render && instance.render();
1470
1141
  {
1471
- hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
1142
+ hostRef.$flags$ &= ~16 /* isQueuedForUpdate */;
1472
1143
  }
1473
1144
  {
1474
- hostRef.$flags$ |= 2 /* HOST_FLAGS.hasRendered */;
1145
+ hostRef.$flags$ |= 2 /* hasRendered */;
1475
1146
  }
1476
1147
  {
1477
1148
  {
@@ -1500,8 +1171,8 @@ const postUpdateComponent = (hostRef) => {
1500
1171
  {
1501
1172
  safeCall(instance, 'componentDidRender');
1502
1173
  }
1503
- if (!(hostRef.$flags$ & 64 /* HOST_FLAGS.hasLoadedComponent */)) {
1504
- hostRef.$flags$ |= 64 /* HOST_FLAGS.hasLoadedComponent */;
1174
+ if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {
1175
+ hostRef.$flags$ |= 64 /* hasLoadedComponent */;
1505
1176
  {
1506
1177
  // DOM WRITE!
1507
1178
  addHydratedFlag(elm);
@@ -1530,10 +1201,10 @@ const postUpdateComponent = (hostRef) => {
1530
1201
  hostRef.$onRenderResolve$();
1531
1202
  hostRef.$onRenderResolve$ = undefined;
1532
1203
  }
1533
- if (hostRef.$flags$ & 512 /* HOST_FLAGS.needsRerender */) {
1204
+ if (hostRef.$flags$ & 512 /* needsRerender */) {
1534
1205
  nextTick(() => scheduleUpdate(hostRef, false));
1535
1206
  }
1536
- hostRef.$flags$ &= ~(4 /* HOST_FLAGS.isWaitingForChildren */ | 512 /* HOST_FLAGS.needsRerender */);
1207
+ hostRef.$flags$ &= ~(4 /* isWaitingForChildren */ | 512 /* needsRerender */);
1537
1208
  }
1538
1209
  // ( •_•)
1539
1210
  // ( •_•)>⌐■-■
@@ -1544,7 +1215,7 @@ const forceUpdate = (ref) => {
1544
1215
  const hostRef = getHostRef(ref);
1545
1216
  const isConnected = hostRef.$hostElement$.isConnected;
1546
1217
  if (isConnected &&
1547
- (hostRef.$flags$ & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {
1218
+ (hostRef.$flags$ & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1548
1219
  scheduleUpdate(hostRef, false);
1549
1220
  }
1550
1221
  // Returns "true" when the forced update was successfully scheduled
@@ -1570,8 +1241,58 @@ const safeCall = (instance, method, arg) => {
1570
1241
  }
1571
1242
  return undefined;
1572
1243
  };
1244
+ const then = (promise, thenFn) => {
1245
+ return promise && promise.then ? promise.then(thenFn) : thenFn();
1246
+ };
1573
1247
  const addHydratedFlag = (elm) => elm.classList.add('hydrated')
1574
1248
  ;
1249
+ /**
1250
+ * Parse a new property value for a given property type.
1251
+ *
1252
+ * While the prop value can reasonably be expected to be of `any` type as far as TypeScript's type checker is concerned,
1253
+ * it is not safe to assume that the string returned by evaluating `typeof propValue` matches:
1254
+ * 1. `any`, the type given to `propValue` in the function signature
1255
+ * 2. the type stored from `propType`.
1256
+ *
1257
+ * This function provides the capability to parse/coerce a property's value to potentially any other JavaScript type.
1258
+ *
1259
+ * Property values represented in TSX preserve their type information. In the example below, the number 0 is passed to
1260
+ * a component. This `propValue` will preserve its type information (`typeof propValue === 'number'`). Note that is
1261
+ * based on the type of the value being passed in, not the type declared of the class member decorated with `@Prop`.
1262
+ * ```tsx
1263
+ * <my-cmp prop-val={0}></my-cmp>
1264
+ * ```
1265
+ *
1266
+ * HTML prop values on the other hand, will always a string
1267
+ *
1268
+ * @param propValue the new value to coerce to some type
1269
+ * @param propType the type of the prop, expressed as a binary number
1270
+ * @returns the parsed/coerced value
1271
+ */
1272
+ const parsePropertyValue = (propValue, propType) => {
1273
+ // ensure this value is of the correct prop type
1274
+ if (propValue != null && !isComplexType(propValue)) {
1275
+ if (propType & 4 /* Boolean */) {
1276
+ // per the HTML spec, any string value means it is a boolean true value
1277
+ // but we'll cheat here and say that the string "false" is the boolean false
1278
+ return propValue === 'false' ? false : propValue === '' || !!propValue;
1279
+ }
1280
+ if (propType & 2 /* Number */) {
1281
+ // force it to be a number
1282
+ return parseFloat(propValue);
1283
+ }
1284
+ if (propType & 1 /* String */) {
1285
+ // could have been passed as a number or boolean
1286
+ // but we still want it as a string
1287
+ return String(propValue);
1288
+ }
1289
+ // redundant return here for better minification
1290
+ return propValue;
1291
+ }
1292
+ // not sure exactly what type we want
1293
+ // so no need to change to a different type
1294
+ return propValue;
1295
+ };
1575
1296
  const getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);
1576
1297
  const setValue = (ref, propName, newVal, cmpMeta) => {
1577
1298
  // check our new property value against our internal value
@@ -1584,13 +1305,13 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1584
1305
  // explicitly check for NaN on both sides, as `NaN === NaN` is always false
1585
1306
  const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);
1586
1307
  const didValueChange = newVal !== oldVal && !areBothNaN;
1587
- if ((!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) || oldVal === undefined) && didValueChange) {
1308
+ if ((!(flags & 8 /* isConstructingInstance */) || oldVal === undefined) && didValueChange) {
1588
1309
  // gadzooks! the property's value has changed!!
1589
1310
  // set our new value!
1590
1311
  hostRef.$instanceValues$.set(propName, newVal);
1591
1312
  if (instance) {
1592
1313
  // get an array of method names of watch functions to call
1593
- if (cmpMeta.$watchers$ && flags & 128 /* HOST_FLAGS.isWatchReady */) {
1314
+ if (cmpMeta.$watchers$ && flags & 128 /* isWatchReady */) {
1594
1315
  const watchMethods = cmpMeta.$watchers$[propName];
1595
1316
  if (watchMethods) {
1596
1317
  // this instance is watching for when this property changed
@@ -1605,7 +1326,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1605
1326
  });
1606
1327
  }
1607
1328
  }
1608
- if ((flags & (2 /* HOST_FLAGS.hasRendered */ | 16 /* HOST_FLAGS.isQueuedForUpdate */)) === 2 /* HOST_FLAGS.hasRendered */) {
1329
+ if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {
1609
1330
  // looks like this value actually changed, so we've got work to do!
1610
1331
  // but only if we've already rendered, otherwise just chill out
1611
1332
  // queue that we need to do an update, but don't worry about queuing
@@ -1615,16 +1336,6 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1615
1336
  }
1616
1337
  }
1617
1338
  };
1618
- /**
1619
- * Attach a series of runtime constructs to a compiled Stencil component
1620
- * constructor, including getters and setters for the `@Prop` and `@State`
1621
- * decorators, callbacks for when attributes change, and so on.
1622
- *
1623
- * @param Cstr the constructor for a component that we need to process
1624
- * @param cmpMeta metadata collected previously about the component
1625
- * @param flags a number used to store a series of bit flags
1626
- * @returns a reference to the same constructor passed in (but now mutated)
1627
- */
1628
1339
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1629
1340
  if (cmpMeta.$members$) {
1630
1341
  if (Cstr.watchers) {
@@ -1634,8 +1345,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1634
1345
  const members = Object.entries(cmpMeta.$members$);
1635
1346
  const prototype = Cstr.prototype;
1636
1347
  members.map(([memberName, [memberFlags]]) => {
1637
- if ((memberFlags & 31 /* MEMBER_FLAGS.Prop */ ||
1638
- ((flags & 2 /* PROXY_FLAGS.proxyState */) && memberFlags & 32 /* MEMBER_FLAGS.State */))) {
1348
+ if ((memberFlags & 31 /* Prop */ ||
1349
+ ((flags & 2 /* proxyState */) && memberFlags & 32 /* State */))) {
1639
1350
  // proxyComponent - prop
1640
1351
  Object.defineProperty(prototype, memberName, {
1641
1352
  get() {
@@ -1650,8 +1361,8 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1650
1361
  enumerable: true,
1651
1362
  });
1652
1363
  }
1653
- else if (flags & 1 /* PROXY_FLAGS.isElementConstructor */ &&
1654
- memberFlags & 64 /* MEMBER_FLAGS.Method */) {
1364
+ else if (flags & 1 /* isElementConstructor */ &&
1365
+ memberFlags & 64 /* Method */) {
1655
1366
  // proxyComponent - method
1656
1367
  Object.defineProperty(prototype, memberName, {
1657
1368
  value(...args) {
@@ -1661,7 +1372,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1661
1372
  });
1662
1373
  }
1663
1374
  });
1664
- if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1375
+ if ((flags & 1 /* isElementConstructor */)) {
1665
1376
  const attrNameToPropName = new Map();
1666
1377
  prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1667
1378
  plt.jmp(() => {
@@ -1717,11 +1428,11 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1717
1428
  // create an array of attributes to observe
1718
1429
  // and also create a map of html attribute name to js property name
1719
1430
  Cstr.observedAttributes = members
1720
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1431
+ .filter(([_, m]) => m[0] & 15 /* HasAttribute */) // filter to only keep props that should match attributes
1721
1432
  .map(([propName, m]) => {
1722
1433
  const attrName = m[1] || propName;
1723
1434
  attrNameToPropName.set(attrName, propName);
1724
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1435
+ if (m[0] & 512 /* ReflectAttr */) {
1725
1436
  cmpMeta.$attrsToReflect$.push([propName, attrName]);
1726
1437
  }
1727
1438
  return attrName;
@@ -1732,10 +1443,10 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1732
1443
  };
1733
1444
  const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1734
1445
  // initializeComponent
1735
- if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1736
- // Let the runtime know that the component has been initialized
1737
- hostRef.$flags$ |= 32 /* HOST_FLAGS.hasInitializedComponent */;
1446
+ if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
1738
1447
  {
1448
+ // we haven't initialized this element yet
1449
+ hostRef.$flags$ |= 32 /* hasInitializedComponent */;
1739
1450
  // lazy loaded components
1740
1451
  // request the component's implementation to be
1741
1452
  // wired up with the host element
@@ -1753,7 +1464,7 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1753
1464
  {
1754
1465
  cmpMeta.$watchers$ = Cstr.watchers;
1755
1466
  }
1756
- proxyComponent(Cstr, cmpMeta, 2 /* PROXY_FLAGS.proxyState */);
1467
+ proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);
1757
1468
  Cstr.isProxied = true;
1758
1469
  }
1759
1470
  const endNewInstance = createTime('createInstance', cmpMeta.$tagName$);
@@ -1761,7 +1472,7 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1761
1472
  // but let's keep track of when we start and stop
1762
1473
  // so that the getters/setters don't incorrectly step on data
1763
1474
  {
1764
- hostRef.$flags$ |= 8 /* HOST_FLAGS.isConstructingInstance */;
1475
+ hostRef.$flags$ |= 8 /* isConstructingInstance */;
1765
1476
  }
1766
1477
  // construct the lazy-loaded component implementation
1767
1478
  // passing the hostRef is very important during
@@ -1774,10 +1485,10 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1774
1485
  consoleError(e);
1775
1486
  }
1776
1487
  {
1777
- hostRef.$flags$ &= ~8 /* HOST_FLAGS.isConstructingInstance */;
1488
+ hostRef.$flags$ &= ~8 /* isConstructingInstance */;
1778
1489
  }
1779
1490
  {
1780
- hostRef.$flags$ |= 128 /* HOST_FLAGS.isWatchReady */;
1491
+ hostRef.$flags$ |= 128 /* isWatchReady */;
1781
1492
  }
1782
1493
  endNewInstance();
1783
1494
  fireConnectedCallback(hostRef.$lazyInstance$);
@@ -1788,7 +1499,7 @@ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) =>
1788
1499
  const scopeId = getScopeId(cmpMeta);
1789
1500
  if (!styles.has(scopeId)) {
1790
1501
  const endRegisterStyles = createTime('registerStyles', cmpMeta.$tagName$);
1791
- registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* CMP_FLAGS.shadowDomEncapsulation */));
1502
+ registerStyle(scopeId, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));
1792
1503
  endRegisterStyles();
1793
1504
  }
1794
1505
  }
@@ -1815,20 +1526,19 @@ const fireConnectedCallback = (instance) => {
1815
1526
  }
1816
1527
  };
1817
1528
  const connectedCallback = (elm) => {
1818
- if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1529
+ if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1819
1530
  const hostRef = getHostRef(elm);
1820
1531
  const cmpMeta = hostRef.$cmpMeta$;
1821
1532
  const endConnected = createTime('connectedCallback', cmpMeta.$tagName$);
1822
- if (!(hostRef.$flags$ & 1 /* HOST_FLAGS.hasConnected */)) {
1533
+ if (!(hostRef.$flags$ & 1 /* hasConnected */)) {
1823
1534
  // first time this component has connected
1824
- hostRef.$flags$ |= 1 /* HOST_FLAGS.hasConnected */;
1535
+ hostRef.$flags$ |= 1 /* hasConnected */;
1825
1536
  {
1826
1537
  // initUpdate
1827
1538
  // if the slot polyfill is required we'll need to put some nodes
1828
1539
  // in here to act as original content anchors as we move nodes around
1829
1540
  // host element has been connected to the DOM
1830
- if ((// TODO(STENCIL-854): Remove code related to legacy shadowDomShim field
1831
- cmpMeta.$flags$ & (4 /* CMP_FLAGS.hasSlotRelocation */ | 8 /* CMP_FLAGS.needsShadowDomShim */))) {
1541
+ if ((cmpMeta.$flags$ & (4 /* hasSlotRelocation */ | 8 /* needsShadowDomShim */))) {
1832
1542
  setContentReference(elm);
1833
1543
  }
1834
1544
  }
@@ -1851,7 +1561,7 @@ const connectedCallback = (elm) => {
1851
1561
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
1852
1562
  if (cmpMeta.$members$) {
1853
1563
  Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {
1854
- if (memberFlags & 31 /* MEMBER_FLAGS.Prop */ && elm.hasOwnProperty(memberName)) {
1564
+ if (memberFlags & 31 /* Prop */ && elm.hasOwnProperty(memberName)) {
1855
1565
  const value = elm[memberName];
1856
1566
  delete elm[memberName];
1857
1567
  elm[memberName] = value;
@@ -1889,7 +1599,7 @@ const setContentReference = (elm) => {
1889
1599
  elm.insertBefore(contentRefElm, elm.firstChild);
1890
1600
  };
1891
1601
  const disconnectedCallback = (elm) => {
1892
- if ((plt.$flags$ & 1 /* PLATFORM_FLAGS.isTmpDisconnected */) === 0) {
1602
+ if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {
1893
1603
  const hostRef = getHostRef(elm);
1894
1604
  const instance = hostRef.$lazyInstance$ ;
1895
1605
  {
@@ -1898,13 +1608,16 @@ const disconnectedCallback = (elm) => {
1898
1608
  hostRef.$rmListeners$ = undefined;
1899
1609
  }
1900
1610
  }
1611
+ // clear CSS var-shim tracking
1612
+ if (plt.$cssShim$) {
1613
+ plt.$cssShim$.removeHost(elm);
1614
+ }
1901
1615
  {
1902
1616
  safeCall(instance, 'disconnectedCallback');
1903
1617
  }
1904
1618
  }
1905
1619
  };
1906
1620
  const bootstrapLazy = (lazyBundles, options = {}) => {
1907
- var _a;
1908
1621
  const endBootstrap = createTime();
1909
1622
  const cmpTags = [];
1910
1623
  const exclude = options.exclude || [];
@@ -1969,18 +1682,13 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1969
1682
  cmpMeta.$lazyBundleId$ = lazyBundle[0];
1970
1683
  if (!exclude.includes(tagName) && !customElements.get(tagName)) {
1971
1684
  cmpTags.push(tagName);
1972
- customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* PROXY_FLAGS.isElementConstructor */));
1685
+ customElements.define(tagName, proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */));
1973
1686
  }
1974
1687
  });
1975
1688
  });
1976
1689
  {
1977
1690
  visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
1978
1691
  visibilityStyle.setAttribute('data-styles', '');
1979
- // Apply CSP nonce to the style tag if it exists
1980
- const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
1981
- if (nonce != null) {
1982
- visibilityStyle.setAttribute('nonce', nonce);
1983
- }
1984
1692
  head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
1985
1693
  }
1986
1694
  // Process deferred connectedCallbacks now all components have been registered
@@ -1996,48 +1704,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
1996
1704
  // Fallback appLoad event
1997
1705
  endBootstrap();
1998
1706
  };
1999
- const addHostEventListeners = (elm, hostRef, listeners, attachParentListeners) => {
2000
- if (listeners) {
2001
- listeners.map(([flags, name, method]) => {
2002
- const target = getHostListenerTarget(elm, flags) ;
2003
- const handler = hostListenerProxy(hostRef, method);
2004
- const opts = hostListenerOpts(flags);
2005
- plt.ael(target, name, handler, opts);
2006
- (hostRef.$rmListeners$ = hostRef.$rmListeners$ || []).push(() => plt.rel(target, name, handler, opts));
2007
- });
2008
- }
2009
- };
2010
- const hostListenerProxy = (hostRef, methodName) => (ev) => {
2011
- try {
2012
- {
2013
- if (hostRef.$flags$ & 256 /* HOST_FLAGS.isListenReady */) {
2014
- // instance is ready, let's call it's member method for this event
2015
- hostRef.$lazyInstance$[methodName](ev);
2016
- }
2017
- else {
2018
- (hostRef.$queuedListeners$ = hostRef.$queuedListeners$ || []).push([methodName, ev]);
2019
- }
2020
- }
2021
- }
2022
- catch (e) {
2023
- consoleError(e);
2024
- }
2025
- };
2026
- const getHostListenerTarget = (elm, flags) => {
2027
- if (flags & 4 /* LISTENER_FLAGS.TargetDocument */)
2028
- return doc;
2029
- return elm;
2030
- };
2031
- // prettier-ignore
2032
- const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !== 0;
2033
- /**
2034
- * Assigns the given value to the nonce property on the runtime platform object.
2035
- * During runtime, this value is used to set the nonce attribute on all dynamically created script and style tags.
2036
- * @param nonce The value to be assigned to the platform nonce property.
2037
- * @returns void
2038
- */
2039
- const setNonce = (nonce) => (plt.$nonce$ = nonce);
2040
- const hostRefs = /*@__PURE__*/ new WeakMap();
1707
+ const hostRefs = new WeakMap();
2041
1708
  const getHostRef = (ref) => hostRefs.get(ref);
2042
1709
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2043
1710
  const registerHost = (elm, cmpMeta) => {
@@ -2103,35 +1770,14 @@ const loadModule = (cmpMeta, hostRef, hmrVersionId) => {
2103
1770
  return importedModule[exportName];
2104
1771
  }, consoleError);
2105
1772
  };
2106
- const styles = /*@__PURE__*/ new Map();
2107
- const win = typeof window !== 'undefined' ? window : {};
2108
- const doc = win.document || { head: {} };
2109
- const plt = {
2110
- $flags$: 0,
2111
- $resourcesUrl$: '',
2112
- jmp: (h) => h(),
2113
- raf: (h) => requestAnimationFrame(h),
2114
- ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),
2115
- rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),
2116
- ce: (eventName, opts) => new CustomEvent(eventName, opts),
2117
- };
2118
- const promiseResolve = (v) => Promise.resolve(v);
2119
- const supportsConstructableStylesheets = /*@__PURE__*/ (() => {
2120
- try {
2121
- new CSSStyleSheet();
2122
- return typeof new CSSStyleSheet().replaceSync === 'function';
2123
- }
2124
- catch (e) { }
2125
- return false;
2126
- })()
2127
- ;
1773
+ const styles = new Map();
2128
1774
  const queueDomReads = [];
2129
1775
  const queueDomWrites = [];
2130
1776
  const queueTask = (queue, write) => (cb) => {
2131
1777
  queue.push(cb);
2132
1778
  if (!queuePending) {
2133
1779
  queuePending = true;
2134
- if (write && plt.$flags$ & 4 /* PLATFORM_FLAGS.queueSync */) {
1780
+ if (write && plt.$flags$ & 4 /* queueSync */) {
2135
1781
  nextTick(flush);
2136
1782
  }
2137
1783
  else {
@@ -2168,6 +1814,4 @@ const flush = () => {
2168
1814
  const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
2169
1815
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2170
1816
 
2171
- export { 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 };
2172
-
2173
- //# sourceMappingURL=index-f21f8a13.js.map
1817
+ export { CSS as C, Host as H, NAMESPACE as N, promiseResolve as a, bootstrapLazy as b, createEvent as c, doc as d, getElement as e, forceUpdate as f, getRenderingRef as g, h, plt as p, registerInstance as r, win as w };