@dso-toolkit/core 62.4.0 → 62.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (308) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-accordion.cjs.entry.js +1 -1
  4. package/dist/cjs/dso-action-list-item.cjs.entry.js +1 -1
  5. package/dist/cjs/dso-action-list.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-alert_7.cjs.entry.js +6 -6
  7. package/dist/cjs/dso-alert_7.cjs.entry.js.map +1 -1
  8. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +2 -2
  9. package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
  10. package/dist/cjs/dso-autosuggest.cjs.entry.js +3 -3
  11. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
  13. package/dist/cjs/dso-card.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
  15. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
  16. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  17. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +2 -2
  18. package/dist/cjs/dso-expandable.cjs.entry.js +2 -2
  19. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  20. package/dist/cjs/dso-header.cjs.entry.js +2 -2
  21. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +2 -2
  23. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  24. package/dist/cjs/dso-icon.cjs.entry.js +7 -1
  25. package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
  26. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  27. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  28. package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
  29. package/dist/cjs/dso-logo.cjs.entry.js +1 -1
  30. package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
  31. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  32. package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
  33. package/dist/cjs/dso-mark-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -1
  35. package/dist/cjs/dso-modal.cjs.entry.js +2 -2
  36. package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
  37. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  38. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  39. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  40. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  41. package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
  42. package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
  43. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  44. package/dist/cjs/dso-toolkit.cjs.js +3 -3
  45. package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
  46. package/dist/cjs/dso-tooltip.cjs.entry.js +2 -2
  47. package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
  48. package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
  49. package/dist/cjs/dso-viewer-grid.cjs.entry.js +2 -2
  50. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  51. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1 -1
  52. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  53. package/dist/cjs/{focus-trap.esm-b6bba312.js → focus-trap.esm-6cff35a7.js} +45 -26
  54. package/dist/cjs/focus-trap.esm-6cff35a7.js.map +1 -0
  55. package/dist/cjs/index-1b083a00.js +100 -0
  56. package/dist/cjs/index-1b083a00.js.map +1 -0
  57. package/dist/cjs/{index-d46ec033.js → index-2556c4c6.js} +312 -127
  58. package/dist/cjs/index-2556c4c6.js.map +1 -0
  59. package/dist/cjs/loader.cjs.js +2 -2
  60. package/dist/cjs/{v4-abb5dc0c.js → v4-c23234d2.js} +2 -2
  61. package/dist/cjs/v4-c23234d2.js.map +1 -0
  62. package/dist/collection/collection-manifest.json +2 -2
  63. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  64. package/dist/collection/components/alert/alert.js +1 -3
  65. package/dist/collection/components/alert/alert.js.map +1 -1
  66. package/dist/collection/components/date-picker-legacy/utils/month-range.js.map +1 -1
  67. package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -1
  68. package/dist/collection/components/expandable/expandable.js.map +1 -1
  69. package/dist/collection/components/header/header.js.map +1 -1
  70. package/dist/collection/components/icon/icon.js +2 -0
  71. package/dist/collection/components/icon/icon.js.map +1 -1
  72. package/dist/collection/components/image-overlay/image-overlay.js.map +1 -1
  73. package/dist/collection/components/label/label.js +1 -1
  74. package/dist/collection/components/label/label.js.map +1 -1
  75. package/dist/collection/components/pagination/pagination.js.map +1 -1
  76. package/dist/collection/components/scrollable/scrollable.js.map +1 -1
  77. package/dist/collection/components/table/table.css +1 -0
  78. package/dist/collection/components/tree-view/tree-item.js +1 -1
  79. package/dist/collection/components/tree-view/tree-item.js.map +1 -1
  80. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  81. package/dist/collection/components/viewer-grid/components/sizing-buttons.js.map +1 -1
  82. package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
  83. package/dist/components/dropdown-menu.js +5 -0
  84. package/dist/components/dropdown-menu.js.map +1 -1
  85. package/dist/components/dso-accordion-section.js.map +1 -1
  86. package/dist/components/dso-accordion.js +3 -0
  87. package/dist/components/dso-accordion.js.map +1 -1
  88. package/dist/components/dso-autosuggest.js +3 -1
  89. package/dist/components/dso-autosuggest.js.map +1 -1
  90. package/dist/components/dso-date-picker-legacy.js.map +1 -1
  91. package/dist/components/dso-header.js +2 -0
  92. package/dist/components/dso-header.js.map +1 -1
  93. package/dist/components/dso-helpcenter-panel.js +4 -1
  94. package/dist/components/dso-helpcenter-panel.js.map +1 -1
  95. package/dist/components/dso-list-button.js +2 -0
  96. package/dist/components/dso-list-button.js.map +1 -1
  97. package/dist/components/dso-map-controls.js +2 -0
  98. package/dist/components/dso-map-controls.js.map +1 -1
  99. package/dist/components/dso-mark-bar.js.map +1 -1
  100. package/dist/components/dso-pagination.js.map +1 -1
  101. package/dist/components/dso-tree-view.js +1 -1
  102. package/dist/components/dso-tree-view.js.map +1 -1
  103. package/dist/components/dso-viewer-grid.js +4 -0
  104. package/dist/components/dso-viewer-grid.js.map +1 -1
  105. package/dist/components/dsot-document-component-demo.js +3 -0
  106. package/dist/components/dsot-document-component-demo.js.map +1 -1
  107. package/dist/components/expandable.js +3 -0
  108. package/dist/components/expandable.js.map +1 -1
  109. package/dist/components/focus-trap.esm.js +44 -25
  110. package/dist/components/focus-trap.esm.js.map +1 -1
  111. package/dist/components/icon.js +6 -0
  112. package/dist/components/icon.js.map +1 -1
  113. package/dist/components/image-overlay.js.map +1 -1
  114. package/dist/components/index2.js +90 -64
  115. package/dist/components/index2.js.map +1 -1
  116. package/dist/components/label.js +5 -2
  117. package/dist/components/label.js.map +1 -1
  118. package/dist/components/ozon-content.js +2 -0
  119. package/dist/components/ozon-content.js.map +1 -1
  120. package/dist/components/scrollable.js.map +1 -1
  121. package/dist/components/selectable.js +2 -0
  122. package/dist/components/selectable.js.map +1 -1
  123. package/dist/components/table.js +1 -1
  124. package/dist/components/table.js.map +1 -1
  125. package/dist/components/tooltip.js +4 -0
  126. package/dist/components/tooltip.js.map +1 -1
  127. package/dist/components/v4.js +1 -1
  128. package/dist/components/v4.js.map +1 -1
  129. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  130. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  131. package/dist/dso-toolkit/{p-fbb63820.entry.js → p-02c35f4e.entry.js} +2 -2
  132. package/dist/dso-toolkit/{p-f0bc4a9d.entry.js → p-09552584.entry.js} +2 -2
  133. package/dist/dso-toolkit/{p-4e2407bf.entry.js → p-09e0f1a6.entry.js} +2 -2
  134. package/dist/dso-toolkit/{p-f819cf13.entry.js → p-0afd6a86.entry.js} +2 -2
  135. package/dist/dso-toolkit/{p-dae7d6f2.entry.js → p-1180ebe3.entry.js} +2 -2
  136. package/dist/dso-toolkit/p-1180ebe3.entry.js.map +1 -0
  137. package/dist/dso-toolkit/{p-6f533d1a.entry.js → p-11eb95a2.entry.js} +2 -2
  138. package/dist/dso-toolkit/p-14616bce.js +2 -0
  139. package/dist/dso-toolkit/p-14616bce.js.map +1 -0
  140. package/dist/dso-toolkit/{p-0bac5eea.entry.js → p-15c3da8e.entry.js} +2 -2
  141. package/dist/dso-toolkit/{p-0c156f79.entry.js → p-2258933b.entry.js} +2 -2
  142. package/dist/dso-toolkit/{p-0c156f79.entry.js.map → p-2258933b.entry.js.map} +1 -1
  143. package/dist/dso-toolkit/{p-76c0fc1b.entry.js → p-2cd3e805.entry.js} +2 -2
  144. package/dist/dso-toolkit/{p-59fe2479.entry.js → p-302764ae.entry.js} +2 -2
  145. package/dist/dso-toolkit/p-302764ae.entry.js.map +1 -0
  146. package/dist/dso-toolkit/{p-0c14a2e5.entry.js → p-43511221.entry.js} +2 -2
  147. package/dist/dso-toolkit/p-4592810d.js +3 -0
  148. package/dist/dso-toolkit/p-4592810d.js.map +1 -0
  149. package/dist/dso-toolkit/{p-1db9f4a4.entry.js → p-482c8ebd.entry.js} +2 -2
  150. package/dist/dso-toolkit/{p-b5824894.entry.js → p-4f601b8c.entry.js} +2 -2
  151. package/dist/dso-toolkit/p-4f601b8c.entry.js.map +1 -0
  152. package/dist/dso-toolkit/{p-169e3931.entry.js → p-51f9702b.entry.js} +2 -2
  153. package/dist/dso-toolkit/{p-4e04b39f.entry.js → p-54444f78.entry.js} +2 -2
  154. package/dist/dso-toolkit/p-54444f78.entry.js.map +1 -0
  155. package/dist/dso-toolkit/{p-ca222ec3.entry.js → p-56136f3c.entry.js} +2 -2
  156. package/dist/dso-toolkit/p-5eb2019a.entry.js +2 -0
  157. package/dist/dso-toolkit/p-5eb2019a.entry.js.map +1 -0
  158. package/dist/dso-toolkit/{p-2ab99812.entry.js → p-5f39d08c.entry.js} +2 -2
  159. package/dist/dso-toolkit/{p-4423c2b5.entry.js → p-7371aee1.entry.js} +2 -2
  160. package/dist/dso-toolkit/{p-6dfe9062.entry.js → p-78baffb7.entry.js} +2 -2
  161. package/dist/dso-toolkit/{p-5a47a86e.entry.js → p-7b36db3a.entry.js} +2 -2
  162. package/dist/dso-toolkit/{p-6af09f64.entry.js → p-7cac2dd2.entry.js} +2 -2
  163. package/dist/dso-toolkit/{p-a377846a.entry.js → p-84be819d.entry.js} +2 -2
  164. package/dist/dso-toolkit/p-84be819d.entry.js.map +1 -0
  165. package/dist/dso-toolkit/p-94f26620.js +2 -0
  166. package/dist/dso-toolkit/p-94f26620.js.map +1 -0
  167. package/dist/dso-toolkit/p-a435b9fd.entry.js +2 -0
  168. package/dist/dso-toolkit/{p-5c976ac9.entry.js.map → p-a435b9fd.entry.js.map} +1 -1
  169. package/dist/dso-toolkit/{p-ebda3d53.entry.js → p-b0116121.entry.js} +2 -2
  170. package/dist/dso-toolkit/{p-60301d53.entry.js → p-b6af439e.entry.js} +2 -2
  171. package/dist/dso-toolkit/{p-c17c4294.entry.js → p-b8ff5318.entry.js} +2 -2
  172. package/dist/dso-toolkit/{p-c17c4294.entry.js.map → p-b8ff5318.entry.js.map} +1 -1
  173. package/dist/dso-toolkit/{p-31e6774e.entry.js → p-b9059ec2.entry.js} +2 -2
  174. package/dist/dso-toolkit/{p-e729bdf2.entry.js → p-c1bab0f1.entry.js} +2 -2
  175. package/dist/dso-toolkit/{p-b68ac725.entry.js → p-d165ad74.entry.js} +2 -2
  176. package/dist/dso-toolkit/p-d165ad74.entry.js.map +1 -0
  177. package/dist/dso-toolkit/{p-8bee65a1.entry.js → p-df63a085.entry.js} +2 -2
  178. package/dist/dso-toolkit/{p-0e095af8.entry.js → p-e1cb1603.entry.js} +2 -2
  179. package/dist/dso-toolkit/{p-7edafced.entry.js → p-e2f7399e.entry.js} +2 -2
  180. package/dist/dso-toolkit/p-e348d48b.entry.js +2 -0
  181. package/dist/dso-toolkit/p-e348d48b.entry.js.map +1 -0
  182. package/dist/dso-toolkit/{p-cce85c45.entry.js → p-eb7275e9.entry.js} +2 -2
  183. package/dist/dso-toolkit/{p-f99eee3d.entry.js → p-f3bd801e.entry.js} +2 -2
  184. package/dist/dso-toolkit/p-f3bd801e.entry.js.map +1 -0
  185. package/dist/dso-toolkit/{p-2401e7f9.entry.js → p-f493248a.entry.js} +2 -2
  186. package/dist/dso-toolkit/{p-2401e7f9.entry.js.map → p-f493248a.entry.js.map} +1 -1
  187. package/dist/dso-toolkit/p-fbb226aa.js +6 -0
  188. package/dist/dso-toolkit/p-fbb226aa.js.map +1 -0
  189. package/dist/dso-toolkit/{p-755e55cf.entry.js → p-fd4b0b0b.entry.js} +2 -2
  190. package/dist/esm/dso-accordion-section.entry.js +1 -1
  191. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  192. package/dist/esm/dso-accordion.entry.js +1 -1
  193. package/dist/esm/dso-action-list-item.entry.js +1 -1
  194. package/dist/esm/dso-action-list.entry.js +1 -1
  195. package/dist/esm/dso-alert_7.entry.js +6 -6
  196. package/dist/esm/dso-alert_7.entry.js.map +1 -1
  197. package/dist/esm/dso-annotation-output_3.entry.js +2 -2
  198. package/dist/esm/dso-attachments-counter.entry.js +1 -1
  199. package/dist/esm/dso-autosuggest.entry.js +3 -3
  200. package/dist/esm/dso-banner.entry.js +1 -1
  201. package/dist/esm/dso-card-container.entry.js +1 -1
  202. package/dist/esm/dso-card.entry.js +1 -1
  203. package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
  204. package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
  205. package/dist/esm/dso-date-picker.entry.js +1 -1
  206. package/dist/esm/dso-dropdown-menu.entry.js +2 -2
  207. package/dist/esm/dso-expandable.entry.js +2 -2
  208. package/dist/esm/dso-expandable.entry.js.map +1 -1
  209. package/dist/esm/dso-header.entry.js +2 -2
  210. package/dist/esm/dso-header.entry.js.map +1 -1
  211. package/dist/esm/dso-helpcenter-panel.entry.js +2 -2
  212. package/dist/esm/dso-highlight-box.entry.js +1 -1
  213. package/dist/esm/dso-icon.entry.js +7 -1
  214. package/dist/esm/dso-icon.entry.js.map +1 -1
  215. package/dist/esm/dso-info-button.entry.js +1 -1
  216. package/dist/esm/dso-info_2.entry.js +1 -1
  217. package/dist/esm/dso-list-button.entry.js +2 -2
  218. package/dist/esm/dso-logo.entry.js +1 -1
  219. package/dist/esm/dso-map-base-layers.entry.js +2 -2
  220. package/dist/esm/dso-map-controls.entry.js +1 -1
  221. package/dist/esm/dso-map-overlays.entry.js +2 -2
  222. package/dist/esm/dso-mark-bar.entry.js +1 -1
  223. package/dist/esm/dso-mark-bar.entry.js.map +1 -1
  224. package/dist/esm/dso-modal.entry.js +2 -2
  225. package/dist/esm/dso-pagination.entry.js +1 -1
  226. package/dist/esm/dso-pagination.entry.js.map +1 -1
  227. package/dist/esm/dso-progress-bar.entry.js +1 -1
  228. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  229. package/dist/esm/dso-responsive-element.entry.js +1 -1
  230. package/dist/esm/dso-scrollable.entry.js +2 -2
  231. package/dist/esm/dso-scrollable.entry.js.map +1 -1
  232. package/dist/esm/dso-toggletip.entry.js +1 -1
  233. package/dist/esm/dso-toolkit.js +4 -4
  234. package/dist/esm/dso-toolkit.js.map +1 -1
  235. package/dist/esm/dso-tooltip.entry.js +2 -2
  236. package/dist/esm/dso-tree-view.entry.js +2 -2
  237. package/dist/esm/dso-tree-view.entry.js.map +1 -1
  238. package/dist/esm/dso-viewer-grid.entry.js +2 -2
  239. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  240. package/dist/esm/dsot-document-component-demo.entry.js +1 -1
  241. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  242. package/dist/esm/{focus-trap.esm-ad846bd4.js → focus-trap.esm-d8deb1f0.js} +45 -26
  243. package/dist/esm/focus-trap.esm-d8deb1f0.js.map +1 -0
  244. package/dist/esm/{index-f82ed648.js → index-528d5213.js} +312 -127
  245. package/dist/esm/index-528d5213.js.map +1 -0
  246. package/dist/esm/index-aaea0a65.js +98 -0
  247. package/dist/esm/index-aaea0a65.js.map +1 -0
  248. package/dist/esm/loader.js +3 -3
  249. package/dist/esm/{v4-d398bde5.js → v4-23648a96.js} +2 -2
  250. package/dist/esm/v4-23648a96.js.map +1 -0
  251. package/dist/types/components.d.ts +342 -0
  252. package/dist/types/stencil-public-runtime.d.ts +24 -3
  253. package/package.json +17 -17
  254. package/dist/cjs/focus-trap.esm-b6bba312.js.map +0 -1
  255. package/dist/cjs/index-794ad37a.js +0 -74
  256. package/dist/cjs/index-794ad37a.js.map +0 -1
  257. package/dist/cjs/index-d46ec033.js.map +0 -1
  258. package/dist/cjs/v4-abb5dc0c.js.map +0 -1
  259. package/dist/dso-toolkit/p-0fbddb1a.entry.js +0 -2
  260. package/dist/dso-toolkit/p-0fbddb1a.entry.js.map +0 -1
  261. package/dist/dso-toolkit/p-1521d319.js +0 -6
  262. package/dist/dso-toolkit/p-1521d319.js.map +0 -1
  263. package/dist/dso-toolkit/p-1805f5b0.js +0 -2
  264. package/dist/dso-toolkit/p-1805f5b0.js.map +0 -1
  265. package/dist/dso-toolkit/p-3ca5b6f4.js +0 -3
  266. package/dist/dso-toolkit/p-3ca5b6f4.js.map +0 -1
  267. package/dist/dso-toolkit/p-4ace5655.entry.js +0 -2
  268. package/dist/dso-toolkit/p-4ace5655.entry.js.map +0 -1
  269. package/dist/dso-toolkit/p-4e04b39f.entry.js.map +0 -1
  270. package/dist/dso-toolkit/p-59fe2479.entry.js.map +0 -1
  271. package/dist/dso-toolkit/p-5c976ac9.entry.js +0 -2
  272. package/dist/dso-toolkit/p-5d7f4ff2.js +0 -2
  273. package/dist/dso-toolkit/p-5d7f4ff2.js.map +0 -1
  274. package/dist/dso-toolkit/p-a377846a.entry.js.map +0 -1
  275. package/dist/dso-toolkit/p-b5824894.entry.js.map +0 -1
  276. package/dist/dso-toolkit/p-b68ac725.entry.js.map +0 -1
  277. package/dist/dso-toolkit/p-dae7d6f2.entry.js.map +0 -1
  278. package/dist/dso-toolkit/p-f99eee3d.entry.js.map +0 -1
  279. package/dist/esm/focus-trap.esm-ad846bd4.js.map +0 -1
  280. package/dist/esm/index-f2bf58ce.js +0 -72
  281. package/dist/esm/index-f2bf58ce.js.map +0 -1
  282. package/dist/esm/index-f82ed648.js.map +0 -1
  283. package/dist/esm/v4-d398bde5.js.map +0 -1
  284. /package/dist/dso-toolkit/{p-fbb63820.entry.js.map → p-02c35f4e.entry.js.map} +0 -0
  285. /package/dist/dso-toolkit/{p-f0bc4a9d.entry.js.map → p-09552584.entry.js.map} +0 -0
  286. /package/dist/dso-toolkit/{p-4e2407bf.entry.js.map → p-09e0f1a6.entry.js.map} +0 -0
  287. /package/dist/dso-toolkit/{p-f819cf13.entry.js.map → p-0afd6a86.entry.js.map} +0 -0
  288. /package/dist/dso-toolkit/{p-6f533d1a.entry.js.map → p-11eb95a2.entry.js.map} +0 -0
  289. /package/dist/dso-toolkit/{p-0bac5eea.entry.js.map → p-15c3da8e.entry.js.map} +0 -0
  290. /package/dist/dso-toolkit/{p-76c0fc1b.entry.js.map → p-2cd3e805.entry.js.map} +0 -0
  291. /package/dist/dso-toolkit/{p-0c14a2e5.entry.js.map → p-43511221.entry.js.map} +0 -0
  292. /package/dist/dso-toolkit/{p-1db9f4a4.entry.js.map → p-482c8ebd.entry.js.map} +0 -0
  293. /package/dist/dso-toolkit/{p-169e3931.entry.js.map → p-51f9702b.entry.js.map} +0 -0
  294. /package/dist/dso-toolkit/{p-ca222ec3.entry.js.map → p-56136f3c.entry.js.map} +0 -0
  295. /package/dist/dso-toolkit/{p-2ab99812.entry.js.map → p-5f39d08c.entry.js.map} +0 -0
  296. /package/dist/dso-toolkit/{p-4423c2b5.entry.js.map → p-7371aee1.entry.js.map} +0 -0
  297. /package/dist/dso-toolkit/{p-6dfe9062.entry.js.map → p-78baffb7.entry.js.map} +0 -0
  298. /package/dist/dso-toolkit/{p-5a47a86e.entry.js.map → p-7b36db3a.entry.js.map} +0 -0
  299. /package/dist/dso-toolkit/{p-6af09f64.entry.js.map → p-7cac2dd2.entry.js.map} +0 -0
  300. /package/dist/dso-toolkit/{p-ebda3d53.entry.js.map → p-b0116121.entry.js.map} +0 -0
  301. /package/dist/dso-toolkit/{p-60301d53.entry.js.map → p-b6af439e.entry.js.map} +0 -0
  302. /package/dist/dso-toolkit/{p-31e6774e.entry.js.map → p-b9059ec2.entry.js.map} +0 -0
  303. /package/dist/dso-toolkit/{p-e729bdf2.entry.js.map → p-c1bab0f1.entry.js.map} +0 -0
  304. /package/dist/dso-toolkit/{p-8bee65a1.entry.js.map → p-df63a085.entry.js.map} +0 -0
  305. /package/dist/dso-toolkit/{p-0e095af8.entry.js.map → p-e1cb1603.entry.js.map} +0 -0
  306. /package/dist/dso-toolkit/{p-7edafced.entry.js.map → p-e2f7399e.entry.js.map} +0 -0
  307. /package/dist/dso-toolkit/{p-cce85c45.entry.js.map → p-eb7275e9.entry.js.map} +0 -0
  308. /package/dist/dso-toolkit/{p-755e55cf.entry.js.map → p-fd4b0b0b.entry.js.map} +0 -0
