@dso-toolkit/core 62.3.2 → 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 (333) 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 +2 -2
  5. package/dist/cjs/dso-action-list-item.cjs.entry.js.map +1 -1
  6. package/dist/cjs/dso-action-list.cjs.entry.js +2 -2
  7. package/dist/cjs/dso-action-list.cjs.entry.js.map +1 -1
  8. package/dist/cjs/dso-alert_7.cjs.entry.js +6 -6
  9. package/dist/cjs/dso-alert_7.cjs.entry.js.map +1 -1
  10. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +2 -2
  11. package/dist/cjs/dso-attachments-counter.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-autosuggest.cjs.entry.js +3 -3
  13. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-card-container.cjs.entry.js +1 -1
  15. package/dist/cjs/dso-card.cjs.entry.js +1 -1
  16. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js +1 -1
  17. package/dist/cjs/dso-date-picker-legacy.cjs.entry.js.map +1 -1
  18. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  19. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +2 -2
  20. package/dist/cjs/dso-expandable.cjs.entry.js +2 -2
  21. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dso-header.cjs.entry.js +2 -2
  23. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  24. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +2 -2
  25. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  26. package/dist/cjs/dso-icon.cjs.entry.js +7 -1
  27. package/dist/cjs/dso-icon.cjs.entry.js.map +1 -1
  28. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  29. package/dist/cjs/dso-info_2.cjs.entry.js +1 -1
  30. package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
  31. package/dist/cjs/dso-logo.cjs.entry.js +1 -1
  32. package/dist/cjs/dso-map-base-layers.cjs.entry.js +2 -2
  33. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  34. package/dist/cjs/dso-map-overlays.cjs.entry.js +2 -2
  35. package/dist/cjs/dso-mark-bar.cjs.entry.js +49 -0
  36. package/dist/cjs/dso-mark-bar.cjs.entry.js.map +1 -0
  37. package/dist/cjs/dso-modal.cjs.entry.js +2 -2
  38. package/dist/cjs/dso-pagination.cjs.entry.js +1 -1
  39. package/dist/cjs/dso-pagination.cjs.entry.js.map +1 -1
  40. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  41. package/dist/cjs/dso-progress-indicator.cjs.entry.js +1 -1
  42. package/dist/cjs/dso-responsive-element.cjs.entry.js +1 -1
  43. package/dist/cjs/dso-scrollable.cjs.entry.js +2 -2
  44. package/dist/cjs/dso-scrollable.cjs.entry.js.map +1 -1
  45. package/dist/cjs/dso-toggletip.cjs.entry.js +1 -1
  46. package/dist/cjs/dso-toolkit.cjs.js +3 -3
  47. package/dist/cjs/dso-toolkit.cjs.js.map +1 -1
  48. package/dist/cjs/dso-tooltip.cjs.entry.js +2 -2
  49. package/dist/cjs/dso-tree-view.cjs.entry.js +2 -2
  50. package/dist/cjs/dso-tree-view.cjs.entry.js.map +1 -1
  51. package/dist/cjs/dso-viewer-grid.cjs.entry.js +3 -3
  52. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  53. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1 -1
  54. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  55. package/dist/cjs/{focus-trap.esm-b6bba312.js → focus-trap.esm-6cff35a7.js} +45 -26
  56. package/dist/cjs/focus-trap.esm-6cff35a7.js.map +1 -0
  57. package/dist/cjs/index-1b083a00.js +100 -0
  58. package/dist/cjs/index-1b083a00.js.map +1 -0
  59. package/dist/cjs/{index-d46ec033.js → index-2556c4c6.js} +312 -127
  60. package/dist/cjs/index-2556c4c6.js.map +1 -0
  61. package/dist/cjs/loader.cjs.js +2 -2
  62. package/dist/cjs/{v4-abb5dc0c.js → v4-c23234d2.js} +2 -2
  63. package/dist/cjs/v4-c23234d2.js.map +1 -0
  64. package/dist/collection/collection-manifest.json +3 -2
  65. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  66. package/dist/collection/components/action-list/action-list.css +6 -1
  67. package/dist/collection/components/action-list/components/action-list-item.css +6 -1
  68. package/dist/collection/components/alert/alert.js +1 -3
  69. package/dist/collection/components/alert/alert.js.map +1 -1
  70. package/dist/collection/components/date-picker-legacy/utils/month-range.js.map +1 -1
  71. package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -1
  72. package/dist/collection/components/expandable/expandable.js.map +1 -1
  73. package/dist/collection/components/header/header.js.map +1 -1
  74. package/dist/collection/components/icon/icon.js +2 -0
  75. package/dist/collection/components/icon/icon.js.map +1 -1
  76. package/dist/collection/components/image-overlay/image-overlay.js.map +1 -1
  77. package/dist/collection/components/label/label.js +1 -1
  78. package/dist/collection/components/label/label.js.map +1 -1
  79. package/dist/collection/components/mark-bar/mark-bar.css +789 -0
  80. package/dist/collection/components/mark-bar/mark-bar.interfaces.js +2 -0
  81. package/dist/collection/components/mark-bar/mark-bar.interfaces.js.map +1 -0
  82. package/dist/collection/components/mark-bar/mark-bar.js +205 -0
  83. package/dist/collection/components/mark-bar/mark-bar.js.map +1 -0
  84. package/dist/collection/components/pagination/pagination.js.map +1 -1
  85. package/dist/collection/components/scrollable/scrollable.js.map +1 -1
  86. package/dist/collection/components/table/table.css +1 -0
  87. package/dist/collection/components/tree-view/tree-item.js +1 -1
  88. package/dist/collection/components/tree-view/tree-item.js.map +1 -1
  89. package/dist/collection/components/tree-view/tree-view.js.map +1 -1
  90. package/dist/collection/components/viewer-grid/components/sizing-buttons.js.map +1 -1
  91. package/dist/collection/components/viewer-grid/viewer-grid.css +14 -4
  92. package/dist/collection/components/viewer-grid/viewer-grid.js.map +1 -1
  93. package/dist/components/dropdown-menu.js +5 -0
  94. package/dist/components/dropdown-menu.js.map +1 -1
  95. package/dist/components/dso-accordion-section.js.map +1 -1
  96. package/dist/components/dso-accordion.js +3 -0
  97. package/dist/components/dso-accordion.js.map +1 -1
  98. package/dist/components/dso-action-list-item.js +1 -1
  99. package/dist/components/dso-action-list-item.js.map +1 -1
  100. package/dist/components/dso-action-list.js +1 -1
  101. package/dist/components/dso-action-list.js.map +1 -1
  102. package/dist/components/dso-autosuggest.js +3 -1
  103. package/dist/components/dso-autosuggest.js.map +1 -1
  104. package/dist/components/dso-date-picker-legacy.js.map +1 -1
  105. package/dist/components/dso-header.js +2 -0
  106. package/dist/components/dso-header.js.map +1 -1
  107. package/dist/components/dso-helpcenter-panel.js +4 -1
  108. package/dist/components/dso-helpcenter-panel.js.map +1 -1
  109. package/dist/components/dso-list-button.js +2 -0
  110. package/dist/components/dso-list-button.js.map +1 -1
  111. package/dist/components/dso-map-controls.js +2 -0
  112. package/dist/components/dso-map-controls.js.map +1 -1
  113. package/dist/components/dso-mark-bar.d.ts +11 -0
  114. package/dist/components/dso-mark-bar.js +74 -0
  115. package/dist/components/dso-mark-bar.js.map +1 -0
  116. package/dist/components/dso-pagination.js.map +1 -1
  117. package/dist/components/dso-tree-view.js +1 -1
  118. package/dist/components/dso-tree-view.js.map +1 -1
  119. package/dist/components/dso-viewer-grid.js +5 -1
  120. package/dist/components/dso-viewer-grid.js.map +1 -1
  121. package/dist/components/dsot-document-component-demo.js +3 -0
  122. package/dist/components/dsot-document-component-demo.js.map +1 -1
  123. package/dist/components/expandable.js +3 -0
  124. package/dist/components/expandable.js.map +1 -1
  125. package/dist/components/focus-trap.esm.js +44 -25
  126. package/dist/components/focus-trap.esm.js.map +1 -1
  127. package/dist/components/icon.js +6 -0
  128. package/dist/components/icon.js.map +1 -1
  129. package/dist/components/image-overlay.js.map +1 -1
  130. package/dist/components/index.d.ts +2 -0
  131. package/dist/components/index.js +1 -0
  132. package/dist/components/index.js.map +1 -1
  133. package/dist/components/index2.js +90 -64
  134. package/dist/components/index2.js.map +1 -1
  135. package/dist/components/label.js +5 -2
  136. package/dist/components/label.js.map +1 -1
  137. package/dist/components/ozon-content.js +2 -0
  138. package/dist/components/ozon-content.js.map +1 -1
  139. package/dist/components/scrollable.js.map +1 -1
  140. package/dist/components/selectable.js +2 -0
  141. package/dist/components/selectable.js.map +1 -1
  142. package/dist/components/table.js +1 -1
  143. package/dist/components/table.js.map +1 -1
  144. package/dist/components/tooltip.js +4 -0
  145. package/dist/components/tooltip.js.map +1 -1
  146. package/dist/components/v4.js +1 -1
  147. package/dist/components/v4.js.map +1 -1
  148. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  149. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  150. package/dist/dso-toolkit/{p-fbb63820.entry.js → p-02c35f4e.entry.js} +2 -2
  151. package/dist/dso-toolkit/{p-f0bc4a9d.entry.js → p-09552584.entry.js} +2 -2
  152. package/dist/dso-toolkit/{p-4e2407bf.entry.js → p-09e0f1a6.entry.js} +2 -2
  153. package/dist/dso-toolkit/p-0afd6a86.entry.js +2 -0
  154. package/dist/dso-toolkit/{p-d728a136.entry.js.map → p-0afd6a86.entry.js.map} +1 -1
  155. package/dist/dso-toolkit/{p-dae7d6f2.entry.js → p-1180ebe3.entry.js} +2 -2
  156. package/dist/dso-toolkit/p-1180ebe3.entry.js.map +1 -0
  157. package/dist/dso-toolkit/{p-6f533d1a.entry.js → p-11eb95a2.entry.js} +2 -2
  158. package/dist/dso-toolkit/p-14616bce.js +2 -0
  159. package/dist/dso-toolkit/p-14616bce.js.map +1 -0
  160. package/dist/dso-toolkit/{p-0bac5eea.entry.js → p-15c3da8e.entry.js} +2 -2
  161. package/dist/dso-toolkit/{p-0c156f79.entry.js → p-2258933b.entry.js} +2 -2
  162. package/dist/dso-toolkit/{p-0c156f79.entry.js.map → p-2258933b.entry.js.map} +1 -1
  163. package/dist/dso-toolkit/{p-76c0fc1b.entry.js → p-2cd3e805.entry.js} +2 -2
  164. package/dist/dso-toolkit/{p-59fe2479.entry.js → p-302764ae.entry.js} +2 -2
  165. package/dist/dso-toolkit/p-302764ae.entry.js.map +1 -0
  166. package/dist/dso-toolkit/{p-0c14a2e5.entry.js → p-43511221.entry.js} +2 -2
  167. package/dist/dso-toolkit/p-4592810d.js +3 -0
  168. package/dist/dso-toolkit/p-4592810d.js.map +1 -0
  169. package/dist/dso-toolkit/{p-1db9f4a4.entry.js → p-482c8ebd.entry.js} +2 -2
  170. package/dist/dso-toolkit/p-4f601b8c.entry.js +2 -0
  171. package/dist/dso-toolkit/p-4f601b8c.entry.js.map +1 -0
  172. package/dist/dso-toolkit/{p-169e3931.entry.js → p-51f9702b.entry.js} +2 -2
  173. package/dist/dso-toolkit/{p-4e04b39f.entry.js → p-54444f78.entry.js} +2 -2
  174. package/dist/dso-toolkit/p-54444f78.entry.js.map +1 -0
  175. package/dist/dso-toolkit/{p-ca222ec3.entry.js → p-56136f3c.entry.js} +2 -2
  176. package/dist/dso-toolkit/p-5eb2019a.entry.js +2 -0
  177. package/dist/dso-toolkit/p-5eb2019a.entry.js.map +1 -0
  178. package/dist/dso-toolkit/{p-2ab99812.entry.js → p-5f39d08c.entry.js} +2 -2
  179. package/dist/dso-toolkit/{p-4423c2b5.entry.js → p-7371aee1.entry.js} +2 -2
  180. package/dist/dso-toolkit/{p-6dfe9062.entry.js → p-78baffb7.entry.js} +2 -2
  181. package/dist/dso-toolkit/{p-5a47a86e.entry.js → p-7b36db3a.entry.js} +2 -2
  182. package/dist/dso-toolkit/{p-6af09f64.entry.js → p-7cac2dd2.entry.js} +2 -2
  183. package/dist/dso-toolkit/{p-a377846a.entry.js → p-84be819d.entry.js} +2 -2
  184. package/dist/dso-toolkit/p-84be819d.entry.js.map +1 -0
  185. package/dist/dso-toolkit/p-94f26620.js +2 -0
  186. package/dist/dso-toolkit/p-94f26620.js.map +1 -0
  187. package/dist/dso-toolkit/p-a435b9fd.entry.js +2 -0
  188. package/dist/dso-toolkit/{p-5c976ac9.entry.js.map → p-a435b9fd.entry.js.map} +1 -1
  189. package/dist/dso-toolkit/{p-ebda3d53.entry.js → p-b0116121.entry.js} +2 -2
  190. package/dist/dso-toolkit/{p-60301d53.entry.js → p-b6af439e.entry.js} +2 -2
  191. package/dist/dso-toolkit/{p-c17c4294.entry.js → p-b8ff5318.entry.js} +2 -2
  192. package/dist/dso-toolkit/{p-c17c4294.entry.js.map → p-b8ff5318.entry.js.map} +1 -1
  193. package/dist/dso-toolkit/p-b9059ec2.entry.js +2 -0
  194. package/dist/dso-toolkit/{p-7ef42606.entry.js.map → p-b9059ec2.entry.js.map} +1 -1
  195. package/dist/dso-toolkit/{p-e729bdf2.entry.js → p-c1bab0f1.entry.js} +2 -2
  196. package/dist/dso-toolkit/{p-b68ac725.entry.js → p-d165ad74.entry.js} +2 -2
  197. package/dist/dso-toolkit/p-d165ad74.entry.js.map +1 -0
  198. package/dist/dso-toolkit/{p-8bee65a1.entry.js → p-df63a085.entry.js} +2 -2
  199. package/dist/dso-toolkit/{p-0e095af8.entry.js → p-e1cb1603.entry.js} +2 -2
  200. package/dist/dso-toolkit/{p-7edafced.entry.js → p-e2f7399e.entry.js} +2 -2
  201. package/dist/dso-toolkit/p-e348d48b.entry.js +2 -0
  202. package/dist/dso-toolkit/p-e348d48b.entry.js.map +1 -0
  203. package/dist/dso-toolkit/{p-cce85c45.entry.js → p-eb7275e9.entry.js} +2 -2
  204. package/dist/dso-toolkit/p-f3bd801e.entry.js +2 -0
  205. package/dist/dso-toolkit/p-f3bd801e.entry.js.map +1 -0
  206. package/dist/dso-toolkit/{p-2401e7f9.entry.js → p-f493248a.entry.js} +2 -2
  207. package/dist/dso-toolkit/{p-2401e7f9.entry.js.map → p-f493248a.entry.js.map} +1 -1
  208. package/dist/dso-toolkit/p-fbb226aa.js +6 -0
  209. package/dist/dso-toolkit/p-fbb226aa.js.map +1 -0
  210. package/dist/dso-toolkit/{p-755e55cf.entry.js → p-fd4b0b0b.entry.js} +2 -2
  211. package/dist/esm/dso-accordion-section.entry.js +1 -1
  212. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  213. package/dist/esm/dso-accordion.entry.js +1 -1
  214. package/dist/esm/dso-action-list-item.entry.js +2 -2
  215. package/dist/esm/dso-action-list-item.entry.js.map +1 -1
  216. package/dist/esm/dso-action-list.entry.js +2 -2
  217. package/dist/esm/dso-action-list.entry.js.map +1 -1
  218. package/dist/esm/dso-alert_7.entry.js +6 -6
  219. package/dist/esm/dso-alert_7.entry.js.map +1 -1
  220. package/dist/esm/dso-annotation-output_3.entry.js +2 -2
  221. package/dist/esm/dso-attachments-counter.entry.js +1 -1
  222. package/dist/esm/dso-autosuggest.entry.js +3 -3
  223. package/dist/esm/dso-banner.entry.js +1 -1
  224. package/dist/esm/dso-card-container.entry.js +1 -1
  225. package/dist/esm/dso-card.entry.js +1 -1
  226. package/dist/esm/dso-date-picker-legacy.entry.js +1 -1
  227. package/dist/esm/dso-date-picker-legacy.entry.js.map +1 -1
  228. package/dist/esm/dso-date-picker.entry.js +1 -1
  229. package/dist/esm/dso-dropdown-menu.entry.js +2 -2
  230. package/dist/esm/dso-expandable.entry.js +2 -2
  231. package/dist/esm/dso-expandable.entry.js.map +1 -1
  232. package/dist/esm/dso-header.entry.js +2 -2
  233. package/dist/esm/dso-header.entry.js.map +1 -1
  234. package/dist/esm/dso-helpcenter-panel.entry.js +2 -2
  235. package/dist/esm/dso-highlight-box.entry.js +1 -1
  236. package/dist/esm/dso-icon.entry.js +7 -1
  237. package/dist/esm/dso-icon.entry.js.map +1 -1
  238. package/dist/esm/dso-info-button.entry.js +1 -1
  239. package/dist/esm/dso-info_2.entry.js +1 -1
  240. package/dist/esm/dso-list-button.entry.js +2 -2
  241. package/dist/esm/dso-logo.entry.js +1 -1
  242. package/dist/esm/dso-map-base-layers.entry.js +2 -2
  243. package/dist/esm/dso-map-controls.entry.js +1 -1
  244. package/dist/esm/dso-map-overlays.entry.js +2 -2
  245. package/dist/esm/dso-mark-bar.entry.js +45 -0
  246. package/dist/esm/dso-mark-bar.entry.js.map +1 -0
  247. package/dist/esm/dso-modal.entry.js +2 -2
  248. package/dist/esm/dso-pagination.entry.js +1 -1
  249. package/dist/esm/dso-pagination.entry.js.map +1 -1
  250. package/dist/esm/dso-progress-bar.entry.js +1 -1
  251. package/dist/esm/dso-progress-indicator.entry.js +1 -1
  252. package/dist/esm/dso-responsive-element.entry.js +1 -1
  253. package/dist/esm/dso-scrollable.entry.js +2 -2
  254. package/dist/esm/dso-scrollable.entry.js.map +1 -1
  255. package/dist/esm/dso-toggletip.entry.js +1 -1
  256. package/dist/esm/dso-toolkit.js +4 -4
  257. package/dist/esm/dso-toolkit.js.map +1 -1
  258. package/dist/esm/dso-tooltip.entry.js +2 -2
  259. package/dist/esm/dso-tree-view.entry.js +2 -2
  260. package/dist/esm/dso-tree-view.entry.js.map +1 -1
  261. package/dist/esm/dso-viewer-grid.entry.js +3 -3
  262. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  263. package/dist/esm/dsot-document-component-demo.entry.js +1 -1
  264. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  265. package/dist/esm/{focus-trap.esm-ad846bd4.js → focus-trap.esm-d8deb1f0.js} +45 -26
  266. package/dist/esm/focus-trap.esm-d8deb1f0.js.map +1 -0
  267. package/dist/esm/{index-f82ed648.js → index-528d5213.js} +312 -127
  268. package/dist/esm/index-528d5213.js.map +1 -0
  269. package/dist/esm/index-aaea0a65.js +98 -0
  270. package/dist/esm/index-aaea0a65.js.map +1 -0
  271. package/dist/esm/loader.js +3 -3
  272. package/dist/esm/{v4-d398bde5.js → v4-23648a96.js} +2 -2
  273. package/dist/esm/v4-23648a96.js.map +1 -0
  274. package/dist/types/components/mark-bar/mark-bar.d.ts +41 -0
  275. package/dist/types/components/mark-bar/mark-bar.interfaces.d.ts +10 -0
  276. package/dist/types/components.d.ts +409 -0
  277. package/dist/types/stencil-public-runtime.d.ts +24 -3
  278. package/package.json +17 -17
  279. package/dist/cjs/focus-trap.esm-b6bba312.js.map +0 -1
  280. package/dist/cjs/index-794ad37a.js +0 -74
  281. package/dist/cjs/index-794ad37a.js.map +0 -1
  282. package/dist/cjs/index-d46ec033.js.map +0 -1
  283. package/dist/cjs/v4-abb5dc0c.js.map +0 -1
  284. package/dist/dso-toolkit/p-0fbddb1a.entry.js +0 -2
  285. package/dist/dso-toolkit/p-0fbddb1a.entry.js.map +0 -1
  286. package/dist/dso-toolkit/p-1521d319.js +0 -6
  287. package/dist/dso-toolkit/p-1521d319.js.map +0 -1
  288. package/dist/dso-toolkit/p-1805f5b0.js +0 -2
  289. package/dist/dso-toolkit/p-1805f5b0.js.map +0 -1
  290. package/dist/dso-toolkit/p-3ca5b6f4.js +0 -3
  291. package/dist/dso-toolkit/p-3ca5b6f4.js.map +0 -1
  292. package/dist/dso-toolkit/p-4ace5655.entry.js +0 -2
  293. package/dist/dso-toolkit/p-4ace5655.entry.js.map +0 -1
  294. package/dist/dso-toolkit/p-4e04b39f.entry.js.map +0 -1
  295. package/dist/dso-toolkit/p-59fe2479.entry.js.map +0 -1
  296. package/dist/dso-toolkit/p-5c976ac9.entry.js +0 -2
  297. package/dist/dso-toolkit/p-5d7f4ff2.js +0 -2
  298. package/dist/dso-toolkit/p-5d7f4ff2.js.map +0 -1
  299. package/dist/dso-toolkit/p-7ef42606.entry.js +0 -2
  300. package/dist/dso-toolkit/p-85f5322e.entry.js +0 -2
  301. package/dist/dso-toolkit/p-85f5322e.entry.js.map +0 -1
  302. package/dist/dso-toolkit/p-a377846a.entry.js.map +0 -1
  303. package/dist/dso-toolkit/p-b68ac725.entry.js.map +0 -1
  304. package/dist/dso-toolkit/p-d728a136.entry.js +0 -2
  305. package/dist/dso-toolkit/p-dae7d6f2.entry.js.map +0 -1
  306. package/dist/esm/focus-trap.esm-ad846bd4.js.map +0 -1
  307. package/dist/esm/index-f2bf58ce.js +0 -72
  308. package/dist/esm/index-f2bf58ce.js.map +0 -1
  309. package/dist/esm/index-f82ed648.js.map +0 -1
  310. package/dist/esm/v4-d398bde5.js.map +0 -1
  311. /package/dist/dso-toolkit/{p-fbb63820.entry.js.map → p-02c35f4e.entry.js.map} +0 -0
  312. /package/dist/dso-toolkit/{p-f0bc4a9d.entry.js.map → p-09552584.entry.js.map} +0 -0
  313. /package/dist/dso-toolkit/{p-4e2407bf.entry.js.map → p-09e0f1a6.entry.js.map} +0 -0
  314. /package/dist/dso-toolkit/{p-6f533d1a.entry.js.map → p-11eb95a2.entry.js.map} +0 -0
  315. /package/dist/dso-toolkit/{p-0bac5eea.entry.js.map → p-15c3da8e.entry.js.map} +0 -0
  316. /package/dist/dso-toolkit/{p-76c0fc1b.entry.js.map → p-2cd3e805.entry.js.map} +0 -0
  317. /package/dist/dso-toolkit/{p-0c14a2e5.entry.js.map → p-43511221.entry.js.map} +0 -0
  318. /package/dist/dso-toolkit/{p-1db9f4a4.entry.js.map → p-482c8ebd.entry.js.map} +0 -0
  319. /package/dist/dso-toolkit/{p-169e3931.entry.js.map → p-51f9702b.entry.js.map} +0 -0
  320. /package/dist/dso-toolkit/{p-ca222ec3.entry.js.map → p-56136f3c.entry.js.map} +0 -0
  321. /package/dist/dso-toolkit/{p-2ab99812.entry.js.map → p-5f39d08c.entry.js.map} +0 -0
  322. /package/dist/dso-toolkit/{p-4423c2b5.entry.js.map → p-7371aee1.entry.js.map} +0 -0
  323. /package/dist/dso-toolkit/{p-6dfe9062.entry.js.map → p-78baffb7.entry.js.map} +0 -0
  324. /package/dist/dso-toolkit/{p-5a47a86e.entry.js.map → p-7b36db3a.entry.js.map} +0 -0
  325. /package/dist/dso-toolkit/{p-6af09f64.entry.js.map → p-7cac2dd2.entry.js.map} +0 -0
  326. /package/dist/dso-toolkit/{p-ebda3d53.entry.js.map → p-b0116121.entry.js.map} +0 -0
  327. /package/dist/dso-toolkit/{p-60301d53.entry.js.map → p-b6af439e.entry.js.map} +0 -0
  328. /package/dist/dso-toolkit/{p-e729bdf2.entry.js.map → p-c1bab0f1.entry.js.map} +0 -0
  329. /package/dist/dso-toolkit/{p-8bee65a1.entry.js.map → p-df63a085.entry.js.map} +0 -0
  330. /package/dist/dso-toolkit/{p-0e095af8.entry.js.map → p-e1cb1603.entry.js.map} +0 -0
  331. /package/dist/dso-toolkit/{p-7edafced.entry.js.map → p-e2f7399e.entry.js.map} +0 -0
  332. /package/dist/dso-toolkit/{p-cce85c45.entry.js.map → p-eb7275e9.entry.js.map} +0 -0
  333. /package/dist/dso-toolkit/{p-755e55cf.entry.js.map → p-fd4b0b0b.entry.js.map} +0 -0
