@blaze-cms/react-page-builder 0.146.0-node18-core-styles-tooltips.58 → 0.146.0-node18-core-styles-tooltips.60

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 (411) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/lib/BannerContext/index.js +1 -1
  3. package/lib/BannerContext/index.js.map +1 -1
  4. package/lib/HOC/withInfiniteScroll.js +2 -2
  5. package/lib/HOC/withInfiniteScroll.js.map +1 -1
  6. package/lib/HOC/withTitle.js +1 -1
  7. package/lib/HOC/withTitle.js.map +1 -1
  8. package/lib/application/query/index.js +0 -1
  9. package/lib/application/query/index.js.map +1 -1
  10. package/lib/components/BackToTop/BackToTop.js +1 -1
  11. package/lib/components/BackToTop/BackToTop.js.map +1 -1
  12. package/lib/components/Banner/AdSlotRender.js +2 -2
  13. package/lib/components/Banner/AdSlotRender.js.map +1 -1
  14. package/lib/components/Banner/Banner.js +2 -2
  15. package/lib/components/Banner/Banner.js.map +1 -1
  16. package/lib/components/Banner/helpers.js +3 -3
  17. package/lib/components/Banner/helpers.js.map +1 -1
  18. package/lib/components/Banner/index.js +2 -2
  19. package/lib/components/Banner/index.js.map +1 -1
  20. package/lib/components/BlazeLink.js +1 -1
  21. package/lib/components/BlazeLink.js.map +1 -1
  22. package/lib/components/Breadcrumb/Breadcrumb.js +2 -2
  23. package/lib/components/Breadcrumb/Breadcrumb.js.map +1 -1
  24. package/lib/components/Button.js +3 -3
  25. package/lib/components/Button.js.map +1 -1
  26. package/lib/components/Card/Card.js +1 -1
  27. package/lib/components/Card/Card.js.map +1 -1
  28. package/lib/components/Card/CardsContainer.js +2 -2
  29. package/lib/components/Card/CardsContainer.js.map +1 -1
  30. package/lib/components/Card/CardsRender.js +1 -1
  31. package/lib/components/Card/CardsRender.js.map +1 -1
  32. package/lib/components/Carousel/Carousel.js +1 -1
  33. package/lib/components/Carousel/Carousel.js.map +1 -1
  34. package/lib/components/Carousel/CarouselRender/CarouselRender.js +0 -1
  35. package/lib/components/Carousel/CarouselRender/CarouselRender.js.map +1 -1
  36. package/lib/components/CarouselWrapper/DefaultCarousel.js +1 -1
  37. package/lib/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
  38. package/lib/components/ClickWrapper.js +1 -1
  39. package/lib/components/ClickWrapper.js.map +1 -1
  40. package/lib/components/Code/Code.js +1 -1
  41. package/lib/components/Code/Code.js.map +1 -1
  42. package/lib/components/Code/ScriptTag.js +1 -1
  43. package/lib/components/Code/ScriptTag.js.map +1 -1
  44. package/lib/components/ContentGroup/ContentGroup.js +40 -8
  45. package/lib/components/ContentGroup/ContentGroup.js.map +1 -1
  46. package/lib/components/ContentGroup/ContentGroupAccordion.js +1 -1
  47. package/lib/components/ContentGroup/ContentGroupAccordion.js.map +1 -1
  48. package/lib/components/ContentGroup/ContentGroupDataFetcher.js +94 -0
  49. package/lib/components/ContentGroup/ContentGroupDataFetcher.js.map +1 -0
  50. package/lib/components/ContentGroup/ContentGroupTabs.js +2 -2
  51. package/lib/components/ContentGroup/ContentGroupTabs.js.map +1 -1
  52. package/lib/components/ContentGroup/helpers/build-data-sections.js +67 -0
  53. package/lib/components/ContentGroup/helpers/build-data-sections.js.map +1 -0
  54. package/lib/components/ContentGroup/helpers/get-sections-data.js +0 -1
  55. package/lib/components/ContentGroup/helpers/get-sections-data.js.map +1 -1
  56. package/lib/components/ContentGroup/helpers/index.js +7 -0
  57. package/lib/components/ContentGroup/helpers/index.js.map +1 -1
  58. package/lib/components/ContentGroupSection/ContentGroupSection.js +3 -2
  59. package/lib/components/ContentGroupSection/ContentGroupSection.js.map +1 -1
  60. package/lib/components/DataSummary/DataSummaryFactory.js +1 -1
  61. package/lib/components/DataSummary/DataSummaryFactory.js.map +1 -1
  62. package/lib/components/DataSummary/DataSummaryRender.js +0 -1
  63. package/lib/components/DataSummary/DataSummaryRender.js.map +1 -1
  64. package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js +2 -2
  65. package/lib/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummaryContent.js.map +1 -1
  66. package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js +2 -2
  67. package/lib/components/DataSummary/DataSummaryTypes/ItemDetailsSummary/ItemDetailsSummaryContent.js.map +1 -1
  68. package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js +2 -2
  69. package/lib/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
  70. package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js +2 -2
  71. package/lib/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
  72. package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js +2 -2
  73. package/lib/components/DataSummary/DataSummaryTypes/TextSummary/TextSummaryContent.js.map +1 -1
  74. package/lib/components/DataSummary/DataSummaryTypes/index.js +6 -6
  75. package/lib/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
  76. package/lib/components/EmailConfirm/EmailConfirm.js +1 -1
  77. package/lib/components/EmailConfirm/EmailConfirm.js.map +1 -1
  78. package/lib/components/ErrorMessage/ErrorMessage.js.map +1 -1
  79. package/lib/components/ErrorMessage/index.js +2 -2
  80. package/lib/components/ErrorMessage/index.js.map +1 -1
  81. package/lib/components/Image/GlobalLightbox/GlobalLightbox.js +1 -1
  82. package/lib/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
  83. package/lib/components/Image/GlobalLightbox/index.js +2 -2
  84. package/lib/components/Image/GlobalLightbox/index.js.map +1 -1
  85. package/lib/components/Image/Image.js +1 -1
  86. package/lib/components/Image/Image.js.map +1 -1
  87. package/lib/components/Image/ImageFactory.js +2 -2
  88. package/lib/components/Image/ImageFactory.js.map +1 -1
  89. package/lib/components/Image/Lightbox/Lightbox.js +1 -1
  90. package/lib/components/Image/Lightbox/Lightbox.js.map +1 -1
  91. package/lib/components/ItemList/ItemListButton/ItemListButton.js +1 -1
  92. package/lib/components/ItemList/ItemListButton/ItemListButton.js.map +1 -1
  93. package/lib/components/ItemList/helpers/get-item-list-ids.js +0 -1
  94. package/lib/components/ItemList/helpers/get-item-list-ids.js.map +1 -1
  95. package/lib/components/ItemList/helpers/set-param-and-redirect.js +0 -1
  96. package/lib/components/ItemList/helpers/set-param-and-redirect.js.map +1 -1
  97. package/lib/components/Layout/LayoutFactory.js +2 -2
  98. package/lib/components/Layout/LayoutFactory.js.map +1 -1
  99. package/lib/components/Layout/LayoutWithStickyTimer.js +1 -1
  100. package/lib/components/Layout/LayoutWithStickyTimer.js.map +1 -1
  101. package/lib/components/LazyImage/index.js +2 -2
  102. package/lib/components/LazyImage/index.js.map +1 -1
  103. package/lib/components/List/ListFactory.js +1 -1
  104. package/lib/components/List/ListFactory.js.map +1 -1
  105. package/lib/components/List/ListRender.js +1 -1
  106. package/lib/components/List/ListRender.js.map +1 -1
  107. package/lib/components/List/components/Cards/CardsRender.js +1 -1
  108. package/lib/components/List/components/Cards/CardsRender.js.map +1 -1
  109. package/lib/components/List/components/Cards/CardsRenderWrapper.js +2 -2
  110. package/lib/components/List/components/Cards/CardsRenderWrapper.js.map +1 -1
  111. package/lib/components/List/components/Full/FullRender.js +2 -2
  112. package/lib/components/List/components/Full/FullRender.js.map +1 -1
  113. package/lib/components/List/components/Full/FullRenderItem.js +2 -2
  114. package/lib/components/List/components/Full/FullRenderItem.js.map +1 -1
  115. package/lib/components/List/components/Header/ListHeader.js +0 -1
  116. package/lib/components/List/components/Header/ListHeader.js.map +1 -1
  117. package/lib/components/List/components/Pagination/ListPagination.js +1 -1
  118. package/lib/components/List/components/Pagination/ListPagination.js.map +1 -1
  119. package/lib/components/List/components/helpers/check-if-should-render-banner.js +1 -0
  120. package/lib/components/List/components/helpers/check-if-should-render-banner.js.map +1 -1
  121. package/lib/components/List/components/helpers/check-if-should-render-gtm.js +1 -0
  122. package/lib/components/List/components/helpers/check-if-should-render-gtm.js.map +1 -1
  123. package/lib/components/List/helpers/build-query-booster.js +1 -2
  124. package/lib/components/List/helpers/build-query-booster.js.map +1 -1
  125. package/lib/components/Loading/index.js +2 -2
  126. package/lib/components/Loading/index.js.map +1 -1
  127. package/lib/components/Menu/Menu.js +1 -1
  128. package/lib/components/Menu/Menu.js.map +1 -1
  129. package/lib/components/MenuItem/MenuItemRender.js +1 -1
  130. package/lib/components/MenuItem/MenuItemRender.js.map +1 -1
  131. package/lib/components/Modal/Modal.js.map +1 -1
  132. package/lib/components/ModalAdapter/ModalAdapter.js +1 -1
  133. package/lib/components/ModalAdapter/ModalAdapter.js.map +1 -1
  134. package/lib/components/ModalAdapter/index.js +2 -2
  135. package/lib/components/ModalAdapter/index.js.map +1 -1
  136. package/lib/components/SearchContent/SearchContent.js +1 -1
  137. package/lib/components/SearchContent/SearchContent.js.map +1 -1
  138. package/lib/components/SearchContent/SearchContentItems.js +0 -1
  139. package/lib/components/SearchContent/SearchContentItems.js.map +1 -1
  140. package/lib/components/SearchFilter/SearchFilter/FiltersList.js +2 -2
  141. package/lib/components/SearchFilter/SearchFilter/FiltersList.js.map +1 -1
  142. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js +1 -1
  143. package/lib/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  144. package/lib/components/SearchFilter/SearchFilterContainer.js +2 -1
  145. package/lib/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  146. package/lib/components/SearchFilter/components/Checkbox.js +1 -1
  147. package/lib/components/SearchFilter/components/Checkbox.js.map +1 -1
  148. package/lib/components/SearchFilter/components/Range.js.map +1 -1
  149. package/lib/components/SearchFilter/components/Select.js.map +1 -1
  150. package/lib/components/SearchFilter/components/TextSearch.js.map +1 -1
  151. package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js +0 -1
  152. package/lib/components/SearchFilter/helpers/get-filter-value-from-query.js.map +1 -1
  153. package/lib/components/SearchFilter/helpers/get-select-options.js +0 -1
  154. package/lib/components/SearchFilter/helpers/get-select-options.js.map +1 -1
  155. package/lib/components/SearchFilter/helpers/parse-filter-value.js +0 -1
  156. package/lib/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  157. package/lib/components/SearchFilterSort/SearchFilterSort.js +0 -1
  158. package/lib/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
  159. package/lib/components/SocialFollow/SocialFollowRender.js +0 -1
  160. package/lib/components/SocialFollow/SocialFollowRender.js.map +1 -1
  161. package/lib/components/Video/VideoModal.js +1 -1
  162. package/lib/components/Video/VideoModal.js.map +1 -1
  163. package/lib/components/Video/VideoRender.js +1 -1
  164. package/lib/components/Video/VideoRender.js.map +1 -1
  165. package/lib/components/Video/providers/JWPlayer/JWPlayerController.js +2 -1
  166. package/lib/components/Video/providers/JWPlayer/JWPlayerController.js.map +1 -1
  167. package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js +1 -1
  168. package/lib/components/Video/providers/JWPlayer/JWPlayerProvider.js.map +1 -1
  169. package/lib/components/Video/providers/Vimeo/VimeoProvider.js +2 -2
  170. package/lib/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
  171. package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js +1 -1
  172. package/lib/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
  173. package/lib/components/Video/providers/get-provider.js +6 -6
  174. package/lib/components/Video/providers/get-provider.js.map +1 -1
  175. package/lib/components/index.js +31 -31
  176. package/lib/components/index.js.map +1 -1
  177. package/lib/helpers/build-query-fields.js +0 -1
  178. package/lib/helpers/build-query-fields.js.map +1 -1
  179. package/lib/helpers/build-raw-query-stringified.js +0 -1
  180. package/lib/helpers/build-raw-query-stringified.js.map +1 -1
  181. package/lib/helpers/check-props-to-use.js +0 -1
  182. package/lib/helpers/check-props-to-use.js.map +1 -1
  183. package/lib/helpers/get-component-id.js +7 -1
  184. package/lib/helpers/get-component-id.js.map +1 -1
  185. package/lib/helpers/get-entities-with-banner.js +1 -1
  186. package/lib/helpers/get-generic-render-variables.js +0 -1
  187. package/lib/helpers/get-generic-render-variables.js.map +1 -1
  188. package/lib/helpers/get-wrapped-value-with-link.js +0 -1
  189. package/lib/helpers/get-wrapped-value-with-link.js.map +1 -1
  190. package/lib/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js +0 -1
  191. package/lib/helpers/inject-multiple-banners/get-banners-for-entities/get-banners-for-entities.js.map +1 -1
  192. package/lib/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js +1 -1
  193. package/lib/helpers/parse-TextBlock.js +1 -1
  194. package/lib/helpers/parse-TextBlock.js.map +1 -1
  195. package/lib/helpers/parse-props-to-display.js +1 -1
  196. package/lib/helpers/parse-props-to-display.js.map +1 -1
  197. package/lib/helpers/process-data-summary-value.js +3 -2
  198. package/lib/helpers/process-data-summary-value.js.map +1 -1
  199. package/lib/helpers/remove-unwanted-characters.js +1 -1
  200. package/lib/helpers/render-children.js +3 -3
  201. package/lib/helpers/render-children.js.map +1 -1
  202. package/lib/hooks/helpers/StoreImages.js +4 -3
  203. package/lib/hooks/helpers/StoreImages.js.map +1 -1
  204. package/lib/hooks/helpers/get-lightbox-images.js +7 -7
  205. package/lib/hooks/helpers/get-lightbox-images.js.map +1 -1
  206. package/lib/hooks/helpers/inject-textblock-banners.js +1 -1
  207. package/lib/hooks/helpers/inject-textblock-banners.js.map +1 -1
  208. package/lib/hooks/use-app-event-hook.js +1 -2
  209. package/lib/hooks/use-app-event-hook.js.map +1 -1
  210. package/lib/hooks/use-page-builder.js +1 -1
  211. package/lib/hooks/use-page-builder.js.map +1 -1
  212. package/lib/hooks/use-portal.js +1 -1
  213. package/lib/hooks/use-portal.js.map +1 -1
  214. package/lib/system-components/EditorMode/BlazeLogo.js +1 -1
  215. package/lib/system-components/EditorMode/BlazeLogo.js.map +1 -1
  216. package/lib/system-components/EditorMode/PbWrapper.js +2 -2
  217. package/lib/system-components/EditorMode/PbWrapper.js.map +1 -1
  218. package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js +3 -3
  219. package/lib/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
  220. package/lib/system-components/index.js +1 -1
  221. package/lib/system-components/index.js.map +1 -1
  222. package/lib/utils/get-props-to-display-modifiers.js +0 -1
  223. package/lib/utils/get-props-to-display-modifiers.js.map +1 -1
  224. package/lib/variants/FloatingSideButton/index.js.map +1 -1
  225. package/lib/variants/HeroImage/index.js.map +1 -1
  226. package/lib/variants/Infographic/index.js +2 -2
  227. package/lib/variants/Infographic/index.js.map +1 -1
  228. package/lib/variants/LiveBlogList/LiveBlogList.js +1 -1
  229. package/lib/variants/LiveBlogList/LiveBlogList.js.map +1 -1
  230. package/lib/variants/LiveBlogList/index.js +2 -2
  231. package/lib/variants/LiveBlogList/index.js.map +1 -1
  232. package/lib/variants/LongformGallery/LongformGallery.js +0 -1
  233. package/lib/variants/LongformGallery/LongformGallery.js.map +1 -1
  234. package/lib/variants/LongformGallery/LongformGalleryImage.js.map +1 -1
  235. package/lib/variants/LongformGallery/index.js +2 -2
  236. package/lib/variants/LongformGallery/index.js.map +1 -1
  237. package/lib/variants/LongformRow/index.js.map +1 -1
  238. package/lib/variants/ParallaxImageTextRight/index.js.map +1 -1
  239. package/lib/variants/SlideSummary/index.js +2 -2
  240. package/lib/variants/SlideSummary/index.js.map +1 -1
  241. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js +0 -1
  242. package/lib/variants/ThumbnailCarousel/ThumbnailCarousel.js.map +1 -1
  243. package/lib/variants/ThumbnailCarousel/index.js +2 -2
  244. package/lib/variants/ThumbnailCarousel/index.js.map +1 -1
  245. package/lib-es/HOC/recreateOnNavigation.js.map +1 -1
  246. package/lib-es/HOC/withTitle.js.map +1 -1
  247. package/lib-es/application/query/index.js.map +1 -1
  248. package/lib-es/components/Banner/AdSlotRender.js.map +1 -1
  249. package/lib-es/components/Banner/Banner.js.map +1 -1
  250. package/lib-es/components/Banner/BannerRender.js.map +1 -1
  251. package/lib-es/components/Banner/helpers.js.map +1 -1
  252. package/lib-es/components/Banner/index.js +1 -1
  253. package/lib-es/components/Banner/index.js.map +1 -1
  254. package/lib-es/components/Card/Card.js.map +1 -1
  255. package/lib-es/components/Card/CardsFactory.js.map +1 -1
  256. package/lib-es/components/Card/helpers/get-dynamic-grid-classes.js.map +1 -1
  257. package/lib-es/components/CarouselWrapper/DefaultCarousel.js.map +1 -1
  258. package/lib-es/components/CarouselWrapper/SmoothScrollCarousel.js.map +1 -1
  259. package/lib-es/components/ContentGroup/ContentGroup.js +41 -9
  260. package/lib-es/components/ContentGroup/ContentGroup.js.map +1 -1
  261. package/lib-es/components/ContentGroup/ContentGroupAccordion.js.map +1 -1
  262. package/lib-es/components/ContentGroup/ContentGroupDataFetcher.js +88 -0
  263. package/lib-es/components/ContentGroup/ContentGroupDataFetcher.js.map +1 -0
  264. package/lib-es/components/ContentGroup/ContentGroupTabs.js.map +1 -1
  265. package/lib-es/components/ContentGroup/helpers/build-data-sections.js +38 -0
  266. package/lib-es/components/ContentGroup/helpers/build-data-sections.js.map +1 -0
  267. package/lib-es/components/ContentGroup/helpers/get-active-tab.js.map +1 -1
  268. package/lib-es/components/ContentGroup/helpers/index.js +2 -1
  269. package/lib-es/components/ContentGroup/helpers/index.js.map +1 -1
  270. package/lib-es/components/ContentGroupSection/ContentGroupSection.js +3 -2
  271. package/lib-es/components/ContentGroupSection/ContentGroupSection.js.map +1 -1
  272. package/lib-es/components/DataSummary/DataSummaryTypes/HeadingLargeSummary/HeadingLargeSummary.js.map +1 -1
  273. package/lib-es/components/DataSummary/DataSummaryTypes/LargeSummary/LargeSummaryContent.js.map +1 -1
  274. package/lib-es/components/DataSummary/DataSummaryTypes/ListSummary/ListSummaryContent.js.map +1 -1
  275. package/lib-es/components/DataSummary/DataSummaryTypes/index.js +5 -5
  276. package/lib-es/components/DataSummary/DataSummaryTypes/index.js.map +1 -1
  277. package/lib-es/components/DataSummary/helpers/get-link-based-on-value.js.map +1 -1
  278. package/lib-es/components/DataSummary/helpers/get-prop-value.js.map +1 -1
  279. package/lib-es/components/DataSummary/helpers/get-value-from-array.js.map +1 -1
  280. package/lib-es/components/EmailConfirm/EmailConfirm.js.map +1 -1
  281. package/lib-es/components/EmailConfirm/mutation.js.map +1 -1
  282. package/lib-es/components/ErrorMessage/index.js +1 -1
  283. package/lib-es/components/ErrorMessage/index.js.map +1 -1
  284. package/lib-es/components/Iframe/Iframe.js.map +1 -1
  285. package/lib-es/components/Image/GlobalLightbox/GlobalLightbox.js.map +1 -1
  286. package/lib-es/components/Image/GlobalLightbox/NavButton.js.map +1 -1
  287. package/lib-es/components/Image/GlobalLightbox/index.js +1 -1
  288. package/lib-es/components/Image/GlobalLightbox/index.js.map +1 -1
  289. package/lib-es/components/ItemList/ItemListCounter/ItemListCounter.js.map +1 -1
  290. package/lib-es/components/ItemList/ItemListNew/ItemListNew.js.map +1 -1
  291. package/lib-es/components/ItemList/helpers/get-item-list-id.js.map +1 -1
  292. package/lib-es/components/ItemList/helpers/set-item-list-id.js.map +1 -1
  293. package/lib-es/components/Layout/Layout.js.map +1 -1
  294. package/lib-es/components/Layout/LayoutFactory.js +1 -1
  295. package/lib-es/components/Layout/LayoutFactory.js.map +1 -1
  296. package/lib-es/components/Layout/helpers/get-styles-to-update.js.map +1 -1
  297. package/lib-es/components/LazyImage/index.js +1 -1
  298. package/lib-es/components/LazyImage/index.js.map +1 -1
  299. package/lib-es/components/List/components/Header/ListHeader.js.map +1 -1
  300. package/lib-es/components/List/components/Pagination/Classic.js.map +1 -1
  301. package/lib-es/components/List/helpers/build-az-url.js.map +1 -1
  302. package/lib-es/components/List/helpers/build-pagination-items.js.map +1 -1
  303. package/lib-es/components/List/helpers/build-pagination-url.js.map +1 -1
  304. package/lib-es/components/List/helpers/get-az-query-filter.js.map +1 -1
  305. package/lib-es/components/List/helpers/get-list-query.js.map +1 -1
  306. package/lib-es/components/Loading/Loading.js.map +1 -1
  307. package/lib-es/components/Loading/index.js +1 -1
  308. package/lib-es/components/Loading/index.js.map +1 -1
  309. package/lib-es/components/Menu/Menu.js.map +1 -1
  310. package/lib-es/components/MenuItem/MenuItemRender.js.map +1 -1
  311. package/lib-es/components/MenuItem/helpers/inject-helper-into-template.js.map +1 -1
  312. package/lib-es/components/MenuItem/helpers/isUrlPathMatch.js.map +1 -1
  313. package/lib-es/components/ModalAdapter/ModalAdapter.js +1 -1
  314. package/lib-es/components/ModalAdapter/ModalAdapter.js.map +1 -1
  315. package/lib-es/components/ModalAdapter/index.js +1 -1
  316. package/lib-es/components/ModalAdapter/index.js.map +1 -1
  317. package/lib-es/components/SearchContent/SearchContent.js.map +1 -1
  318. package/lib-es/components/SearchContent/SearchContentResults.js.map +1 -1
  319. package/lib-es/components/SearchFilter/SearchFilter/SearchFilter.js.map +1 -1
  320. package/lib-es/components/SearchFilter/SearchFilterContainer.js.map +1 -1
  321. package/lib-es/components/SearchFilter/components/Checkbox.js.map +1 -1
  322. package/lib-es/components/SearchFilter/components/Range.js.map +1 -1
  323. package/lib-es/components/SearchFilter/components/Select.js.map +1 -1
  324. package/lib-es/components/SearchFilter/constants.js.map +1 -1
  325. package/lib-es/components/SearchFilter/helpers/build-list-name-query.js.map +1 -1
  326. package/lib-es/components/SearchFilter/helpers/build-new-url.js.map +1 -1
  327. package/lib-es/components/SearchFilter/helpers/build-url-query.js.map +1 -1
  328. package/lib-es/components/SearchFilter/helpers/get-responsive-filter-classnames.js.map +1 -1
  329. package/lib-es/components/SearchFilter/helpers/get-updated-filter-by.js.map +1 -1
  330. package/lib-es/components/SearchFilter/helpers/parse-filter-value.js.map +1 -1
  331. package/lib-es/components/SearchFilterSort/SearchFilterSort.js.map +1 -1
  332. package/lib-es/components/SearchFilterSort/helpers/handle-sort-update.js.map +1 -1
  333. package/lib-es/components/SearchFilterSort/helpers/update-sort.js.map +1 -1
  334. package/lib-es/components/SocialFollow/SFItem.js.map +1 -1
  335. package/lib-es/components/Video/Video.js.map +1 -1
  336. package/lib-es/components/Video/providers/Vimeo/VimeoProvider.js.map +1 -1
  337. package/lib-es/components/Video/providers/Vimeo/helpers/add-extra-params-to-url.js.map +1 -1
  338. package/lib-es/components/Video/providers/YouTube/YouTubeProvider.js.map +1 -1
  339. package/lib-es/components/Video/providers/YouTube/YoutubeEmbeded.js.map +1 -1
  340. package/lib-es/components/Video/providers/YouTube/helpers/index.js.map +1 -1
  341. package/lib-es/components/Video/providers/get-provider.js +5 -5
  342. package/lib-es/components/Video/providers/get-provider.js.map +1 -1
  343. package/lib-es/components/Wrapper.js.map +1 -1
  344. package/lib-es/components/index.js +30 -30
  345. package/lib-es/components/index.js.map +1 -1
  346. package/lib-es/constants/componentsDefaultValues.js.map +1 -1
  347. package/lib-es/constants/index.js.map +1 -1
  348. package/lib-es/helpers/build-az-filter.js.map +1 -1
  349. package/lib-es/helpers/build-filters-query.js.map +1 -1
  350. package/lib-es/helpers/build-inherited-filters.js.map +1 -1
  351. package/lib-es/helpers/build-props-query.js.map +1 -1
  352. package/lib-es/helpers/build-query-fields.js.map +1 -1
  353. package/lib-es/helpers/build-query-key.js.map +1 -1
  354. package/lib-es/helpers/build-raw-query-base.js.map +1 -1
  355. package/lib-es/helpers/build-raw-query-stringified.js.map +1 -1
  356. package/lib-es/helpers/build-search-values-checkbox-select.js.map +1 -1
  357. package/lib-es/helpers/build-sort-values.js.map +1 -1
  358. package/lib-es/helpers/get-component-id.js +9 -3
  359. package/lib-es/helpers/get-component-id.js.map +1 -1
  360. package/lib-es/helpers/get-display-count-data.js.map +1 -1
  361. package/lib-es/helpers/get-entity-data.js.map +1 -1
  362. package/lib-es/helpers/get-extra-az-bits.js.map +1 -1
  363. package/lib-es/helpers/get-inherited-filters.js.map +1 -1
  364. package/lib-es/helpers/get-modifiers.js.map +1 -1
  365. package/lib-es/helpers/get-pagination-index.js.map +1 -1
  366. package/lib-es/helpers/get-query-props.js.map +1 -1
  367. package/lib-es/helpers/get-sort-by-field-name.js.map +1 -1
  368. package/lib-es/helpers/inject-multiple-banners/get-banners-for-nodes/get-banners-for-nodes.js.map +1 -1
  369. package/lib-es/helpers/is-filter-entitys-id.js.map +1 -1
  370. package/lib-es/helpers/process-data-summary-value.js +1 -1
  371. package/lib-es/hooks/helpers/StoreImages.js +2 -2
  372. package/lib-es/hooks/helpers/StoreImages.js.map +1 -1
  373. package/lib-es/hooks/helpers/append-gtm-classname.js.map +1 -1
  374. package/lib-es/hooks/helpers/buildPBComponents.js.map +1 -1
  375. package/lib-es/hooks/helpers/inject-textblock-banners.js +1 -1
  376. package/lib-es/hooks/helpers/inject-textblock-banners.js.map +1 -1
  377. package/lib-es/hooks/helpers/insert-banners.js.map +1 -1
  378. package/lib-es/hooks/helpers/update-targetings.js.map +1 -1
  379. package/lib-es/hooks/use-app-event-hook.js.map +1 -1
  380. package/lib-es/hooks/use-app-sync-event-hook.js.map +1 -1
  381. package/lib-es/hooks/use-get-image-id-from-relation.js.map +1 -1
  382. package/lib-es/system-components/EditorMode/PbWrapper.js +1 -1
  383. package/lib-es/system-components/EditorMode/PbWrapper.js.map +1 -1
  384. package/lib-es/system-components/EditorMode/helpers/add-editor-mode-event-listeners.js.map +1 -1
  385. package/lib-es/utils/component-map.js.map +1 -1
  386. package/lib-es/utils/get-class-modifiers.js.map +1 -1
  387. package/lib-es/utils/variant-handler.js.map +1 -1
  388. package/lib-es/variants/Infographic/index.js +1 -1
  389. package/lib-es/variants/Infographic/index.js.map +1 -1
  390. package/lib-es/variants/Infographic/useInfographic.js.map +1 -1
  391. package/lib-es/variants/LiveBlogList/LiveBlogList.js.map +1 -1
  392. package/lib-es/variants/LiveBlogList/index.js +1 -1
  393. package/lib-es/variants/LiveBlogList/index.js.map +1 -1
  394. package/lib-es/variants/LongformGallery/LongformGalleryImage.js.map +1 -1
  395. package/lib-es/variants/LongformGallery/constants.js.map +1 -1
  396. package/lib-es/variants/LongformGallery/index.js +1 -1
  397. package/lib-es/variants/LongformGallery/index.js.map +1 -1
  398. package/lib-es/variants/SlideSummary/index.js +1 -1
  399. package/lib-es/variants/SlideSummary/index.js.map +1 -1
  400. package/lib-es/variants/ThumbnailCarousel/index.js +1 -1
  401. package/lib-es/variants/ThumbnailCarousel/index.js.map +1 -1
  402. package/package.json +3 -3
  403. package/src/components/ContentGroup/ContentGroup.js +54 -8
  404. package/src/components/ContentGroup/ContentGroupDataFetcher.js +74 -0
  405. package/src/components/ContentGroup/helpers/build-data-sections.js +35 -0
  406. package/src/components/ContentGroup/helpers/index.js +2 -1
  407. package/src/components/ContentGroupSection/ContentGroupSection.js +2 -2
  408. package/src/helpers/get-component-id.js +7 -4
  409. package/tests/unit/src/components/ContentGroup/ContentGroup.test.js +195 -40
  410. package/tests/unit/src/components/ContentGroup/helpers/build-data-sections.test.js +115 -0
  411. package/tests/unit/src/helpers/get-component-id.test.js +64 -0
