@wix/patterns 1.323.0 → 1.325.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 (287) hide show
  1. package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
  2. package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
  3. package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
  4. package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
  5. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  6. package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
  7. package/dist/cjs/components/CollectionSearch.js +14 -3
  8. package/dist/cjs/components/CollectionSearch.js.map +1 -1
  9. package/dist/cjs/components/CollectionTable/CollectionTable.js +13 -11
  10. package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
  11. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
  12. package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  13. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
  14. package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
  15. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
  16. package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  17. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  18. package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
  19. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  20. package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
  21. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsNoResults.js +5 -1
  22. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsNoResults.js.map +1 -1
  23. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsSearch.js +16 -3
  24. package/dist/cjs/components/CustomColumnsPanel/CustomColumnsSearch.js.map +1 -1
  25. package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
  26. package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
  27. package/dist/cjs/components/EmptyState/CollectionNoResultsState.js +5 -3
  28. package/dist/cjs/components/EmptyState/CollectionNoResultsState.js.map +1 -1
  29. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  30. package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
  31. package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
  32. package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
  33. package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
  34. package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
  35. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
  36. package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
  37. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
  38. package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  39. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  40. package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
  41. package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
  42. package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
  43. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
  44. package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
  45. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  46. package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  47. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
  48. package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  49. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  50. package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
  51. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  52. package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
  53. package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
  54. package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
  55. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
  56. package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  57. package/dist/cjs/components/PickerEmptyState/PickerEmptyState.js +15 -7
  58. package/dist/cjs/components/PickerEmptyState/PickerEmptyState.js.map +1 -1
  59. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  60. package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
  61. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  62. package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  63. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
  64. package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
  65. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
  66. package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
  67. package/dist/cjs/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
  68. package/dist/cjs/components/Suggestions/MarketingCard.js +18 -16
  69. package/dist/cjs/components/Suggestions/MarketingCard.js.map +1 -1
  70. package/dist/cjs/components/Suggestions/Suggestions.js +66 -29
  71. package/dist/cjs/components/Suggestions/Suggestions.js.map +1 -1
  72. package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js +4 -5
  73. package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
  74. package/dist/cjs/components/Suggestions/VisibilityTrackedCard.js +22 -0
  75. package/dist/cjs/components/Suggestions/VisibilityTrackedCard.js.map +1 -0
  76. package/dist/cjs/components/Suggestions/types.js.map +1 -1
  77. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
  78. package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  79. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  80. package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
  81. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  82. package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
  83. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  84. package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
  85. package/dist/cjs/components/common.st.css.js +4 -4
  86. package/dist/cjs/components/common.st.css.js.map +1 -1
  87. package/dist/cjs/exports/testkit/unidriver.js +1 -2
  88. package/dist/cjs/exports/testkit/unidriver.js.map +1 -1
  89. package/dist/cjs/hooks/useCollectionTableResize.js +3 -2
  90. package/dist/cjs/hooks/useCollectionTableResize.js.map +1 -1
  91. package/dist/cjs/hooks/useIntersectionObserver.js +36 -0
  92. package/dist/cjs/hooks/useIntersectionObserver.js.map +1 -0
  93. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  94. package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  95. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
  96. package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
  97. package/dist/cjs/state/Suggestions/SuggestionsBIReporter.js +38 -0
  98. package/dist/cjs/state/Suggestions/SuggestionsBIReporter.js.map +1 -0
  99. package/dist/cjs/state/Suggestions/SuggestionsState.js +26 -3
  100. package/dist/cjs/state/Suggestions/SuggestionsState.js.map +1 -1
  101. package/dist/cjs/styles.global.css +1 -1
  102. package/dist/cjs/test-utils/DealerBIMock.js +81 -0
  103. package/dist/cjs/test-utils/DealerBIMock.js.map +1 -0
  104. package/dist/cjs/test-utils/IntersectionObserverMock.js +155 -0
  105. package/dist/cjs/test-utils/IntersectionObserverMock.js.map +1 -0
  106. package/dist/cjs/version.js +1 -1
  107. package/dist/cjs/version.js.map +1 -1
  108. package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
  109. package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
  110. package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
  111. package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
  112. package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
  113. package/dist/esm/components/CollectionSearch.js +11 -1
  114. package/dist/esm/components/CollectionSearch.js.map +1 -1
  115. package/dist/esm/components/CollectionTable/CollectionTable.js +3 -1
  116. package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
  117. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
  118. package/dist/esm/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
  119. package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
  120. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
  121. package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
  122. package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
  123. package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
  124. package/dist/esm/components/CustomColumnsPanel/CustomColumnsNoResults.js +4 -1
  125. package/dist/esm/components/CustomColumnsPanel/CustomColumnsNoResults.js.map +1 -1
  126. package/dist/esm/components/CustomColumnsPanel/CustomColumnsSearch.js +13 -2
  127. package/dist/esm/components/CustomColumnsPanel/CustomColumnsSearch.js.map +1 -1
  128. package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
  129. package/dist/esm/components/EmptyState/CollectionNoResultsState.js +1 -0
  130. package/dist/esm/components/EmptyState/CollectionNoResultsState.js.map +1 -1
  131. package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
  132. package/dist/esm/components/Fade/Fade.st.css.js +2 -2
  133. package/dist/esm/components/Heading/Heading.st.css.js +2 -2
  134. package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
  135. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
  136. package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
  137. package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
  138. package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
  139. package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
  140. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
  141. package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
  142. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
  143. package/dist/esm/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
  144. package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
  145. package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
  146. package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
  147. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
  148. package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
  149. package/dist/esm/components/PickerEmptyState/PickerEmptyState.js +8 -2
  150. package/dist/esm/components/PickerEmptyState/PickerEmptyState.js.map +1 -1
  151. package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
  152. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
  153. package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
  154. package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
  155. package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
  156. package/dist/esm/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
  157. package/dist/esm/components/Suggestions/MarketingCard.js +5 -4
  158. package/dist/esm/components/Suggestions/MarketingCard.js.map +1 -1
  159. package/dist/esm/components/Suggestions/Suggestions.js +21 -13
  160. package/dist/esm/components/Suggestions/Suggestions.js.map +1 -1
  161. package/dist/esm/components/Suggestions/Suggestions.uni.driver.js +4 -5
  162. package/dist/esm/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
  163. package/dist/esm/components/Suggestions/VisibilityTrackedCard.js +10 -0
  164. package/dist/esm/components/Suggestions/VisibilityTrackedCard.js.map +1 -0
  165. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
  166. package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
  167. package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
  168. package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
  169. package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
  170. package/dist/esm/components/common.st.css.js +2 -2
  171. package/dist/esm/exports/testkit/unidriver.js +1 -1
  172. package/dist/esm/exports/testkit/unidriver.js.map +1 -1
  173. package/dist/esm/hooks/useCollectionTableResize.js +2 -1
  174. package/dist/esm/hooks/useCollectionTableResize.js.map +1 -1
  175. package/dist/esm/hooks/useIntersectionObserver.js +32 -0
  176. package/dist/esm/hooks/useIntersectionObserver.js.map +1 -0
  177. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
  178. package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
  179. package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
  180. package/dist/esm/state/Suggestions/SuggestionsBIReporter.js +26 -0
  181. package/dist/esm/state/Suggestions/SuggestionsBIReporter.js.map +1 -0
  182. package/dist/esm/state/Suggestions/SuggestionsState.js +23 -3
  183. package/dist/esm/state/Suggestions/SuggestionsState.js.map +1 -1
  184. package/dist/esm/styles.global.css +1 -1
  185. package/dist/esm/test-utils/DealerBIMock.js +75 -0
  186. package/dist/esm/test-utils/DealerBIMock.js.map +1 -0
  187. package/dist/esm/test-utils/IntersectionObserverMock.js +133 -0
  188. package/dist/esm/test-utils/IntersectionObserverMock.js.map +1 -0
  189. package/dist/esm/version.js +1 -1
  190. package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
  191. package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
  192. package/dist/types/components/CollectionSearch.d.ts.map +1 -1
  193. package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
  194. package/dist/types/components/CollectionTable/CollectionTable.st.css.d.ts.map +1 -1
  195. package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
  196. package/dist/types/components/CustomColumnsPanel/CustomColumnsNoResults.d.ts.map +1 -1
  197. package/dist/types/components/CustomColumnsPanel/CustomColumnsSearch.d.ts.map +1 -1
  198. package/dist/types/components/EmptyState/CollectionNoResultsState.d.ts.map +1 -1
  199. package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
  200. package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
  201. package/dist/types/components/NestedTable/NestedTableRow.st.css.d.ts.map +1 -1
  202. package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
  203. package/dist/types/components/PickerEmptyState/PickerEmptyState.d.ts.map +1 -1
  204. package/dist/types/components/ScrollableContent/ScrollableContent.st.css.d.ts.map +1 -1
  205. package/dist/types/components/Suggestions/MarketingCard.d.ts +1 -1
  206. package/dist/types/components/Suggestions/MarketingCard.d.ts.map +1 -1
  207. package/dist/types/components/Suggestions/Suggestions.d.ts +10 -0
  208. package/dist/types/components/Suggestions/Suggestions.d.ts.map +1 -1
  209. package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts +1 -7
  210. package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts.map +1 -1
  211. package/dist/types/components/Suggestions/VisibilityTrackedCard.d.ts +8 -0
  212. package/dist/types/components/Suggestions/VisibilityTrackedCard.d.ts.map +1 -0
  213. package/dist/types/components/Suggestions/types.d.ts +5 -2
  214. package/dist/types/components/Suggestions/types.d.ts.map +1 -1
  215. package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
  216. package/dist/types/exports/testkit/unidriver.d.ts +1 -1
  217. package/dist/types/exports/testkit/unidriver.d.ts.map +1 -1
  218. package/dist/types/hooks/useCollectionTableResize.d.ts +2 -1
  219. package/dist/types/hooks/useCollectionTableResize.d.ts.map +1 -1
  220. package/dist/types/hooks/useIntersectionObserver.d.ts +5 -0
  221. package/dist/types/hooks/useIntersectionObserver.d.ts.map +1 -0
  222. package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
  223. package/dist/types/state/Suggestions/SuggestionsBIReporter.d.ts +16 -0
  224. package/dist/types/state/Suggestions/SuggestionsBIReporter.d.ts.map +1 -0
  225. package/dist/types/state/Suggestions/SuggestionsState.d.ts +8 -3
  226. package/dist/types/state/Suggestions/SuggestionsState.d.ts.map +1 -1
  227. package/dist/types/test-utils/DealerBIMock.d.ts +71 -0
  228. package/dist/types/test-utils/DealerBIMock.d.ts.map +1 -0
  229. package/dist/types/test-utils/IntersectionObserverMock.d.ts +93 -0
  230. package/dist/types/test-utils/IntersectionObserverMock.d.ts.map +1 -0
  231. package/dist/types/version.d.ts +1 -1
  232. package/package.json +4 -4
  233. package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
  234. package/src/components/Collapse/Collapse.st.css.ts +2 -2
  235. package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
  236. package/src/components/CollectionSearch.tsx +18 -1
  237. package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
  238. package/src/components/CollectionTable/CollectionTable.tsx +4 -1
  239. package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
  240. package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
  241. package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
  242. package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
  243. package/src/components/CustomColumnsPanel/CustomColumnsNoResults.tsx +4 -1
  244. package/src/components/CustomColumnsPanel/CustomColumnsSearch.tsx +14 -1
  245. package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
  246. package/src/components/EmptyState/CollectionNoResultsState.tsx +1 -0
  247. package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
  248. package/src/components/Fade/Fade.st.css.ts +2 -2
  249. package/src/components/Heading/Heading.st.css.ts +2 -2
  250. package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
  251. package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
  252. package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
  253. package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
  254. package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
  255. package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
  256. package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
  257. package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
  258. package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
  259. package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
  260. package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
  261. package/src/components/PickerEmptyState/PickerEmptyState.tsx +8 -2
  262. package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
  263. package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
  264. package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
  265. package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
  266. package/src/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
  267. package/src/components/Suggestions/MarketingCard.tsx +17 -8
  268. package/src/components/Suggestions/Suggestions.tsx +54 -18
  269. package/src/components/Suggestions/Suggestions.uni.driver.ts +4 -16
  270. package/src/components/Suggestions/VisibilityTrackedCard.tsx +20 -0
  271. package/src/components/Suggestions/types.ts +5 -2
  272. package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
  273. package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
  274. package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
  275. package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
  276. package/src/components/common.st.css.ts +2 -2
  277. package/src/exports/testkit/unidriver.ts +1 -4
  278. package/src/hooks/useCollectionTableResize.ts +3 -0
  279. package/src/hooks/useIntersectionObserver.ts +44 -0
  280. package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
  281. package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
  282. package/src/state/Suggestions/SuggestionsBIReporter.ts +44 -0
  283. package/src/state/Suggestions/SuggestionsState.ts +38 -5
  284. package/src/styles.global.css +1 -1
  285. package/src/test-utils/DealerBIMock.ts +123 -0
  286. package/src/test-utils/IntersectionObserverMock.ts +155 -0
  287. package/src/version.ts +1 -1
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.useIntersectionObserver = useIntersectionObserver;
5
+ var _react = require("react");
6
+ function useIntersectionObserver(callback, threshold = 0.9) {
7
+ const elementRef = (0, _react.useRef)(null);
8
+ const [intersectionObserver] = (0, _react.useState)(() => {
9
+ // in jsdom, IntersectionObserver is not implemeted
10
+ if (typeof IntersectionObserver === 'undefined') {
11
+ return null;
12
+ }
13
+ return new IntersectionObserver(([entry]) => {
14
+ if (entry.isIntersecting) {
15
+ callback();
16
+ intersectionObserver == null || intersectionObserver.disconnect();
17
+ }
18
+ }, {
19
+ threshold
20
+ });
21
+ });
22
+ (0, _react.useEffect)(() => {
23
+ const element = elementRef.current;
24
+ if (!element || !intersectionObserver) {
25
+ return;
26
+ }
27
+ intersectionObserver.observe(element);
28
+ return () => {
29
+ intersectionObserver.disconnect();
30
+ };
31
+ }, []);
32
+ return {
33
+ elementRef
34
+ };
35
+ }
36
+ //# sourceMappingURL=useIntersectionObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","useIntersectionObserver","callback","threshold","elementRef","useRef","intersectionObserver","useState","IntersectionObserver","entry","isIntersecting","disconnect","useEffect","element","current","observe"],"sources":["../../../src/hooks/useIntersectionObserver.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\n\nexport function useIntersectionObserver(\n callback: () => void,\n threshold: number = 0.9,\n) {\n const elementRef = useRef<HTMLElement | null>(null);\n const [intersectionObserver] = useState(() => {\n // in jsdom, IntersectionObserver is not implemeted\n if (typeof IntersectionObserver === 'undefined') {\n return null;\n }\n\n return new IntersectionObserver(\n ([entry]) => {\n if (entry.isIntersecting) {\n callback();\n intersectionObserver?.disconnect();\n }\n },\n {\n threshold,\n },\n );\n });\n\n useEffect(() => {\n const element = elementRef.current;\n\n if (!element || !intersectionObserver) {\n return;\n }\n\n intersectionObserver.observe(element);\n\n return () => {\n intersectionObserver.disconnect();\n };\n }, []);\n\n return {\n elementRef,\n };\n}\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,SAASC,uBAAuBA,CACrCC,QAAoB,EACpBC,SAAiB,GAAG,GAAG,EACvB;EACA,MAAMC,UAAU,GAAG,IAAAC,aAAM,EAAqB,IAAI,CAAC;EACnD,MAAM,CAACC,oBAAoB,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAM;IAC5C;IACA,IAAI,OAAOC,oBAAoB,KAAK,WAAW,EAAE;MAC/C,OAAO,IAAI;IACb;IAEA,OAAO,IAAIA,oBAAoB,CAC7B,CAAC,CAACC,KAAK,CAAC,KAAK;MACX,IAAIA,KAAK,CAACC,cAAc,EAAE;QACxBR,QAAQ,CAAC,CAAC;QACVI,oBAAoB,YAApBA,oBAAoB,CAAEK,UAAU,CAAC,CAAC;MACpC;IACF,CAAC,EACD;MACER;IACF,CACF,CAAC;EACH,CAAC,CAAC;EAEF,IAAAS,gBAAS,EAAC,MAAM;IACd,MAAMC,OAAO,GAAGT,UAAU,CAACU,OAAO;IAElC,IAAI,CAACD,OAAO,IAAI,CAACP,oBAAoB,EAAE;MACrC;IACF;IAEAA,oBAAoB,CAACS,OAAO,CAACF,OAAO,CAAC;IAErC,OAAO,MAAM;MACXP,oBAAoB,CAACK,UAAU,CAAC,CAAC;IACnC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACLP;EACF,CAAC;AACH","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "CollectionPageHeader3399941205";
8
+ var _namespace_ = "CollectionPageHeader736711144";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "CollectionPageHeader3399941205__root"
15
+ "root": "CollectionPageHeader736711144__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader3399941205\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader3399941205__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,gCAAgC;AAClD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAsC,CAAC;AAC7D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/CollectionPage/CollectionPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"CollectionPageHeader736711144\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"CollectionPageHeader736711144__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,+BAA+B;AACjD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAqC,CAAC;AAC5D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "FormPageHeader3274851304";
8
+ var _namespace_ = "FormPageHeader3304963303";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "FormPageHeader3274851304__root"
15
+ "root": "FormPageHeader3304963303__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader3274851304\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"FormPageHeader3274851304__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/state/FormPage/FormPageHeader.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"FormPageHeader3304963303\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"FormPageHeader3304963303__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAAK,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AACnB,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAgC,CAAC;AACvD,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.SuggestionsBIReporter = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ var _bi = require("@wix/bex-core/bi");
8
+ var _http = require("@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/http");
9
+ var _types = require("@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/types");
10
+ class SuggestionsBIReporter {
11
+ constructor(params) {
12
+ (0, _defineProperty2.default)(this, "reportBI", void 0);
13
+ (0, _defineProperty2.default)(this, "httpClient", void 0);
14
+ (0, _defineProperty2.default)(this, "realEstateId", void 0);
15
+ this.reportBI = params.reportBI;
16
+ this.realEstateId = params.realEstateId;
17
+ this.httpClient = params.httpClient;
18
+ }
19
+ loadStart() {
20
+ this.reportBI((0, _bi.loadStart)({}));
21
+ }
22
+ loadEnd(startTime) {
23
+ this.reportBI((0, _bi.loadEnd)({
24
+ loadingTime: Math.round(performance.now() - startTime)
25
+ }));
26
+ }
27
+ reportOfferViewed(offerId) {
28
+ this.httpClient.request((0, _http.reportEvent)({
29
+ event: {
30
+ type: _types.EventType.VIEW,
31
+ offerId,
32
+ realEstateId: this.realEstateId
33
+ }
34
+ }));
35
+ }
36
+ }
37
+ exports.SuggestionsBIReporter = SuggestionsBIReporter;
38
+ //# sourceMappingURL=SuggestionsBIReporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_bi","require","_http","_types","SuggestionsBIReporter","constructor","params","_defineProperty2","default","reportBI","realEstateId","httpClient","loadStart","loadEnd","startTime","loadingTime","Math","round","performance","now","reportOfferViewed","offerId","request","reportEvent","event","type","EventType","VIEW","exports"],"sources":["../../../../src/state/Suggestions/SuggestionsBIReporter.ts"],"sourcesContent":["import { ReportBI, WixPatternsContainerParams } from '@wix/bex-core';\nimport { loadEnd, loadStart } from '@wix/bex-core/bi';\nimport { reportEvent } from '@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/http';\nimport { EventType } from '@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/types';\n\nexport interface SuggestionsBIReporterParams {\n reportBI: ReportBI;\n realEstateId: string;\n httpClient: WixPatternsContainerParams['httpClient'];\n}\n\nexport class SuggestionsBIReporter {\n readonly reportBI: ReportBI;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly realEstateId: string;\n\n constructor(params: SuggestionsBIReporterParams) {\n this.reportBI = params.reportBI;\n this.realEstateId = params.realEstateId;\n this.httpClient = params.httpClient;\n }\n\n loadStart() {\n this.reportBI(loadStart({}));\n }\n\n loadEnd(startTime: DOMHighResTimeStamp) {\n this.reportBI(\n loadEnd({ loadingTime: Math.round(performance.now() - startTime) }),\n );\n }\n\n reportOfferViewed(offerId: string) {\n this.httpClient.request(\n reportEvent({\n event: {\n type: EventType.VIEW,\n offerId,\n realEstateId: this.realEstateId,\n },\n }),\n );\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAQO,MAAMG,qBAAqB,CAAC;EAKjCC,WAAWA,CAACC,MAAmC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAC/C,IAAI,CAACC,QAAQ,GAAGH,MAAM,CAACG,QAAQ;IAC/B,IAAI,CAACC,YAAY,GAAGJ,MAAM,CAACI,YAAY;IACvC,IAAI,CAACC,UAAU,GAAGL,MAAM,CAACK,UAAU;EACrC;EAEAC,SAASA,CAAA,EAAG;IACV,IAAI,CAACH,QAAQ,CAAC,IAAAG,aAAS,EAAC,CAAC,CAAC,CAAC,CAAC;EAC9B;EAEAC,OAAOA,CAACC,SAA8B,EAAE;IACtC,IAAI,CAACL,QAAQ,CACX,IAAAI,WAAO,EAAC;MAAEE,WAAW,EAAEC,IAAI,CAACC,KAAK,CAACC,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGL,SAAS;IAAE,CAAC,CACpE,CAAC;EACH;EAEAM,iBAAiBA,CAACC,OAAe,EAAE;IACjC,IAAI,CAACV,UAAU,CAACW,OAAO,CACrB,IAAAC,iBAAW,EAAC;MACVC,KAAK,EAAE;QACLC,IAAI,EAAEC,gBAAS,CAACC,IAAI;QACpBN,OAAO;QACPX,YAAY,EAAE,IAAI,CAACA;MACrB;IACF,CAAC,CACH,CAAC;EACH;AACF;AAACkB,OAAA,CAAAxB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -7,13 +7,23 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
7
7
  var _http = require("@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/http");