@@ -1,4 +1,5 @@
1
1
  const NAMESPACE = 'dso-toolkit';
2
+ const BUILD = /* dso-toolkit */ { allRenderFn: true, appendChildSlotFix: false, asyncLoading: true, asyncQueue: false, attachStyles: true, cloneNodeFix: false, cmpDidLoad: true, cmpDidRender: true, cmpDidUnload: false, cmpDidUpdate: false, cmpShouldUpdate: false, cmpWillLoad: true, cmpWillRender: false, cmpWillUpdate: false, connectedCallback: true, constructableCSS: true, cssAnnotations: true, devTools: false, disconnectedCallback: true, element: false, event: true, experimentalSlotFixes: false, formAssociated: false, hasRenderFn: true, hostListener: true, hostListenerTarget: true, hostListenerTargetBody: false, hostListenerTargetDocument: true, hostListenerTargetParent: false, hostListenerTargetWindow: true, hotModuleReplacement: false, hydrateClientSide: false, hydrateServerSide: false, hydratedAttribute: false, hydratedClass: true, initializeNextTick: false, invisiblePrehydration: true, isDebug: false, isDev: false, isTesting: false, lazyLoad: true, lifecycle: true, lifecycleDOMEvents: false, member: true, method: true, mode: false, observeAttribute: true, profile: false, prop: true, propBoolean: true, propMutable: true, propNumber: true, propString: true, reflect: true, scoped: true, scopedSlotTextContentFix: false, scriptDataOpts: false, shadowDelegatesFocus: false, shadowDom: true, slot: true, slotChildNodesFix: false, slotRelocation: true, state: true, style: true, svg: true, taskQueue: true, transformTagName: false, updatable: true, vdomAttribute: true, vdomClass: true, vdomFunctional: true, vdomKey: true, vdomListener: true, vdomPropOrAttr: true, vdomRef: true, vdomRender: true, vdomStyle: true, vdomText: true, vdomXlink: true, watchCallback: true };
2
3
 