@@ -1,9 +1,12 @@
1
1
  import cssesc from 'cssesc';
2
2
  import { COMPONENT_ID_PREFIX } from '../constants';
3
3
 
4
- const getComponentId = componentName =>
5
- cssesc(`${COMPONENT_ID_PREFIX}${componentName.replace(/\s+/g, '-')}`, {
6
- isIdentifier: true
7
- });
4
+ const getComponentId = (componentName, noPrefix = false, toLowerCase = false) => {
5
+ let id = `${noPrefix ? '' : COMPONENT_ID_PREFIX}${componentName.replace(/\s+/g, '-')}`;
6
+ if (toLowerCase) {
7
+ id = id.toLowerCase();
8
+ }
9
+ return cssesc(id, { isIdentifier: true });
10
+ };
8
11
 
9
12
  export default getComponentId;
@@ -7,9 +7,62 @@ import ContentGroup from '../../../../../src/components/ContentGroup/ContentGrou
7
7
 
8
8
  jest.mock('../../../../../src/components/ContentGroup/ContentGroupTabs', () => ({
9
9
  __esModule: true,
10
- default: ({ contentType }) => <div data-testid="content-group-tabs">Inner: {contentType}</div>
10
+ default: ({ contentType, sectionsData = [] }) => (
11
+ <div data-testid="content-group-tabs" data-content-type={contentType}>
12
+ {sectionsData.map(([name, label]) => (
13
+ <span key={name} data-section-name={name}>
14
+ {label}
15
+ </span>
16
+ ))}
17
+ </div>
18
+ )
11
19
  }));