8
8
  var _mobx = require("mobx");
9
9
  var _bexCore = require("@wix/bex-core");
10
+ var _SuggestionsBIReporter = require("./SuggestionsBIReporter");
10
11
  class SuggestionsState {
11
12
  constructor(params) {
12
13
  (0, _defineProperty2.default)(this, "placementId", void 0);
13
- (0, _defineProperty2.default)(this, "httpClient", void 0);
14
+ (0, _defineProperty2.default)(this, "container", void 0);
14
15
  (0, _defineProperty2.default)(this, "fetchOffersTask", new _bexCore.TaskState());
16
+ (0, _defineProperty2.default)(this, "reportBI", void 0);
17
+ (0, _defineProperty2.default)(this, "bi", void 0);
18
+ (0, _defineProperty2.default)(this, "httpClient", void 0);
15
19
  (0, _defineProperty2.default)(this, "init", () => {
16
- this.fetchOffersTask.runOnce(this._fetchOffers);
20
+ const startTime = performance.now();
21
+ this.bi.loadStart();
22
+ this.fetchOffersTask.runOnce(async () => {
23
+ const offers = await this._fetchOffers();
24
+ this.bi.loadEnd(startTime);
25
+ return offers;
26
+ });
17
27
  });
18
28
  (0, _defineProperty2.default)(this, "_fetchOffers", async () => {
19
29
  const {
@@ -28,7 +38,17 @@ class SuggestionsState {
28
38
  return data.offers ?? [];
29
39
  });
30
40
  this.placementId = params.placementId;
31
- this.httpClient = params.httpClient;
41
+ this.container = params.container;
42
+ this.httpClient = this.container.httpClient;
43
+ this.reportBI = this.container.createBILogger({
44
+ componentType: 'suggestionsWidget',
45
+ route: window.location.pathname
46
+ });
47
+ this.bi = new _SuggestionsBIReporter.SuggestionsBIReporter({
48
+ reportBI: this.reportBI,
49
+ realEstateId: this.placementId,
50
+ httpClient: this.httpClient
51
+ });
32
52
  (0, _mobx.makeObservable)(this, {
33
53
  offers: _mobx.computed,
34
54
  isFetching: _mobx.computed,
@@ -44,6 +64,9 @@ class SuggestionsState {
44
64
  get hasOffers() {
45
65
  return this.offers.length > 0;
46
66
  }
67
+ onOfferViewed(offerId) {
68
+ this.bi.reportOfferViewed(offerId);
69
+ }
47
70
  }
48
71
  exports.SuggestionsState = SuggestionsState;
49
72
  //# sourceMappingURL=SuggestionsState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_http","require","_mobx","_bexCore","SuggestionsState","constructor","params","_defineProperty2","default","TaskState","fetchOffersTask","runOnce","_fetchOffers","placementId","httpClient","data","request","listOffers","realEstateId","offers","makeObservable","computed","isFetching","hasOffers","status","isSuccess","isLoading","length","exports"],"sources":["../../../../src/state/Suggestions/SuggestionsState.ts"],"sourcesContent":["import { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\nimport { listOffers } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/http';\nimport { computed, makeObservable } from 'mobx';\nimport { TaskState, WixPatternsContainerParams } from '@wix/bex-core';\n\nexport interface SuggestionsStateParams {\n placementId: string;\n httpClient: WixPatternsContainerParams['httpClient'];\n}\n\nexport class SuggestionsState {\n readonly placementId: string;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n readonly fetchOffersTask = new TaskState<Offer[]>();\n\n constructor(params: SuggestionsStateParams) {\n this.placementId = params.placementId;\n this.httpClient = params.httpClient;\n\n makeObservable(this, {\n offers: computed,\n isFetching: computed,\n hasOffers: computed,\n });\n }\n\n init = () => {\n this.fetchOffersTask.runOnce(this._fetchOffers);\n };\n\n private _fetchOffers = async () => {\n const { placementId, httpClient } = this;\n const { data } = await httpClient.request(\n listOffers({ realEstateId: placementId }),\n );\n\n return data.offers ?? [];\n };\n\n get offers(): Offer[] {\n return this.fetchOffersTask.status.isSuccess\n ? this.fetchOffersTask.status.data\n : [];\n }\n\n get isFetching(): boolean {\n return this.fetchOffersTask.status.isLoading;\n }\n\n get hasOffers() {\n return this.offers.length > 0;\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAOO,MAAMG,gBAAgB,CAAC;EAK5BC,WAAWA,CAACC,MAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BAFjB,IAAIC,kBAAS,CAAU,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,gBAa5C,MAAM;MACX,IAAI,CAACE,eAAe,CAACC,OAAO,CAAC,IAAI,CAACC,YAAY,CAAC;IACjD,CAAC;IAAA,IAAAL,gBAAA,CAAAC,OAAA,wBAEsB,YAAY;MACjC,MAAM;QAAEK,WAAW;QAAEC;MAAW,CAAC,GAAG,IAAI;MACxC,MAAM;QAAEC;MAAK,CAAC,GAAG,MAAMD,UAAU,CAACE,OAAO,CACvC,IAAAC,gBAAU,EAAC;QAAEC,YAAY,EAAEL;MAAY,CAAC,CAC1C,CAAC;MAED,OAAOE,IAAI,CAACI,MAAM,IAAI,EAAE;IAC1B,CAAC;IArBC,IAAI,CAACN,WAAW,GAAGP,MAAM,CAACO,WAAW;IACrC,IAAI,CAACC,UAAU,GAAGR,MAAM,CAACQ,UAAU;IAEnC,IAAAM,oBAAc,EAAC,IAAI,EAAE;MACnBD,MAAM,EAAEE,cAAQ;MAChBC,UAAU,EAAED,cAAQ;MACpBE,SAAS,EAAEF;IACb,CAAC,CAAC;EACJ;EAeA,IAAIF,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACT,eAAe,CAACc,MAAM,CAACC,SAAS,GACxC,IAAI,CAACf,eAAe,CAACc,MAAM,CAACT,IAAI,GAChC,EAAE;EACR;EAEA,IAAIO,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACZ,eAAe,CAACc,MAAM,CAACE,SAAS;EAC9C;EAEA,IAAIH,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACJ,MAAM,CAACQ,MAAM,GAAG,CAAC;EAC/B;AACF;AAACC,OAAA,CAAAxB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
1
+ {"version":3,"names":["_http","require","_mobx","_bexCore","_SuggestionsBIReporter","SuggestionsState","constructor","params","_defineProperty2","default","TaskState","startTime","performance","now","bi","loadStart","fetchOffersTask","runOnce","offers","_fetchOffers","loadEnd","placementId","httpClient","data","request","listOffers","realEstateId","container","reportBI","createBILogger","componentType","route","window","location","pathname","SuggestionsBIReporter","makeObservable","computed","isFetching","hasOffers","status","isSuccess","isLoading","length","onOfferViewed","offerId","reportOfferViewed","exports"],"sources":["../../../../src/state/Suggestions/SuggestionsState.ts"],"sourcesContent":["import { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\nimport { listOffers } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/http';\nimport { computed, makeObservable } from 'mobx';\nimport {\n ReportBI,\n TaskState,\n WixPatternsContainer,\n WixPatternsContainerParams,\n} from '@wix/bex-core';\nimport { SuggestionsBIReporter } from './SuggestionsBIReporter';\n\nexport interface SuggestionsStateParams {\n placementId: string;\n container: WixPatternsContainer;\n}\n\nexport class SuggestionsState {\n readonly placementId: string;\n readonly container: WixPatternsContainer;\n readonly fetchOffersTask = new TaskState<Offer[]>();\n readonly reportBI: ReportBI;\n\n readonly bi: SuggestionsBIReporter;\n readonly httpClient: WixPatternsContainerParams['httpClient'];\n\n constructor(params: SuggestionsStateParams) {\n this.placementId = params.placementId;\n this.container = params.container;\n this.httpClient = this.container.httpClient;\n this.reportBI = this.container.createBILogger({\n componentType: 'suggestionsWidget',\n route: window.location.pathname,\n });\n\n this.bi = new SuggestionsBIReporter({\n reportBI: this.reportBI,\n realEstateId: this.placementId,\n httpClient: this.httpClient,\n });\n\n makeObservable(this, {\n offers: computed,\n isFetching: computed,\n hasOffers: computed,\n });\n }\n\n init = () => {\n const startTime = performance.now();\n\n this.bi.loadStart();\n\n this.fetchOffersTask.runOnce(async () => {\n const offers = await this._fetchOffers();\n this.bi.loadEnd(startTime);\n return offers;\n });\n };\n\n private _fetchOffers = async () => {\n const { placementId, httpClient } = this;\n const { data } = await httpClient.request(\n listOffers({ realEstateId: placementId }),\n );\n\n return data.offers ?? [];\n };\n\n get offers(): Offer[] {\n return this.fetchOffersTask.status.isSuccess\n ? this.fetchOffersTask.status.data\n : [];\n }\n\n get isFetching(): boolean {\n return this.fetchOffersTask.status.isLoading;\n }\n\n get hasOffers() {\n return this.offers.length > 0;\n }\n\n onOfferViewed(offerId: string) {\n this.bi.reportOfferViewed(offerId);\n }\n}\n"],"mappings":";;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAMA,IAAAG,sBAAA,GAAAH,OAAA;AAOO,MAAMI,gBAAgB,CAAC;EAS5BC,WAAWA,CAACC,MAA8B,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,2BANjB,IAAIC,kBAAS,CAAU,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,gBA4B5C,MAAM;MACX,MAAME,SAAS,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;MAEnC,IAAI,CAACC,EAAE,CAACC,SAAS,CAAC,CAAC;MAEnB,IAAI,CAACC,eAAe,CAACC,OAAO,CAAC,YAAY;QACvC,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACC,YAAY,CAAC,CAAC;QACxC,IAAI,CAACL,EAAE,CAACM,OAAO,CAACT,SAAS,CAAC;QAC1B,OAAOO,MAAM;MACf,CAAC,CAAC;IACJ,CAAC;IAAA,IAAAV,gBAAA,CAAAC,OAAA,wBAEsB,YAAY;MACjC,MAAM;QAAEY,WAAW;QAAEC;MAAW,CAAC,GAAG,IAAI;MACxC,MAAM;QAAEC;MAAK,CAAC,GAAG,MAAMD,UAAU,CAACE,OAAO,CACvC,IAAAC,gBAAU,EAAC;QAAEC,YAAY,EAAEL;MAAY,CAAC,CAC1C,CAAC;MAED,OAAOE,IAAI,CAACL,MAAM,IAAI,EAAE;IAC1B,CAAC;IAxCC,IAAI,CAACG,WAAW,GAAGd,MAAM,CAACc,WAAW;IACrC,IAAI,CAACM,SAAS,GAAGpB,MAAM,CAACoB,SAAS;IACjC,IAAI,CAACL,UAAU,GAAG,IAAI,CAACK,SAAS,CAACL,UAAU;IAC3C,IAAI,CAACM,QAAQ,GAAG,IAAI,CAACD,SAAS,CAACE,cAAc,CAAC;MAC5CC,aAAa,EAAE,mBAAmB;MAClCC,KAAK,EAAEC,MAAM,CAACC,QAAQ,CAACC;IACzB,CAAC,CAAC;IAEF,IAAI,CAACpB,EAAE,GAAG,IAAIqB,4CAAqB,CAAC;MAClCP,QAAQ,EAAE,IAAI,CAACA,QAAQ;MACvBF,YAAY,EAAE,IAAI,CAACL,WAAW;MAC9BC,UAAU,EAAE,IAAI,CAACA;IACnB,CAAC,CAAC;IAEF,IAAAc,oBAAc,EAAC,IAAI,EAAE;MACnBlB,MAAM,EAAEmB,cAAQ;MAChBC,UAAU,EAAED,cAAQ;MACpBE,SAAS,EAAEF;IACb,CAAC,CAAC;EACJ;EAuBA,IAAInB,MAAMA,CAAA,EAAY;IACpB,OAAO,IAAI,CAACF,eAAe,CAACwB,MAAM,CAACC,SAAS,GACxC,IAAI,CAACzB,eAAe,CAACwB,MAAM,CAACjB,IAAI,GAChC,EAAE;EACR;EAEA,IAAIe,UAAUA,CAAA,EAAY;IACxB,OAAO,IAAI,CAACtB,eAAe,CAACwB,MAAM,CAACE,SAAS;EAC9C;EAEA,IAAIH,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACrB,MAAM,CAACyB,MAAM,GAAG,CAAC;EAC/B;EAEAC,aAAaA,CAACC,OAAe,EAAE;IAC7B,IAAI,CAAC/B,EAAE,CAACgC,iBAAiB,CAACD,OAAO,CAAC;EACpC;AACF;AAACE,OAAA,CAAA1C,gBAAA,GAAAA,gBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- .CardContainer4143025910__root.CardContainer4143025910--mobile{border-radius:0}.Collapse3754513475__root{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.Collapse3754513475__exit{height:0}.CollectionPage2158161423__root [data-hook=page-header-wrapper]{--wds-space-300:18px}.CollectionPage2158161423__root.CollectionPage2158161423--mobile{--wds-page-header-padding-horizontal:0;--wds-color-fill-surface-sunken:#ffffff}.CollectionPage2158161423__root.CollectionPage2158161423--panel{overflow:hidden;position:relative}.CollectionTable2752357204__root td{vertical-align:middle}.CollectionTable2752357204__root.CollectionTable2752357204--mobile td:first-child{padding-left:18px}.CollectionTable2752357204__root.CollectionTable2752357204--mobile td:last-child{padding-right:18px}.CollectionToolbar3308549850__left{min-width:0}.CollectionToolbar3308549850__root.CollectionToolbar3308549850--views .CollectionToolbar3308549850__left{flex-shrink:1;flex-grow:0}.CollectionToolbar3308549850__left.CollectionToolbar3308549850--expandable{flex:auto}.CollectionToolbar3308549850__root .CollectionToolbar3308549850__right{justify-content:flex-end!important;flex-grow:1;flex-shrink:1;flex-basis:auto}.CollectionToolbar3308549850__root.CollectionToolbar3308549850--views .CollectionToolbar3308549850__right{min-width:0;flex-grow:1;flex-shrink:0;flex-basis:0}.CollectionToolbar3308549850__root .CollectionToolbar3308549850__right.CollectionToolbar3308549850__fullWidth{margin-inline-start:0!important}.CollectionToolbar3308549850__root.CollectionToolbar3308549850--mobile{padding-right:18px;padding-left:18px}.SearchOrCustomFilter3633582903__search{min-width:140px;max-width:240px;flex:1 0}.SearchOrCustomFilter3633582903__searchMobile{justify-content:flex-end;position:absolute;right:18px}.SearchOrCustomFilter3633582903__searchMobile:not(.SearchOrCustomFilter3633582903--expandable){left:18px}.SearchOrCustomFilter3633582903__searchMobile.SearchOrCustomFilter3633582903--expandable.SearchOrCustomFilter3633582903--expanded{left:18px}.AutoCompleteReadonly2402100218__root.AutoCompleteReadonly2402100218--disableEditing{cursor:pointer}.AutoCompleteReadonly2402100218__root.AutoCompleteReadonly2402100218--disableEditing input{cursor:pointer}.ViewsDropdown3675822556__root{width:200px}.DragHandle3359316029__root{display:flex;align-items:center}.DragHandle3359316029__root:not(.DragHandle3359316029--disabled){cursor:grab;color:#a8caff}.DragHandle3359316029__root.DragHandle3359316029--disabled{color:#acafc4}.DragHandle3359316029__root:focus-visible:not(.DragHandle3359316029--disabled){outline:0;box-shadow:0 0 0 3px #a6d0ff}.DragHandle3359316029__root.DragHandle3359316029--disabled{pointer-events:none}.DragHandle3359316029__root.DragHandle3359316029--dragging:not(.DragHandle3359316029--disabled){cursor:grabbing}.EntityPagePlain3475402275__root.EntityPagePlain3475402275--mobile{--wds-page-header-padding-horizontal:0}.Fade3567457394__root{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);opacity:1}.Fade3567457394__root.Fade3567457394--exit{opacity:0}.Heading2239324550__root{visibility:visible}.Heading2239324550__root.Heading2239324550--appearanceH2{font-size:28px!important;line-height:36px!important}.InputOverflow1666475217__root.InputOverflow1666475217--selected:not(.InputOverflow1666475217--focused) input::placeholder{color:#000624}@keyframes LoadingRow1481472461__gradientSwoosh{0%{background-position:50% 50%;background-size:150% 125%}15%{background-position:75% 40%;background-size:130% 115%}30%{background-position:50% 50%;background-size:120% 135%}60%{background-position:30% 50%;background-size:120% 135%}80%{background-position:10% 30%;background-size:130% 155%}to{background-position:40% 45%;background-size:125% 135%}}.LoadingRow1481472461__root{background-image:linear-gradient(60deg,rgba(255,255,255,.15)0,rgba(255,255,255,.15) 50%,rgba(95,242,174,.15) 100%),linear-gradient(284.81deg,#fff 67.18%,#91bbff 158.87%),linear-gradient(29deg,rgba(145,187,255,.6)0,#fff 40%,rgba(95,242,174,.6) 100%);height:100%;background-size:150% 125%;background-repeat:no-repeat;animation:LoadingRow1481472461__gradientSwoosh 2s ease-out infinite alternate}.MaxHeightText2261845786__root{opacity:1}.MaxHeightText2261845786__root.MaxHeightText2261845786--height24{line-height:24px}.MaxLines1494253558__root{overflow:hidden}.MaxLines1494253558__root.MaxLines1494253558--clamp{-webkit-box-orient:vertical;display:-webkit-box}.MultiBulkActionToolbar1790008875__root{min-width:0}.MultiBulkActionToolbar1790008875__leftGroupWrapper{overflow:hidden;padding-right:12px;min-width:0;flex-wrap:nowrap;align-items:center}.MultiBulkActionToolbar1790008875__selectedCountItem{min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden}.MultiBulkActionToolbar1790008875__selectedCountText{display:block;width:100%}.NestedTablePlaceholderStatesRow4206198975__root td{padding:0!important;width:100%}.NestedTableRow270994647__firstLevel td{padding-top:18px!important;padding-bottom:18px!important}.NestedTableRow270994647__root:hover{background-color:#e7f0ff!important}.NestedTableRow270994647__root.NestedTableRow270994647--expandable{cursor:pointer}.NestedTableRow270994647__placeholder td{padding:0!important;width:100%}.NestedTableRow270994647__root:hover td:first-of-type::before,.NestedTableRow270994647__parentHovered td:first-of-type::before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:#5999ff}.MultipleDragOverlayEffect2367695207__root{position:absolute;transform:translate(6px,6px);background-color:#fff;box-shadow:0 2px 4px 0 rgba(0,6,36,.12),0 0 6px 0 rgba(0,6,36,.12)}.NestedTableDragAndDropRow3656331557__root.NestedTableDragAndDropRow3656331557--draggingInto td{background-color:#e7f0ff!important}.PickerContent3209389846__root{display:flex}.PickerContentAdditionalStep667107801__titles{display:flex;justify-content:center;flex:1 1 auto;overflow:hidden;flex-direction:column}.PickerContentAdditionalStep667107801__suffix{display:flex;align-items:center;flex:0 0 auto;overflow:hidden}.PickerTableListItem2330376760__root{box-sizing:border-box}.ScrollableContent1226115484__root.ScrollableContent1226115484--overflowY{overflow-y:auto}.ScrollableContent1226115484__root.ScrollableContent1226115484--overflowX{overflow-x:auto}.ScrollableContent1226115484__root.ScrollableContent1226115484--smooth{scroll-behavior:smooth}.SkeletonCard3734480752__headerLoading{display:block!important}.SlidingModal2922551153__root{transition:transform .4s ease 0s;position:fixed;z-index:1}.SlidingModal2922551153__root.SlidingModal2922551153--overlay{transition:transform 0s ease 0s}.SlidingModal2922551153__root.SlidingModal2922551153---appendTo-6-parent{position:absolute}.SlidingModal2922551153__root:not(.SlidingModal2922551153--exited){box-shadow:0 3px 24px 0 rgba(22,45,61,.18),0 8px 8px 0 rgba(22,45,61,.12)}.TabsFilter1345177777__root .TabsFilter1345177777__title{color:inherit!important}.ManageTagsModal3024155593__root{display:flex}.ToolbarItem1084120392__root{min-width:0}.ToolbarItemBox1023738829__root{min-width:0}.ToolbarItemBox1023738829__root.ToolbarItemBox1023738829--removeStartPadding{margin-left:-24px}.ToolbarItemBox1023738829__root.ToolbarItemBox1023738829--expandable{flex:1 0}.common1495039995__column{display:flex;flex-direction:column}.common1495039995__fullHeight{height:100%;min-height:0}.CollectionPageHeader3399941205__root.CollectionPageHeader3399941205--mobile{flex-direction:column;padding-right:18px;padding-left:18px}.CollectionPageHeader3399941205__root.CollectionPageHeader3399941205--mobile>*{margin-left:0;margin-top:6px!important;height:auto}.FormPageHeader3274851304__root.FormPageHeader3274851304--mobile{flex-direction:column;padding-right:18px;padding-left:18px}.FormPageHeader3274851304__root.FormPageHeader3274851304--mobile>*{margin-left:0;margin-top:6px!important;height:auto}
1
+ .CardContainer312641811__root.CardContainer312641811--mobile{border-radius:0}.Collapse635544407__root{transition-property:height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.Collapse635544407__exit{height:0}.CollectionPage3558163292__root [data-hook=page-header-wrapper]{--wds-space-300:18px}.CollectionPage3558163292__root.CollectionPage3558163292--mobile{--wds-page-header-padding-horizontal:0;--wds-color-fill-surface-sunken:#ffffff}.CollectionPage3558163292__root.CollectionPage3558163292--panel{overflow:hidden;position:relative}.CollectionTable967591821__root td{vertical-align:middle}.CollectionTable967591821__root.CollectionTable967591821--mobile td:first-child{padding-left:18px}.CollectionTable967591821__root.CollectionTable967591821--mobile td:last-child{padding-right:18px}.CollectionToolbar2765748828__left{min-width:0}.CollectionToolbar2765748828__root.CollectionToolbar2765748828--views .CollectionToolbar2765748828__left{flex-shrink:1;flex-grow:0}.CollectionToolbar2765748828__left.CollectionToolbar2765748828--expandable{flex:auto}.CollectionToolbar2765748828__root .CollectionToolbar2765748828__right{justify-content:flex-end!important;flex-grow:1;flex-shrink:1;flex-basis:auto}.CollectionToolbar2765748828__root.CollectionToolbar2765748828--views .CollectionToolbar2765748828__right{min-width:0;flex-grow:1;flex-shrink:0;flex-basis:0}.CollectionToolbar2765748828__root .CollectionToolbar2765748828__right.CollectionToolbar2765748828__fullWidth{margin-inline-start:0!important}.CollectionToolbar2765748828__root.CollectionToolbar2765748828--mobile{padding-right:18px;padding-left:18px}.SearchOrCustomFilter676053826__search{min-width:140px;max-width:240px;flex:1 0}.SearchOrCustomFilter676053826__searchMobile{justify-content:flex-end;position:absolute;right:18px}.SearchOrCustomFilter676053826__searchMobile:not(.SearchOrCustomFilter676053826--expandable){left:18px}.SearchOrCustomFilter676053826__searchMobile.SearchOrCustomFilter676053826--expandable.SearchOrCustomFilter676053826--expanded{left:18px}.AutoCompleteReadonly2136975089__root.AutoCompleteReadonly2136975089--disableEditing{cursor:pointer}.AutoCompleteReadonly2136975089__root.AutoCompleteReadonly2136975089--disableEditing input{cursor:pointer}.ViewsDropdown1562602937__root{width:200px}.DragHandle1680406004__root{display:flex;align-items:center}.DragHandle1680406004__root:not(.DragHandle1680406004--disabled){cursor:grab;color:#a8caff}.DragHandle1680406004__root.DragHandle1680406004--disabled{color:#acafc4}.DragHandle1680406004__root:focus-visible:not(.DragHandle1680406004--disabled){outline:0;box-shadow:0 0 0 3px #a6d0ff}.DragHandle1680406004__root.DragHandle1680406004--disabled{pointer-events:none}.DragHandle1680406004__root.DragHandle1680406004--dragging:not(.DragHandle1680406004--disabled){cursor:grabbing}.EntityPagePlain2129186045__root.EntityPagePlain2129186045--mobile{--wds-page-header-padding-horizontal:0}.Fade2580742614__root{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);opacity:1}.Fade2580742614__root.Fade2580742614--exit{opacity:0}.Heading1552734931__root{visibility:visible}.Heading1552734931__root.Heading1552734931--appearanceH2{font-size:28px!important;line-height:36px!important}.InputOverflow1980064947__root.InputOverflow1980064947--selected:not(.InputOverflow1980064947--focused) input::placeholder{color:#000624}@keyframes LoadingRow72311180__gradientSwoosh{0%{background-position:50% 50%;background-size:150% 125%}15%{background-position:75% 40%;background-size:130% 115%}30%{background-position:50% 50%;background-size:120% 135%}60%{background-position:30% 50%;background-size:120% 135%}80%{background-position:10% 30%;background-size:130% 155%}to{background-position:40% 45%;background-size:125% 135%}}.LoadingRow72311180__root{background-image:linear-gradient(60deg,rgba(255,255,255,.15)0,rgba(255,255,255,.15) 50%,rgba(95,242,174,.15) 100%),linear-gradient(284.81deg,#fff 67.18%,#91bbff 158.87%),linear-gradient(29deg,rgba(145,187,255,.6)0,#fff 40%,rgba(95,242,174,.6) 100%);height:100%;background-size:150% 125%;background-repeat:no-repeat;animation:LoadingRow72311180__gradientSwoosh 2s ease-out infinite alternate}.MaxHeightText2940241560__root{opacity:1}.MaxHeightText2940241560__root.MaxHeightText2940241560--height24{line-height:24px}.MaxLines1993089027__root{overflow:hidden}.MaxLines1993089027__root.MaxLines1993089027--clamp{-webkit-box-orient:vertical;display:-webkit-box}.MultiBulkActionToolbar3117766984__root{min-width:0}.MultiBulkActionToolbar3117766984__leftGroupWrapper{overflow:hidden;padding-right:12px;min-width:0;flex-wrap:nowrap;align-items:center}.MultiBulkActionToolbar3117766984__selectedCountItem{min-width:0;flex-shrink:1;white-space:nowrap;overflow:hidden}.MultiBulkActionToolbar3117766984__selectedCountText{display:block;width:100%}.NestedTablePlaceholderStatesRow634506500__root td{padding:0!important;width:100%}.NestedTableRow3595325079__firstLevel td{padding-top:18px!important;padding-bottom:18px!important}.NestedTableRow3595325079__root:hover{background-color:#e7f0ff!important}.NestedTableRow3595325079__root.NestedTableRow3595325079--expandable{cursor:pointer}.NestedTableRow3595325079__placeholder td{padding:0!important;width:100%}.NestedTableRow3595325079__root:hover td:first-of-type::before,.NestedTableRow3595325079__parentHovered td:first-of-type::before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background-color:#5999ff}.MultipleDragOverlayEffect3760073984__root{position:absolute;transform:translate(6px,6px);background-color:#fff;box-shadow:0 2px 4px 0 rgba(0,6,36,.12),0 0 6px 0 rgba(0,6,36,.12)}.NestedTableDragAndDropRow2976497727__root.NestedTableDragAndDropRow2976497727--draggingInto td{background-color:#e7f0ff!important}.PickerContent3108120277__root{display:flex}.PickerContentAdditionalStep4199282124__titles{display:flex;justify-content:center;flex:1 1 auto;overflow:hidden;flex-direction:column}.PickerContentAdditionalStep4199282124__suffix{display:flex;align-items:center;flex:0 0 auto;overflow:hidden}.PickerTableListItem2983769481__root{box-sizing:border-box}.ScrollableContent980648129__root.ScrollableContent980648129--overflowY{overflow-y:auto}.ScrollableContent980648129__root.ScrollableContent980648129--overflowX{overflow-x:auto}.ScrollableContent980648129__root.ScrollableContent980648129--smooth{scroll-behavior:smooth}.SkeletonCard1226407146__headerLoading{display:block!important}.SlidingModal3040154923__root{transition:transform .4s ease 0s;position:fixed;z-index:1}.SlidingModal3040154923__root.SlidingModal3040154923--overlay{transition:transform 0s ease 0s}.SlidingModal3040154923__root.SlidingModal3040154923---appendTo-6-parent{position:absolute}.SlidingModal3040154923__root:not(.SlidingModal3040154923--exited){box-shadow:0 3px 24px 0 rgba(22,45,61,.18),0 8px 8px 0 rgba(22,45,61,.12)}.TabsFilter494994749__root .TabsFilter494994749__title{color:inherit!important}.ManageTagsModal2750172858__root{display:flex}.ToolbarItem2717057697__root{min-width:0}.ToolbarItemBox4200702974__root{min-width:0}.ToolbarItemBox4200702974__root.ToolbarItemBox4200702974--removeStartPadding{margin-left:-24px}.ToolbarItemBox4200702974__root.ToolbarItemBox4200702974--expandable{flex:1 0}.common1210614291__column{display:flex;flex-direction:column}.common1210614291__fullHeight{height:100%;min-height:0}.CollectionPageHeader736711144__root.CollectionPageHeader736711144--mobile{flex-direction:column;padding-right:18px;padding-left:18px}.CollectionPageHeader736711144__root.CollectionPageHeader736711144--mobile>*{margin-left:0;margin-top:6px!important;height:auto}.FormPageHeader3304963303__root.FormPageHeader3304963303--mobile{flex-direction:column;padding-right:18px;padding-left:18px}.FormPageHeader3304963303__root.FormPageHeader3304963303--mobile>*{margin-left:0;margin-top:6px!important;height:auto}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.default = exports.dealerBITestkit = exports.EventType = void 0;
5
+ var _httpClient = require("@wix/yoshi-flow-bm/testkit/http-client");
6
+ var _http = require("@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/http");
7
+ var _types = require("@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/types");
8
+ exports.EventType = _types.EventType;
9
+ /**
10
+ * Testkit for testing dealer BI events.
11
+ *
12
+ * Provides a singleton-style API similar to biTestkit from @wix/bex-core/bi/testkit.
13
+ * Captures dealer reportEvent HTTP calls and provides utilities to assert on events.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * import dealerBITestkit from '../test-utils/DealerBIMock';
18
+ *
19
+ * describe('MyComponent', () => {
20
+ * const setup = () => {
21
+ * const driver = new MyDriver({
22
+ * httpMocks: [
23
+ * // ... other mocks
24
+ * dealerBITestkit.httpMock,
25
+ * ],
26
+ * });
27
+ * return { driver };
28
+ * };
29
+ *
30
+ * it('sends view event', async () => {
31
+ * setup();
32
+ * // ... trigger the view event
33
+ *
34
+ * expect(dealerBITestkit.view.last()).toEqual(
35
+ * expect.objectContaining({
36
+ * offerId: 'offer-1',
37
+ * }),
38
+ * );
39
+ * });
40
+ * });
41
+ * ```
42
+ */
43
+
44
+ // Re-export EventType for convenience
45
+
46
+ // Singleton spy to capture all events
47
+ const eventsSpy = jest.fn();
48
+
49
+ // Create HTTP mock once
50
+ const httpMock = (0, _httpClient.whenRequest)(_http.reportEvent).reply(async data => {
51
+ eventsSpy(data);
52
+ return {
53
+ status: 200,
54
+ data: {}
55
+ };
56
+ }).persist();
57
+ const _getAllEventsOfType = type => type ? eventsSpy.mock.calls.filter(call => {
58
+ var _call$;
59
+ return ((_call$ = call[0]) == null || (_call$ = _call$.event) == null ? void 0 : _call$.type) === type;
60
+ }).map(call => call[0]) : eventsSpy.mock.calls.map(call => call[0]);
61
+ const createEventTypeAccessor = type => ({
62
+ all: () => _getAllEventsOfType(type),
63
+ last: () => {
64
+ const events = _getAllEventsOfType(type);
65
+ return events.length > 0 ? events[events.length - 1] : undefined;
66
+ },
67
+ count: () => _getAllEventsOfType(type).length
68
+ });
69
+ const dealerBITestkit = exports.dealerBITestkit = {
70
+ httpMock,
71
+ view: createEventTypeAccessor('VIEW'),
72
+ click: createEventTypeAccessor('CLICK'),
73
+ all: _getAllEventsOfType,
74
+ last: () => {
75
+ const events = _getAllEventsOfType();
76
+ return events.length > 0 ? events[events.length - 1] : undefined;
77
+ },
78
+ clear: () => eventsSpy.mockClear()
79
+ };
80
+ var _default = exports.default = dealerBITestkit; // Also export named for flexibility
81
+ //# sourceMappingURL=DealerBIMock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_httpClient","require","_http","_types","exports","EventType","eventsSpy","jest","fn","httpMock","whenRequest","reportEvent","reply","data","status","persist","_getAllEventsOfType","type","mock","calls","filter","call","_call$","event","map","createEventTypeAccessor","all","last","events","length","undefined","count","dealerBITestkit","view","click","clear","mockClear","_default","default"],"sources":["../../../src/test-utils/DealerBIMock.ts"],"sourcesContent":["/**\n * Testkit for testing dealer BI events.\n *\n * Provides a singleton-style API similar to biTestkit from @wix/bex-core/bi/testkit.\n * Captures dealer reportEvent HTTP calls and provides utilities to assert on events.\n *\n * @example\n * ```typescript\n * import dealerBITestkit from '../test-utils/DealerBIMock';\n *\n * describe('MyComponent', () => {\n * const setup = () => {\n * const driver = new MyDriver({\n * httpMocks: [\n * // ... other mocks\n * dealerBITestkit.httpMock,\n * ],\n * });\n * return { driver };\n * };\n *\n * it('sends view event', async () => {\n * setup();\n * // ... trigger the view event\n *\n * expect(dealerBITestkit.view.last()).toEqual(\n * expect.objectContaining({\n * offerId: 'offer-1',\n * }),\n * );\n * });\n * });\n * ```\n */\n\nimport { whenRequest } from '@wix/yoshi-flow-bm/testkit/http-client';\nimport { reportEvent } from '@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/http';\nimport type { AnyScenario } from '@wix/http-client-testkit';\n\n// Re-export EventType for convenience\nexport { EventType } from '@wix/bex-utils/@wix/ambassador-dealer-v1-offer-event/types';\n\ninterface ReportEventData {\n event?: {\n type?: string;\n offerId?: string;\n realEstateId?: string;\n [key: string]: unknown;\n };\n [key: string]: unknown;\n}\n\ninterface EventTypeAccessor {\n /** Get all events of this type */\n all: () => ReportEventData[];\n /** Get the last event of this type */\n last: () => ReportEventData | undefined;\n /** Get event count of this type */\n count: () => number;\n}\n\ninterface DealerBITestkit {\n /** The HTTP mock - add this to your driver's httpMocks array */\n httpMock: AnyScenario;\n\n /** Access VIEW events */\n view: EventTypeAccessor;\n /** Access CLICK events */\n click: EventTypeAccessor;\n\n /** Get all captured events (any type) */\n all: () => ReportEventData[];\n /** Get the last captured event (any type) */\n last: () => ReportEventData | undefined;\n /** Clear all captured events - call in beforeEach for test isolation */\n clear: () => void;\n}\n\n// Singleton spy to capture all events\nconst eventsSpy = jest.fn();\n\n// Create HTTP mock once\nconst httpMock = whenRequest(reportEvent)\n .reply(async (data) => {\n eventsSpy(data);\n return { status: 200, data: {} };\n })\n .persist() as AnyScenario;\n\nconst _getAllEventsOfType = (type?: string): ReportEventData[] =>\n type\n ? eventsSpy.mock.calls\n .filter((call) => call[0]?.event?.type === type)\n .map((call) => call[0])\n : eventsSpy.mock.calls.map((call) => call[0]);\n\nconst createEventTypeAccessor = (type: string): EventTypeAccessor => ({\n all: () => _getAllEventsOfType(type),\n last: () => {\n const events = _getAllEventsOfType(type);\n return events.length > 0 ? events[events.length - 1] : undefined;\n },\n count: () => _getAllEventsOfType(type).length,\n});\n\nconst dealerBITestkit: DealerBITestkit = {\n httpMock,\n\n view: createEventTypeAccessor('VIEW'),\n click: createEventTypeAccessor('CLICK'),\n\n all: _getAllEventsOfType,\n last: () => {\n const events = _getAllEventsOfType();\n return events.length > 0 ? events[events.length - 1] : undefined;\n },\n clear: () => eventsSpy.mockClear(),\n};\n\nexport default dealerBITestkit;\n\n// Also export named for flexibility\nexport { dealerBITestkit };\n"],"mappings":";;;;AAmCA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAIA,IAAAE,MAAA,GAAAF,OAAA;AAAuFG,OAAA,CAAAC,SAAA,GAAAF,MAAA,CAAAE,SAAA;AAxCvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA;;AAuCA;AACA,MAAMC,SAAS,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;;AAE3B;AACA,MAAMC,QAAQ,GAAG,IAAAC,uBAAW,EAACC,iBAAW,CAAC,CACtCC,KAAK,CAAC,MAAOC,IAAI,IAAK;EACrBP,SAAS,CAACO,IAAI,CAAC;EACf,OAAO;IAAEC,MAAM,EAAE,GAAG;IAAED,IAAI,EAAE,CAAC;EAAE,CAAC;AAClC,CAAC,CAAC,CACDE,OAAO,CAAC,CAAgB;AAE3B,MAAMC,mBAAmB,GAAIC,IAAa,IACxCA,IAAI,GACAX,SAAS,CAACY,IAAI,CAACC,KAAK,CACjBC,MAAM,CAAEC,IAAI;EAAA,IAAAC,MAAA;EAAA,OAAK,EAAAA,MAAA,GAAAD,IAAI,CAAC,CAAC,CAAC,cAAAC,MAAA,GAAPA,MAAA,CAASC,KAAK,qBAAdD,MAAA,CAAgBL,IAAI,MAAKA,IAAI;AAAA,EAAC,CAC/CO,GAAG,CAAEH,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC,CAAC,GACzBf,SAAS,CAACY,IAAI,CAACC,KAAK,CAACK,GAAG,CAAEH,IAAI,IAAKA,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjD,MAAMI,uBAAuB,GAAIR,IAAY,KAAyB;EACpES,GAAG,EAAEA,CAAA,KAAMV,mBAAmB,CAACC,IAAI,CAAC;EACpCU,IAAI,EAAEA,CAAA,KAAM;IACV,MAAMC,MAAM,GAAGZ,mBAAmB,CAACC,IAAI,CAAC;IACxC,OAAOW,MAAM,CAACC,MAAM,GAAG,CAAC,GAAGD,MAAM,CAACA,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC,GAAGC,SAAS;EAClE,CAAC;EACDC,KAAK,EAAEA,CAAA,KAAMf,mBAAmB,CAACC,IAAI,CAAC,CAACY;AACzC,CAAC,CAAC;AAEF,MAAMG,eAAgC,GAAA5B,OAAA,CAAA4B,eAAA,GAAG;EACvCvB,QAAQ;EAERwB,IAAI,EAAER,uBAAuB,CAAC,MAAM,CAAC;EACrCS,KAAK,EAAET,uBAAuB,CAAC,OAAO,CAAC;EAEvCC,GAAG,EAAEV,mBAAmB;EACxBW,IAAI,EAAEA,CAAA,KAAM;IACV,MAAMC,MAAM,GAAGZ,mBAAmB,CAAC,CAAC;IACpC,OAAOY,MAAM,CAACC,MAAM,GAAG,CAAC,GAAGD,MAAM,CAACA,MAAM,CAACC,MAAM,GAAG,CAAC,CAAC,GAAGC,SAAS;EAClE,CAAC;EACDK,KAAK,EAAEA,CAAA,KAAM7B,SAAS,CAAC8B,SAAS,CAAC;AACnC,CAAC;AAAC,IAAAC,QAAA,GAAAjC,OAAA,CAAAkC,OAAA,GAEaN,eAAe,EAE9B","ignoreList":[]}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.triggerIntersection = exports.triggerAllIntersections = exports.teardownIntersectionObserverMock = exports.setupIntersectionObserverMock = exports.resetIntersectionObserverMock = exports.getObserverInstances = void 0;
6
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
+ /**
8
+ * Mock implementation of IntersectionObserver for jsdom testing environment.
9
+ *
10
+ * jsdom does not implement IntersectionObserver, so this mock allows testing
11
+ * components that rely on intersection detection (e.g., lazy loading, view tracking).
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import {
16
+ * setupIntersectionObserverMock,
17
+ * teardownIntersectionObserverMock,
18
+ * resetIntersectionObserverMock,
19
+ * triggerIntersection,
20
+ * triggerAllIntersections,
21
+ * } from '../test-utils/IntersectionObserverMock';
22
+ *
23
+ * describe('MyComponent', () => {
24
+ * beforeAll(() => {
25
+ * setupIntersectionObserverMock();
26
+ * });
27
+ *
28
+ * afterAll(() => {
29
+ * teardownIntersectionObserverMock();
30
+ * });
31
+ *
32
+ * beforeEach(() => {
33
+ * resetIntersectionObserverMock();
34
+ * });
35
+ *
36
+ * it('tracks element visibility', async () => {
37
+ * render(<MyComponent />);
38
+ * const element = screen.getByTestId('tracked-element');
39
+ *
40
+ * triggerIntersection(element);
41
+ *
42
+ * expect(onVisibleSpy).toHaveBeenCalled();
43
+ * });
44
+ * });
45
+ * ```
46
+ */
47
+
48
+ // Track all observer instances so we can trigger intersections on any of them
49
+ const observerInstances = new Set();
50
+ class MockIntersectionObserverInstance {
51
+ constructor(callback) {
52
+ (0, _defineProperty2.default)(this, "root", null);
53
+ (0, _defineProperty2.default)(this, "rootMargin", '');
54
+ (0, _defineProperty2.default)(this, "thresholds", []);
55
+ (0, _defineProperty2.default)(this, "callback", void 0);
56
+ (0, _defineProperty2.default)(this, "observedElements", new Set());
57
+ this.callback = callback;
58
+ observerInstances.add(this);
59
+ }
60
+ observe(target) {
61
+ this.observedElements.add(target);
62
+ }
63
+ unobserve(target) {
64
+ this.observedElements.delete(target);
65
+ }
66
+ disconnect() {
67
+ this.observedElements.clear();
68
+ observerInstances.delete(this);
69
+ }
70
+ takeRecords() {
71
+ return [];
72
+ }
73
+
74
+ /**
75
+ * Test helper: trigger intersection for a specific element on this observer.
76
+ * Calls the observer callback with isIntersecting: true for the given element.
77
+ */
78
+ triggerIntersection(element) {
79
+ if (!this.observedElements.has(element)) {
80
+ return;
81
+ }
82
+ const entry = {
83
+ target: element,
84
+ isIntersecting: true,
85
+ intersectionRatio: 1,
86
+ boundingClientRect: element.getBoundingClientRect(),
87
+ intersectionRect: element.getBoundingClientRect(),
88
+ rootBounds: null,
89
+ time: Date.now()
90
+ };
91
+ this.callback([entry], this);
92
+ }
93
+
94
+ /**
95
+ * Test helper: trigger intersection for all observed elements on this observer.
96
+ */
97
+ triggerAllIntersections() {
98
+ this.observedElements.forEach(element => this.triggerIntersection(element));
99
+ }
100
+ }
101
+
102
+ /**
103
+ * Trigger intersection for a specific element across all observer instances.
104
+ * Use this when you know which element you want to mark as visible.
105
+ */
106
+ const triggerIntersection = element => {
107
+ observerInstances.forEach(observer => observer.triggerIntersection(element));
108
+ };
109
+
110
+ /**
111
+ * Trigger intersection for all observed elements across all observer instances.
112
+ * Use this to simulate all tracked elements becoming visible at once.
113
+ */
114
+ exports.triggerIntersection = triggerIntersection;
115
+ const triggerAllIntersections = () => {
116
+ observerInstances.forEach(observer => observer.triggerAllIntersections());
117
+ };
118
+
119
+ /**
120
+ * Set up the IntersectionObserver mock on the global object.
121
+ * Call this in beforeAll() before your tests run.
122
+ */
123
+ exports.triggerAllIntersections = triggerAllIntersections;
124
+ const setupIntersectionObserverMock = () => {
125
+ observerInstances.clear();
126
+ global.IntersectionObserver = MockIntersectionObserverInstance;
127
+ };
128
+
129
+ /**
130
+ * Tear down the IntersectionObserver mock from the global object.
131
+ * Call this in afterAll() after your tests complete.
132
+ */
133
+ exports.setupIntersectionObserverMock = setupIntersectionObserverMock;
134
+ const teardownIntersectionObserverMock = () => {
135
+ observerInstances.clear();
136
+ delete global.IntersectionObserver;
137
+ };
138
+
139
+ /**
140
+ * Reset all observer instances between tests.
141
+ * Call this in beforeEach() to ensure test isolation.
142
+ */
143
+ exports.teardownIntersectionObserverMock = teardownIntersectionObserverMock;
144
+ const resetIntersectionObserverMock = () => {
145
+ observerInstances.clear();
146
+ };
147
+
148
+ /**
149
+ * Get all currently active observer instances.
150
+ * Useful for debugging or advanced test scenarios.
151
+ */
152
+ exports.resetIntersectionObserverMock = resetIntersectionObserverMock;
153
+ const getObserverInstances = () => observerInstances;
154
+ exports.getObserverInstances = getObserverInstances;
155
+ //# sourceMappingURL=IntersectionObserverMock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["observerInstances","Set","MockIntersectionObserverInstance","constructor","callback","_defineProperty2","default","add","observe","target","observedElements","unobserve","delete","disconnect","clear","takeRecords","triggerIntersection","element","has","entry","isIntersecting","intersectionRatio","boundingClientRect","getBoundingClientRect","intersectionRect","rootBounds","time","Date","now","triggerAllIntersections","forEach","observer","exports","setupIntersectionObserverMock","global","IntersectionObserver","teardownIntersectionObserverMock","resetIntersectionObserverMock","getObserverInstances"],"sources":["../../../src/test-utils/IntersectionObserverMock.ts"],"sourcesContent":["/**\n * Mock implementation of IntersectionObserver for jsdom testing environment.\n *\n * jsdom does not implement IntersectionObserver, so this mock allows testing\n * components that rely on intersection detection (e.g., lazy loading, view tracking).\n *\n * @example\n * ```typescript\n * import {\n * setupIntersectionObserverMock,\n * teardownIntersectionObserverMock,\n * resetIntersectionObserverMock,\n * triggerIntersection,\n * triggerAllIntersections,\n * } from '../test-utils/IntersectionObserverMock';\n *\n * describe('MyComponent', () => {\n * beforeAll(() => {\n * setupIntersectionObserverMock();\n * });\n *\n * afterAll(() => {\n * teardownIntersectionObserverMock();\n * });\n *\n * beforeEach(() => {\n * resetIntersectionObserverMock();\n * });\n *\n * it('tracks element visibility', async () => {\n * render(<MyComponent />);\n * const element = screen.getByTestId('tracked-element');\n *\n * triggerIntersection(element);\n *\n * expect(onVisibleSpy).toHaveBeenCalled();\n * });\n * });\n * ```\n */\n\n// Track all observer instances so we can trigger intersections on any of them\nconst observerInstances: Set<MockIntersectionObserverInstance> = new Set();\n\nclass MockIntersectionObserverInstance implements IntersectionObserver {\n root: Element | Document | null = null;\n rootMargin: string = '';\n thresholds: readonly number[] = [];\n\n private callback: IntersectionObserverCallback;\n private observedElements: Set<Element> = new Set();\n\n constructor(callback: IntersectionObserverCallback) {\n this.callback = callback;\n observerInstances.add(this);\n }\n\n observe(target: Element) {\n this.observedElements.add(target);\n }\n\n unobserve(target: Element) {\n this.observedElements.delete(target);\n }\n\n disconnect() {\n this.observedElements.clear();\n observerInstances.delete(this);\n }\n\n takeRecords(): IntersectionObserverEntry[] {\n return [];\n }\n\n /**\n * Test helper: trigger intersection for a specific element on this observer.\n * Calls the observer callback with isIntersecting: true for the given element.\n */\n triggerIntersection(element: Element) {\n if (!this.observedElements.has(element)) {\n return;\n }\n\n const entry = {\n target: element,\n isIntersecting: true,\n intersectionRatio: 1,\n boundingClientRect: element.getBoundingClientRect(),\n intersectionRect: element.getBoundingClientRect(),\n rootBounds: null,\n time: Date.now(),\n } as IntersectionObserverEntry;\n\n this.callback([entry], this);\n }\n\n /**\n * Test helper: trigger intersection for all observed elements on this observer.\n */\n triggerAllIntersections() {\n this.observedElements.forEach((element) =>\n this.triggerIntersection(element),\n );\n }\n}\n\n/**\n * Trigger intersection for a specific element across all observer instances.\n * Use this when you know which element you want to mark as visible.\n */\nexport const triggerIntersection = (element: Element) => {\n observerInstances.forEach((observer) =>\n observer.triggerIntersection(element),\n );\n};\n\n/**\n * Trigger intersection for all observed elements across all observer instances.\n * Use this to simulate all tracked elements becoming visible at once.\n */\nexport const triggerAllIntersections = () => {\n observerInstances.forEach((observer) => observer.triggerAllIntersections());\n};\n\n/**\n * Set up the IntersectionObserver mock on the global object.\n * Call this in beforeAll() before your tests run.\n */\nexport const setupIntersectionObserverMock = () => {\n observerInstances.clear();\n global.IntersectionObserver = MockIntersectionObserverInstance;\n};\n\n/**\n * Tear down the IntersectionObserver mock from the global object.\n * Call this in afterAll() after your tests complete.\n */\nexport const teardownIntersectionObserverMock = () => {\n observerInstances.clear();\n delete (global as any).IntersectionObserver;\n};\n\n/**\n * Reset all observer instances between tests.\n * Call this in beforeEach() to ensure test isolation.\n */\nexport const resetIntersectionObserverMock = () => {\n observerInstances.clear();\n};\n\n/**\n * Get all currently active observer instances.\n * Useful for debugging or advanced test scenarios.\n */\nexport const getObserverInstances = () => observerInstances;\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAMA,iBAAwD,GAAG,IAAIC,GAAG,CAAC,CAAC;AAE1E,MAAMC,gCAAgC,CAAiC;EAQrEC,WAAWA,CAACC,QAAsC,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,gBAPlB,IAAI;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBACjB,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA,sBACS,EAAE;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,4BAGO,IAAIL,GAAG,CAAC,CAAC;IAGhD,IAAI,CAACG,QAAQ,GAAGA,QAAQ;IACxBJ,iBAAiB,CAACO,GAAG,CAAC,IAAI,CAAC;EAC7B;EAEAC,OAAOA,CAACC,MAAe,EAAE;IACvB,IAAI,CAACC,gBAAgB,CAACH,GAAG,CAACE,MAAM,CAAC;EACnC;EAEAE,SAASA,CAACF,MAAe,EAAE;IACzB,IAAI,CAACC,gBAAgB,CAACE,MAAM,CAACH,MAAM,CAAC;EACtC;EAEAI,UAAUA,CAAA,EAAG;IACX,IAAI,CAACH,gBAAgB,CAACI,KAAK,CAAC,CAAC;IAC7Bd,iBAAiB,CAACY,MAAM,CAAC,IAAI,CAAC;EAChC;EAEAG,WAAWA,CAAA,EAAgC;IACzC,OAAO,EAAE;EACX;;EAEA;AACF;AACA;AACA;EACEC,mBAAmBA,CAACC,OAAgB,EAAE;IACpC,IAAI,CAAC,IAAI,CAACP,gBAAgB,CAACQ,GAAG,CAACD,OAAO,CAAC,EAAE;MACvC;IACF;IAEA,MAAME,KAAK,GAAG;MACZV,MAAM,EAAEQ,OAAO;MACfG,cAAc,EAAE,IAAI;MACpBC,iBAAiB,EAAE,CAAC;MACpBC,kBAAkB,EAAEL,OAAO,CAACM,qBAAqB,CAAC,CAAC;MACnDC,gBAAgB,EAAEP,OAAO,CAACM,qBAAqB,CAAC,CAAC;MACjDE,UAAU,EAAE,IAAI;MAChBC,IAAI,EAAEC,IAAI,CAACC,GAAG,CAAC;IACjB,CAA8B;IAE9B,IAAI,CAACxB,QAAQ,CAAC,CAACe,KAAK,CAAC,EAAE,IAAI,CAAC;EAC9B;;EAEA;AACF;AACA;EACEU,uBAAuBA,CAAA,EAAG;IACxB,IAAI,CAACnB,gBAAgB,CAACoB,OAAO,CAAEb,OAAO,IACpC,IAAI,CAACD,mBAAmB,CAACC,OAAO,CAClC,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACO,MAAMD,mBAAmB,GAAIC,OAAgB,IAAK;EACvDjB,iBAAiB,CAAC8B,OAAO,CAAEC,QAAQ,IACjCA,QAAQ,CAACf,mBAAmB,CAACC,OAAO,CACtC,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AAHAe,OAAA,CAAAhB,mBAAA,GAAAA,mBAAA;AAIO,MAAMa,uBAAuB,GAAGA,CAAA,KAAM;EAC3C7B,iBAAiB,CAAC8B,OAAO,CAAEC,QAAQ,IAAKA,QAAQ,CAACF,uBAAuB,CAAC,CAAC,CAAC;AAC7E,CAAC;;AAED;AACA;AACA;AACA;AAHAG,OAAA,CAAAH,uBAAA,GAAAA,uBAAA;AAIO,MAAMI,6BAA6B,GAAGA,CAAA,KAAM;EACjDjC,iBAAiB,CAACc,KAAK,CAAC,CAAC;EACzBoB,MAAM,CAACC,oBAAoB,GAAGjC,gCAAgC;AAChE,CAAC;;AAED;AACA;AACA;AACA;AAHA8B,OAAA,CAAAC,6BAAA,GAAAA,6BAAA;AAIO,MAAMG,gCAAgC,GAAGA,CAAA,KAAM;EACpDpC,iBAAiB,CAACc,KAAK,CAAC,CAAC;EACzB,OAAQoB,MAAM,CAASC,oBAAoB;AAC7C,CAAC;;AAED;AACA;AACA;AACA;AAHAH,OAAA,CAAAI,gCAAA,GAAAA,gCAAA;AAIO,MAAMC,6BAA6B,GAAGA,CAAA,KAAM;EACjDrC,iBAAiB,CAACc,KAAK,CAAC,CAAC;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AAHAkB,OAAA,CAAAK,6BAAA,GAAAA,6BAAA;AAIO,MAAMC,oBAAoB,GAAGA,CAAA,KAAMtC,iBAAiB;AAACgC,OAAA,CAAAM,oBAAA,GAAAA,oBAAA","ignoreList":[]}
@@ -2,5 +2,5 @@
2
2
 
3
3
  exports.__esModule = true;
4
4
  exports.version = void 0;
5
- const version = exports.version = 'patterns@1.323.0';
5
+ const version = exports.version = 'patterns@1.325.0';
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["version","exports"],"sources":["../../src/version.ts"],"sourcesContent":["export const version = 'patterns@1.323.0';\n"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":["version","exports"],"sources":["../../src/version.ts"],"sourcesContent":["export const version = 'patterns@1.325.0';\n"],"mappings":";;;;AAAO,MAAMA,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,kBAAkB","ignoreList":[]}
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "CardContainer4143025910";
3
+ var _namespace_ = "CardContainer312641811";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "CardContainer4143025910__root" };
9
+ export var classes = { "root": "CardContainer312641811__root" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"CardContainer.st.css.js","sourceRoot":"","sources":["../../../../src/components/CardContainer/CardContainer.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,yBAAyB,CAAC;AAC5C,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC;AAC3B,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,+BAA+B,EAAC,CAAC;AAC9D,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"CardContainer.st.css.js","sourceRoot":"","sources":["../../../../src/components/CardContainer/CardContainer.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,wBAAwB,CAAC;AAC3C,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC;AAC3B,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,8BAA8B,EAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "Collapse3754513475";
3
+ var _namespace_ = "Collapse635544407";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "Collapse3754513475__root", "exit": "Collapse3754513475__exit" };
9
+ export var classes = { "root": "Collapse635544407__root", "exit": "Collapse635544407__exit" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"Collapse.st.css.js","sourceRoot":"","sources":["../../../../src/components/Collapse/Collapse.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,oBAAoB,CAAC;AACvC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC;AAC3B,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,0BAA0B,EAAC,MAAM,EAAC,0BAA0B,EAAC,CAAC;AAC3F,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"Collapse.st.css.js","sourceRoot":"","sources":["../../../../src/components/Collapse/Collapse.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,mBAAmB,CAAC;AACtC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAAG,OAAO,CAAC;AAC3B,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,yBAAyB,EAAC,MAAM,EAAC,yBAAyB,EAAC,CAAC;AACzF,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "CollectionPage2158161423";
3
+ var _namespace_ = "CollectionPage3558163292";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "CollectionPage2158161423__root" };
9
+ export var classes = { "root": "CollectionPage3558163292__root" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};