3
4
  /**
4
5
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -32,6 +33,13 @@ const uniqueTime = (key, measureText) => {
32
33
  }
33
34
  };
34
35
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
36
+ /**
37
+ * Constant for styles to be globally applied to `slot-fb` elements for pseudo-slot behavior.
38
+ *
39
+ * Two cascading rules must be used instead of a `:not()` selector due to Stencil browser
40
+ * support as of Stencil v4.
41
+ */
42
+ const SLOT_FB_CSS = 'slot-fb{display:contents}slot-fb[hidden]{display:none}';
35
43
  const XLINK_NS = 'http://www.w3.org/1999/xlink';
36
44
  /**
37
45
  * Default style mode id
@@ -112,13 +120,13 @@ const h = (nodeName, vnodeData, ...children) => {
112
120
  };
113
121
  walk(children);
114
122
  if (vnodeData) {
115
- // normalize class / classname attributes
116
123
  if (vnodeData.key) {
117
124
  key = vnodeData.key;
118
125
  }
119
126
  if (vnodeData.name) {
120
127
  slotName = vnodeData.name;
121
128
  }
129
+ // normalize class / className attributes
122
130
  {
123
131
  const classData = vnodeData.className || vnodeData.class;
124
132
  if (classData) {
@@ -352,6 +360,10 @@ const addStyle = (styleContainerNode, cmpMeta, mode) => {
352
360
  }
353
361
  styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
354
362
  }
363
+ // Add styles for `slot-fb` elements if we're using slots outside the Shadow DOM
364
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
365
+ styleElm.innerHTML += SLOT_FB_CSS;
366
+ }
355
367
  if (appliedStyles) {
356
368
  appliedStyles.add(scopeId);
357
369
  }
@@ -485,11 +497,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
485
497
  // except for the first character, we keep the event name case
486
498
  memberName = ln[2] + memberName.slice(3);
487
499
  }
488
- if (oldValue) {
489
- plt.rel(elm, memberName, oldValue, false);
490
- }
491
- if (newValue) {
492
- plt.ael(elm, memberName, newValue, false);
500
+ if (oldValue || newValue) {
501
+ // Need to account for "capture" events.
502
+ // If the event name ends with "Capture", we'll update the name to remove
503
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
504
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
505
+ // Make sure we only replace the last instance of "Capture"
506
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
507
+ if (oldValue) {
508
+ plt.rel(elm, memberName, oldValue, capture);
509
+ }
510
+ if (newValue) {
511
+ plt.ael(elm, memberName, newValue, capture);
512
+ }
493
513
  }
494
514
  }
495
515
  else {
@@ -551,6 +571,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
551
571
  };
552
572
  const parseClassListRegex = /\s/;
553
573
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
574
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
575
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
554
576
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
555
577
  // if the element passed in is a shadow root, which is a document fragment
556
578
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -584,6 +606,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
584
606
  * @returns the newly created node
585
607
  */