12
20
 
21
+ jest.mock('../../../../../src/components/ContentGroup/ContentGroupAccordion', () => ({
22
+ __esModule: true,
23
+ default: ({ contentType, sectionsData = [] }) => (
24
+ <div data-testid="content-group-accordion" data-content-type={contentType}>
25
+ {sectionsData.map(([name, label]) => (
26
+ <span key={name} data-section-name={name}>
27
+ {label}
28
+ </span>
29
+ ))}
30
+ </div>
31
+ )
32
+ }));
33
+
34
+ jest.mock('../../../../../src/components/ContentGroup/ContentGroupDataFetcher', () => ({
35
+ __esModule: true,
36
+ default: ({ dataProperty, contentType }) => (
37
+ <div
38
+ data-testid="content-group-data-fetcher"
39
+ data-property={dataProperty}
40
+ data-content-type={contentType}
41
+ />
42
+ )
43
+ }));
44
+
45
+ jest.mock('../../../../../src/components/ContentGroup/helpers', () => {
46
+ const actual = jest.requireActual('../../../../../src/components/ContentGroup/helpers');
47
+ return {
48
+ ...actual,
49
+ buildDataSections: jest.fn(items =>
50
+ items.reduce(
51
+ (acc, item) => {
52
+ if (!item || !item.label || !item.text) return acc;
53
+ const name = item.label.toLowerCase().replace(/\s+/g, '-');
54
+ acc.groupSections.push(<div key={name}>{item.text}</div>);
55
+ acc.sectionsData.push([name, item.label]);
56
+ return acc;
57
+ },
58
+ { groupSections: [], sectionsData: [] }
59
+ )
60
+ )
61
+ };
62
+ });
63
+
64
+ const testId1 = 'content-group-tabs';
65
+ const testId2 = 'content-group-data-fetcher';
13
66
  const TestChild = ({ children }) => <div>{children}</div>;