@@ -21,6 +21,7 @@ function _interopNamespace(e) {
21
21
  }
22
22
 
23
23
  const NAMESPACE = 'dso-toolkit';
24
+ 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 };
24
25
 
25
26
  /**
26
27
  * Virtual DOM patching algorithm based on Snabbdom by
@@ -54,6 +55,13 @@ const uniqueTime = (key, measureText) => {
54
55
  }
55
56
  };
56
57
  const HYDRATED_CSS = '{visibility:hidden}.hydrated{visibility:inherit}';
58
+ /**
59
+ * Constant for styles to be globally applied to `slot-fb` elements for pseudo-slot behavior.
60
+ *
61
+ * Two cascading rules must be used instead of a `:not()` selector due to Stencil browser
62
+ * support as of Stencil v4.
63
+ */
64
+ const SLOT_FB_CSS = 'slot-fb{display:contents}slot-fb[hidden]{display:none}';
57
65
  const XLINK_NS = 'http://www.w3.org/1999/xlink';
58
66
  /**
59
67
  * Default style mode id
@@ -134,13 +142,13 @@ const h = (nodeName, vnodeData, ...children) => {
134
142
  };
135
143
  walk(children);
136
144
  if (vnodeData) {
137
- // normalize class / classname attributes
138
145
  if (vnodeData.key) {
139
146
  key = vnodeData.key;
140
147
  }
141
148
  if (vnodeData.name) {
142
149
  slotName = vnodeData.name;
143
150
  }
151
+ // normalize class / className attributes
144
152
  {
145
153
  const classData = vnodeData.className || vnodeData.class;
146
154
  if (classData) {
@@ -374,6 +382,10 @@ const addStyle = (styleContainerNode, cmpMeta, mode) => {
374
382
  }
375
383
  styleContainerNode.insertBefore(styleElm, styleContainerNode.querySelector('link'));
376
384
  }
385
+ // Add styles for `slot-fb` elements if we're using slots outside the Shadow DOM
386
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
387
+ styleElm.innerHTML += SLOT_FB_CSS;
388
+ }
377
389
  if (appliedStyles) {
378
390
  appliedStyles.add(scopeId);
379
391
  }
@@ -507,11 +519,19 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
507
519
  // except for the first character, we keep the event name case
508
520
  memberName = ln[2] + memberName.slice(3);
509
521
  }
510
- if (oldValue) {
511
- plt.rel(elm, memberName, oldValue, false);
512
- }
513
- if (newValue) {
514
- plt.ael(elm, memberName, newValue, false);
522
+ if (oldValue || newValue) {
523
+ // Need to account for "capture" events.
524
+ // If the event name ends with "Capture", we'll update the name to remove
525
+ // the "Capture" suffix and make sure the event listener is setup to handle the capture event.
526
+ const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);
527
+ // Make sure we only replace the last instance of "Capture"
528
+ memberName = memberName.replace(CAPTURE_EVENT_REGEX, '');
529
+ if (oldValue) {
530
+ plt.rel(elm, memberName, oldValue, capture);
531
+ }
532
+ if (newValue) {
533
+ plt.ael(elm, memberName, newValue, capture);
534
+ }
515
535
  }
516
536
  }
517
537
  else {
@@ -573,6 +593,8 @@ const setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags) => {
573
593
  };
574
594
  const parseClassListRegex = /\s/;
575
595
  const parseClassList = (value) => (!value ? [] : value.split(parseClassListRegex));
596
+ const CAPTURE_EVENT_SUFFIX = 'Capture';
597
+ const CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + '$');
576
598
  const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
577
599
  // if the element passed in is a shadow root, which is a document fragment
578
600
  // then we want to be adding attrs/props to the shadow root's "host" element
@@ -606,6 +628,7 @@ const updateElement = (oldVnode, newVnode, isSvgMode, memberName) => {
606
628
  * @returns the newly created node
607
629
  */