586
608
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
609
+ var _a;
587
610
  // tslint:disable-next-line: prefer-const
588
611
  const newVNode = newParentVNode.$children$[childIndex];
589
612
  let i = 0;
@@ -662,6 +685,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
662
685
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
663
686
  // remember the content reference comment
664
687
  elm['s-sr'] = true;
688
+ // Persist the name of the slot that this slot was going to be projected into.
689
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
665
690
  // remember the content reference comment
666
691
  elm['s-cr'] = contentRef;
667
692
  // remember the slot name, or empty string for default slot
@@ -678,6 +703,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
678
703
  return elm;
679
704
  };
680
705
  const putBackInOriginalLocation = (parentElm, recursive) => {
706
+ var _a;
681
707
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
682
708
  const oldSlotChildNodes = parentElm.childNodes;
683
709
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
@@ -690,9 +716,17 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
690
716
  parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
691
717
  // remove the old original location comment entirely
692
718
  // later on the patch function will know what to do
693
- // and move this to the correct spot in need be
719
+ // and move this to the correct spot if need be
694
720
  childNode['s-ol'].remove();
695
721
  childNode['s-ol'] = undefined;
722
+ // Reset so we can correctly move the node around again.
723
+ childNode['s-sh'] = undefined;
724
+ // When putting an element node back in its original location,
725
+ // we need to reset the `slot` attribute back to the value it originally had
726
+ // so we can correctly relocate it again in the future
727
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
728
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
729
+ }
696
730
  checkSlotRelocate = true;