14
67
  const buildChildren = (sectionsCount = 2) => (
15
68
  <div>
@@ -20,6 +73,11 @@ const buildChildren = (sectionsCount = 2) => (
20
73
  </div>
21
74
  );
22
75
 
76
+ const simpleDataFixture = [
77
+ { label: 'Tab One', text: 'Content for tab one' },
78
+ { label: 'Tab Two', text: 'Content for tab two' }
79
+ ];
80
+
23
81
  describe('ContentGroup component', () => {
24
82
  it('matches snapshots for tab and sidepanel', () => {
25
83
  const { asFragment: tabContentGroup } = render(ContentGroup, {
@@ -33,57 +91,154 @@ describe('ContentGroup component', () => {
33
91
  expect(sidepanelContentGroup()).toMatchSnapshot();
34
92
  });
35
93
 
36
- it('wraps output in FAQPage schema when isFaqContent is true', () => {
37
- const { container } = render(ContentGroup, {
38
- contentType: 'tab',
39
- isFaqContent: true,
40
- children: buildChildren()
94
+ it('returns empty string for an invalid contentType', () => {
95
+ const { container } = render(ContentGroup, { contentType: 'unknown' });
96
+ expect(container.firstChild).toBeNull();
97
+ });
98
+
99
+ describe('simpleData prop', () => {
100
+ it('renders ContentGroupTabs when simpleData is provided', () => {
101
+ const { getByTestId } = render(ContentGroup, {
102
+ contentType: 'tab',
103
+ simpleData: simpleDataFixture
104
+ });
105
+
106
+ expect(getByTestId(testId1)).toBeTruthy();
41
107
  });
42
108
 
43
- const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
44
- expect(faqWrapper).toBeTruthy();
45
- });
109
+ it('renders ContentGroupAccordion when contentType is accordion and simpleData is provided', () => {
110
+ const { getByTestId } = render(ContentGroup, {
111
+ contentType: 'accordion',
112
+ simpleData: simpleDataFixture
113
+ });
114
+
115
+ expect(getByTestId('content-group-accordion')).toBeTruthy();
116
+ });
46
117
 
47
- it('spreads customHtmlProps onto the wrapper element', () => {
48
- const customHtmlProps = [
49
- { name: 'data-testid', value: 'content-group-wrapper' },
50
- { name: 'aria-label', value: 'My group' }
51
- ];
52
- const { container } = render(ContentGroup, {
53
- contentType: 'tab',
54
- isFaqContent: true,
55
- customHtmlProps,
56
- children: buildChildren()
118
+ it('passes sectionsData derived from simpleData to the group component', () => {
119
+ const { getByTestId } = render(ContentGroup, {
120
+ contentType: 'tab',
121
+ simpleData: simpleDataFixture
122
+ });
123
+
124
+ const tabs = getByTestId(testId1);
125
+ expect(tabs.querySelector('[data-section-name="tab-one"]')).toBeTruthy();
126
+ expect(tabs.querySelector('[data-section-name="tab-two"]')).toBeTruthy();
57
127
  });
58
128
 
59
- const wrapper = container.querySelector('div[data-testid="content-group-wrapper"]');
60
- expect(wrapper).toBeTruthy();
61
- expect(wrapper.getAttribute('aria-label')).toBe('My group');
129
+ it('renders nothing when simpleData is an empty array', () => {
130
+ const { container } = render(ContentGroup, {
131
+ contentType: 'tab',
132
+ simpleData: []
133
+ });
134
+
135
+ expect(container.firstChild).toBeNull();
136
+ });
137
+
138
+ it('renders nothing when all simpleData items are invalid', () => {
139
+ const { container } = render(ContentGroup, {
140
+ contentType: 'tab',
141
+ simpleData: [{ label: 'no text' }, { text: 'no label' }]
142
+ });
143
+
144
+ expect(container.firstChild).toBeNull();
145
+ });
146
+
147
+ it('prefers simpleData over dataProperty when both are provided', () => {
148
+ const { getByTestId, queryByTestId } = render(ContentGroup, {
149
+ contentType: 'tab',
150
+ simpleData: simpleDataFixture,
151
+ dataProperty: 'someProperty'
152
+ });
153
+
154
+ expect(getByTestId(testId1)).toBeTruthy();
155
+ expect(queryByTestId(testId2)).toBeNull();
156
+ });
62
157
  });
63
158
 
64
- it('excludes customHtmlProps entries with value "null" from the wrapper', () => {
65
- const customHtmlProps = [{ name: 'data-skip', value: 'null' }];
66
- const { container } = render(ContentGroup, {
67
- contentType: 'tab',
68
- isFaqContent: true,
69
- customHtmlProps,
70
- children: buildChildren()
159
+ describe('dataProperty prop', () => {
160
+ it('renders ContentGroupDataFetcher when dataProperty is a string and no simpleData', () => {
161
+ const { getByTestId } = render(ContentGroup, {
162
+ contentType: 'tab',
163
+ dataProperty: 'myDataProp'
164
+ });
165
+
166
+ expect(getByTestId(testId2)).toBeTruthy();
71
167
  });
72
168
 
73
- const wrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
74
- expect(wrapper).toBeTruthy();
75
- expect(wrapper.getAttribute('data-skip')).toBeNull();
169
+ it('passes the first element when dataProperty is an array', () => {
170
+ const { getByTestId } = render(ContentGroup, {
171
+ contentType: 'tab',
172
+ dataProperty: ['myDataProp', 'ignored']
173
+ });
174
+
175
+ const fetcher = getByTestId(testId2);
176
+ expect(fetcher.getAttribute('data-property')).toBe('myDataProp');
177
+ });
178
+
179
+ it('passes contentType to ContentGroupDataFetcher', () => {
180
+ const { getByTestId } = render(ContentGroup, {
181
+ contentType: 'accordion',
182
+ dataProperty: 'myDataProp'
183
+ });
184
+
185
+ expect(getByTestId(testId2).getAttribute('data-content-type')).toBe('accordion');
186
+ });
76
187
  });
77
188
 
78
- it('renders correctly with an empty customHtmlProps array', () => {
79
- const { container } = render(ContentGroup, {
80
- contentType: 'tab',
81
- isFaqContent: true,
82
- customHtmlProps: [],
83
- children: buildChildren()
189
+ describe('FAQ / structured data', () => {
190
+ it('wraps output in FAQPage schema when isFaqContent is true', () => {
191
+ const { container } = render(ContentGroup, {
192
+ contentType: 'tab',
193
+ isFaqContent: true,
194
+ children: buildChildren()
195
+ });
196
+
197
+ const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
198
+ expect(faqWrapper).toBeTruthy();
84
199
  });
85
200
 
86
- const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
87
- expect(faqWrapper).toBeTruthy();
201
+ it('spreads customHtmlProps onto the wrapper element', () => {
202
+ const customHtmlProps = [
203
+ { name: 'data-testid', value: 'content-group-wrapper' },
204
+ { name: 'aria-label', value: 'My group' }
205
+ ];
206
+ const { container } = render(ContentGroup, {
207
+ contentType: 'tab',
208
+ isFaqContent: true,
209
+ customHtmlProps,
210
+ children: buildChildren()
211
+ });
212
+
213
+ const wrapper = container.querySelector('div[data-testid="content-group-wrapper"]');
214
+ expect(wrapper).toBeTruthy();
215
+ expect(wrapper.getAttribute('aria-label')).toBe('My group');
216
+ });
217
+
218
+ it('excludes customHtmlProps entries with value "null" from the wrapper', () => {
219
+ const customHtmlProps = [{ name: 'data-skip', value: 'null' }];
220
+ const { container } = render(ContentGroup, {
221
+ contentType: 'tab',
222
+ isFaqContent: true,
223
+ customHtmlProps,
224
+ children: buildChildren()
225
+ });
226
+
227
+ const wrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
228
+ expect(wrapper).toBeTruthy();
229
+ expect(wrapper.getAttribute('data-skip')).toBeNull();
230
+ });
231
+
232
+ it('renders correctly with an empty customHtmlProps array', () => {
233
+ const { container } = render(ContentGroup, {
234
+ contentType: 'tab',
235
+ isFaqContent: true,
236
+ customHtmlProps: [],
237
+ children: buildChildren()
238
+ });
239
+
240
+ const faqWrapper = container.querySelector('div[itemtype="https://schema.org/FAQPage"]');
241
+ expect(faqWrapper).toBeTruthy();
242
+ });
88
243
  });
89
244
  });
@@ -0,0 +1,115 @@
1
+ import buildDataSections from '../../../../../../src/components/ContentGroup/helpers/build-data-sections';
2
+
3
+ jest.mock(
4
+ 'next/dynamic',
5
+ () => component =>
6
+ // Return a simple placeholder component for testing
7
+ function DynamicComponent(props) {
8
+ return <div {...props} />;
9
+ }
10
+ );
11
+
12
+ jest.mock(
13
+ '../../../../../../src/helpers/get-component-id',
14
+ () => name => name.toLowerCase().replace(/\s+/g, '-')
15
+ );
16
+
17
+ describe('buildDataSections helper', () => {
18
+ it('should return empty arrays when items is empty', () => {
19
+ const result = buildDataSections([]);
20
+
21
+ expect(result).toEqual({ groupSections: [], sectionsData: [] });
22
+ });
23
+
24
+ it('should return empty arrays when called with no arguments', () => {
25
+ const result = buildDataSections();
26
+
27
+ expect(result).toEqual({ groupSections: [], sectionsData: [] });
28
+ });
29
+
30
+ it('should skip items that are null or undefined', () => {
31
+ const result = buildDataSections([null, undefined]);
32
+
33
+ expect(result).toEqual({ groupSections: [], sectionsData: [] });
34
+ });
35
+
36
+ it('should skip items missing a label', () => {
37
+ const result = buildDataSections([{ text: 'Some text' }]);
38
+
39
+ expect(result).toEqual({ groupSections: [], sectionsData: [] });
40
+ });
41
+
42
+ it('should skip items missing text', () => {
43
+ const result = buildDataSections([{ label: 'Some label' }]);
44
+
45
+ expect(result).toEqual({ groupSections: [], sectionsData: [] });
46
+ });
47
+
48
+ it('should build sectionsData entries as [sectionName, label] tuples', () => {
49
+ const items = [
50
+ { label: 'Section One', text: 'Content one' },
51
+ { label: 'Section Two', text: 'Content two' }
52
+ ];
53
+
54
+ const { sectionsData } = buildDataSections(items);
55
+
56
+ expect(sectionsData).toHaveLength(2);
57
+ expect(sectionsData[0][1]).toBe('Section One');
58
+ expect(sectionsData[1][1]).toBe('Section Two');
59
+ });
60
+
61
+ it('should build a groupSections entry for each valid item', () => {
62
+ const items = [
63
+ { label: 'Tab A', text: 'Text A' },
64
+ { label: 'Tab B', text: 'Text B' },
65
+ { label: 'Tab C', text: 'Text C' }
66
+ ];
67
+
68
+ const { groupSections, sectionsData } = buildDataSections(items);
69
+
70
+ expect(groupSections).toHaveLength(3);
71
+ expect(sectionsData).toHaveLength(3);
72
+ });
73
+
74
+ it('should mix valid and invalid items, only including valid ones', () => {
75
+ const items = [
76
+ { label: 'Good', text: 'Content' },
77
+ null,
78
+ { label: 'Also Good', text: 'More content' },
79
+ { label: 'Missing text' },
80
+ { text: 'Missing label' }
81
+ ];
82
+
83
+ const { groupSections, sectionsData } = buildDataSections(items);
84
+
85
+ expect(groupSections).toHaveLength(2);
86
+ expect(sectionsData).toHaveLength(2);
87
+ expect(sectionsData[0][1]).toBe('Good');
88
+ expect(sectionsData[1][1]).toBe('Also Good');
89
+ });
90
+
91
+ it('should derive sectionName from the label via getComponentId', () => {
92
+ const items = [{ label: 'My Section', text: 'Content' }];
93
+
94
+ const { sectionsData } = buildDataSections(items);
95
+
96
+ // getComponentId is mocked to: name.toLowerCase().replace(/\s+/g, '-')
97
+ expect(sectionsData[0][0]).toBe('my-section');
98
+ });
99
+
100
+ it('should keep sectionName and label in sync within sectionsData', () => {
101
+ const items = [
102
+ { label: 'First Item', text: 'Text one' },
103
+ { label: 'Second Item', text: 'Text two' }
104
+ ];
105
+
106
+ const { sectionsData } = buildDataSections(items);
107
+
108
+ sectionsData.forEach(([sectionName, label]) => {
109
+ expect(typeof sectionName).toBe('string');
110
+ expect(typeof label).toBe('string');
111
+ expect(sectionName.length).toBeGreaterThan(0);
112
+ expect(label.length).toBeGreaterThan(0);
113
+ });
114
+ });
115
+ });
@@ -7,6 +7,7 @@ jest.mock('cssesc');
7
7
  describe('Get component Id', () => {
8
8
  beforeEach(() => {
9
9
  cssesc.mockClear();
10
+ cssesc.mockImplementation(str => str);
10
11
  });
11
12
 
12
13
  it('should call cssesc with correct arguments', () => {
@@ -33,4 +34,67 @@ describe('Get component Id', () => {
33
34
  const result = getComponentId('Test');
34
35
  expect(typeof result).toBe('string');
35
36
  });
37
+
38
+ it('should replace spaces with dashes in the component name', () => {
39
+ const componentName = 'My Component Name';
40
+ getComponentId(componentName);
41
+
42
+ expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}My-Component-Name`, {
43
+ isIdentifier: true
44
+ });
45
+ });
46
+
47
+ describe('noPrefix parameter', () => {
48
+ it('should include the prefix by default (noPrefix = false)', () => {
49
+ getComponentId('MyComponent');
50
+
51
+ const calledWith = cssesc.mock.calls[0][0];
52
+ expect(calledWith.startsWith(COMPONENT_ID_PREFIX)).toBe(true);
53
+ });
54
+
55
+ it('should omit the prefix when noPrefix is true', () => {
56
+ getComponentId('MyComponent', true);
57
+
58
+ const calledWith = cssesc.mock.calls[0][0];
59
+ expect(calledWith.startsWith(COMPONENT_ID_PREFIX)).toBe(false);
60
+ expect(calledWith).toBe('MyComponent');
61
+ });
62
+
63
+ it('should include the prefix when noPrefix is explicitly false', () => {
64
+ getComponentId('MyComponent', false);
65
+
66
+ expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}MyComponent`, {
67
+ isIdentifier: true
68
+ });
69
+ });
70
+ });
71
+
72
+ describe('toLowerCase parameter', () => {
73
+ it('should not lowercase by default (toLowerCase = false)', () => {
74
+ getComponentId('MyComponent');
75
+
76
+ const calledWith = cssesc.mock.calls[0][0];
77
+ expect(calledWith).toBe(`${COMPONENT_ID_PREFIX}MyComponent`);
78
+ });
79
+
80
+ it('should lowercase the id when toLowerCase is true', () => {
81
+ getComponentId('MyComponent', false, true);
82
+
83
+ expect(cssesc).toHaveBeenCalledWith(`${COMPONENT_ID_PREFIX}mycomponent`, {
84
+ isIdentifier: true
85
+ });
86
+ });
87
+
88
+ it('should lowercase when both noPrefix and toLowerCase are true', () => {
89
+ getComponentId('MyComponent', true, true);
90
+
91
+ expect(cssesc).toHaveBeenCalledWith('mycomponent', { isIdentifier: true });
92
+ });
93
+
94
+ it('should lowercase spaces-replaced-with-dashes when toLowerCase is true', () => {
95
+ getComponentId('My Section Label', true, true);
96
+
97
+ expect(cssesc).toHaveBeenCalledWith('my-section-label', { isIdentifier: true });
98
+ });
99
+ });
36
100
  });