608
630
  const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
631
+ var _a;
609
632
  // tslint:disable-next-line: prefer-const
610
633
  const newVNode = newParentVNode.$children$[childIndex];
611
634
  let i = 0;
@@ -684,6 +707,8 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
684
707
  if (newVNode.$flags$ & (2 /* VNODE_FLAGS.isSlotFallback */ | 1 /* VNODE_FLAGS.isSlotReference */)) {
685
708
  // remember the content reference comment
686
709
  elm['s-sr'] = true;
710
+ // Persist the name of the slot that this slot was going to be projected into.
711
+ elm['s-fs'] = (_a = newVNode.$attrs$) === null || _a === void 0 ? void 0 : _a.slot;
687
712
  // remember the content reference comment
688
713
  elm['s-cr'] = contentRef;
689
714
  // remember the slot name, or empty string for default slot
@@ -700,6 +725,7 @@ const createElm = (oldParentVNode, newParentVNode, childIndex, parentElm) => {
700
725
  return elm;
701
726
  };
702
727
  const putBackInOriginalLocation = (parentElm, recursive) => {
728
+ var _a;
703
729
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
704
730
  const oldSlotChildNodes = parentElm.childNodes;
705
731
  for (let i = oldSlotChildNodes.length - 1; i >= 0; i--) {
@@ -712,9 +738,17 @@ const putBackInOriginalLocation = (parentElm, recursive) => {
712
738
  parentReferenceNode(childNode).insertBefore(childNode, referenceNode(childNode));
713
739
  // remove the old original location comment entirely
714
740
  // later on the patch function will know what to do
715
- // and move this to the correct spot in need be
741
+ // and move this to the correct spot if need be
716
742
  childNode['s-ol'].remove();
717
743
  childNode['s-ol'] = undefined;
744
+ // Reset so we can correctly move the node around again.
745
+ childNode['s-sh'] = undefined;
746
+ // When putting an element node back in its original location,
747
+ // we need to reset the `slot` attribute back to the value it originally had
748
+ // so we can correctly relocate it again in the future
749
+ if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
750
+ childNode.setAttribute('slot', (_a = childNode['s-sn']) !== null && _a !== void 0 ? _a : '');
751
+ }
718
752
  checkSlotRelocate = true;
719
753
  }
720
754
  if (recursive) {
@@ -1138,42 +1172,53 @@ const patch = (oldVNode, newVNode) => {
1138
1172
  elm.data = text;
1139
1173
  }
1140
1174
  };
1175
+ /**
1176
+ * Adjust the `.hidden` property as-needed on any nodes in a DOM subtree which
1177
+ * are slot fallbacks nodes.
1178
+ *
1179
+ * A slot fallback node should be visible by default. Then, it should be
1180
+ * conditionally hidden if:
1181
+ *
1182
+ * - it has a sibling with a `slot` property set to its slot name or if
1183
+ * - it is a default fallback slot node, in which case we hide if it has any
1184
+ * content
1185
+ *
1186
+ * @param elm the element of interest
1187
+ */
1141
1188
  const updateFallbackSlotVisibility = (elm) => {
1142
- // tslint:disable-next-line: prefer-const
1143
1189
  const childNodes = elm.childNodes;
1144
- let childNode;
1145
- let i;
1146
- let ilen;
1147
- let j;
1148
- let slotNameAttr;
1149
- let nodeType;
1150
- for (i = 0, ilen = childNodes.length; i < ilen; i++) {
1151
- childNode = childNodes[i];
1190
+ for (const childNode of childNodes) {
1152
1191
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1153
1192
  if (childNode['s-sr']) {
1154
1193
  // this is a slot fallback node
1155
1194
  // get the slot name for this slot reference node
1156
- slotNameAttr = childNode['s-sn'];
1195
+ const slotName = childNode['s-sn'];
1157
1196
  // by default always show a fallback slot node
1158
1197
  // then hide it if there are other slots in the light dom
1159
1198
  childNode.hidden = false;
1160
- for (j = 0; j < ilen; j++) {
1161
- nodeType = childNodes[j].nodeType;
1162
- if (childNodes[j]['s-hn'] !== childNode['s-hn'] || slotNameAttr !== '') {
1163
- // this sibling node is from a different component OR is a named fallback slot node
1164
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ && slotNameAttr === childNodes[j].getAttribute('slot')) {
1165
- childNode.hidden = true;
1166
- break;
1199
+ // we need to check all of its sibling nodes in order to see if
1200
+ // `childNode` should be hidden
1201
+ for (const siblingNode of childNodes) {
1202
+ // Don't check the node against itself
1203
+ if (siblingNode !== childNode) {
1204
+ if (siblingNode['s-hn'] !== childNode['s-hn'] || slotName !== '') {
1205
+ // this sibling node is from a different component OR is a named
1206
+ // fallback slot node
1207
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ &&
1208
+ (slotName === siblingNode.getAttribute('slot') || slotName === siblingNode['s-sn'])) {
1209
+ childNode.hidden = true;
1210
+ break;
1211
+ }
1167
1212
  }
1168
- }
1169
- else {
1170
- // this is a default fallback slot node
1171
- // any element or text node (with content)
1172
- // should hide the default fallback slot node
1173
- if (nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1174
- (nodeType === 3 /* NODE_TYPE.TextNode */ && childNodes[j].textContent.trim() !== '')) {
1175
- childNode.hidden = true;
1176
- break;
1213
+ else {
1214
+ // this is a default fallback slot node
1215
+ // any element or text node (with content)
1216
+ // should hide the default fallback slot node
1217
+ if (siblingNode.nodeType === 1 /* NODE_TYPE.ElementNode */ ||
1218
+ (siblingNode.nodeType === 3 /* NODE_TYPE.TextNode */ && siblingNode.textContent.trim() !== '')) {
1219
+ childNode.hidden = true;
1220
+ break;
1221
+ }
1177
1222
  }
1178
1223
  }
1179
1224
  }
@@ -1183,45 +1228,67 @@ const updateFallbackSlotVisibility = (elm) => {
1183
1228
  }
1184
1229
  }
1185
1230
  };
1231
+ /**
1232
+ * Component-global information about nodes which are either currently being
1233
+ * relocated or will be shortly.
1234
+ */
1186
1235
  const relocateNodes = [];
1187
- const relocateSlotContent = (elm) => {
1236
+ /**
1237
+ * Mark the contents of a slot for relocation via adding references to them to
1238
+ * the {@link relocateNodes} data structure. The actual work of relocating them
1239
+ * will then be handled in {@link renderVdom}.
1240
+ *
1241
+ * @param elm a render node whose child nodes need to be relocated
1242
+ */
1243
+ const markSlotContentForRelocation = (elm) => {
1188
1244
  // tslint:disable-next-line: prefer-const
1189
- let childNode;
1190
1245
  let node;
1191
1246
  let hostContentNodes;
1192
- let slotNameAttr;
1193
- let relocateNodeData;
1194
1247
  let j;
1195
- let i = 0;
1196
- const childNodes = elm.childNodes;
1197
- const ilen = childNodes.length;
1198
- for (; i < ilen; i++) {
1199
- childNode = childNodes[i];
1248
+ for (const childNode of elm.childNodes) {
1249
+ // we need to find child nodes which are slot references so we can then try
1250
+ // to match them up with nodes that need to be relocated
1200
1251
  if (childNode['s-sr'] && (node = childNode['s-cr']) && node.parentNode) {
1201
- // first got the content reference comment node
1202
- // then we got it's parent, which is where all the host content is in now
1252
+ // first get the content reference comment node ('s-cr'), then we get
1253
+ // its parent, which is where all the host content is now
1203
1254
  hostContentNodes = node.parentNode.childNodes;
1204
- slotNameAttr = childNode['s-sn'];
1255
+ const slotName = childNode['s-sn'];
1256
+ // iterate through all the nodes under the location where the host was
1257
+ // originally rendered
1205
1258
  for (j = hostContentNodes.length - 1; j >= 0; j--) {
1206
1259
  node = hostContentNodes[j];
1207
- if (!node['s-cn'] && !node['s-nr'] && node['s-hn'] !== childNode['s-hn']) {
1208
- // let's do some relocating to its new home
1209
- // but never relocate a content reference node
1210
- // that is suppose to always represent the original content location
1211
- if (isNodeLocatedInSlot(node, slotNameAttr)) {
1260
+ // check that the node is not a content reference node or a node
1261
+ // reference and then check that the host name does not match that of
1262
+ // childNode.
1263
+ // In addition, check that the slot either has not already been relocated, or
1264
+ // that its current location's host is not childNode's host. This is essentially
1265
+ // a check so that we don't try to relocate (and then hide) a node that is already
1266
+ // where it should be.
1267
+ if (!node['s-cn'] &&
1268
+ !node['s-nr'] &&
1269
+ node['s-hn'] !== childNode['s-hn'] &&
1270
+ (!BUILD.experimentalSlotFixes )) {
1271
+ // if `node` is located in the slot that `childNode` refers to (via the
1272
+ // `'s-sn'` property) then we need to relocate it from it's current spot
1273
+ // (under the host element parent) to the right slot location
1274
+ if (isNodeLocatedInSlot(node, slotName)) {
1212
1275
  // it's possible we've already decided to relocate this node
1213
- relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1276
+ let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
1214
1277
  // made some changes to slots
1215
1278
  // let's make sure we also double check
1216
1279
  // fallbacks are correctly hidden or shown
1217
1280
  checkSlotFallbackVisibility = true;
1218
- node['s-sn'] = node['s-sn'] || slotNameAttr;
1281
+ // ensure that the slot-name attr is correct
1282
+ node['s-sn'] = node['s-sn'] || slotName;
1219
1283
  if (relocateNodeData) {
1220
- // previously we never found a slot home for this node
1221
- // but turns out we did, so let's remember it now
1284
+ relocateNodeData.$nodeToRelocate$['s-sh'] = childNode['s-hn'];
1285
+ // we marked this node for relocation previously but didn't find
1286
+ // out the slot reference node to which it needs to be relocated
1287
+ // so write it down now!
1222
1288
  relocateNodeData.$slotRefNode$ = childNode;
1223
1289
  }
1224
1290
  else {
1291
+ node['s-sh'] = childNode['s-hn'];
1225
1292
  // add to our list of nodes to relocate
1226
1293
  relocateNodes.push({
1227
1294
  $slotRefNode$: childNode,
@@ -1240,8 +1307,10 @@ const relocateSlotContent = (elm) => {
1240
1307
  }
1241
1308
  }
1242
1309
  else if (!relocateNodes.some((r) => r.$nodeToRelocate$ === node)) {
1243
- // so far this element does not have a slot home, not setting slotRefNode on purpose
1244
- // if we never find a home for this element then we'll need to hide it
1310
+ // the node is not found within the slot (`childNode`) that we're
1311
+ // currently looking at, so we stick it into `relocateNodes` to
1312
+ // handle later. If we never find a home for this element then
1313
+ // we'll need to hide it
1245
1314
  relocateNodes.push({
1246
1315
  $nodeToRelocate$: node,
1247
1316
  });
@@ -1249,30 +1318,41 @@ const relocateSlotContent = (elm) => {
1249
1318
  }
1250
1319
  }
1251
1320
  }
1321
+ // if we're dealing with any type of element (capable of itself being a
1322
+ // slot reference or containing one) then we recur
1252
1323
  if (childNode.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1253
- relocateSlotContent(childNode);
1324
+ markSlotContentForRelocation(childNode);
1254
1325
  }
1255
1326
  }
1256
1327
  };
1257
- const isNodeLocatedInSlot = (nodeToRelocate, slotNameAttr) => {
1328
+ /**
1329
+ * Check whether a node is located in a given named slot.
1330
+ *
1331
+ * @param nodeToRelocate the node of interest
1332
+ * @param slotName the slot name to check
1333
+ * @returns whether the node is located in the slot or not
1334
+ */
1335
+ const isNodeLocatedInSlot = (nodeToRelocate, slotName) => {
1258
1336
  if (nodeToRelocate.nodeType === 1 /* NODE_TYPE.ElementNode */) {
1259
- if (nodeToRelocate.getAttribute('slot') === null && slotNameAttr === '') {
1337
+ if (nodeToRelocate.getAttribute('slot') === null && slotName === '') {
1338
+ // if the node doesn't have a slot attribute, and the slot we're checking
1339
+ // is not a named slot, then we assume the node should be within the slot
1260
1340
  return true;
1261
1341
  }
1262
- if (nodeToRelocate.getAttribute('slot') === slotNameAttr) {
1342
+ if (nodeToRelocate.getAttribute('slot') === slotName) {
1263
1343
  return true;
1264
1344
  }
1265
1345
  return false;
1266
1346
  }
1267
- if (nodeToRelocate['s-sn'] === slotNameAttr) {
1347
+ if (nodeToRelocate['s-sn'] === slotName) {
1268
1348
  return true;
1269
1349
  }
1270
- return slotNameAttr === '';
1350
+ return slotName === '';
1271
1351
  };
1272
1352
  /**
1273
- * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by
1274
- * calling them with `null`. This signals that the DOM element corresponding to
1275
- * the VDom node has been removed from the DOM.
1353
+ * 'Nullify' any VDom `ref` callbacks on a VDom node or its children by calling
1354
+ * them with `null`. This signals that the DOM element corresponding to the VDom
1355
+ * node has been removed from the DOM.
1276
1356
  *
1277
1357
  * @param vNode a virtual DOM node
1278
1358
  */
@@ -1296,6 +1376,7 @@ const nullifyVNodeRefs = (vNode) => {
1296
1376
  * @param isInitialLoad whether or not this is the first call after page load
1297
1377
  */
1298
1378
  const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1379
+ var _a, _b;
1299
1380
  const hostElm = hostRef.$hostElement$;
1300
1381
  const cmpMeta = hostRef.$cmpMeta$;
1301
1382
  const oldVNode = hostRef.$vnode$ || newVNode(null, null);
@@ -1351,43 +1432,48 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1351
1432
  // the disconnectCallback from working
1352
1433
  plt.$flags$ |= 1 /* PLATFORM_FLAGS.isTmpDisconnected */;
1353
1434
  if (checkSlotRelocate) {
1354
- relocateSlotContent(rootVnode.$elm$);
1355
- let relocateData;
1356
- let nodeToRelocate;
1357
- let orgLocationNode;
1358
- let parentNodeRef;
1359
- let insertBeforeNode;
1360
- let refNode;
1361
- let i = 0;
1362
- for (; i < relocateNodes.length; i++) {
1363
- relocateData = relocateNodes[i];
1364
- nodeToRelocate = relocateData.$nodeToRelocate$;
1435
+ markSlotContentForRelocation(rootVnode.$elm$);
1436
+ for (const relocateData of relocateNodes) {
1437
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1365
1438
  if (!nodeToRelocate['s-ol']) {
1366
1439
  // add a reference node marking this node's original location
1367
1440
  // keep a reference to this node for later lookups
1368
- orgLocationNode =
1369
- doc.createTextNode('');
1441
+ const orgLocationNode = doc.createTextNode('');
1370
1442
  orgLocationNode['s-nr'] = nodeToRelocate;
1371
1443
  nodeToRelocate.parentNode.insertBefore((nodeToRelocate['s-ol'] = orgLocationNode), nodeToRelocate);
1372
1444
  }
1373
1445
  }
1374
- for (i = 0; i < relocateNodes.length; i++) {
1375
- relocateData = relocateNodes[i];
1376
- nodeToRelocate = relocateData.$nodeToRelocate$;
1377
- if (relocateData.$slotRefNode$) {
1378
- // by default we're just going to insert it directly
1379
- // after the slot reference node
1380
- parentNodeRef = relocateData.$slotRefNode$.parentNode;
1381
- insertBeforeNode = relocateData.$slotRefNode$.nextSibling;
1382
- orgLocationNode = nodeToRelocate['s-ol'];
1383
- while ((orgLocationNode = orgLocationNode.previousSibling)) {
1384
- refNode = orgLocationNode['s-nr'];
1385
- if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1386
- refNode = refNode.nextSibling;
1387
- if (!refNode || !refNode['s-nr']) {
1388
- insertBeforeNode = refNode;
1389
- break;
1446
+ for (const relocateData of relocateNodes) {
1447
+ const nodeToRelocate = relocateData.$nodeToRelocate$;
1448
+ const slotRefNode = relocateData.$slotRefNode$;
1449
+ if (slotRefNode) {
1450
+ const parentNodeRef = slotRefNode.parentNode;
1451
+ // When determining where to insert content, the most simple case would be
1452
+ // to relocate the node immediately following the slot reference node. We do this
1453
+ // by getting a reference to the node immediately following the slot reference node
1454
+ // since we will use `insertBefore` to manipulate the DOM.
1455
+ //
1456
+ // If there is no node immediately following the slot reference node, then we will just
1457
+ // end up appending the node as the last child of the parent.
1458
+ let insertBeforeNode = slotRefNode.nextSibling;
1459
+ // If the node we're currently planning on inserting the new node before is an element,
1460
+ // we need to do some additional checks to make sure we're inserting the node in the correct order.
1461
+ // The use case here would be that we have multiple nodes being relocated to the same slot. So, we want
1462
+ // to make sure they get inserted into their new how in the same order they were declared in their original location.
1463
+ //
1464
+ // TODO(STENCIL-914): Remove `experimentalSlotFixes` check
1465
+ {
1466
+ let orgLocationNode = (_a = nodeToRelocate['s-ol']) === null || _a === void 0 ? void 0 : _a.previousSibling;
1467
+ while (orgLocationNode) {
1468
+ let refNode = (_b = orgLocationNode['s-nr']) !== null && _b !== void 0 ? _b : null;
1469
+ if (refNode && refNode['s-sn'] === nodeToRelocate['s-sn'] && parentNodeRef === refNode.parentNode) {
1470
+ refNode = refNode.nextSibling;
1471
+ if (!refNode || !refNode['s-nr']) {
1472
+ insertBeforeNode = refNode;
1473
+ break;
1474
+ }
1390
1475
  }
1476
+ orgLocationNode = orgLocationNode.previousSibling;
1391
1477
  }
1392
1478
  }
1393
1479
  if ((!insertBeforeNode && parentNodeRef !== nodeToRelocate.parentNode) ||
@@ -1397,10 +1483,13 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1397
1483
  // has a different next sibling or parent relocated
1398
1484
  if (nodeToRelocate !== insertBeforeNode) {
1399
1485
  if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1400
- // probably a component in the index.html that doesn't have it's hostname set
1486
+ // probably a component in the index.html that doesn't have its hostname set
1401
1487
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1402
1488
  }
1403
- // add it back to the dom but in its new home
1489
+ // Add it back to the dom but in its new home
1490
+ // If we get to this point and `insertBeforeNode` is `null`, that means
1491
+ // we're just going to append the node as the last child of the parent. Passing
1492
+ // `null` as the second arg here will trigger that behavior.
1404
1493
  parentNodeRef.insertBefore(nodeToRelocate, insertBeforeNode);
1405
1494
  }
1406
1495
  }
@@ -1578,6 +1667,10 @@ const updateComponent = async (hostRef, instance, isInitialLoad) => {
1578
1667
  const callRender = (hostRef, instance, elm, isInitialLoad) => {
1579
1668
  try {
1580
1669
  renderingRef = instance;
1670
+ /**
1671
+ * minification optimization: `allRenderFn` is `true` if all components have a `render`
1672
+ * method, so we can call the method immediately. If not, check before calling it.
1673
+ */
1581
1674
  instance = instance.render() ;
1582
1675
  {
1583
1676
  hostRef.$flags$ &= ~16 /* HOST_FLAGS.isQueuedForUpdate */;
@@ -1671,6 +1764,16 @@ const appDidLoad = (who) => {
1671
1764
  }
1672
1765
  nextTick(() => emitEvent(win, 'appload', { detail: { namespace: NAMESPACE } }));
1673
1766
  };
1767
+ /**
1768
+ * Allows to safely call a method, e.g. `componentDidLoad`, on an instance,
1769
+ * e.g. custom element node. If a build figures out that e.g. no component
1770
+ * has a `componentDidLoad` method, the instance method gets removed from the
1771
+ * output bundle and this function returns `undefined`.
1772
+ * @param instance any object that may or may not contain methods
1773
+ * @param method method name
1774
+ * @param arg single arbitrary argument
1775
+ * @returns result of method call if it exists, otherwise `undefined`
1776
+ */
1674
1777
  const safeCall = (instance, method, arg) => {
1675
1778
  if (instance && instance[method]) {
1676
1779
  try {
@@ -1738,6 +1841,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1738
1841
  * @returns a reference to the same constructor passed in (but now mutated)
1739
1842
  */
1740
1843
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1844
+ var _a;
1741
1845
  if (cmpMeta.$members$) {
1742
1846
  if (Cstr.watchers) {
1743
1847
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1775,7 +1879,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1775
1879
  });
1776
1880
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1777
1881
  const attrNameToPropName = new Map();
1778
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1882
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1779
1883
  plt.jmp(() => {
1780
1884
  const propName = attrNameToPropName.get(attrName);
1781
1885
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -1798,12 +1902,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1798
1902
  // customElements.define('my-component', MyComponent);
1799
1903
  // </script>
1800
1904
  // ```
1801
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
1905
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
1802
1906
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
1803
1907
  // to the value that was set inline i.e. "some-value" from above example. When
1804
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
1908
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
1805
1909
  //
1806
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
1910
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
1807
1911
  // by connectedCallback as this attributeChangedCallback will not fire.
1808
1912
  //
1809
1913
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1823,26 +1927,65 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1823
1927
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
1824
1928
  return;
1825
1929
  }
1930
+ else if (propName == null) {
1931
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
1932
+ // on a vanilla web component
1933
+ const hostRef = getHostRef(this);
1934
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
1935
+ // We only want to trigger the callback(s) if:
1936
+ // 1. The instance is ready
1937
+ // 2. The watchers are ready
1938
+ // 3. The value has changed
1939
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
1940
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
1941
+ newValue !== oldValue) {
1942
+ const instance = hostRef.$lazyInstance$ ;
1943
+ const entry = cmpMeta.$watchers$[attrName];
1944
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
1945
+ if (instance[callbackName] != null) {
1946
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
1947
+ }
1948
+ });
1949
+ }
1950
+ return;
1951
+ }
1826
1952
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
1827
1953
  });
1828
1954
  };
1829
- // create an array of attributes to observe
1830
- // and also create a map of html attribute name to js property name
1831
- Cstr.observedAttributes = members
1832
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
1833
- .map(([propName, m]) => {
1834
- const attrName = m[1] || propName;
1835
- attrNameToPropName.set(attrName, propName);
1836
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1837
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
1838
- }
1839
- return attrName;
1840
- });
1955
+ // Create an array of attributes to observe
1956
+ // This list in comprised of all strings used within a `@Watch()` decorator
1957
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
1958
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
1959
+ // an invalid attribute.
1960
+ Cstr.observedAttributes = Array.from(new Set([
1961
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
1962
+ ...members
1963
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
1964
+ .map(([propName, m]) => {
1965
+ const attrName = m[1] || propName;
1966
+ attrNameToPropName.set(attrName, propName);
1967
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
1968
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
1969
+ }
1970
+ return attrName;
1971
+ }),
1972
+ ]));
1841
1973
  }
1842
1974
  }
1843
1975
  return Cstr;
1844
1976
  };
1845
- const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId, Cstr) => {
1977
+ /**
1978
+ * Initialize a Stencil component given a reference to its host element, its
1979
+ * runtime bookkeeping data structure, runtime metadata about the component,
1980
+ * and (optionally) an HMR version ID.
1981
+ *
1982
+ * @param elm a host element
1983
+ * @param hostRef the element's runtime bookkeeping object
1984
+ * @param cmpMeta runtime metadata for the Stencil component
1985
+ * @param hmrVersionId an (optional) HMR version ID
1986
+ */
1987
+ const initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
1988
+ let Cstr;
1846
1989
  // initializeComponent
1847
1990
  if ((hostRef.$flags$ & 32 /* HOST_FLAGS.hasInitializedComponent */) === 0) {
1848
1991
  // Let the runtime know that the component has been initialized
@@ -2031,20 +2174,27 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2031
2174
  const customElements = win.customElements;
2032
2175
  const head = doc.head;
2033
2176
  const metaCharset = /*@__PURE__*/ head.querySelector('meta[charset]');
2034
- const visibilityStyle = /*@__PURE__*/ doc.createElement('style');
2177
+ const dataStyles = /*@__PURE__*/ doc.createElement('style');
2035
2178
  const deferredConnectedCallbacks = [];
2036
2179
  let appLoadFallback;
2037
2180
  let isBootstrapping = true;
2038
2181
  Object.assign(plt, options);
2039
2182
  plt.$resourcesUrl$ = new URL(options.resourcesUrl || './', doc.baseURI).href;
2183
+ let hasSlotRelocation = false;
2040
2184
  lazyBundles.map((lazyBundle) => {
2041
2185
  lazyBundle[1].map((compactMeta) => {
2186
+ var _a;
2042
2187
  const cmpMeta = {
2043
2188
  $flags$: compactMeta[0],
2044
2189
  $tagName$: compactMeta[1],
2045
2190
  $members$: compactMeta[2],
2046
2191
  $listeners$: compactMeta[3],
2047
2192
  };
2193
+ // Check if we are using slots outside the shadow DOM in this component.
2194
+ // We'll use this information later to add styles for `slot-fb` elements
2195
+ if (cmpMeta.$flags$ & 4 /* CMP_FLAGS.hasSlotRelocation */) {
2196
+ hasSlotRelocation = true;
2197
+ }
2048
2198
  {
2049
2199
  cmpMeta.$members$ = compactMeta[2];
2050
2200
  }
@@ -2055,7 +2205,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2055
2205
  cmpMeta.$attrsToReflect$ = [];
2056
2206
  }
2057
2207
  {
2058
- cmpMeta.$watchers$ = {};
2208
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2059
2209
  }
2060
2210
  const tagName = cmpMeta.$tagName$;
2061
2211
  const HostElement = class extends HTMLElement {
@@ -2104,15 +2254,23 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2104
2254
  }
2105
2255
  });
2106
2256
  });
2257
+ // Add styles for `slot-fb` elements if any of our components are using slots outside the Shadow DOM
2258
+ if (hasSlotRelocation) {
2259
+ dataStyles.innerHTML += SLOT_FB_CSS;
2260
+ }
2261
+ // Add hydration styles
2107
2262
  {
2108
- visibilityStyle.innerHTML = cmpTags + HYDRATED_CSS;
2109
- visibilityStyle.setAttribute('data-styles', '');
2263
+ dataStyles.innerHTML += cmpTags + HYDRATED_CSS;
2264
+ }
2265
+ // If we have styles, add them to the DOM
2266
+ if (dataStyles.innerHTML.length) {
2267
+ dataStyles.setAttribute('data-styles', '');
2268
+ head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);
2110
2269
  // Apply CSP nonce to the style tag if it exists
2111
2270
  const nonce = (_a = plt.$nonce$) !== null && _a !== void 0 ? _a : queryNonceMetaTagContent(doc);
2112
2271
  if (nonce != null) {
2113
- visibilityStyle.setAttribute('nonce', nonce);
2272
+ dataStyles.setAttribute('nonce', nonce);
2114
2273
  }
2115
- head.insertBefore(visibilityStyle, metaCharset ? metaCharset.nextSibling : head.firstChild);
2116
2274
  }
2117
2275
  // Process deferred connectedCallbacks now all components have been registered
2118
2276
  isBootstrapping = false;
@@ -2171,13 +2329,40 @@ const hostListenerOpts = (flags) => (flags & 2 /* LISTENER_FLAGS.Capture */) !==
2171
2329
  * @returns void
2172
2330
  */
2173
2331
  const setNonce = (nonce) => (plt.$nonce$ = nonce);
2332
+ /**
2333
+ * A WeakMap mapping runtime component references to their corresponding host reference
2334
+ * instances.
2335
+ */
2174
2336
  const hostRefs = /*@__PURE__*/ new WeakMap();
2337
+ /**
2338
+ * Given a {@link d.RuntimeRef} retrieve the corresponding {@link d.HostRef}
2339
+ *
2340
+ * @param ref the runtime ref of interest
2341
+ * @returns the Host reference (if found) or undefined
2342
+ */
2175
2343
  const getHostRef = (ref) => hostRefs.get(ref);
2344
+ /**
2345
+ * Register a lazy instance with the {@link hostRefs} object so it's
2346
+ * corresponding {@link d.HostRef} can be retrieved later.
2347
+ *
2348
+ * @param lazyInstance the lazy instance of interest
2349
+ * @param hostRef that instances `HostRef` object
2350
+ * @returns a reference to the host ref WeakMap
2351
+ */
2176
2352
  const registerInstance = (lazyInstance, hostRef) => hostRefs.set((hostRef.$lazyInstance$ = lazyInstance), hostRef);
2177
- const registerHost = (elm, cmpMeta) => {
2353
+ /**
2354
+ * Register a host element for a Stencil component, setting up various metadata
2355
+ * and callbacks based on {@link BUILD} flags as well as the component's runtime
2356
+ * metadata.
2357
+ *
2358
+ * @param hostElement the host element to register
2359
+ * @param cmpMeta runtime metadata for that component
2360
+ * @returns a reference to the host ref WeakMap
2361
+ */
2362
+ const registerHost = (hostElement, cmpMeta) => {
2178
2363
  const hostRef = {
2179
2364
  $flags$: 0,
2180
- $hostElement$: elm,
2365
+ $hostElement$: hostElement,
2181
2366
  $cmpMeta$: cmpMeta,
2182
2367
  $instanceValues$: new Map(),
2183
2368
  };
@@ -2186,11 +2371,11 @@ const registerHost = (elm, cmpMeta) => {
2186
2371
  }
2187
2372
  {
2188
2373
  hostRef.$onReadyPromise$ = new Promise((r) => (hostRef.$onReadyResolve$ = r));
2189
- elm['s-p'] = [];
2190
- elm['s-rc'] = [];
2374
+ hostElement['s-p'] = [];
2375
+ hostElement['s-rc'] = [];
2191
2376
  }
2192
- addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
2193
- return hostRefs.set(elm, hostRef);
2377
+ addHostEventListeners(hostElement, hostRef, cmpMeta.$listeners$);
2378
+ return hostRefs.set(hostElement, hostRef);
2194
2379
  };
2195
2380
  const isMemberInElement = (elm, memberName) => memberName in elm;
2196
2381
  const consoleError = (e, el) => (0, console.error)(e, el);
@@ -2278,7 +2463,7 @@ const flush = () => {
2278
2463
  }
2279
2464
  }
2280
2465
  };
2281
- const nextTick = /*@__PURE__*/ (cb) => promiseResolve().then(cb);
2466
+ const nextTick = (cb) => promiseResolve().then(cb);
2282
2467
  const writeTask = /*@__PURE__*/ queueTask(queueDomWrites, true);
2283
2468
 
2284
2469
  exports.Fragment = Fragment;
@@ -2293,4 +2478,4 @@ exports.promiseResolve = promiseResolve;
2293
2478
  exports.registerInstance = registerInstance;
2294
2479
  exports.setNonce = setNonce;
2295
2480
 
2296
- //# sourceMappingURL=index-d46ec033.js.map
2481
+ //# sourceMappingURL=index-2556c4c6.js.map