697
731
  }
698
732
  if (recursive) {
@@ -1116,42 +1150,53 @@ const patch = (oldVNode, newVNode) => {
1116
1150
  elm.data = text;
1117
1151
  }
1118
1152
  };
1153
+ /**
1154
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1155
+ * are slot fallbacks nodes.
1156
+ *
1157
+ * A slot fallback node should be visible by default. Then, it should be
1158
+ * conditionally hidden if:
1159
+ *
1160
+ * - it has a sibling with a `slot` property set to its slot name or if
1161
+ * - it is a default fallback slot node, in which case we hide if it has any
1162
+ * content
1163
+ *
1164
+ * @param elm the element of interest
1165
+ */
1119
1166
  const updateFallbackSlotVisibility = (elm) => {
1120
- // tslint:disable-next-line: prefer-const
1121
1167
  const childNodes = elm.childNodes;
1122
- let childNode;
1123
- let i;
1124
- let ilen;
1125
- let j;
1126
- let slotNameAttr;
1127
- let nodeType;
1128
- for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1129
- childNode = childNodes[i];
1168
+ for (const childNode of childNodes) {
1130
1169
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1131
1170
  if (childNode['s-sr']) {
1132
1171
  // this is a slot fallback node
1133
1172
  // get the slot name for this slot reference node
1134
- slotNameAttr = childNode['s-sn'];
1173
+ const slotName = childNode['s-sn'];
1135
1174
  // by default always show a fallback slot node
1136
1175
  // then hide it if there are other slots in the light dom
1137
1176
  childNode.hidden = false;
1138
- for (j = 0; j < ilen; j++) {
1139
- nodeType = childNodes[j].nodeType;
1140
- if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1141
- // this sibling node is from a different component OR is a named fallback slot node
1142
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1143
- childNode.hidden = true;
1144
- break;
1177
+ // we need to check all of its sibling nodes in order to see if
1178
+ // `childNode` should be hidden
1179
+ for (const siblingNode of childNodes) {
1180
+ // Don't check the node against itself
1181
+ if (siblingNode !== childNode) {
1182
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1183
+ // this sibling node is from a different component OR is a named
1184
+ // fallback slot node
1185
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1186
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1187
+ childNode.hidden = true;
1188
+ break;
1189
+ }
1145
1190
  }
1146
- }
1147
- else {
1148
- // this is a default fallback slot node
1149
- // any element or text node (with content)
1150
- // should hide the default fallback slot node
1151
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1152
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
1153
- childNode.hidden = true;
1154
- break;
1191
+ else {
1192
+ // this is a default fallback slot node
1193
+ // any element or text node (with content)
1194
+ // should hide the default fallback slot node
1195
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1196
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1197
+ childNode.hidden = true;
1198
+ break;
1199
+ }
1155
1200
  }
1156
1201
  }
1157
1202
  }
@@ -1161,45 +1206,67 @@ const updateFallbackSlotVisibility = (elm) => {
1161
1206
  }
1162
1207
  }
1163
1208
  };
1209
+ /**
1210
+ * Component-global information about nodes which are either currently being
1211
+ * relocated or will be shortly.
1212
+ */
1164
1213
  const relocateNodes = [];
