@wix/patterns 1.324.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.
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/cjs/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/cjs/components/Collapse/Collapse.st.css.js +3 -3
- package/dist/cjs/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/cjs/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.js +13 -11
- package/dist/cjs/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/cjs/components/CollectionTable/CollectionTable.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js +5 -5
- package/dist/cjs/components/CollectionToolbar/CollectionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +4 -4
- package/dist/cjs/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js.map +1 -1
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/cjs/components/CollectionViewsDropdown/ViewsDropdown.st.css.js.map +1 -1
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/cjs/components/DragHandle/DragHandle.st.css.js.map +1 -1
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/cjs/components/EntityPage/EntityPagePlain.st.css.js.map +1 -1
- package/dist/cjs/components/Fade/Fade.st.css.js +2 -2
- package/dist/cjs/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/cjs/components/Heading/Heading.st.css.js +2 -2
- package/dist/cjs/components/Heading/Heading.st.css.js.map +1 -1
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/cjs/components/InputOverflow/InputOverflow.st.css.js.map +1 -1
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/cjs/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/cjs/components/MaxHeightText/MaxHeightText.st.css.js.map +1 -1
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/cjs/components/MaxLines/MaxLines.st.css.js.map +1 -1
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +5 -5
- package/dist/cjs/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js +5 -5
- package/dist/cjs/components/NestedTable/NestedTableRow.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js.map +1 -1
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/cjs/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/cjs/components/PickerContent/PickerContent.st.css.js.map +1 -1
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js +4 -4
- package/dist/cjs/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/cjs/components/PickerTableListItem/PickerTableListItem.st.css.js.map +1 -1
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/cjs/components/ScrollableContent/ScrollableContent.st.css.js.map +1 -1
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js +3 -3
- package/dist/cjs/components/SkeletonCard/SkeletonCard.st.css.js.map +1 -1
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/cjs/components/SlidingModal/SlidingModal.st.css.js.map +1 -1
- package/dist/cjs/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
- package/dist/cjs/components/Suggestions/MarketingCard.js +18 -16
- package/dist/cjs/components/Suggestions/MarketingCard.js.map +1 -1
- package/dist/cjs/components/Suggestions/Suggestions.js +66 -29
- package/dist/cjs/components/Suggestions/Suggestions.js.map +1 -1
- package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js +4 -5
- package/dist/cjs/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
- package/dist/cjs/components/Suggestions/VisibilityTrackedCard.js +22 -0
- package/dist/cjs/components/Suggestions/VisibilityTrackedCard.js.map +1 -0
- package/dist/cjs/components/Suggestions/types.js.map +1 -1
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js +3 -3
- package/dist/cjs/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/cjs/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItem/ToolbarItem.st.css.js.map +1 -1
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/cjs/components/ToolbarItemBox/ToolbarItemBox.st.css.js.map +1 -1
- package/dist/cjs/components/common.st.css.js +4 -4
- package/dist/cjs/components/common.st.css.js.map +1 -1
- package/dist/cjs/exports/testkit/unidriver.js +1 -2
- package/dist/cjs/exports/testkit/unidriver.js.map +1 -1
- package/dist/cjs/hooks/useCollectionTableResize.js +3 -2
- package/dist/cjs/hooks/useCollectionTableResize.js.map +1 -1
- package/dist/cjs/hooks/useIntersectionObserver.js +36 -0
- package/dist/cjs/hooks/useIntersectionObserver.js.map +1 -0
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/cjs/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/cjs/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/cjs/state/Suggestions/SuggestionsBIReporter.js +38 -0
- package/dist/cjs/state/Suggestions/SuggestionsBIReporter.js.map +1 -0
- package/dist/cjs/state/Suggestions/SuggestionsState.js +26 -3
- package/dist/cjs/state/Suggestions/SuggestionsState.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/test-utils/DealerBIMock.js +81 -0
- package/dist/cjs/test-utils/DealerBIMock.js.map +1 -0
- package/dist/cjs/test-utils/IntersectionObserverMock.js +155 -0
- package/dist/cjs/test-utils/IntersectionObserverMock.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/components/CardContainer/CardContainer.st.css.js +2 -2
- package/dist/esm/components/CardContainer/CardContainer.st.css.js.map +1 -1
- package/dist/esm/components/Collapse/Collapse.st.css.js +2 -2
- package/dist/esm/components/Collapse/Collapse.st.css.js.map +1 -1
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js +2 -2
- package/dist/esm/components/CollectionPageNew/CollectionPage.st.css.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.js +3 -1
- package/dist/esm/components/CollectionTable/CollectionTable.js.map +1 -1
- package/dist/esm/components/CollectionTable/CollectionTable.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/CollectionToolbar.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js +2 -2
- package/dist/esm/components/CollectionToolbar/SearchOrCustomFilter.st.css.js.map +1 -1
- package/dist/esm/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.js +2 -2
- package/dist/esm/components/CollectionViewsDropdown/ViewsDropdown.st.css.js +2 -2
- package/dist/esm/components/DragHandle/DragHandle.st.css.js +2 -2
- package/dist/esm/components/EntityPage/EntityPagePlain.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js +2 -2
- package/dist/esm/components/Fade/Fade.st.css.js.map +1 -1
- package/dist/esm/components/Heading/Heading.st.css.js +2 -2
- package/dist/esm/components/InputOverflow/InputOverflow.st.css.js +2 -2
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js +3 -3
- package/dist/esm/components/LoadingRow/LoadingRow.st.css.js.map +1 -1
- package/dist/esm/components/MaxHeightText/MaxHeightText.st.css.js +2 -2
- package/dist/esm/components/MaxLines/MaxLines.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js +2 -2
- package/dist/esm/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js +2 -2
- package/dist/esm/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.js.map +1 -1
- package/dist/esm/components/NestedTable/NestedTableRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js +2 -2
- package/dist/esm/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.js.map +1 -1
- package/dist/esm/components/PickerContent/PickerContent.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js +2 -2
- package/dist/esm/components/PickerContent/PickerContentAdditionalStep.st.css.js.map +1 -1
- package/dist/esm/components/PickerTableListItem/PickerTableListItem.st.css.js +2 -2
- package/dist/esm/components/ScrollableContent/ScrollableContent.st.css.js +2 -2
- package/dist/esm/components/SkeletonCard/SkeletonCard.st.css.js +2 -2
- package/dist/esm/components/SlidingModal/SlidingModal.st.css.js +2 -2
- package/dist/esm/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
- package/dist/esm/components/Suggestions/MarketingCard.js +5 -4
- package/dist/esm/components/Suggestions/MarketingCard.js.map +1 -1
- package/dist/esm/components/Suggestions/Suggestions.js +21 -13
- package/dist/esm/components/Suggestions/Suggestions.js.map +1 -1
- package/dist/esm/components/Suggestions/Suggestions.uni.driver.js +4 -5
- package/dist/esm/components/Suggestions/Suggestions.uni.driver.js.map +1 -1
- package/dist/esm/components/Suggestions/VisibilityTrackedCard.js +10 -0
- package/dist/esm/components/Suggestions/VisibilityTrackedCard.js.map +1 -0
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js +2 -2
- package/dist/esm/components/TabsFilter/TabsFilter.st.css.js.map +1 -1
- package/dist/esm/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.js +2 -2
- package/dist/esm/components/ToolbarItem/ToolbarItem.st.css.js +2 -2
- package/dist/esm/components/ToolbarItemBox/ToolbarItemBox.st.css.js +2 -2
- package/dist/esm/components/common.st.css.js +2 -2
- package/dist/esm/exports/testkit/unidriver.js +1 -1
- package/dist/esm/exports/testkit/unidriver.js.map +1 -1
- package/dist/esm/hooks/useCollectionTableResize.js +2 -1
- package/dist/esm/hooks/useCollectionTableResize.js.map +1 -1
- package/dist/esm/hooks/useIntersectionObserver.js +32 -0
- package/dist/esm/hooks/useIntersectionObserver.js.map +1 -0
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js +2 -2
- package/dist/esm/state/CollectionPage/CollectionPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js +2 -2
- package/dist/esm/state/FormPage/FormPageHeader.st.css.js.map +1 -1
- package/dist/esm/state/Suggestions/SuggestionsBIReporter.js +26 -0
- package/dist/esm/state/Suggestions/SuggestionsBIReporter.js.map +1 -0
- package/dist/esm/state/Suggestions/SuggestionsState.js +23 -3
- package/dist/esm/state/Suggestions/SuggestionsState.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/test-utils/DealerBIMock.js +75 -0
- package/dist/esm/test-utils/DealerBIMock.js.map +1 -0
- package/dist/esm/test-utils/IntersectionObserverMock.js +133 -0
- package/dist/esm/test-utils/IntersectionObserverMock.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/types/components/CardContainer/CardContainer.st.css.d.ts.map +1 -1
- package/dist/types/components/Collapse/Collapse.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionPageNew/CollectionPage.st.css.d.ts.map +1 -1
- package/dist/types/components/CollectionTable/CollectionTable.d.ts.map +1 -1
- package/dist/types/components/CollectionToolbar/SearchOrCustomFilter.st.css.d.ts.map +1 -1
- package/dist/types/components/Fade/Fade.st.css.d.ts.map +1 -1
- package/dist/types/components/LoadingRow/LoadingRow.st.css.d.ts.map +1 -1
- package/dist/types/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.d.ts.map +1 -1
- package/dist/types/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.d.ts.map +1 -1
- package/dist/types/components/PickerContent/PickerContentAdditionalStep.st.css.d.ts.map +1 -1
- package/dist/types/components/Suggestions/MarketingCard.d.ts +1 -1
- package/dist/types/components/Suggestions/MarketingCard.d.ts.map +1 -1
- package/dist/types/components/Suggestions/Suggestions.d.ts +10 -0
- package/dist/types/components/Suggestions/Suggestions.d.ts.map +1 -1
- package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts +1 -7
- package/dist/types/components/Suggestions/Suggestions.uni.driver.d.ts.map +1 -1
- package/dist/types/components/Suggestions/VisibilityTrackedCard.d.ts +8 -0
- package/dist/types/components/Suggestions/VisibilityTrackedCard.d.ts.map +1 -0
- package/dist/types/components/Suggestions/types.d.ts +5 -2
- package/dist/types/components/Suggestions/types.d.ts.map +1 -1
- package/dist/types/components/TabsFilter/TabsFilter.st.css.d.ts.map +1 -1
- package/dist/types/exports/testkit/unidriver.d.ts +1 -1
- package/dist/types/exports/testkit/unidriver.d.ts.map +1 -1
- package/dist/types/hooks/useCollectionTableResize.d.ts +2 -1
- package/dist/types/hooks/useCollectionTableResize.d.ts.map +1 -1
- package/dist/types/hooks/useIntersectionObserver.d.ts +5 -0
- package/dist/types/hooks/useIntersectionObserver.d.ts.map +1 -0
- package/dist/types/state/CollectionPage/CollectionPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/FormPage/FormPageHeader.st.css.d.ts.map +1 -1
- package/dist/types/state/Suggestions/SuggestionsBIReporter.d.ts +16 -0
- package/dist/types/state/Suggestions/SuggestionsBIReporter.d.ts.map +1 -0
- package/dist/types/state/Suggestions/SuggestionsState.d.ts +8 -3
- package/dist/types/state/Suggestions/SuggestionsState.d.ts.map +1 -1
- package/dist/types/test-utils/DealerBIMock.d.ts +71 -0
- package/dist/types/test-utils/DealerBIMock.d.ts.map +1 -0
- package/dist/types/test-utils/IntersectionObserverMock.d.ts +93 -0
- package/dist/types/test-utils/IntersectionObserverMock.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +4 -4
- package/src/components/CardContainer/CardContainer.st.css.ts +2 -2
- package/src/components/Collapse/Collapse.st.css.ts +2 -2
- package/src/components/CollectionPageNew/CollectionPage.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.st.css.ts +2 -2
- package/src/components/CollectionTable/CollectionTable.tsx +4 -1
- package/src/components/CollectionToolbar/CollectionToolbar.st.css.ts +2 -2
- package/src/components/CollectionToolbar/SearchOrCustomFilter.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/AutoCompleteReadonly.st.css.ts +2 -2
- package/src/components/CollectionViewsDropdown/ViewsDropdown.st.css.ts +2 -2
- package/src/components/DragHandle/DragHandle.st.css.ts +2 -2
- package/src/components/EntityPage/EntityPagePlain.st.css.ts +2 -2
- package/src/components/Fade/Fade.st.css.ts +2 -2
- package/src/components/Heading/Heading.st.css.ts +2 -2
- package/src/components/InputOverflow/InputOverflow.st.css.ts +2 -2
- package/src/components/LoadingRow/LoadingRow.st.css.ts +3 -3
- package/src/components/MaxHeightText/MaxHeightText.st.css.ts +2 -2
- package/src/components/MaxLines/MaxLines.st.css.ts +2 -2
- package/src/components/MultiBulkActionToolbar/MultiBulkActionToolbar.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTablePlaceholderStatesRow.st.css.ts +2 -2
- package/src/components/NestedTable/NestedTableRow.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/MultipleDragOverlayEffect.st.css.ts +2 -2
- package/src/components/NestedTableDragAndDrop/NestedTableDragAndDropRow.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContent.st.css.ts +2 -2
- package/src/components/PickerContent/PickerContentAdditionalStep.st.css.ts +2 -2
- package/src/components/PickerTableListItem/PickerTableListItem.st.css.ts +2 -2
- package/src/components/ScrollableContent/ScrollableContent.st.css.ts +2 -2
- package/src/components/SkeletonCard/SkeletonCard.st.css.ts +2 -2
- package/src/components/SlidingModal/SlidingModal.st.css.ts +2 -2
- package/src/components/Suggestions/DESIGN_BI_REPORTING.md +73 -0
- package/src/components/Suggestions/MarketingCard.tsx +17 -8
- package/src/components/Suggestions/Suggestions.tsx +54 -18
- package/src/components/Suggestions/Suggestions.uni.driver.ts +4 -16
- package/src/components/Suggestions/VisibilityTrackedCard.tsx +20 -0
- package/src/components/Suggestions/types.ts +5 -2
- package/src/components/TabsFilter/TabsFilter.st.css.ts +2 -2
- package/src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts +2 -2
- package/src/components/ToolbarItem/ToolbarItem.st.css.ts +2 -2
- package/src/components/ToolbarItemBox/ToolbarItemBox.st.css.ts +2 -2
- package/src/components/common.st.css.ts +2 -2
- package/src/exports/testkit/unidriver.ts +1 -4
- package/src/hooks/useCollectionTableResize.ts +3 -0
- package/src/hooks/useIntersectionObserver.ts +44 -0
- package/src/state/CollectionPage/CollectionPageHeader.st.css.ts +2 -2
- package/src/state/FormPage/FormPageHeader.st.css.ts +2 -2
- package/src/state/Suggestions/SuggestionsBIReporter.ts +44 -0
- package/src/state/Suggestions/SuggestionsState.ts +38 -5
- package/src/styles.global.css +1 -1
- package/src/test-utils/DealerBIMock.ts +123 -0
- package/src/test-utils/IntersectionObserverMock.ts +155 -0
- package/src/version.ts +1 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
exports.__esModule = true;
|
|
5
4
|
exports.renderMarketingCard = exports.MarketingCardSkeleton = void 0;
|
|
6
|
-
var _react =
|
|
5
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
6
|
var _designSystem = require("@wix/design-system");
|
|
8
7
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/components/Suggestions/MarketingCard.tsx";
|
|
8
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
9
9
|
/**
|
|
10
10
|
* Schema for marketing card content.
|
|
11
11
|
* This defines the structure expected in offer.asset.creative for MarketingCard rendering.
|
|
@@ -20,10 +20,10 @@ const getCardWidth = totalOffers => {
|
|
|
20
20
|
}
|
|
21
21
|
return '550px';
|
|
22
22
|
};
|
|
23
|
-
const MarketingCardInternal = ({
|
|
23
|
+
const MarketingCardInternal = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
24
24
|
schema,
|
|
25
25
|
totalOffers
|
|
26
|
-
}) => {
|
|
26
|
+
}, ref) => {
|
|
27
27
|
const {
|
|
28
28
|
title,
|
|
29
29
|
description: descriptionData,
|
|
@@ -105,6 +105,7 @@ const MarketingCardInternal = ({
|
|
|
105
105
|
return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
|
|
106
106
|
dataHook: "suggestions-card",
|
|
107
107
|
width: getCardWidth(totalOffers),
|
|
108
|
+
ref: ref,
|
|
108
109
|
__self: void 0,
|
|
109
110
|
__source: {
|
|
110
111
|
fileName: _jsxFileName,
|
|
@@ -116,7 +117,7 @@ const MarketingCardInternal = ({
|
|
|
116
117
|
__self: void 0,
|
|
117
118
|
__source: {
|
|
118
119
|
fileName: _jsxFileName,
|
|
119
|
-
lineNumber:
|
|
120
|
+
lineNumber: 142,
|
|
120
121
|
columnNumber: 7
|
|
121
122
|
}
|
|
122
123
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.MarketingLayout, {
|
|
@@ -129,11 +130,11 @@ const MarketingCardInternal = ({
|
|
|
129
130
|
__self: void 0,
|
|
130
131
|
__source: {
|
|
131
132
|
fileName: _jsxFileName,
|
|
132
|
-
lineNumber:
|
|
133
|
+
lineNumber: 143,
|
|
133
134
|
columnNumber: 9
|
|
134
135
|
}
|
|
135
136
|
})));
|
|
136
|
-
};
|
|
137
|
+
});
|
|
137
138
|
|
|
138
139
|
/**
|
|
139
140
|
* Creates a render function for marketing cards.
|
|
@@ -146,6 +147,7 @@ const renderMarketingCard = translateOffer => props => {
|
|
|
146
147
|
const schema = translateOffer ? translateOffer(props.offer) : (_props$offer = props.offer) == null || (_props$offer = _props$offer.asset) == null ? void 0 : _props$offer.creative;
|
|
147
148
|
const requiredFieldsExist = (schema == null ? void 0 : schema.title) && (schema == null ? void 0 : schema.imageUrl) && (schema == null || (_schema$description = schema.description) == null ? void 0 : _schema$description.text);
|
|
148
149
|
if (!requiredFieldsExist) {
|
|
150
|
+
console.error(`Can't render MarketingCard for offer ${props.offer.offerGuid} - missing required fields (title, imageUrl, description.text) in schema:`, schema);
|
|
149
151
|
return null;
|
|
150
152
|
}
|
|
151
153
|
return /*#__PURE__*/_react.default.createElement(MarketingCardInternal, {
|
|
@@ -154,7 +156,7 @@ const renderMarketingCard = translateOffer => props => {
|
|
|
154
156
|
__self: void 0,
|
|
155
157
|
__source: {
|
|
156
158
|
fileName: _jsxFileName,
|
|
157
|
-
lineNumber:
|
|
159
|
+
lineNumber: 181,
|
|
158
160
|
columnNumber: 7
|
|
159
161
|
}
|
|
160
162
|
});
|
|
@@ -173,7 +175,7 @@ const MarketingCardSkeleton = ({
|
|
|
173
175
|
__self: void 0,
|
|
174
176
|
__source: {
|
|
175
177
|
fileName: _jsxFileName,
|
|
176
|
-
lineNumber:
|
|
178
|
+
lineNumber: 192,
|
|
177
179
|
columnNumber: 5
|
|
178
180
|
}
|
|
179
181
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.Card, {
|
|
@@ -181,7 +183,7 @@ const MarketingCardSkeleton = ({
|
|
|
181
183
|
__self: void 0,
|
|
182
184
|
__source: {
|
|
183
185
|
fileName: _jsxFileName,
|
|
184
|
-
lineNumber:
|
|
186
|
+
lineNumber: 193,
|
|
185
187
|
columnNumber: 7
|
|
186
188
|
}
|
|
187
189
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.MarketingLayout, {
|
|
@@ -190,7 +192,7 @@ const MarketingCardSkeleton = ({
|
|
|
190
192
|
__self: void 0,
|
|
191
193
|
__source: {
|
|
192
194
|
fileName: _jsxFileName,
|
|
193
|
-
lineNumber:
|
|
195
|
+
lineNumber: 195,
|
|
194
196
|
columnNumber: 18
|
|
195
197
|
}
|
|
196
198
|
}),
|
|
@@ -199,7 +201,7 @@ const MarketingCardSkeleton = ({
|
|
|
199
201
|
__self: void 0,
|
|
200
202
|
__source: {
|
|
201
203
|
fileName: _jsxFileName,
|
|
202
|
-
lineNumber:
|
|
204
|
+
lineNumber: 196,
|
|
203
205
|
columnNumber: 24
|
|
204
206
|
}
|
|
205
207
|
}),
|
|
@@ -209,7 +211,7 @@ const MarketingCardSkeleton = ({
|
|
|
209
211
|
__self: void 0,
|
|
210
212
|
__source: {
|
|
211
213
|
fileName: _jsxFileName,
|
|
212
|
-
lineNumber:
|
|
214
|
+
lineNumber: 197,
|
|
213
215
|
columnNumber: 21
|
|
214
216
|
}
|
|
215
217
|
})],
|
|
@@ -219,7 +221,7 @@ const MarketingCardSkeleton = ({
|
|
|
219
221
|
__self: void 0,
|
|
220
222
|
__source: {
|
|
221
223
|
fileName: _jsxFileName,
|
|
222
|
-
lineNumber:
|
|
224
|
+
lineNumber: 198,
|
|
223
225
|
columnNumber: 18
|
|
224
226
|
}
|
|
225
227
|
}),
|
|
@@ -227,7 +229,7 @@ const MarketingCardSkeleton = ({
|
|
|
227
229
|
__self: void 0,
|
|
228
230
|
__source: {
|
|
229
231
|
fileName: _jsxFileName,
|
|
230
|
-
lineNumber:
|
|
232
|
+
lineNumber: 199,
|
|
231
233
|
columnNumber: 18
|
|
232
234
|
}
|
|
233
235
|
}),
|
|
@@ -235,7 +237,7 @@ const MarketingCardSkeleton = ({
|
|
|
235
237
|
__self: void 0,
|
|
236
238
|
__source: {
|
|
237
239
|
fileName: _jsxFileName,
|
|
238
|
-
lineNumber:
|
|
240
|
+
lineNumber: 194,
|
|
239
241
|
columnNumber: 9
|
|
240
242
|
}
|
|
241
243
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_jsxFileName","getCardWidth","totalOffers","MarketingCardInternal","schema","title","description","descriptionData","imageUrl","ctaButton","ctaButtonData","badge","badgeData","handleCtaClick","link","window","open","handleLearnMoreClick","_descriptionData$lear","learnMore","default","createElement","Fragment","Text","size","secondary","dataHook","__self","__source","fileName","lineNumber","columnNumber","text","TextButton","onClick","Button","skin","priority","Badge","uppercase","image","Image","src","width","height","borderRadius","Box","Card","stretchVertically","MarketingLayout","actions","hiddenBadge","renderMarketingCard","translateOffer","props","_props$offer","_schema$description","offer","asset","creative","requiredFieldsExist","exports","MarketingCardSkeleton","SkeletonLine","SkeletonRectangle"],"sources":["../../../../src/components/Suggestions/MarketingCard.tsx"],"sourcesContent":["import React from 'react';\nimport {\n Box,\n MarketingLayout,\n SkeletonLine,\n Card,\n Button,\n BadgeSkin,\n ButtonSkin,\n Image,\n Text,\n TextButton,\n Badge,\n SkeletonRectangle,\n ButtonPriority,\n} from '@wix/design-system';\nimport { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\nimport { BaseCardComponentProps, SuggestionsCardProps } from './types';\n\n/**\n * Schema for marketing card content.\n * This defines the structure expected in offer.asset.creative for MarketingCard rendering.\n */\nexport interface MarketingCardSchema {\n title: string;\n description: {\n text: string;\n learnMore?: {\n link: string;\n text?: string; // defaults to 'Learn more'\n };\n };\n imageUrl: string;\n ctaButton?: {\n text: string;\n link: string;\n skin?: Extract<ButtonSkin, 'standard' | 'premium' | 'ai'>; // defaults to 'standard'\n priority?: Extract<ButtonPriority, 'primary' | 'secondary'>; // defaults to 'secondary'\n };\n badge?: {\n text: string;\n skin?: Extract<BadgeSkin, 'general' | 'success' | 'premium'>; // defaults to 'general'\n };\n}\n\nconst getCardWidth = (totalOffers: number) => {\n if (totalOffers === 1) {\n return '100%';\n }\n if (totalOffers === 2) {\n return '50%';\n }\n return '550px';\n};\n\ninterface MarketingCardInternalProps {\n schema: MarketingCardSchema;\n totalOffers: number;\n}\n\nconst MarketingCardInternal: React.FC<MarketingCardInternalProps> = ({\n schema,\n totalOffers,\n}) => {\n const {\n title,\n description: descriptionData,\n imageUrl,\n ctaButton: ctaButtonData,\n badge: badgeData,\n } = schema;\n\n const handleCtaClick = () => {\n if (ctaButtonData?.link) {\n window.open(ctaButtonData.link, '_blank');\n }\n };\n\n const handleLearnMoreClick = () => {\n if (descriptionData?.learnMore?.link) {\n window.open(descriptionData.learnMore.link, '_blank');\n }\n };\n\n const description = (\n <>\n <Text size=\"small\" secondary dataHook=\"suggestions-card-subtitle\">\n {descriptionData.text}{' '}\n </Text>\n {descriptionData.learnMore && (\n <TextButton\n size=\"small\"\n secondary\n dataHook=\"suggestions-card-learn-more\"\n onClick={handleLearnMoreClick}\n >\n {descriptionData.learnMore.text ?? 'Learn more'}\n </TextButton>\n )}\n </>\n );\n\n const ctaButton = ctaButtonData ? (\n <Button\n size=\"small\"\n skin={ctaButtonData.skin || 'standard'}\n priority={ctaButtonData.priority || 'secondary'}\n dataHook=\"suggestions-card-button\"\n onClick={handleCtaClick}\n >\n {ctaButtonData.text}\n </Button>\n ) : null;\n\n const badge = badgeData ? (\n <Badge\n skin={badgeData.skin || 'general'}\n size=\"small\"\n dataHook=\"suggestion-card-badge\"\n uppercase={false}\n >\n {badgeData.text}\n </Badge>\n ) : null;\n\n const image = (\n <Image\n src={imageUrl}\n width={96}\n height={96}\n borderRadius=\"8px\"\n dataHook=\"suggestions-card-image\"\n />\n );\n\n return (\n <Box dataHook=\"suggestions-card\" width={getCardWidth(totalOffers)}>\n <Card stretchVertically>\n <MarketingLayout\n title={title}\n description={description}\n image={image}\n actions={[ctaButton]}\n badge={badge}\n hiddenBadge={!badge}\n />\n </Card>\n </Box>\n );\n};\n\n/**\n * Creates a render function for marketing cards.\n * @param translateOffer - Optional function to transform offer data into MarketingCardSchema.\n * If not provided, uses offer.asset.creative directly.\n * @returns A render function compatible with Suggestions.renderCard prop.\n */\nexport const renderMarketingCard =\n (translateOffer?: (offer: Offer) => MarketingCardSchema | null) =>\n (props: SuggestionsCardProps): React.ReactNode | null => {\n const schema = translateOffer\n ? translateOffer(props.offer)\n : (props.offer?.asset?.creative as MarketingCardSchema | null);\n\n const requiredFieldsExist =\n schema?.title && schema?.imageUrl && schema?.description?.text;\n\n if (!requiredFieldsExist) {\n return null;\n }\n return (\n <MarketingCardInternal schema={schema} totalOffers={props.totalOffers} />\n );\n };\n\n/**\n * Skeleton component for MarketingCard during loading state.\n */\nexport const MarketingCardSkeleton: React.FC<BaseCardComponentProps> = ({\n totalOffers,\n}) => {\n return (\n <Box dataHook=\"suggestions-card\" width={getCardWidth(totalOffers)}>\n <Card stretchVertically>\n <MarketingLayout\n title={<SkeletonLine width=\"120px\" />}\n description={<SkeletonLine width=\"168px\" />}\n actions={[<SkeletonRectangle width=\"72px\" height=\"30px\" />]}\n image={<SkeletonRectangle width=\"96px\" height=\"96px\" />}\n badge={<Badge />}\n hiddenBadge={true}\n />\n </Card>\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","getCardWidth","totalOffers","MarketingCardInternal","forwardRef","schema","ref","title","description","descriptionData","imageUrl","ctaButton","ctaButtonData","badge","badgeData","handleCtaClick","link","window","open","handleLearnMoreClick","_descriptionData$lear","learnMore","createElement","Fragment","Text","size","secondary","dataHook","__self","__source","fileName","lineNumber","columnNumber","text","TextButton","onClick","Button","skin","priority","Badge","uppercase","image","Image","src","width","height","borderRadius","Box","Card","stretchVertically","MarketingLayout","actions","hiddenBadge","renderMarketingCard","translateOffer","props","_props$offer","_schema$description","offer","asset","creative","requiredFieldsExist","console","error","offerGuid","exports","MarketingCardSkeleton","SkeletonLine","SkeletonRectangle"],"sources":["../../../../src/components/Suggestions/MarketingCard.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\nimport {\n Box,\n MarketingLayout,\n SkeletonLine,\n Card,\n Button,\n BadgeSkin,\n ButtonSkin,\n Image,\n Text,\n TextButton,\n Badge,\n SkeletonRectangle,\n ButtonPriority,\n} from '@wix/design-system';\nimport { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\nimport { BaseCardComponentProps, SuggestionsCardProps } from './types';\n\n/**\n * Schema for marketing card content.\n * This defines the structure expected in offer.asset.creative for MarketingCard rendering.\n */\nexport interface MarketingCardSchema {\n title: string;\n description: {\n text: string;\n learnMore?: {\n link: string;\n text?: string; // defaults to 'Learn more'\n };\n };\n imageUrl: string;\n ctaButton?: {\n text: string;\n link: string;\n skin?: Extract<ButtonSkin, 'standard' | 'premium' | 'ai'>; // defaults to 'standard'\n priority?: Extract<ButtonPriority, 'primary' | 'secondary'>; // defaults to 'secondary'\n };\n badge?: {\n text: string;\n skin?: Extract<BadgeSkin, 'general' | 'success' | 'premium'>; // defaults to 'general'\n };\n}\n\nconst getCardWidth = (totalOffers: number) => {\n if (totalOffers === 1) {\n return '100%';\n }\n if (totalOffers === 2) {\n return '50%';\n }\n return '550px';\n};\n\ninterface MarketingCardInternalProps {\n schema: MarketingCardSchema;\n totalOffers: number;\n}\n\nconst MarketingCardInternal = forwardRef<\n HTMLDivElement,\n MarketingCardInternalProps\n>(({ schema, totalOffers }, ref) => {\n const {\n title,\n description: descriptionData,\n imageUrl,\n ctaButton: ctaButtonData,\n badge: badgeData,\n } = schema;\n\n const handleCtaClick = () => {\n if (ctaButtonData?.link) {\n window.open(ctaButtonData.link, '_blank');\n }\n };\n\n const handleLearnMoreClick = () => {\n if (descriptionData?.learnMore?.link) {\n window.open(descriptionData.learnMore.link, '_blank');\n }\n };\n\n const description = (\n <>\n <Text size=\"small\" secondary dataHook=\"suggestions-card-subtitle\">\n {descriptionData.text}{' '}\n </Text>\n {descriptionData.learnMore && (\n <TextButton\n size=\"small\"\n secondary\n dataHook=\"suggestions-card-learn-more\"\n onClick={handleLearnMoreClick}\n >\n {descriptionData.learnMore.text ?? 'Learn more'}\n </TextButton>\n )}\n </>\n );\n\n const ctaButton = ctaButtonData ? (\n <Button\n size=\"small\"\n skin={ctaButtonData.skin || 'standard'}\n priority={ctaButtonData.priority || 'secondary'}\n dataHook=\"suggestions-card-button\"\n onClick={handleCtaClick}\n >\n {ctaButtonData.text}\n </Button>\n ) : null;\n\n const badge = badgeData ? (\n <Badge\n skin={badgeData.skin || 'general'}\n size=\"small\"\n dataHook=\"suggestion-card-badge\"\n uppercase={false}\n >\n {badgeData.text}\n </Badge>\n ) : null;\n\n const image = (\n <Image\n src={imageUrl}\n width={96}\n height={96}\n borderRadius=\"8px\"\n dataHook=\"suggestions-card-image\"\n />\n );\n\n return (\n <Box\n dataHook=\"suggestions-card\"\n width={getCardWidth(totalOffers)}\n ref={ref}\n >\n <Card stretchVertically>\n <MarketingLayout\n title={title}\n description={description}\n image={image}\n actions={[ctaButton]}\n badge={badge}\n hiddenBadge={!badge}\n />\n </Card>\n </Box>\n );\n});\n\n/**\n * Creates a render function for marketing cards.\n * @param translateOffer - Optional function to transform offer data into MarketingCardSchema.\n * If not provided, uses offer.asset.creative directly.\n * @returns A render function compatible with Suggestions.renderCard prop.\n */\nexport const renderMarketingCard =\n (translateOffer?: (offer: Offer) => MarketingCardSchema | null) =>\n (props: SuggestionsCardProps): React.ReactElement | null => {\n const schema = translateOffer\n ? translateOffer(props.offer)\n : (props.offer?.asset?.creative as MarketingCardSchema | null);\n\n const requiredFieldsExist =\n schema?.title && schema?.imageUrl && schema?.description?.text;\n\n if (!requiredFieldsExist) {\n console.error(\n `Can't render MarketingCard for offer ${props.offer.offerGuid} - missing required fields (title, imageUrl, description.text) in schema:`,\n schema,\n );\n return null;\n }\n\n return (\n <MarketingCardInternal schema={schema} totalOffers={props.totalOffers} />\n );\n };\n\n/**\n * Skeleton component for MarketingCard during loading state.\n */\nexport const MarketingCardSkeleton: React.FC<BaseCardComponentProps> = ({\n totalOffers,\n}) => {\n return (\n <Box dataHook=\"suggestions-card\" width={getCardWidth(totalOffers)}>\n <Card stretchVertically>\n <MarketingLayout\n title={<SkeletonLine width=\"120px\" />}\n description={<SkeletonLine width=\"168px\" />}\n actions={[<SkeletonRectangle width=\"72px\" height=\"30px\" />]}\n image={<SkeletonRectangle width=\"96px\" height=\"96px\" />}\n badge={<Badge />}\n hiddenBadge={true}\n />\n </Card>\n </Box>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
exports.__esModule = true;
|
|
5
|
-
exports.Suggestions = void 0;
|
|
5
|
+
exports.Suggestions = exports.SuggestionItem = void 0;
|
|
6
6
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _designSystem = require("@wix/design-system");
|
|
@@ -10,6 +10,7 @@ var _SuggestionsState = require("../../state/Suggestions/SuggestionsState");
|
|
|
10
10
|
var _mobxReactLite = require("mobx-react-lite");
|
|
11
11
|
var _react2 = require("@wix/bex-core/react");
|
|
12
12
|
var _MarketingCard = require("./MarketingCard");
|
|
13
|
+
var _VisibilityTrackedCard = require("./VisibilityTrackedCard");
|
|
13
14
|
var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/cairo/dist/cjs/components/Suggestions/Suggestions.tsx";
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
16
|
const defaultCarouselProps = {
|
|
@@ -35,7 +36,7 @@ const SuggestionsContainer = ({
|
|
|
35
36
|
__self: void 0,
|
|
36
37
|
__source: {
|
|
37
38
|
fileName: _jsxFileName,
|
|
38
|
-
lineNumber:
|
|
39
|
+
lineNumber: 55,
|
|
39
40
|
columnNumber: 7
|
|
40
41
|
}
|
|
41
42
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
|
|
@@ -45,7 +46,7 @@ const SuggestionsContainer = ({
|
|
|
45
46
|
__self: void 0,
|
|
46
47
|
__source: {
|
|
47
48
|
fileName: _jsxFileName,
|
|
48
|
-
lineNumber:
|
|
49
|
+
lineNumber: 56,
|
|
49
50
|
columnNumber: 9
|
|
50
51
|
}
|
|
51
52
|
}, children));
|
|
@@ -55,7 +56,7 @@ const SuggestionsContainer = ({
|
|
|
55
56
|
__self: void 0,
|
|
56
57
|
__source: {
|
|
57
58
|
fileName: _jsxFileName,
|
|
58
|
-
lineNumber:
|
|
59
|
+
lineNumber: 68,
|
|
59
60
|
columnNumber: 5
|
|
60
61
|
}
|
|
61
62
|
}, /*#__PURE__*/_react.default.createElement(_designSystem.CarouselWIP, (0, _extends2.default)({
|
|
@@ -64,11 +65,28 @@ const SuggestionsContainer = ({
|
|
|
64
65
|
__self: void 0,
|
|
65
66
|
__source: {
|
|
66
67
|
fileName: _jsxFileName,
|
|
67
|
-
lineNumber:
|
|
68
|
+
lineNumber: 69,
|
|
68
69
|
columnNumber: 7
|
|
69
70
|
}
|
|
70
71
|
}), children));
|
|
71
72
|
};
|
|
73
|
+
const SuggestionItem = ({
|
|
74
|
+
children,
|
|
75
|
+
dataId
|
|
76
|
+
}) => /*#__PURE__*/_react.default.createElement("div", {
|
|
77
|
+
"data-hook": "suggestion-item",
|
|
78
|
+
"data-id": dataId,
|
|
79
|
+
style: {
|
|
80
|
+
display: 'contents'
|
|
81
|
+
},
|
|
82
|
+
__self: void 0,
|
|
83
|
+
__source: {
|
|
84
|
+
fileName: _jsxFileName,
|
|
85
|
+
lineNumber: 84,
|
|
86
|
+
columnNumber: 3
|
|
87
|
+
}
|
|
88
|
+
}, children);
|
|
89
|
+
exports.SuggestionItem = SuggestionItem;
|
|
72
90
|
const Suggestions = exports.Suggestions = (0, _mobxReactLite.observer)(({
|
|
73
91
|
placementId,
|
|
74
92
|
renderCard,
|
|
@@ -78,28 +96,28 @@ const Suggestions = exports.Suggestions = (0, _mobxReactLite.observer)(({
|
|
|
78
96
|
dataHook = 'suggestions',
|
|
79
97
|
maxInlineItems = 2
|
|
80
98
|
}) => {
|
|
81
|
-
const
|
|
82
|
-
httpClient
|
|
83
|
-
} = (0, _react2.useWixPatternsContainer)();
|
|
99
|
+
const container = (0, _react2.useWixPatternsContainer)();
|
|
84
100
|
const [state] = (0, _react.useState)(() => new _SuggestionsState.SuggestionsState({
|
|
85
101
|
placementId,
|
|
86
|
-
|
|
102
|
+
container
|
|
87
103
|
}));
|
|
88
104
|
(0, _react.useEffect)(() => {
|
|
89
105
|
return state.init();
|
|
90
106
|
}, [state]);
|
|
91
107
|
if (state.hasOffers) {
|
|
92
108
|
const cardCount = state.offers.length;
|
|
93
|
-
const cards = state.offers.map((offer, index) =>
|
|
94
|
-
key
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
109
|
+
const cards = state.offers.map((offer, index) => {
|
|
110
|
+
const key = offer.offerGuid || `suggestion-${index}`;
|
|
111
|
+
return {
|
|
112
|
+
key,
|
|
113
|
+
offerGuid: offer.offerGuid,
|
|
114
|
+
element: renderCard({
|
|
115
|
+
offer,
|
|
116
|
+
index,
|
|
117
|
+
totalOffers: state.offers.length
|
|
118
|
+
})
|
|
119
|
+
};
|
|
120
|
+
}).filter(card => card.element != null);
|
|
103
121
|
|
|
104
122
|
// Return null if all cards filtered out
|
|
105
123
|
if (cards.length === 0) {
|
|
@@ -116,36 +134,55 @@ const Suggestions = exports.Suggestions = (0, _mobxReactLite.observer)(({
|
|
|
116
134
|
__self: void 0,
|
|
117
135
|
__source: {
|
|
118
136
|
fileName: _jsxFileName,
|
|
119
|
-
lineNumber:
|
|
137
|
+
lineNumber: 139,
|
|
120
138
|
columnNumber: 9
|
|
121
139
|
}
|
|
122
140
|
}, cards.map(({
|
|
123
141
|
key,
|
|
142
|
+
offerGuid,
|
|
124
143
|
element
|
|
125
|
-
}) => /*#__PURE__*/_react.default.createElement(
|
|
144
|
+
}) => /*#__PURE__*/_react.default.createElement(SuggestionItem, {
|
|
126
145
|
key: key,
|
|
146
|
+
dataId: key,
|
|
127
147
|
__self: void 0,
|
|
128
148
|
__source: {
|
|
129
149
|
fileName: _jsxFileName,
|
|
130
|
-
lineNumber:
|
|
150
|
+
lineNumber: 148,
|
|
131
151
|
columnNumber: 13
|
|
132
152
|
}
|
|
133
|
-
},
|
|
153
|
+
}, /*#__PURE__*/_react.default.createElement(_VisibilityTrackedCard.VisibilityTrackedCard, {
|
|
154
|
+
itemKey: key,
|
|
155
|
+
element: element,
|
|
156
|
+
onObserved: () => offerGuid && state.onOfferViewed(offerGuid),
|
|
157
|
+
__self: void 0,
|
|
158
|
+
__source: {
|
|
159
|
+
fileName: _jsxFileName,
|
|
160
|
+
lineNumber: 149,
|
|
161
|
+
columnNumber: 15
|
|
162
|
+
}
|
|
163
|
+
}))));
|
|
134
164
|
}
|
|
135
165
|
if (state.isFetching) {
|
|
136
166
|
const skeletons = Array.from({
|
|
137
167
|
length: skeletonsNumber
|
|
138
|
-
}).map((_, index) => /*#__PURE__*/_react.default.createElement(
|
|
139
|
-
index: index,
|
|
140
|
-
totalOffers: skeletonsNumber,
|
|
168
|
+
}).map((_, index) => /*#__PURE__*/_react.default.createElement(SuggestionItem, {
|
|
141
169
|
key: index,
|
|
142
170
|
__self: void 0,
|
|
143
171
|
__source: {
|
|
144
172
|
fileName: _jsxFileName,
|
|
145
|
-
lineNumber:
|
|
173
|
+
lineNumber: 163,
|
|
146
174
|
columnNumber: 11
|
|
147
175
|
}
|
|
148
|
-
}
|
|
176
|
+
}, /*#__PURE__*/_react.default.createElement(CardSkeleton, {
|
|
177
|
+
index: index,
|
|
178
|
+
totalOffers: skeletonsNumber,
|
|
179
|
+
__self: void 0,
|
|
180
|
+
__source: {
|
|
181
|
+
fileName: _jsxFileName,
|
|
182
|
+
lineNumber: 164,
|
|
183
|
+
columnNumber: 13
|
|
184
|
+
}
|
|
185
|
+
})));
|
|
149
186
|
return /*#__PURE__*/_react.default.createElement(SuggestionsContainer, {
|
|
150
187
|
count: skeletonsNumber,
|
|
151
188
|
carouselProps: {
|
|
@@ -158,7 +195,7 @@ const Suggestions = exports.Suggestions = (0, _mobxReactLite.observer)(({
|
|
|
158
195
|
__self: void 0,
|
|
159
196
|
__source: {
|
|
160
197
|
fileName: _jsxFileName,
|
|
161
|
-
lineNumber:
|
|
198
|
+
lineNumber: 170,
|
|
162
199
|
columnNumber: 9
|
|
163
200
|
}
|
|
164
201
|
}, skeletons);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_SuggestionsState","_mobxReactLite","_react2","_MarketingCard","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","defaultCarouselProps","hideDots","infinite","variableWidth","controlsPosition","showControlsShadow","sidesGradientColor","COLOR_TOKENS","controlsStartEnd","SuggestionsContainer","count","children","carouselProps","dataHook","dataState","maxInlineItems","createElement","__self","__source","fileName","lineNumber","columnNumber","Box","direction","gap","CarouselWIP","_extends2","Suggestions","exports","observer","placementId","renderCard","CardSkeleton","MarketingCardSkeleton","skeletonsNumber","httpClient","useWixPatternsContainer","state","useState","SuggestionsState","useEffect","init","hasOffers","cardCount","offers","length","cards","map","offer","index","key","offerGuid","element","totalOffers","filter","Fragment","isFetching","skeletons","Array","from","_"],"sources":["../../../../src/components/Suggestions/Suggestions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n CarouselWIP,\n CarouselWIPProps,\n COLOR_TOKENS,\n Box,\n} from '@wix/design-system';\nimport { SuggestionsState } from '../../state/Suggestions/SuggestionsState';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { MarketingCardSkeleton } from './MarketingCard';\nimport { SuggestionsProps } from './types';\n\nconst defaultCarouselProps: CarouselWIPProps = {\n hideDots: true,\n infinite: false,\n variableWidth: false,\n controlsPosition: 'overlay',\n showControlsShadow: true,\n sidesGradientColor: COLOR_TOKENS['--wsr-color-D70'],\n controlsStartEnd: 'hidden',\n};\n\ninterface SuggestionsContainerProps {\n count: number;\n children: React.ReactNode;\n carouselProps?: CarouselWIPProps;\n dataHook: string;\n dataState: 'idle' | 'loading';\n maxInlineItems: number;\n}\n\nconst SuggestionsContainer: React.FC<SuggestionsContainerProps> = ({\n count,\n children,\n carouselProps,\n dataHook,\n dataState,\n maxInlineItems,\n}) => {\n if (count <= maxInlineItems) {\n return (\n <div data-hook={dataHook}>\n <Box\n direction=\"horizontal\"\n gap=\"SP4\"\n dataHook={`${dataHook}-container-${dataState}`}\n >\n {children}\n </Box>\n </div>\n );\n }\n\n return (\n <div data-hook={dataHook}>\n <CarouselWIP\n dataHook={`${dataHook}-carousel-${dataState}`}\n {...defaultCarouselProps}\n {...carouselProps}\n >\n {children}\n </CarouselWIP>\n </div>\n );\n};\n\nexport const Suggestions: React.FC<SuggestionsProps> = observer(\n ({\n placementId,\n renderCard,\n CardSkeleton = MarketingCardSkeleton,\n carouselProps,\n skeletonsNumber = 4,\n dataHook = 'suggestions',\n maxInlineItems = 2,\n }) => {\n const { httpClient } = useWixPatternsContainer();\n\n const [state] = useState(\n () => new SuggestionsState({ placementId, httpClient }),\n );\n\n useEffect(() => {\n return state.init();\n }, [state]);\n\n if (state.hasOffers) {\n const cardCount = state.offers.length;\n const cards = state.offers\n .map((offer, index) => ({\n key: offer.offerGuid || `suggestion-${index}`,\n element: renderCard({\n offer,\n index,\n totalOffers: state.offers.length,\n }),\n }))\n .filter(({ element }) => element !== null);\n\n // Return null if all cards filtered out\n if (cards.length === 0) {\n return null;\n }\n\n return (\n <SuggestionsContainer\n // use initial cards count for container, to match the count the cards get rendered with\n count={cardCount}\n carouselProps={carouselProps}\n dataHook={dataHook}\n dataState=\"idle\"\n maxInlineItems={maxInlineItems}\n >\n {cards.map(({ key, element }) => (\n <React.Fragment key={key}>{element}</React.Fragment>\n ))}\n </SuggestionsContainer>\n );\n }\n\n if (state.isFetching) {\n const skeletons = Array.from({ length: skeletonsNumber }).map(\n (_, index) => (\n <CardSkeleton\n index={index}\n totalOffers={skeletonsNumber}\n key={index}\n />\n ),\n );\n\n return (\n <SuggestionsContainer\n count={skeletonsNumber}\n carouselProps={{ ...carouselProps, controlsPosition: 'none' }}\n dataHook={dataHook}\n dataState=\"loading\"\n maxInlineItems={maxInlineItems}\n >\n {skeletons}\n </SuggestionsContainer>\n );\n }\n\n return null;\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_SuggestionsState","_mobxReactLite","_react2","_MarketingCard","_VisibilityTrackedCard","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","defaultCarouselProps","hideDots","infinite","variableWidth","controlsPosition","showControlsShadow","sidesGradientColor","COLOR_TOKENS","controlsStartEnd","SuggestionsContainer","count","children","carouselProps","dataHook","dataState","maxInlineItems","createElement","__self","__source","fileName","lineNumber","columnNumber","Box","direction","gap","CarouselWIP","_extends2","SuggestionItem","dataId","style","display","exports","Suggestions","observer","placementId","renderCard","CardSkeleton","MarketingCardSkeleton","skeletonsNumber","container","useWixPatternsContainer","state","useState","SuggestionsState","useEffect","init","hasOffers","cardCount","offers","length","cards","map","offer","index","key","offerGuid","element","totalOffers","filter","card","VisibilityTrackedCard","itemKey","onObserved","onOfferViewed","isFetching","skeletons","Array","from","_"],"sources":["../../../../src/components/Suggestions/Suggestions.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n CarouselWIP,\n CarouselWIPProps,\n COLOR_TOKENS,\n Box,\n} from '@wix/design-system';\nimport { SuggestionsState } from '../../state/Suggestions/SuggestionsState';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { MarketingCardSkeleton } from './MarketingCard';\nimport { SuggestionsProps } from './types';\nimport { VisibilityTrackedCard } from './VisibilityTrackedCard';\n\nconst defaultCarouselProps: CarouselWIPProps = {\n hideDots: true,\n infinite: false,\n variableWidth: false,\n controlsPosition: 'overlay',\n showControlsShadow: true,\n sidesGradientColor: COLOR_TOKENS['--wsr-color-D70'],\n controlsStartEnd: 'hidden',\n};\n\ninterface SuggestionsContainerProps {\n count: number;\n children: React.ReactNode;\n carouselProps?: CarouselWIPProps;\n dataHook: string;\n dataState: 'idle' | 'loading';\n maxInlineItems: number;\n}\n\nexport interface SuggestionItemProps {\n children: React.ReactNode;\n dataId?: string;\n}\n\nexport interface NonNullableElementCard<T> {\n key: string;\n offerGuid: string | undefined;\n element: T;\n}\n\nconst SuggestionsContainer: React.FC<SuggestionsContainerProps> = ({\n count,\n children,\n carouselProps,\n dataHook,\n dataState,\n maxInlineItems,\n}) => {\n if (count <= maxInlineItems) {\n return (\n <div data-hook={dataHook}>\n <Box\n direction=\"horizontal\"\n gap=\"SP4\"\n dataHook={`${dataHook}-container-${dataState}`}\n >\n {children}\n </Box>\n </div>\n );\n }\n\n return (\n <div data-hook={dataHook}>\n <CarouselWIP\n dataHook={`${dataHook}-carousel-${dataState}`}\n {...defaultCarouselProps}\n {...carouselProps}\n >\n {children}\n </CarouselWIP>\n </div>\n );\n};\n\nexport const SuggestionItem: React.FC<SuggestionItemProps> = ({\n children,\n dataId,\n}) => (\n <div\n data-hook=\"suggestion-item\"\n data-id={dataId}\n style={{ display: 'contents' }}\n >\n {children}\n </div>\n);\n\nexport const Suggestions: React.FC<SuggestionsProps> = observer(\n ({\n placementId,\n renderCard,\n CardSkeleton = MarketingCardSkeleton,\n carouselProps,\n skeletonsNumber = 4,\n dataHook = 'suggestions',\n maxInlineItems = 2,\n }) => {\n const container = useWixPatternsContainer();\n\n const [state] = useState(\n () => new SuggestionsState({ placementId, container }),\n );\n\n useEffect(() => {\n return state.init();\n }, [state]);\n\n if (state.hasOffers) {\n const cardCount = state.offers.length;\n const cards = state.offers\n .map((offer, index) => {\n const key = offer.offerGuid || `suggestion-${index}`;\n return {\n key,\n offerGuid: offer.offerGuid,\n element: renderCard({\n offer,\n index,\n totalOffers: state.offers.length,\n }),\n };\n })\n .filter(\n (card): card is NonNullableElementCard<React.ReactElement> =>\n card.element != null,\n );\n\n // Return null if all cards filtered out\n if (cards.length === 0) {\n return null;\n }\n\n return (\n <SuggestionsContainer\n // use initial cards count for container, to match the count the cards get rendered with\n count={cardCount}\n carouselProps={carouselProps}\n dataHook={dataHook}\n dataState=\"idle\"\n maxInlineItems={maxInlineItems}\n >\n {cards.map(({ key, offerGuid, element }) => (\n <SuggestionItem key={key} dataId={key}>\n <VisibilityTrackedCard\n itemKey={key}\n element={element}\n onObserved={() => offerGuid && state.onOfferViewed(offerGuid)}\n />\n </SuggestionItem>\n ))}\n </SuggestionsContainer>\n );\n }\n\n if (state.isFetching) {\n const skeletons = Array.from({ length: skeletonsNumber }).map(\n (_, index) => (\n <SuggestionItem key={index}>\n <CardSkeleton index={index} totalOffers={skeletonsNumber} />\n </SuggestionItem>\n ),\n );\n\n return (\n <SuggestionsContainer\n count={skeletonsNumber}\n carouselProps={{ ...carouselProps, controlsPosition: 'none' }}\n dataHook={dataHook}\n dataState=\"loading\"\n maxInlineItems={maxInlineItems}\n >\n {skeletons}\n </SuggestionsContainer>\n );\n }\n\n return null;\n },\n);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,9 +4,8 @@ exports.__esModule = true;
|
|
|
4
4
|
exports.SuggestionsUniDriver = void 0;
|
|
5
5
|
var _unidriver = require("@wix/design-system/dist/testkit/unidriver");
|
|
6
6
|
var _unidriver2 = require("@wix/wix-ui-test-utils/unidriver");
|
|
7
|
-
const SuggestionsUniDriver = (base, body
|
|
8
|
-
const dataHook =
|
|
9
|
-
const cardDataHook = options.cardDataHook ?? 'suggestions-card';
|
|
7
|
+
const SuggestionsUniDriver = (base, body) => {
|
|
8
|
+
const dataHook = 'suggestions';
|
|
10
9
|
const carouselIdle = (0, _unidriver.CarouselWIPUniDriver)(base.$(`[data-hook="${dataHook}-carousel-idle"]`), body);
|
|
11
10
|
const carouselLoading = (0, _unidriver.CarouselWIPUniDriver)(base.$(`[data-hook="${dataHook}-carousel-loading"]`), body);
|
|
12
11
|
const containerIdle = base.$(`[data-hook="${dataHook}-container-idle"]`);
|
|
@@ -22,10 +21,10 @@ const SuggestionsUniDriver = (base, body, options = {}) => {
|
|
|
22
21
|
};
|
|
23
22
|
const getContainerChildren = async () => {
|
|
24
23
|
if (await containerIdle.exists()) {
|
|
25
|
-
return containerIdle.$$(`[data-hook="
|
|
24
|
+
return containerIdle.$$(`[data-hook="suggestion-item"]`);
|
|
26
25
|
}
|
|
27
26
|
if (await containerLoading.exists()) {
|
|
28
|
-
return containerLoading.$$(`[data-hook="
|
|
27
|
+
return containerLoading.$$(`[data-hook="suggestion-item"]`);
|
|
29
28
|
}
|
|
30
29
|
return null;
|
|
31
30
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_unidriver","require","_unidriver2","SuggestionsUniDriver","base","body","
|
|
1
|
+
{"version":3,"names":["_unidriver","require","_unidriver2","SuggestionsUniDriver","base","body","dataHook","carouselIdle","CarouselWIPUniDriver","$","carouselLoading","containerIdle","containerLoading","getCarouselChildren","exists","getChildren","getContainerChildren","$$","isLoadingState","isContainerLoading","isCarouselLoading","baseUniDriverFactory","isLoading","hasOffers","carouselExists","containerExists","isEmpty","getCardsCounts","carouselChildren","length","containerChildren","count","getCardAt","index","at","Error","carousel","container","exports"],"sources":["../../../../src/components/Suggestions/Suggestions.uni.driver.ts"],"sourcesContent":["import { CarouselWIPUniDriver } from '@wix/design-system/dist/testkit/unidriver';\nimport {\n baseUniDriverFactory,\n UniDriver,\n} from '@wix/wix-ui-test-utils/unidriver';\n\nexport const SuggestionsUniDriver = (base: UniDriver, body: UniDriver) => {\n const dataHook = 'suggestions';\n\n const carouselIdle = CarouselWIPUniDriver(\n base.$(`[data-hook=\"${dataHook}-carousel-idle\"]`),\n body,\n );\n const carouselLoading = CarouselWIPUniDriver(\n base.$(`[data-hook=\"${dataHook}-carousel-loading\"]`),\n body,\n );\n\n const containerIdle = base.$(`[data-hook=\"${dataHook}-container-idle\"]`);\n const containerLoading = base.$(\n `[data-hook=\"${dataHook}-container-loading\"]`,\n );\n\n const getCarouselChildren = async (): Promise<UniDriver[] | null> => {\n if (await carouselIdle.exists()) {\n return carouselIdle.getChildren();\n }\n if (await carouselLoading.exists()) {\n return carouselLoading.getChildren();\n }\n return null;\n };\n\n const getContainerChildren = async () => {\n if (await containerIdle.exists()) {\n return containerIdle.$$(`[data-hook=\"suggestion-item\"]`);\n }\n if (await containerLoading.exists()) {\n return containerLoading.$$(`[data-hook=\"suggestion-item\"]`);\n }\n return null;\n };\n\n const isLoadingState = async () => {\n const isContainerLoading = await containerLoading.exists();\n const isCarouselLoading = await carouselLoading.exists();\n return isContainerLoading || isCarouselLoading;\n };\n\n return {\n ...baseUniDriverFactory(base),\n isLoading: isLoadingState,\n hasOffers: async () => {\n const carouselExists = await carouselIdle.exists();\n const containerExists = await containerIdle.exists();\n return carouselExists || containerExists;\n },\n isEmpty: async () => {\n const carouselExists = await carouselIdle.exists();\n const containerExists = await containerIdle.exists();\n return !carouselExists && !containerExists;\n },\n getCardsCounts: async () => {\n const carouselChildren = await getCarouselChildren();\n if (carouselChildren) {\n return carouselChildren.length;\n }\n const containerChildren = await getContainerChildren();\n if (containerChildren) {\n return containerChildren.count();\n }\n return 0;\n },\n getCardAt: async (index: number) => {\n const carouselChildren = await getCarouselChildren();\n if (carouselChildren) {\n return carouselChildren[index];\n }\n const containerChildren = await getContainerChildren();\n if (containerChildren) {\n return containerChildren.at(index);\n }\n throw new Error(`No cards found at index ${index}`);\n },\n carousel: async () =>\n (await carouselIdle.exists()) ? carouselIdle : carouselLoading,\n container: async () =>\n (await containerIdle.exists()) ? containerIdle : containerLoading,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
exports.__esModule = true;
|
|
5
|
+
exports.VisibilityTrackedCard = void 0;
|
|
6
|
+
var _react = _interopRequireDefault(require("react"));
|
|
7
|
+
var _useIntersectionObserver = require("../../hooks/useIntersectionObserver");
|
|
8
|
+
const VisibilityTrackedCard = ({
|
|
9
|
+
itemKey,
|
|
10
|
+
element,
|
|
11
|
+
onObserved
|
|
12
|
+
}) => {
|
|
13
|
+
const {
|
|
14
|
+
elementRef
|
|
15
|
+
} = (0, _useIntersectionObserver.useIntersectionObserver)(onObserved);
|
|
16
|
+
return /*#__PURE__*/_react.default.cloneElement(element, {
|
|
17
|
+
key: itemKey,
|
|
18
|
+
ref: elementRef
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
exports.VisibilityTrackedCard = VisibilityTrackedCard;
|
|
22
|
+
//# sourceMappingURL=VisibilityTrackedCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_useIntersectionObserver","VisibilityTrackedCard","itemKey","element","onObserved","elementRef","useIntersectionObserver","React","cloneElement","key","ref","exports"],"sources":["../../../../src/components/Suggestions/VisibilityTrackedCard.tsx"],"sourcesContent":["import React from 'react';\nimport { useIntersectionObserver } from '../../hooks/useIntersectionObserver';\n\nexport interface VisibilityTrackedCardProps {\n itemKey: string;\n element: React.ReactElement;\n onObserved: () => void;\n}\n\nexport const VisibilityTrackedCard: React.FC<VisibilityTrackedCardProps> = ({\n itemKey,\n element,\n onObserved,\n}) => {\n const { elementRef } = useIntersectionObserver(onObserved);\n return React.cloneElement(element, {\n key: itemKey,\n ref: elementRef,\n });\n};\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,wBAAA,GAAAD,OAAA;AAQO,MAAME,qBAA2D,GAAGA,CAAC;EAC1EC,OAAO;EACPC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM;IAAEC;EAAW,CAAC,GAAG,IAAAC,gDAAuB,EAACF,UAAU,CAAC;EAC1D,oBAAOG,cAAK,CAACC,YAAY,CAACL,OAAO,EAAE;IACjCM,GAAG,EAAEP,OAAO;IACZQ,GAAG,EAAEL;EACP,CAAC,CAAC;AACJ,CAAC;AAACM,OAAA,CAAAV,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../../src/components/Suggestions/types.ts"],"sourcesContent":["import { CarouselWIPProps } from '@wix/design-system';\nimport { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\n\n// Re-export Offer for external consumers\nexport type { Offer };\n\n/**\n * Base props passed to card components\n */\nexport interface BaseCardComponentProps {\n /** Index of the card in the list */\n index: number;\n /** Total number of offers received from the dealer service */\n totalOffers: number;\n}\n\n/**\n * Props passed to the renderCard function\n */\nexport interface SuggestionsCardProps extends BaseCardComponentProps {\n /** The offer data from the dealer service */\n offer: Offer;\n}\n\n/**\n * Props for the Suggestions component\n */\nexport interface SuggestionsProps {\n /** The placement ID to fetch offers for */\n placementId: string;\n /** Props to pass to the carousel component */\n carouselProps?: CarouselWIPProps;\n
|
|
1
|
+
{"version":3,"names":[],"sources":["../../../../src/components/Suggestions/types.ts"],"sourcesContent":["import { CarouselWIPProps } from '@wix/design-system';\nimport { Offer } from '@wix/bex-utils/@wix/ambassador-dealer-v1-serving-offer/types';\n\n// Re-export Offer for external consumers\nexport type { Offer };\n\n/**\n * Base props passed to card components\n */\nexport interface BaseCardComponentProps {\n /** Index of the card in the list */\n index: number;\n /** Total number of offers received from the dealer service */\n totalOffers: number;\n}\n\n/**\n * Props passed to the renderCard function\n */\nexport interface SuggestionsCardProps extends BaseCardComponentProps {\n /** The offer data from the dealer service */\n offer: Offer;\n}\n\n/**\n * Props for the Suggestions component\n */\nexport interface SuggestionsProps {\n /** The placement ID to fetch offers for */\n placementId: string;\n /** Props to pass to the carousel component */\n carouselProps?: CarouselWIPProps;\n /**\n * Render function for each offer card.\n * The returned element must be a forwardRef component.\n */\n renderCard: (props: SuggestionsCardProps) => React.ReactElement | null;\n /** Skeleton component to render when loading */\n CardSkeleton?: React.ComponentType<BaseCardComponentProps>;\n /** Number of skeletons to render when loading */\n skeletonsNumber?: number;\n /** Data hook to use for the suggestions component */\n dataHook?: string;\n /** Maximum number of items to display inline (Box layout). Above this, Carousel is used. */\n maxInlineItems?: number;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -5,15 +5,15 @@ 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_ = "
|
|
8
|
+
var _namespace_ = "TabsFilter494994749";
|
|
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": "
|
|
16
|
-
"title": "
|
|
15
|
+
"root": "TabsFilter494994749__root",
|
|
16
|
+
"title": "TabsFilter494994749__title"
|
|
17
17
|
};
|
|
18
18
|
var keyframes = exports.keyframes = {};
|
|
19
19
|
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/components/TabsFilter/TabsFilter.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/TabsFilter/TabsFilter.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"TabsFilter494994749\";\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\":\"TabsFilter494994749__root\",\"title\":\"TabsFilter494994749__title\"};\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,qBAAqB;AACvC,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,2BAA2B;EAAC,OAAO,EAAC;AAA4B,CAAC;AACvF,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_ = "
|
|
8
|
+
var _namespace_ = "ManageTagsModal2750172858";
|
|
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": "
|
|
15
|
+
"root": "ManageTagsModal2750172858__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/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"
|
|
1
|
+
{"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../../../src/components/Tags/ManageTags/ManageTagsModal/ManageTagsModal.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"ManageTagsModal2750172858\";\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\":\"ManageTagsModal2750172858__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,2BAA2B;AAC7C,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;AAAiC,CAAC;AACxD,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_ = "
|
|
8
|
+
var _namespace_ = "ToolbarItem2717057697";
|
|
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": "
|
|
15
|
+
"root": "ToolbarItem2717057697__root"
|
|
16
16
|
};
|
|
17
17
|
var keyframes = exports.keyframes = {};
|
|
18
18
|
var layers = exports.layers = {};
|