1165
- const relocateSlotContent = (elm) => {
1214
+ /**
1215
+ * Mark the contents of a slot for relocation via adding references to them to
1216
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1217
+ * will then be handled in {@link renderVdom}.
1218
+ *
1219
+ * @param elm a render node whose child nodes need to be relocated
1220
+ */
1221
+ const markSlotContentForRelocation = (elm) => {
1166
1222
  // tslint:disable-next-line: prefer-const
1167
- let childNode;
1168
1223
  let node;
1169
1224
  let hostContentNodes;
1170
- let slotNameAttr;
1171
- let relocateNodeData;
1172
1225
  let j;
1173
- let i = 0;
1174
- const childNodes = elm.childNodes;
1175
- const ilen = childNodes.length;
1176
- for (; i < ilen; i++) {
1177
- childNode = childNodes[i];
1226
+ for (const childNode of elm.childNodes) {
1227
+ // we need to find child nodes which are slot references so we can then try
1228
+ // to match them up with nodes that need to be relocated
1178
1229
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1179
- // first got the content reference comment node
1180
- // then we got it's parent, which is where all the host content is in now
1230
+ // first get the content reference comment node ('s-cr'), then we get
1231
+ // its parent, which is where all the host content is now
1181
1232
  hostContentNodes = node.parentNode.childNodes;
1182
- slotNameAttr = childNode['s-sn'];
1233
+ const slotName = childNode['s-sn'];
1234
+ // iterate through all the nodes under the location where the host was
1235
+ // originally rendered
1183
1236
  for (j = hostContentNodes.length - 1; j >= 0; j--) {
1184
1237
  node = hostContentNodes[j];
1185
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1186
- // let's do some relocating to its new home
1187
- // but never relocate a content reference node
1188
- // that is suppose to always represent the original content location
1189
- if (isNodeLocatedInSlot(node, slotNameAttr)) {
1238
+ // check that the node is not a content reference node or a node
1239
+ // reference and then check that the host name does not match that of
1240
+ // childNode.
1241
+ // In addition, check that the slot either has not already been relocated, or
1242
+ // that its current location's host is not childNode's host. This is essentially
1243
+ // a check so that we don't try to relocate (and then hide) a node that is already
1244
+ // where it should be.
1245
+ if (!node['s-cn'] &&
1246
+ !node['s-nr'] &&
1247
+ node['s-hn'] !== childNode['s-hn'] &&
1248
+ (!BUILD.experimentalSlotFixes )) {
1249
+ // if `node` is located in the slot that `childNode` refers to (via the
1250
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1251
+ // (under the host element parent) to the right slot location
1252
+ if (isNodeLocatedInSlot(node, slotName)) {
1190
1253
  // it's possible we've already decided to relocate this node
1191
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1254
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1192
1255
  // made some changes to slots
1193
1256
  // let's make sure we also double check
1194
1257
  // fallbacks are correctly hidden or shown
1195
1258
  checkSlotFallbackVisibility = true;
1196
- node['s-sn'] = node['s-sn'] || slotNameAttr;
1259
+ // ensure that the slot-name attr is correct
1260
+ node['s-sn'] = node['s-sn'] || slotName;
1197
1261
  if (relocateNodeData) {
1198
- // previously we never found a slot home for this node
1199
- // but turns out we did, so let's remember it now
1262
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1263
+ // we marked this node for relocation previously but didn't find
1264
+ // out the slot reference node to which it needs to be relocated
1265
+ // so write it down now!
1200
1266
  relocateNodeData.$slotRefNode$ = childNode;
1201
1267
  }
1202
1268
  else {
1269
+ node['s-sh'] = childNode['s-hn'];
1203
1270
  // add to our list of nodes to relocate
1204
1271
  relocateNodes.push({
1205
1272
  $slotRefNode$: childNode,
@@ -1218,8 +1285,10 @@ const relocateSlotContent = (elm) => {
1218
1285
  }
1219
1286
  }
1220
1287
  else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1221
- // so far this element does not have a slot home, not setting slotRefNode on purpose
1222
- // if we never find a home for this element then we'll need to hide it
1288
+ // the node is not found within the slot (`childNode`) that we're
1289
+ // currently looking at, so we stick it into `relocateNodes` to
1290
+ // handle later. If we never find a home for this element then
1291
+ // we'll need to hide it
1223
1292
  relocateNodes.push({
1224
1293
  $nodeToRelocate$: node,
1225
1294
  });
@@ -1227,30 +1296,41 @@ const relocateSlotContent = (elm) => {
1227
1296
  }
1228
1297
  }
1229
1298
  }
1299
+ // if we're dealing with any type of element (capable of itself being a
1300
+ // slot reference or containing one) then we recur
1230
1301
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1231
- relocateSlotContent(childNode);
1302
+ markSlotContentForRelocation(childNode);
1232
1303
  }
1233
1304
  }
1234
1305
  };
1235
- const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1306
+ /**
1307
+ * Check whether a node is located in a given named slot.
1308
+ *
1309
+ * @param nodeToRelocate the node of interest
1310
+ * @param slotName the slot name to check
1311
+ * @returns whether the node is located in the slot or not
1312
+ */
1313
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1236
1314
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1237
- if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1315
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1316
+ // if the node doesn't have a slot attribute, and the slot we're checking
1317
+ // is not a named slot, then we assume the node should be within the slot
1238
1318
  return true;
1239
1319
  }
1240
- if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {
1320
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1241
1321
  return true;
1242
1322
  }
1243
1323
  return false;
1244
1324
  }
1245
- if (nodeToRelocate['s-sn'] === slotNameAttr) {
1325
+ if (nodeToRelocate['s-sn'] === slotName) {
1246
1326
  return true;
1247
1327
  }
1248
- return slotNameAttr === '';
1328
+ return slotName === '';
1249
1329
  };
1250
1330
  /**
1251
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1252
- * calling them with `null`. This signals that the DOM element corresponding to
1253
- * the VDom node has been removed from the DOM.
1331
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1332
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1333
+ * node has been removed from the DOM.
1254
1334
  *
1255
1335
  * @param vNode a virtual DOM node
1256
1336
  */
@@ -1274,6 +1354,7 @@ const nullifyVNodeRefs = (vNode) => {
1274
1354
  * @param isInitialLoad whether or not this is the first call after page load
1275
1355
  */
1276
1356
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1357
+ var _a, _b;
1277
1358
  const hostElm = hostRef.$hostElement$;
1278
1359
  const cmpMeta = hostRef.$cmpMeta$;
1279
1360
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1329,43 +1410,48 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1329
1410
  // the disconnectCallback from working
1330
1411
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1331
1412
  if (checkSlotRelocate) {
1332
- relocateSlotContent(rootVnode.$elm$);
1333
- let relocateData;
1334
- let nodeToRelocate;
1335
- let orgLocationNode;
1336
- let parentNodeRef;
1337
- let insertBeforeNode;
1338
- let refNode;
1339
- let i = 0;
1340
- for (; i < relocateNodes.length; i++) {
1341
- relocateData = relocateNodes[i];
1342
- nodeToRelocate = relocateData.$nodeToRelocate$;
1413
+ markSlotContentForRelocation(rootVnode.$elm$);
1414
+ for (const relocateData of relocateNodes) {
1415
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1343
1416
  if (!nodeToRelocate['s-ol']) {
1344
1417
  // add a reference node marking this node's original location
1345
1418
  // keep a reference to this node for later lookups
1346
- orgLocationNode =
1347
- doc.createTextNode('');
1419
+ const orgLocationNode = doc.createTextNode('');
1348
1420
  orgLocationNode['s-nr'] = nodeToRelocate;
1349
1421
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1350
1422
  }
1351
1423
  }
1352
- for (i = 0; i < relocateNodes.length; i++) {
1353
- relocateData = relocateNodes[i];
1354
- nodeToRelocate = relocateData.$nodeToRelocate$;
1355
- if (relocateData.$slotRefNode$) {
1356
- // by default we're just going to insert it directly
1357
- // after the slot reference node
1358
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1359
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1360
- orgLocationNode = nodeToRelocate['s-ol'];
1361
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1362
- refNode = orgLocationNode['s-nr'];
1363
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1364
- refNode = refNode.nextSibling;
1365
- if (!refNode || !refNode['s-nr']) {
1366
- insertBeforeNode = refNode;
1367
- break;
1424
+ for (const relocateData of relocateNodes) {
1425
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1426
+ const slotRefNode = relocateData.$slotRefNode$;
1427
+ if (slotRefNode) {
1428
+ const parentNodeRef = slotRefNode.parentNode;
1429
+ // When determining where to insert content, the most simple case would be
1430
+ // to relocate the node immediately following the slot reference node. We do this
1431
+ // by getting a reference to the node immediately following the slot reference node
1432
+ // since we will use `insertBefore` to manipulate the DOM.
1433
+ //
1434
+ // If there is no node immediately following the slot reference node, then we will just
1435
+ // end up appending the node as the last child of the parent.
1436
+ let insertBeforeNode = slotRefNode.nextSibling;
1437
+ // If the node we're currently planning on inserting the new node before is an element,
1438
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1439
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1440
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1441
+ //
1442
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1443
+ {
1444
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1445
+ while (orgLocationNode) {
1446
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1447
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1448
+ refNode = refNode.nextSibling;
1449
+ if (!refNode || !refNode['s-nr']) {
1450
+ insertBeforeNode = refNode;
1451
+ break;
1452
+ }
1368
1453
  }
1454
+ orgLocationNode = orgLocationNode.previousSibling;
1369
1455
  }
1370
1456
  }
1371
1457
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1375,10 +1461,13 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1375
1461
  // has a different next sibling or parent relocated
1376
1462
  if (nodeToRelocate !== insertBeforeNode) {
1377
1463
  if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1378
- // probably a component in the index.html that doesn't have it's hostname set
1464
+ // probably a component in the index.html that doesn't have its hostname set
1379
1465
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1380
1466
  }
1381
- // add it back to the dom but in its new home
1467
+ // Add it back to the dom but in its new home
1468
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1469
+ // we're just going to append the node as the last child of the parent. Passing
1470
+ // `null` as the second arg here will trigger that behavior.
1382
1471
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1383
1472
  }
1384
1473
  }
@@ -1556,6 +1645,10 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1556
1645
  const callRender = (hostRef, instance, elm, isInitialLoad) => {
1557
1646
  try {
1558
1647
  renderingRef = instance;
1648
+ /**
1649
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1650
+ * method, so we can call the method immediately. If not, check before calling it.
1651
+ */
1559
1652
  instance = instance.render() ;
1560
1653
  {
1561
1654
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
@@ -1649,6 +1742,16 @@ const appDidLoad = (who) => {
1649
1742
  }
1650
1743
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
1651
1744
  };
1745
+ /**
1746
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1747
+ * e.g. custom element node. If a build figures out that e.g. no component
1748
+ * has a `componentDidLoad` method, the instance method gets removed from the
1749
+ * output bundle and this function returns `undefined`.
1750
+ * @param instance any object that may or may not contain methods
1751
+ * @param method method name
1752
+ * @param arg single arbitrary argument
1753
+ * @returns result of method call if it exists, otherwise `undefined`
1754
+ */
1652
1755
  const safeCall = (instance, method, arg) => {
1653
1756
  if (instance && instance[method]) {
1654
1757
  try {
@@ -1716,6 +1819,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1716
1819
  * @returns a reference to the same constructor passed in (but now mutated)
1717
1820
  */
1718
1821
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1822
+ var _a;
1719
1823
  if (cmpMeta.$members$) {
1720
1824
  if (Cstr.watchers) {
1721
1825
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1753,7 +1857,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1753
1857
  });
1754
1858
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1755
1859
  const attrNameToPropName = new Map();
1756
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1860
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1757
1861
  plt.jmp(() => {
1758
1862
  const propName = attrNameToPropName.get(attrName);
1759
1863
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -1776,12 +1880,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1776
1880
  // customElements.define('my-component', MyComponent);
1777
1881
  // </script>
1778
1882
  // ```
1779
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1883
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
1780
1884
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1781
1885
  // to the value that was set inline i.e. "some-value" from above example. When
1782
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1886
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
1783
1887
  //
1784
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1888
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
1785
1889
  // by connectedCallback as this attributeChangedCallback will not fire.
1786
1890
  //
1787
1891
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1801,26 +1905,65 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1801
1905
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1802
1906
  return;
1803
1907
  }
1908
+ else if (propName == null) {
1909
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
1910
+ // on a vanilla web component
1911
+ const hostRef = getHostRef(this);
1912
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
1913
+ // We only want to trigger the callback(s) if:
1914
+ // 1. The instance is ready
1915
+ // 2. The watchers are ready
1916
+ // 3. The value has changed
1917
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1918
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1919
+ newValue !== oldValue) {
1920
+ const instance = hostRef.$lazyInstance$ ;
1921
+ const entry = cmpMeta.$watchers$[attrName];
1922
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1923
+ if (instance[callbackName] != null) {
1924
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
1925
+ }
1926
+ });
1927
+ }
1928
+ return;
1929
+ }
1804
1930
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1805
1931
  });
1806
1932
  };
1807
- // create an array of attributes to observe
1808
- // and also create a map of html attribute name to js property name
1809
- Cstr.observedAttributes = members
1810
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1811
- .map(([propName, m]) => {
1812
- const attrName = m[1] || propName;
1813
- attrNameToPropName.set(attrName, propName);
1814
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1815
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1816
- }
1817
- return attrName;
1818
- });
1933
+ // Create an array of attributes to observe
1934
+ // This list in comprised of all strings used within a `@Watch()` decorator
1935
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
1936
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
1937
+ // an invalid attribute.
1938
+ Cstr.observedAttributes = Array.from(new Set([
1939
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
1940
+ ...members
1941
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1942
+ .map(([propName, m]) => {
1943
+ const attrName = m[1] || propName;
1944
+ attrNameToPropName.set(attrName, propName);
1945
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1946
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
1947
+ }
1948
+ return attrName;
1949
+ }),
1950
+ ]));
1819
1951
  }
1820
1952
  }
1821
1953
  return Cstr;
1822
1954
  };
1823
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1955
+ /**
1956
+ * Initialize a Stencil component given a reference to its host element, its
1957
+ * runtime bookkeeping data structure, runtime metadata about the component,
1958
+ * and (optionally) an HMR version ID.
1959
+ *
1960
+ * @param elm a host element
1961
+ * @param hostRef the element's runtime bookkeeping object
1962
+ * @param cmpMeta runtime metadata for the Stencil component
1963
+ * @param hmrVersionId an (optional) HMR version ID
1964
+ */
1965
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1966
+ let Cstr;
1824
1967
  // initializeComponent
1825
1968
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1826
1969
  // Let the runtime know that the component has been initialized
@@ -2009,20 +2152,27 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2009
2152
  const customElements = win.customElements;
2010
2153
  const head = doc.head;
2011
2154
  const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');
2012
- const visibilityStyle = /*@__PURE__*/ doc.createElement('style');
2155
+ const dataStyles = /*@__PURE__*/ doc.createElement('style');
2013
2156
  const deferredConnectedCallbacks = [];
2014
2157
  let appLoadFallback;
2015
2158
  let isBootstrapping = true;
2016
2159
  Object.assign(plt, options);
2017
2160
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
2161
+ let hasSlotRelocation = false;
2018
2162
  lazyBundles.map((lazyBundle) => {
2019
2163
  lazyBundle[1].map((compactMeta) => {
2164
+ var _a;
2020
2165
  const cmpMeta = {
2021
2166
  $flags$: compactMeta[0],
2022
2167
  $tagName$: compactMeta[1],
2023
2168
  $members$: compactMeta[2],
2024
2169
  $listeners$: compactMeta[3],
2025
2170
  };
2171
+ // Check if we are using slots outside the shadow DOM in this component.
2172
+ // We'll use this information later to add styles for `slot-fb` elements
2173
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
2174
+ hasSlotRelocation = true;
2175
+ }
2026
2176
  {
2027
2177
  cmpMeta.$members$ = compactMeta[2];
2028
2178
  }
@@ -2033,7 +2183,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2033
2183
  cmpMeta.$attrsToReflect$ = [];
2034
2184
  }
2035
2185
  {
2036
- cmpMeta.$watchers$ = {};
2186
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2037
2187
  }
2038
2188
  const tagName = cmpMeta.$tagName$;
2039
2189
  const HostElement = class extends HTMLElement {
@@ -2082,15 +2232,23 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2082
2232
  }
2083
2233
  });
2084
2234
  });
2235
+ // Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
2236
+ if (hasSlotRelocation) {
2237
+ dataStyles.innerHTML += SLOT_FB_CSS;
2238
+ }
2239
+ // Add hydration styles
2085
2240
  {
2086
- visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
2087
- visibilityStyle.setAttribute('data-styles', '');
2241
+ dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
2242
+ }
2243
+ // If we have styles, add them to the DOM
2244
+ if (dataStyles.innerHTML.length) {
2245
+ dataStyles.setAttribute('data-styles', '');
2246
+ head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2088
2247
  // Apply CSP nonce to the style tag if it exists
2089
2248
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2090
2249
  if (nonce != null) {
2091
- visibilityStyle.setAttribute('nonce', nonce);
2250
+ dataStyles.setAttribute('nonce', nonce);
2092
2251
  }
2093
- head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
2094
2252
  }
2095
2253
  // Process deferred connectedCallbacks now all components have been registered
2096
2254
  isBootstrapping = false;
@@ -2149,13 +2307,40 @@ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !==
2149
2307
  * @returns void
2150
2308
  */
2151
2309
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
2310
+ /**
2311
+ * A WeakMap mapping runtime component references to their corresponding host reference
2312
+ * instances.
2313
+ */
2152
2314
  const hostRefs = /*@__PURE__*/ new WeakMap();
2315
+ /**
2316
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2317
+ *
2318
+ * @param ref the runtime ref of interest
2319
+ * @returns the Host reference (if found) or undefined
2320
+ */
2153
2321
  const getHostRef = (ref) => hostRefs.get(ref);
2322
+ /**
2323
+ * Register a lazy instance with the {@link hostRefs} object so it's
2324
+ * corresponding {@link d.HostRef} can be retrieved later.
2325
+ *
2326
+ * @param lazyInstance the lazy instance of interest
2327
+ * @param hostRef that instances `HostRef` object
2328
+ * @returns a reference to the host ref WeakMap
2329
+ */
2154
2330
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2155
- const registerHost = (elm, cmpMeta) => {
2331
+ /**
2332
+ * Register a host element for a Stencil component, setting up various metadata
2333
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
2334
+ * metadata.
2335
+ *
2336
+ * @param hostElement the host element to register
2337
+ * @param cmpMeta runtime metadata for that component
2338
+ * @returns a reference to the host ref WeakMap
2339
+ */
2340
+ const registerHost = (hostElement, cmpMeta) => {
2156
2341
  const hostRef = {
2157
2342
  $flags$: 0,
2158
- $hostElement$: elm,
2343
+ $hostElement$: hostElement,
2159
2344
  $cmpMeta$: cmpMeta,
2160
2345
  $instanceValues$: new Map(),
2161
2346
  };
@@ -2164,11 +2349,11 @@ const registerHost = (elm, cmpMeta) => {
2164
2349
  }
2165
2350
  {
2166
2351
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
2167
- elm['s-p'] = [];
2168
- elm['s-rc'] = [];
2352
+ hostElement['s-p'] = [];
2353
+ hostElement['s-rc'] = [];
2169
2354
  }
2170
- addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2171
- return hostRefs.set(elm, hostRef);
2355
+ addHostEventListeners(hostElement, hostRef, cmpMeta.$listeners$);
2356
+ return hostRefs.set(hostElement, hostRef);
2172
2357
  };
2173
2358
  const isMemberInElement = (elm, memberName) => memberName in elm;
2174
2359
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -2256,9 +2441,9 @@ const flush = () => {
2256
2441
  }
2257
2442
  }
2258
2443
  };
2259
- const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
2444
+ const nextTick = (cb) => promiseResolve().then(cb);
2260
2445
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2261
2446
 
2262
2447
  export { Fragment as F, 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 };
2263
2448
 
2264
- //# sourceMappingURL=index-f82ed648.js.map
2449
+ //# sourceMappingURL=index-528d5213.js.map