@fast-simon/dashboard-utilities 1.0.41 → 1.0.43

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.
@@ -8,7 +8,7 @@ export function fastStateReducer(state, action) {
8
8
  case 'setPage':
9
9
  return Object.assign(Object.assign({}, state), { page: action.payload });
10
10
  case 'setQuery':
11
- return Object.assign(Object.assign({}, state), { query: action.payload, collectionID: undefined, page: 1, narrow: undefined, searchWithinSearch: undefined });
11
+ return Object.assign(Object.assign({}, state), { query: action.payload, collectionID: undefined, page: 1, narrow: undefined, searchWithinSearch: undefined, sortBy: undefined });
12
12
  case 'setSortBy':
13
13
  return Object.assign(Object.assign({}, state), { sortBy: action.payload, page: 1 });
14
14
  case 'setSegments':
@@ -16,7 +16,7 @@ export function fastStateReducer(state, action) {
16
16
  case 'setIsLoading':
17
17
  return Object.assign(Object.assign({}, state), { isLoading: action.payload });
18
18
  case 'setCollectionID':
19
- return Object.assign(Object.assign({}, state), { collectionID: action.payload, query: "", page: 1, narrow: undefined, searchWithinSearch: undefined });
19
+ return Object.assign(Object.assign({}, state), { collectionID: action.payload, query: "", page: 1, narrow: undefined, searchWithinSearch: undefined, sortBy: undefined });
20
20
  case 'setNarrow':
21
21
  return Object.assign(Object.assign({}, state), { narrow: action.payload, page: 1 });
22
22
  case 'setResults':
@@ -1 +1 @@
1
- {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/components/FastSimonApi/reducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {FastStateProps, IsLoading} from \"./context\";\r\nimport {AppType} from \"./FastSimonApi\";\r\nimport {SortBy} from \"../../@types/sortBy\";\r\nimport {FullTextServerResponseAll} from \"../../@types/results\";\r\nimport {smartCollectionsResults} from \"../../@types/categories\";\r\nimport {Narrow} from \"../../@types/narrow\";\r\nimport {Product} from \"../../@types/product\";\r\n\r\nimport {Widget} from \"../../@types/widget\";\r\nimport {AutocompleteResults} from \"../../@types/autocomplete\";\r\n\r\ntype FastStateAction =\r\n | { type: 'setReady', payload: boolean }\r\n | { type: 'setType', payload: AppType }\r\n | { type: 'setPage', payload: number }\r\n | { type: 'setQuery', payload: string }\r\n | { type: 'setSortBy', payload: SortBy }\r\n | { type: 'setIsLoading', payload: IsLoading }\r\n | { type: 'setCollectionID', payload: string }\r\n | { type: 'setNarrow', payload: Narrow[] | undefined }\r\n | { type: 'setResults', payload: FullTextServerResponseAll | smartCollectionsResults | undefined }\r\n | { type: 'mergeResults', payload: { results: FullTextServerResponseAll | smartCollectionsResults, infiniteScroll: boolean } }\r\n | { type: 'mergeResultsKeepProduct', payload: { results: FullTextServerResponseAll | smartCollectionsResults } }\r\n | { type: 'setState', payload: Partial<FastStateProps> }\r\n | { type: 'setRecommendations', payload: { id: string, widget: Widget } }\r\n | { type: 'setSingleProducts', payload: Product[] }\r\n | { type: 'setAutocomplete', payload: AutocompleteResults }\r\n | { type: 'setSearchWithinSearch', payload: string }\r\n | { type: 'setSegments', payload: string[] }\r\n | { type: 'setFlag', payload: string[] }\r\n\r\n\r\n\r\nexport function fastStateReducer(state: FastStateProps, action: FastStateAction) {\r\n switch (action.type) {\r\n case \"setReady\":\r\n return {...state, isReady: action.payload}\r\n\r\n case 'setType':\r\n return {...state, type: action.payload};\r\n\r\n case 'setPage':\r\n return {...state, page: action.payload};\r\n\r\n case 'setQuery':\r\n return {...state, query: action.payload, collectionID: undefined, page: 1, narrow: undefined, searchWithinSearch: undefined};\r\n\r\n case 'setSortBy':\r\n return {...state, sortBy: action.payload, page: 1};\r\n\r\n case 'setSegments':\r\n return {...state, segments: action.payload, page: 1};\r\n\r\n case 'setIsLoading':\r\n return {...state, isLoading: action.payload};\r\n\r\n case 'setCollectionID':\r\n return {...state, collectionID: action.payload, query: \"\", page: 1, narrow: undefined, searchWithinSearch: undefined};\r\n\r\n case 'setNarrow':\r\n return {...state, narrow: action.payload, page: 1};\r\n\r\n case 'setResults':\r\n return {...state, results: {isNoResults: false, ...action.payload}} as FastStateProps;\r\n\r\n case 'mergeResultsKeepProduct': {\r\n return {...state, results: {...state.results, ...action.payload.results, products: state.results?.products || []}};\r\n }\r\n\r\n case 'mergeResults': {\r\n const sortBy = action.payload.results.sortBy ?? state.sortBy\r\n\r\n if (!action.payload.infiniteScroll) {\r\n return {...state,sortBy, results: { ...action.payload.results}} as FastStateProps;\r\n }\r\n\r\n const products = state.results?.products ?? [];\r\n const newProducts = action.payload.results.products ?? [];\r\n for (const product of newProducts) {\r\n if(!products?.find(x => x.id === product.id)) {\r\n return {\r\n ...state,\r\n results: {...state.results, isNoResults: false, ...action.payload.results, products: [...products, ...newProducts]}\r\n } as FastStateProps;\r\n }\r\n }\r\n return {\r\n ...state,\r\n results: {...state.results, isNoResults: false, ...action.payload.results, products: products}\r\n } as FastStateProps;\r\n\r\n }\r\n\r\n case 'setState': {\r\n if (action.payload.query) {\r\n return {...state, ...action.payload, collectionID: undefined, searchWithinSearch: undefined, segments: undefined}\r\n } else {\r\n return {...state, ...action.payload, query: \"\", searchWithinSearch: undefined, segments: undefined};\r\n }\r\n }\r\n\r\n case \"setRecommendations\": {\r\n return {\r\n ...state,\r\n recommendations: {\r\n ...state.recommendations,\r\n [action.payload.id]: action.payload.widget\r\n }\r\n }\r\n }\r\n\r\n case \"setSingleProducts\": {\r\n const products: { [id: string]: Product } = {...state.singleProducts};\r\n\r\n for (const product of action.payload) {\r\n products[product.id] = product;\r\n }\r\n\r\n return {...state, singleProducts: products}\r\n }\r\n\r\n case \"setAutocomplete\": {\r\n return {...state, autocomplete: action.payload}\r\n }\r\n\r\n case \"setSearchWithinSearch\": {\r\n return {...state, searchWithinSearch: action.payload}\r\n }\r\n case 'setFlag':\r\n return {...state, flag: action.payload};\r\n\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"reducer.js","sourceRoot":"","sources":["../../../src/components/FastSimonApi/reducer.ts"],"names":[],"mappings":"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","sourcesContent":["import {FastStateProps, IsLoading} from \"./context\";\r\nimport {AppType} from \"./FastSimonApi\";\r\nimport {SortBy} from \"../../@types/sortBy\";\r\nimport {FullTextServerResponseAll} from \"../../@types/results\";\r\nimport {smartCollectionsResults} from \"../../@types/categories\";\r\nimport {Narrow} from \"../../@types/narrow\";\r\nimport {Product} from \"../../@types/product\";\r\n\r\nimport {Widget} from \"../../@types/widget\";\r\nimport {AutocompleteResults} from \"../../@types/autocomplete\";\r\n\r\ntype FastStateAction =\r\n | { type: 'setReady', payload: boolean }\r\n | { type: 'setType', payload: AppType }\r\n | { type: 'setPage', payload: number }\r\n | { type: 'setQuery', payload: string }\r\n | { type: 'setSortBy', payload: SortBy }\r\n | { type: 'setIsLoading', payload: IsLoading }\r\n | { type: 'setCollectionID', payload: string }\r\n | { type: 'setNarrow', payload: Narrow[] | undefined }\r\n | { type: 'setResults', payload: FullTextServerResponseAll | smartCollectionsResults | undefined }\r\n | { type: 'mergeResults', payload: { results: FullTextServerResponseAll | smartCollectionsResults, infiniteScroll: boolean } }\r\n | { type: 'mergeResultsKeepProduct', payload: { results: FullTextServerResponseAll | smartCollectionsResults } }\r\n | { type: 'setState', payload: Partial<FastStateProps> }\r\n | { type: 'setRecommendations', payload: { id: string, widget: Widget } }\r\n | { type: 'setSingleProducts', payload: Product[] }\r\n | { type: 'setAutocomplete', payload: AutocompleteResults }\r\n | { type: 'setSearchWithinSearch', payload: string }\r\n | { type: 'setSegments', payload: string[] }\r\n | { type: 'setFlag', payload: string[] }\r\n\r\n\r\n\r\nexport function fastStateReducer(state: FastStateProps, action: FastStateAction) {\r\n switch (action.type) {\r\n case \"setReady\":\r\n return {...state, isReady: action.payload}\r\n\r\n case 'setType':\r\n return {...state, type: action.payload};\r\n\r\n case 'setPage':\r\n return {...state, page: action.payload};\r\n\r\n case 'setQuery':\r\n return {...state, query: action.payload, collectionID: undefined, page: 1, narrow: undefined, searchWithinSearch: undefined, sortBy:undefined};\r\n\r\n case 'setSortBy':\r\n return {...state, sortBy: action.payload, page: 1};\r\n\r\n case 'setSegments':\r\n return {...state, segments: action.payload, page: 1};\r\n\r\n case 'setIsLoading':\r\n return {...state, isLoading: action.payload};\r\n\r\n case 'setCollectionID':\r\n return {...state, collectionID: action.payload, query: \"\", page: 1, narrow: undefined, searchWithinSearch: undefined , sortBy:undefined};\r\n\r\n case 'setNarrow':\r\n return {...state, narrow: action.payload, page: 1};\r\n\r\n case 'setResults':\r\n return {...state, results: {isNoResults: false, ...action.payload}} as FastStateProps;\r\n\r\n case 'mergeResultsKeepProduct': {\r\n return {...state, results: {...state.results, ...action.payload.results, products: state.results?.products || []}};\r\n }\r\n\r\n case 'mergeResults': {\r\n const sortBy = action.payload.results.sortBy ?? state.sortBy\r\n\r\n if (!action.payload.infiniteScroll) {\r\n return {...state,sortBy, results: { ...action.payload.results}} as FastStateProps;\r\n }\r\n\r\n const products = state.results?.products ?? [];\r\n const newProducts = action.payload.results.products ?? [];\r\n for (const product of newProducts) {\r\n if(!products?.find(x => x.id === product.id)) {\r\n return {\r\n ...state,\r\n results: {...state.results, isNoResults: false, ...action.payload.results, products: [...products, ...newProducts]}\r\n } as FastStateProps;\r\n }\r\n }\r\n return {\r\n ...state,\r\n results: {...state.results, isNoResults: false, ...action.payload.results, products: products}\r\n } as FastStateProps;\r\n\r\n }\r\n\r\n case 'setState': {\r\n if (action.payload.query) {\r\n return {...state, ...action.payload, collectionID: undefined, searchWithinSearch: undefined, segments: undefined}\r\n } else {\r\n return {...state, ...action.payload, query: \"\", searchWithinSearch: undefined, segments: undefined};\r\n }\r\n }\r\n\r\n case \"setRecommendations\": {\r\n return {\r\n ...state,\r\n recommendations: {\r\n ...state.recommendations,\r\n [action.payload.id]: action.payload.widget\r\n }\r\n }\r\n }\r\n\r\n case \"setSingleProducts\": {\r\n const products: { [id: string]: Product } = {...state.singleProducts};\r\n\r\n for (const product of action.payload) {\r\n products[product.id] = product;\r\n }\r\n\r\n return {...state, singleProducts: products}\r\n }\r\n\r\n case \"setAutocomplete\": {\r\n return {...state, autocomplete: action.payload}\r\n }\r\n\r\n case \"setSearchWithinSearch\": {\r\n return {...state, searchWithinSearch: action.payload}\r\n }\r\n case 'setFlag':\r\n return {...state, flag: action.payload};\r\n\r\n }\r\n}\r\n\r\n"]}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ scrollableRef: React.RefObject<HTMLDivElement>;
4
+ }
5
+ export declare function ScrollToTop({ scrollableRef }: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useEffect } from 'react';
3
+ import classes from './styles.module.css';
4
+ import classNames from "classnames";
5
+ export function ScrollToTop({ scrollableRef }) {
6
+ const [isVisible, setIsVisible] = React.useState(false);
7
+ const scrollToTop = (event) => {
8
+ var _a;
9
+ (_a = scrollableRef === null || scrollableRef === void 0 ? void 0 : scrollableRef.current) === null || _a === void 0 ? void 0 : _a.scrollTo({ top: 0, behavior: 'smooth' });
10
+ };
11
+ useEffect(() => {
12
+ var _a;
13
+ const handleScrollButton = () => {
14
+ var _a;
15
+ if (!(scrollableRef === null || scrollableRef === void 0 ? void 0 : scrollableRef.current)) {
16
+ return;
17
+ }
18
+ setIsVisible(!!((_a = scrollableRef.current) === null || _a === void 0 ? void 0 : _a.scrollTop));
19
+ };
20
+ (_a = scrollableRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', handleScrollButton);
21
+ return () => {
22
+ var _a;
23
+ (_a = scrollableRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('scroll', handleScrollButton);
24
+ };
25
+ }, [scrollableRef]);
26
+ return (_jsx("div", Object.assign({ className: classNames(classes.wrapper, isVisible ? classes.visible : '', 'scroll-to-top-btn'), onClick: scrollToTop }, { children: "Scroll to Top" })));
27
+ }
28
+ //# sourceMappingURL=ScrollToTop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollToTop.js","sourceRoot":"","sources":["../../../src/components/ScrollToTop/ScrollToTop.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AACvC,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,YAAY,CAAC;AAKpC,MAAM,UAAU,WAAW,CAAC,EAAC,aAAa,EAAQ;IAE9C,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,EAAE;;QAC/B,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,0CAAE,QAAQ,CAAC,EAAC,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;IACnE,CAAC,CAAA;IAED,SAAS,CAAC,GAAG,EAAE;;QACX,MAAM,kBAAkB,GAAG,GAAG,EAAE;;YAC5B,IAAG,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,OAAO,CAAA,EAAE;gBACxB,OAAO;aACV;YACD,YAAY,CAAC,CAAC,CAAC,CAAA,MAAA,aAAa,CAAC,OAAO,0CAAE,SAAS,CAAA,CAAC,CAAC;QACrD,CAAC,CAAA;QACD,MAAA,aAAa,CAAC,OAAO,0CAAE,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACtE,OAAO,GAAG,EAAE;;YACR,MAAA,aAAa,CAAC,OAAO,0CAAE,mBAAmB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QAC7E,CAAC,CAAA;IACL,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,CACH,4BAAK,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAmB,CAAC,EAAE,OAAO,EAAE,WAAW,mCAElH,CAET,CAAA;AAEL,CAAC","sourcesContent":["import React, {useEffect} from 'react';\r\nimport classes from './styles.module.css';\r\nimport classNames from \"classnames\";\r\n\r\ninterface Props {\r\n scrollableRef: React.RefObject<HTMLDivElement>;\r\n}\r\nexport function ScrollToTop({scrollableRef}: Props) {\r\n\r\n const [isVisible, setIsVisible] = React.useState(false);\r\n const scrollToTop = (event: any) => {\r\n scrollableRef?.current?.scrollTo({top: 0, behavior: 'smooth'});\r\n }\r\n\r\n useEffect(() => {\r\n const handleScrollButton = () => {\r\n if(!scrollableRef?.current) {\r\n return;\r\n }\r\n setIsVisible(!!scrollableRef.current?.scrollTop);\r\n }\r\n scrollableRef.current?.addEventListener('scroll', handleScrollButton);\r\n return () => {\r\n scrollableRef.current?.removeEventListener('scroll', handleScrollButton);\r\n }\r\n }, [scrollableRef]);\r\n\r\n return (\r\n <div className={classNames(classes.wrapper, isVisible ? classes.visible : '', 'scroll-to-top-btn')} onClick={scrollToTop}>\r\n Scroll to Top\r\n </div>\r\n\r\n )\r\n\r\n}\r\n\r\n"]}
@@ -0,0 +1,18 @@
1
+ .wrapper {
2
+ visibility: hidden;
3
+ position: absolute;
4
+ bottom: 72px;
5
+ right: 44px;
6
+ font-size: 14px;
7
+ background: #000000a6;
8
+ color: white;
9
+ padding: 3px 6px;
10
+ border-radius: 8px;
11
+ cursor: pointer;
12
+ }
13
+
14
+ .visible {
15
+ visibility: visible;
16
+ opacity: 1;
17
+ transition: opacity 0.2s linear;
18
+ }
@@ -5,6 +5,7 @@ interface Props {
5
5
  displayProducts?: any;
6
6
  renderProduct?: (product: any, pos: number) => React.ReactNode;
7
7
  customclass?: String;
8
+ scrollToTop?: boolean;
8
9
  }
9
10
  declare const ProductGrid: React.FC<Props>;
10
11
  export default ProductGrid;
@@ -1,8 +1,11 @@
1
- import { jsxs as _jsxs } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React, { useEffect } from "react";
2
3
  import classes from "./styles.module.css";
3
4
  import classNames from "classnames";
5
+ import { ScrollToTop } from "../ScrollToTop/ScrollToTop";
4
6
  const ProductGrid = (props) => {
5
- const { numberPerRow, children, displayProducts, renderProduct, customclass } = props;
7
+ const { numberPerRow, children, displayProducts, renderProduct, customclass, scrollToTop } = props;
8
+ const gridRef = React.createRef();
6
9
  function renderProductsGrid() {
7
10
  const productsCards = [];
8
11
  if (displayProducts && displayProducts.length > 0) {
@@ -19,7 +22,12 @@ const ProductGrid = (props) => {
19
22
  }
20
23
  return productsCards;
21
24
  }
22
- return (_jsxs("div", Object.assign({ className: classNames(classes.grid, customclass == "margin" ? classes.margin : null), style: { "--products-per-row": numberPerRow, width: numberPerRow === 2 ? "500px" : "100%", } }, { children: [renderProductsGrid(), children] })));
25
+ useEffect(() => {
26
+ if (gridRef.current) {
27
+ gridRef.current.style.height = `calc(100vh - ${gridRef.current.getBoundingClientRect().top}px)`;
28
+ }
29
+ }, [gridRef]);
30
+ return (_jsxs("div", Object.assign({ className: classNames(classes.grid, customclass == "margin" ? classes.margin : null), style: { "--products-per-row": numberPerRow, width: numberPerRow === 2 ? "500px" : "100%", } }, { children: [renderProductsGrid(), children, scrollToTop && _jsx(ScrollToTop, { scrollableRef: gridRef })] })));
23
31
  };
24
32
  export default ProductGrid;
25
33
  //# sourceMappingURL=ProductGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["../../../src/components/productGrid/ProductGrid.tsx"],"names":[],"mappings":";AACA,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,YAAY,CAAC;AAUpC,MAAM,WAAW,GAAoB,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAG,eAAe,EAAG,aAAa,EAAC,WAAW,EAAC,GAAG,KAAK,CAAC;IAEtF,SAAS,kBAAkB;QACvB,MAAM,aAAa,GAAG,EAAW,CAAC;QAElC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,aAAa;YACb,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAG,CAAC,EAAG,EAAE;gBACrC,IAAI,aAAa,EAAE;oBACf,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpD,IAAI,aAAa,EAAE;wBACf,aAAa;wBACb,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACrC;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAGD,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAC,WAAW,IAAE,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,EAAE,KAAK,EAAE,EAAC,oBAAoB,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAS,iBAChL,kBAAkB,EAAE,EACpB,QAAQ,KACP,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import React, {useEffect, useState} from \"react\";\r\nimport classes from \"./styles.module.css\";\r\nimport classNames from \"classnames\";\r\n\r\ninterface Props {\r\n numberPerRow: number;\r\n children?: React.ReactNode;\r\n displayProducts?:any;\r\n renderProduct?:(product: any, pos: number) => React.ReactNode;\r\n customclass?:String\r\n}\r\n\r\nconst ProductGrid: React.FC<Props> = (props) => {\r\n const { numberPerRow, children , displayProducts , renderProduct,customclass} = props;\r\n\r\n function renderProductsGrid() {\r\n const productsCards = [] as any[];\r\n\r\n if (displayProducts && displayProducts.length > 0) {\r\n // @ts-ignore\r\n displayProducts.forEach((product , i ) => {\r\n if (renderProduct) {\r\n const productMarkup = renderProduct(product, i + 1);\r\n if (productMarkup) {\r\n // @ts-ignore\r\n productsCards.push(productMarkup);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return productsCards;\r\n }\r\n\r\n\r\n return (\r\n <div className={classNames(classes.grid,customclass==\"margin\"?classes.margin:null)} style={{\"--products-per-row\": numberPerRow, width: numberPerRow === 2 ? \"500px\" : \"100%\",} as any}>\r\n {renderProductsGrid()}\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProductGrid;\r\n"]}
1
+ {"version":3,"file":"ProductGrid.js","sourceRoot":"","sources":["../../../src/components/productGrid/ProductGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,SAAS,EAAW,MAAM,OAAO,CAAC;AACjD,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AAWvD,MAAM,WAAW,GAAoB,CAAC,KAAK,EAAE,EAAE;IAC3C,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAG,eAAe,EAAG,aAAa,EAAC,WAAW,EAAC,WAAW,EAAC,GAAG,KAAK,CAAC;IAClG,MAAM,OAAO,GAAG,KAAK,CAAC,SAAS,EAAkB,CAAC;IAElD,SAAS,kBAAkB;QACvB,MAAM,aAAa,GAAG,EAAW,CAAC;QAElC,IAAI,eAAe,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/C,aAAa;YACb,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,EAAG,CAAC,EAAG,EAAE;gBACrC,IAAI,aAAa,EAAE;oBACf,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;oBACpD,IAAI,aAAa,EAAE;wBACf,aAAa;wBACb,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;qBACrC;iBACJ;YACL,CAAC,CAAC,CAAC;SACN;QAED,OAAO,aAAa,CAAC;IACzB,CAAC;IAED,SAAS,CAAC,GAAG,EAAE;QACP,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,OAAO,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,GAAG,KAAK,CAAC;SACnG;IACL,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAElB,OAAO,CACH,6BAAK,SAAS,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,EAAC,WAAW,IAAE,QAAQ,CAAA,CAAC,CAAA,OAAO,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,EAAE,KAAK,EAAE,EAAC,oBAAoB,EAAE,YAAY,EAAE,KAAK,EAAE,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,GAAS,iBAChL,kBAAkB,EAAE,EACpB,QAAQ,EACR,WAAW,IAAI,KAAC,WAAW,IAAC,aAAa,EAAE,OAAO,GAAG,KACpD,CACT,CAAC;AACN,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import React, {useEffect, useState} from \"react\";\r\nimport classes from \"./styles.module.css\";\r\nimport classNames from \"classnames\";\r\nimport {ScrollToTop} from \"../ScrollToTop/ScrollToTop\";\r\n\r\ninterface Props {\r\n numberPerRow: number;\r\n children?: React.ReactNode;\r\n displayProducts?:any;\r\n renderProduct?:(product: any, pos: number) => React.ReactNode;\r\n customclass?:String;\r\n scrollToTop?:boolean;\r\n}\r\n\r\nconst ProductGrid: React.FC<Props> = (props) => {\r\n const { numberPerRow, children , displayProducts , renderProduct,customclass,scrollToTop} = props;\r\n const gridRef = React.createRef<HTMLDivElement>();\r\n\r\n function renderProductsGrid() {\r\n const productsCards = [] as any[];\r\n\r\n if (displayProducts && displayProducts.length > 0) {\r\n // @ts-ignore\r\n displayProducts.forEach((product , i ) => {\r\n if (renderProduct) {\r\n const productMarkup = renderProduct(product, i + 1);\r\n if (productMarkup) {\r\n // @ts-ignore\r\n productsCards.push(productMarkup);\r\n }\r\n }\r\n });\r\n }\r\n\r\n return productsCards;\r\n }\r\n\r\n useEffect(() => {\r\n if (gridRef.current) {\r\n gridRef.current.style.height = `calc(100vh - ${gridRef.current.getBoundingClientRect().top}px)`;\r\n }\r\n }, [gridRef]);\r\n\r\n return (\r\n <div className={classNames(classes.grid,customclass==\"margin\"?classes.margin:null)} style={{\"--products-per-row\": numberPerRow, width: numberPerRow === 2 ? \"500px\" : \"100%\",} as any}>\r\n {renderProductsGrid()}\r\n {children}\r\n {scrollToTop && <ScrollToTop scrollableRef={gridRef}/>}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ProductGrid;\r\n"]}
@@ -1,16 +1,31 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { API } from "./API";
2
- const BASE_FS_API_URL = "https://api.fastsimon.com";
11
+ import { getInternalURL } from "../utils/getInternalURL";
12
+ const BASE_FS_API_URL = "https://internal-v3joil6oqa-uc.a.run.app/search";
3
13
  export const Products = {
4
- getProductByIds: ({ uuid, storeID, withAttributes, ids }) => {
5
- return API.get({
6
- url: `${BASE_FS_API_URL}/search/get_format_products`,
7
- params: {
8
- UUID: uuid,
9
- store_id: storeID,
10
- products: ids.join(","),
11
- with_product_attributes: withAttributes
12
- }
14
+ getProductByIds: ({ uuid, storeID, withAttributes, ids }) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const params = {
16
+ products: ids,
17
+ with_product_attributes: withAttributes
18
+ };
19
+ var internal_url = getInternalURL();
20
+ if (internal_url == "") {
21
+ internal_url = BASE_FS_API_URL;
22
+ }
23
+ const url = `${internal_url}/get_format_products?UUID=${uuid}&store_id=${storeID}`;
24
+ return yield API.post({
25
+ url: url,
26
+ data: params,
27
+ config: { headers: { 'content-type': 'text/plain' } }
13
28
  });
14
- }
29
+ })
15
30
  };
16
31
  //# sourceMappingURL=products.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/services/products.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,MAAM,eAAe,GAAG,2BAA2B,CAAC;AAOpD,MAAM,CAAC,MAAM,QAAQ,GAAG;IAEpB,eAAe,EAAE,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAC5B,GAAG,EAAmB,EAAE,EAAE;QAC1C,OAAO,GAAG,CAAC,GAAG,CAAC;YACX,GAAG,EAAE,GAAG,eAAe,6BAA6B;YACpD,MAAM,EAAE;gBACJ,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,OAAO;gBACjB,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvB,uBAAuB,EAAE,cAAc;aAC1C;SACJ,CAAC,CAAC;IACP,CAAC;CACJ,CAAA","sourcesContent":["import {API} from \"./API\";\r\n\r\nconst BASE_FS_API_URL = \"https://api.fastsimon.com\";\r\nexport interface getProductsProps {\r\n storeID: number\r\n uuid: string\r\n withAttributes:boolean\r\n ids:number[]\r\n}\r\nexport const Products = {\r\n\r\n getProductByIds: ({uuid, storeID, withAttributes,\r\n ids}: getProductsProps) => {\r\n return API.get({\r\n url: `${BASE_FS_API_URL}/search/get_format_products`,\r\n params: {\r\n UUID: uuid,\r\n store_id: storeID,\r\n products: ids.join(\",\"),\r\n with_product_attributes: withAttributes\r\n }\r\n });\r\n }\r\n}"]}
1
+ {"version":3,"file":"products.js","sourceRoot":"","sources":["../../src/services/products.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEvD,MAAM,eAAe,GAAG,iDAAiD,CAAC;AAO1E,MAAM,CAAC,MAAM,QAAQ,GAAG;IAEpB,eAAe,EAAE,CAAO,EAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,EAAmB,EAAE,EAAE;QAC9E,MAAM,MAAM,GAAwB;YAChC,QAAQ,EAAE,GAAG;YACb,uBAAuB,EAAE,cAAc;SAE1C,CAAC;QACF,IAAI,YAAY,GAAC,cAAc,EAAE,CAAC;QAClC,IAAG,YAAY,IAAE,EAAE,EACnB;YACI,YAAY,GAAC,eAAe,CAAC;SAChC;QACD,MAAM,GAAG,GAAG,GAAG,YAAY,6BAA6B,IAAI,aAAa,OAAO,EAAE,CAAC;QACnF,OAAO,MAAM,GAAG,CAAC,IAAI,CAAC;YAClB,GAAG,EAAE,GAAG;YACR,IAAI,EAAE,MAAM;YACZ,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,EAAE;SACxD,CAAC,CAAC;IACP,CAAC,CAAA;CACJ,CAAA","sourcesContent":["import {API} from \"./API\";\r\nimport {getInternalURL} from \"../utils/getInternalURL\";\r\n\r\nconst BASE_FS_API_URL = \"https://internal-v3joil6oqa-uc.a.run.app/search\";\r\nexport interface getProductsProps {\r\n storeID: number\r\n uuid: string\r\n withAttributes:boolean\r\n ids: number[]\r\n}\r\nexport const Products = {\r\n\r\n getProductByIds: async ({uuid, storeID, withAttributes, ids}: getProductsProps) => {\r\n const params: Record<string, any> = {\r\n products: ids,\r\n with_product_attributes: withAttributes\r\n\r\n };\r\n var internal_url=getInternalURL();\r\n if(internal_url==\"\")\r\n {\r\n internal_url=BASE_FS_API_URL;\r\n }\r\n const url = `${internal_url}/get_format_products?UUID=${uuid}&store_id=${storeID}`;\r\n return await API.post({\r\n url: url,\r\n data: params,\r\n config: { headers: { 'content-type': 'text/plain' } }\r\n });\r\n }\r\n}"]}
@@ -10,6 +10,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { API, fastSimonGet } from "./API";
11
11
  import { FacetsParser } from "@fast-simon/utilities";
12
12
  import { getReasoningVectorSearch } from "../utils/getLSVectorSearch";
13
+ import { getInternalURL } from "../utils/getInternalURL";
13
14
  const BASE_URL = "https://internal-v3joil6oqa-uc.a.run.app/search";
14
15
  export const FullTextSearch = {
15
16
  getFullTextSearch: ({ uuid, storeID, facetRequired, narrow, page, productsPerPage, withAttributes, query, searchWithinSearch, visualMerchandising, lastProduct }) => __awaiter(void 0, void 0, void 0, function* () {
@@ -63,6 +64,10 @@ export const FullTextSearch = {
63
64
  }),
64
65
  getReasoningFullTextSearch: ({ uuid, storeID, cdn, facetRequired, narrowBy, page, productsPerPage, term, sortBy, withAttributes, recent, searchWithinSearch, segments, disable_semantics, disable_merchandising, disable_strategies, disable_turbolinks, disable_personalization, disable_merchandising_rules }) => {
65
66
  var _a;
67
+ var internal_url = getInternalURL();
68
+ if (internal_url == "") {
69
+ internal_url = BASE_URL;
70
+ }
66
71
  const params = {
67
72
  UUID: uuid,
68
73
  store_id: storeID,
@@ -75,7 +80,7 @@ export const FullTextSearch = {
75
80
  products_per_page: productsPerPage,
76
81
  sort_by: sortBy,
77
82
  sp: recent,
78
- m: JSON.stringify(segments) || undefined,
83
+ m: 1,
79
84
  search_within_search: searchWithinSearch,
80
85
  disable_semantics: disable_semantics ? 1 : 0,
81
86
  disable_merchandising: disable_merchandising ? 1 : 0,
@@ -87,7 +92,7 @@ export const FullTextSearch = {
87
92
  params["vector_search_reasoning"] = (_a = getReasoningVectorSearch()) !== null && _a !== void 0 ? _a : undefined;
88
93
  params["segments"] = JSON.stringify(segments) || undefined;
89
94
  return API.get({
90
- url: `${BASE_URL}/full_text_search_reasoning`,
95
+ url: `${internal_url}/full_text_search_reasoning`,
91
96
  params,
92
97
  });
93
98
  },
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/services/search.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,EAAC,GAAG,EAAE,YAAY,EAAC,MAAM,OAAO,CAAC;AACxC,OAAO,EAAC,YAAY,EAAc,MAAM,uBAAuB,CAAA;AAE/D,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AAGpE,MAAM,QAAQ,GAAG,iDAAiD,CAAC;AAEnE,MAAM,CAAC,MAAM,cAAc,GAAG;IACtB,iBAAiB,EAAE,CAAO,EACM,IAAI,EACJ,OAAO,EACP,aAAa,EACb,MAAM,EACN,IAAI,EACJ,eAAe,EACf,cAAc,EACd,KAAK,EACL,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,EACT,EAAE,EAAE;QAElC,MAAM,MAAM,GAAwB;YAChC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,eAAe,EAAE,CAAC;YAClB,CAAC,EAAE,kBAAkB,IAAI,KAAK;YAC9B,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;YACnB,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,iBAAiB,EAAE,eAAe;YAClC,oBAAoB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;SAC1I,CAAC;QACF,IAAG,WAAW,EAAE;YACZ,MAAM,CAAC,cAAc,CAAC,GAAG,WAAW,CAAA;SACvC;QACD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAA6B,EAAC,GAAG,EAAE,QAAQ,GAAC,0BAA0B,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAC,OAAO,EAAE,EAAC,cAAc,EAAE,YAAY,EAAC,EAAC,EAAC,CAAC,CAAC;QACpK,OAAO;YACH,IAAI,EAAE,GAAG;YACT,SAAS,EAAE,GAAS,EAAE;gBAAC,OAAA,CAAC,CAAA,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,gBAAgB,EAAC,CAAC,CAAC,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,MAAM,cAAc,CAAC,kBAAkB,CAAC,EAAmC,IAAI;oBACzL,OAAO;oBACP,aAAa;oBACb,MAAM;oBACN,IAAI;oBACJ,eAAe;oBACf,cAAc;oBACd,kBAAkB;oBAClB,mBAAmB;oBACnB,WAAW;oBACX,KAAK,EAAC,CAAC,CACV,CAAA;cAAA;SACJ,CAAC;IACN,CAAC,CAAA;IACD,kBAAkB,EAAE,CAAO,EACc,IAAI,EACJ,OAAO,EACP,MAAM,EACN,IAAI,EACJ,eAAe,EACf,cAAc,EACd,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,KAAK,EACH,EAAE,EAAE;QAE3C,MAAM,MAAM,GAAwB;YAChC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,eAAe,EAAE,CAAC;YAClB,CAAC,EAAE,KAAK;YACR,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;YACnB,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAC9B,iBAAiB,EAAE,eAAe;YAClC,oBAAoB,EAAE,kBAAkB;YACxC,oBAAoB,EAAE,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;SACxG,CAAC;QAEF,MAAM,GAAG,GAAG,MAAM,YAAY,CAA6B,QAAQ,EAAE,yBAAyB,EAAE,MAAM,CAAC,CAAC;QAExG,OAAO,uBAAuB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACvE,CAAC,CAAA;IACD,0BAA0B,EAAE,CAAC,EACT,IAAI,EAAE,OAAO,EAAE,GAAG,EAClB,aAAa,EAAE,QAAQ,EAAE,IAAI,EAC7B,eAAe,EAAE,IAAI,EAAE,MAAM,EAC3B,cAAc,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EACtD,iBAAiB,EAAC,qBAAqB,EAAC,kBAAkB,EAAC,kBAAkB,EAAC,uBAAuB,EAAC,2BAA2B,EAE/G,EAAE,EAAE;;QAC1C,MAAM,MAAM,GAAwB;YAChC,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,GAAG;YAClB,eAAe,EAAE,aAAa;YAC9B,CAAC,EAAE,IAAI;YACP,QAAQ,EAAE,IAAI;YACd,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAChC,iBAAiB,EAAE,eAAe;YAClC,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,MAAM;YACV,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS;YACxC,oBAAoB,EAAE,kBAAkB;YACxC,iBAAiB,EAAC,iBAAiB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACvC,qBAAqB,EAAC,qBAAqB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YAC/C,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,uBAAuB,EAAC,uBAAuB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACnD,2BAA2B,EAAC,2BAA2B,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;SAC9D,CAAC;QAGF,MAAM,CAAC,yBAAyB,CAAC,GAAG,MAAA,wBAAwB,EAAE,mCAAE,SAAS,CAAC;QAC1E,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QAC3D,OAAO,GAAG,CAAC,GAAG,CAA4B;YACtC,GAAG,EAAE,GAAG,QAAQ,6BAA6B;YAC7C,MAAM;SAET,CAAC,CAAC;IAEH,CAAC;CACJ,CACJ;AACD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAgB,EAAE,gBAAyB,EAAE,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC","sourcesContent":["import {CategoryNavigationResponse} from \"../@types/categoriesNavigation\";\r\nimport {API, fastSimonGet} from \"./API\";\r\nimport {FacetsParser, ServerFacet} from \"@fast-simon/utilities\"\r\nimport {fullTextSearchProps, FullTextServerResponseAll} from \"../@types/results\";\r\nimport {getReasoningVectorSearch} from \"../utils/getLSVectorSearch\";\r\n\r\n\r\nconst BASE_URL = \"https://internal-v3joil6oqa-uc.a.run.app/search\";\r\n\r\nexport const FullTextSearch = {\r\n getFullTextSearch: async ({\r\n uuid,\r\n storeID,\r\n facetRequired,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n query,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n lastProduct\r\n }: any) => {\r\n\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n facets_required: 1,\r\n q: searchWithinSearch || query,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrow),\r\n products_per_page: productsPerPage,\r\n visual_merchandising: !searchWithinSearch ? JSON.stringify(visualMerchandising).replaceAll('\"[', '[').replaceAll(']\"', ']') : undefined\r\n };\r\n if(lastProduct) {\r\n params['last_product'] = lastProduct\r\n }\r\n const res = await API.post<CategoryNavigationResponse>({url: BASE_URL+'/full_text_search_editor', data: params, config: {headers: {'content-type': 'text/plain'}}});\r\n return {\r\n data: res,\r\n getFacets: async () => (res?.facets_completed ? transformFacetsOnlyData(res.facets, res.avoid_tag_prefixes) : await FullTextSearch.fullTextFacetsOnly({ uuid,\r\n storeID,\r\n facetRequired,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n lastProduct,\r\n query})\r\n )\r\n };\r\n },\r\n fullTextFacetsOnly: async ({\r\n uuid,\r\n storeID,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n collectionID,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n query\r\n }: any) => {\r\n\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n facets_required: 2,\r\n q: query,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrow),\r\n products_per_page: productsPerPage,\r\n search_within_search: searchWithinSearch,\r\n visual_merchandising: JSON.stringify(visualMerchandising).replaceAll('\"[', '[').replaceAll(']\"', ']')\r\n };\r\n\r\n const res = await fastSimonGet<CategoryNavigationResponse>(BASE_URL, 'full_text_search_editor', params);\r\n\r\n return transformFacetsOnlyData(res.facets, res.avoid_tag_prefixes);\r\n },\r\n getReasoningFullTextSearch: ({\r\n uuid, storeID, cdn,\r\n facetRequired, narrowBy, page,\r\n productsPerPage, term, sortBy\r\n , withAttributes, recent, searchWithinSearch, segments,\r\n disable_semantics,disable_merchandising,disable_strategies,disable_turbolinks,disable_personalization,disable_merchandising_rules\r\n\r\n }: fullTextSearchProps) => {\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n cdn_cache_key: cdn,\r\n facets_required: facetRequired,\r\n q: term,\r\n page_num: page,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrowBy),\r\n products_per_page: productsPerPage,\r\n sort_by: sortBy,\r\n sp: recent,\r\n m: JSON.stringify(segments) || undefined,\r\n search_within_search: searchWithinSearch,\r\n disable_semantics:disable_semantics?1:0,\r\n disable_merchandising:disable_merchandising?1:0,\r\n disable_strategies:disable_strategies?1:0,\r\n disable_turbolinks:disable_turbolinks?1:0,\r\n disable_personalization:disable_personalization?1:0,\r\n disable_merchandising_rules:disable_merchandising_rules?1:0\r\n };\r\n\r\n\r\n params[\"vector_search_reasoning\"] = getReasoningVectorSearch()??undefined;\r\n params[\"segments\"] = JSON.stringify(segments) || undefined;\r\n return API.get<FullTextServerResponseAll>({\r\n url: `${BASE_URL}/full_text_search_reasoning`,\r\n params,\r\n\r\n });\r\n\r\n },\r\n }\r\n;\r\nexport const transformFacetsOnlyData = (r: ServerFacet[], avoidTagPrefixes?: string) => new FacetsParser().parseFacets(r, avoidTagPrefixes ? avoidTagPrefixes.split(\",\") : []);"]}
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/services/search.ts"],"names":[],"mappings":"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","sourcesContent":["import {CategoryNavigationResponse} from \"../@types/categoriesNavigation\";\r\nimport {API, fastSimonGet} from \"./API\";\r\nimport {FacetsParser, ServerFacet} from \"@fast-simon/utilities\"\r\nimport {fullTextSearchProps, FullTextServerResponseAll} from \"../@types/results\";\r\nimport {getReasoningVectorSearch} from \"../utils/getLSVectorSearch\";\r\nimport {getInternalURL} from \"../utils/getInternalURL\";\r\n\r\n\r\nconst BASE_URL = \"https://internal-v3joil6oqa-uc.a.run.app/search\";\r\n\r\nexport const FullTextSearch = {\r\n getFullTextSearch: async ({\r\n uuid,\r\n storeID,\r\n facetRequired,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n query,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n lastProduct\r\n }: any) => {\r\n\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n facets_required: 1,\r\n q: searchWithinSearch || query,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrow),\r\n products_per_page: productsPerPage,\r\n visual_merchandising: !searchWithinSearch ? JSON.stringify(visualMerchandising).replaceAll('\"[', '[').replaceAll(']\"', ']') : undefined\r\n };\r\n if(lastProduct) {\r\n params['last_product'] = lastProduct\r\n }\r\n const res = await API.post<CategoryNavigationResponse>({url: BASE_URL+'/full_text_search_editor', data: params, config: {headers: {'content-type': 'text/plain'}}});\r\n return {\r\n data: res,\r\n getFacets: async () => (res?.facets_completed ? transformFacetsOnlyData(res.facets, res.avoid_tag_prefixes) : await FullTextSearch.fullTextFacetsOnly({ uuid,\r\n storeID,\r\n facetRequired,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n lastProduct,\r\n query})\r\n )\r\n };\r\n },\r\n fullTextFacetsOnly: async ({\r\n uuid,\r\n storeID,\r\n narrow,\r\n page,\r\n productsPerPage,\r\n withAttributes,\r\n collectionID,\r\n searchWithinSearch,\r\n visualMerchandising,\r\n query\r\n }: any) => {\r\n\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n facets_required: 2,\r\n q: query,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrow),\r\n products_per_page: productsPerPage,\r\n search_within_search: searchWithinSearch,\r\n visual_merchandising: JSON.stringify(visualMerchandising).replaceAll('\"[', '[').replaceAll(']\"', ']')\r\n };\r\n\r\n const res = await fastSimonGet<CategoryNavigationResponse>(BASE_URL, 'full_text_search_editor', params);\r\n\r\n return transformFacetsOnlyData(res.facets, res.avoid_tag_prefixes);\r\n },\r\n getReasoningFullTextSearch: ({\r\n uuid, storeID, cdn,\r\n facetRequired, narrowBy, page,\r\n productsPerPage, term, sortBy\r\n , withAttributes, recent, searchWithinSearch, segments,\r\n disable_semantics,disable_merchandising,disable_strategies,disable_turbolinks,disable_personalization,disable_merchandising_rules\r\n\r\n }: fullTextSearchProps) => {\r\n var internal_url=getInternalURL();\r\n if(internal_url==\"\")\r\n {\r\n internal_url=BASE_URL;\r\n }\r\n\r\n const params: Record<string, any> = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n cdn_cache_key: cdn,\r\n facets_required: facetRequired,\r\n q: term,\r\n page_num: page,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrowBy),\r\n products_per_page: productsPerPage,\r\n sort_by: sortBy,\r\n sp: recent,\r\n m: 1,\r\n search_within_search: searchWithinSearch,\r\n disable_semantics:disable_semantics?1:0,\r\n disable_merchandising:disable_merchandising?1:0,\r\n disable_strategies:disable_strategies?1:0,\r\n disable_turbolinks:disable_turbolinks?1:0,\r\n disable_personalization:disable_personalization?1:0,\r\n disable_merchandising_rules:disable_merchandising_rules?1:0\r\n };\r\n\r\n\r\n params[\"vector_search_reasoning\"] = getReasoningVectorSearch()??undefined;\r\n params[\"segments\"] = JSON.stringify(segments) || undefined;\r\n return API.get<FullTextServerResponseAll>({\r\n url: `${internal_url}/full_text_search_reasoning`,\r\n params,\r\n });\r\n\r\n },\r\n }\r\n;\r\nexport const transformFacetsOnlyData = (r: ServerFacet[], avoidTagPrefixes?: string) => new FacetsParser().parseFacets(r, avoidTagPrefixes ? avoidTagPrefixes.split(\",\") : []);"]}
@@ -1,7 +1,12 @@
1
1
  import { API } from "./API";
2
+ import { getInternalURL } from "../utils/getInternalURL";
2
3
  const BASE_URL = "https://api.fastsimon.com";
3
4
  export const SmartCollections = {
4
5
  getSmartCollections: ({ uuid, storeID, cdn, facetRequired, narrowBy, page, productsPerPage, sortBy, withAttributes, categoryID, recent, rec, searchWithinSearch, segments, disable_semantics, disable_merchandising, disable_strategies, disable_turbolinks, disable_personalization, disable_merchandising_rules }) => {
6
+ var internal_url = getInternalURL();
7
+ if (internal_url == "") {
8
+ internal_url = BASE_URL;
9
+ }
5
10
  const params = {
6
11
  UUID: uuid,
7
12
  store_id: storeID,
@@ -25,7 +30,7 @@ export const SmartCollections = {
25
30
  };
26
31
  params["segments"] = JSON.stringify(segments) || undefined;
27
32
  return API.get({
28
- url: `${BASE_URL}/categories_navigation_reasoning`,
33
+ url: `${internal_url}/categories_navigation_reasoning`,
29
34
  params,
30
35
  });
31
36
  },
@@ -1 +1 @@
1
- {"version":3,"file":"smartCollections.js","sourceRoot":"","sources":["../../src/services/smartCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAG1B,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAG7C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IACxB,mBAAmB,EAAE,CAAC,EACI,IAAI,EAAE,OAAO,EAAE,GAAG,EAClB,aAAa,EAAE,QAAQ,EAAE,IAAI,EAC7B,eAAe,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EACvE,iBAAiB,EAAC,qBAAqB,EAAC,kBAAkB,EAAC,kBAAkB,EAAC,uBAAuB,EAAC,2BAA2B,EAC7G,EAAE,EAAE;QAC9C,MAAM,MAAM,GAAG;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,GAAG;YAClB,eAAe,EAAE,aAAa;YAC9B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;YACnB,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAChC,iBAAiB,EAAE,eAAe;YAClC,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,MAAM;YACV,oBAAoB,EAAE,kBAAkB;YACxC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAE,SAAS;YACvC,iBAAiB,EAAC,iBAAiB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACvC,qBAAqB,EAAC,qBAAqB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YAC/C,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,uBAAuB,EAAC,uBAAuB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACnD,2BAA2B,EAAC,2BAA2B,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;SAE9D,CAAC;QAED,MAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QACpE,OAAO,GAAG,CAAC,GAAG,CAA0B;YACpC,GAAG,EAAE,GAAG,QAAQ,kCAAkC;YAClD,MAAM;SACT,CAAC,CAAC;IACP,CAAC;CACJ,CACJ","sourcesContent":["import {API} from \"./API\";\r\nimport {smartCollectionsProps, smartCollectionsResults} from \"../@types/categories\";\r\n\r\nconst BASE_URL = \"https://api.fastsimon.com\";\r\n\r\n\r\nexport const SmartCollections = {\r\n getSmartCollections: ({\r\n uuid, storeID, cdn,\r\n facetRequired, narrowBy, page,\r\n productsPerPage, sortBy\r\n , withAttributes, categoryID, recent, rec, searchWithinSearch, segments,\r\n disable_semantics,disable_merchandising,disable_strategies,disable_turbolinks,disable_personalization,disable_merchandising_rules\r\n }: smartCollectionsProps) => {\r\n const params = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n cdn_cache_key: cdn,\r\n facets_required: facetRequired,\r\n category_id: categoryID,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrowBy),\r\n products_per_page: productsPerPage,\r\n sort_by: sortBy,\r\n sp: recent,\r\n search_within_search: searchWithinSearch,\r\n st: JSON.stringify(segments)||undefined,\r\n disable_semantics:disable_semantics?1:0,\r\n disable_merchandising:disable_merchandising?1:0,\r\n disable_strategies:disable_strategies?1:0,\r\n disable_turbolinks:disable_turbolinks?1:0,\r\n disable_personalization:disable_personalization?1:0,\r\n disable_merchandising_rules:disable_merchandising_rules?1:0\r\n\r\n };\r\n\r\n (params as any)[\"segments\"] = JSON.stringify(segments) || undefined;\r\n return API.get<smartCollectionsResults>({\r\n url: `${BASE_URL}/categories_navigation_reasoning`,\r\n params,\r\n });\r\n },\r\n }\r\n;"]}
1
+ {"version":3,"file":"smartCollections.js","sourceRoot":"","sources":["../../src/services/smartCollections.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,yBAAyB,CAAC;AAEvD,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAG7C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IACxB,mBAAmB,EAAE,CAAC,EACI,IAAI,EAAE,OAAO,EAAE,GAAG,EAClB,aAAa,EAAE,QAAQ,EAAE,IAAI,EAC7B,eAAe,EAAE,MAAM,EACrB,cAAc,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,QAAQ,EACvE,iBAAiB,EAAC,qBAAqB,EAAC,kBAAkB,EAAC,kBAAkB,EAAC,uBAAuB,EAAC,2BAA2B,EAC7G,EAAE,EAAE;QAC9C,IAAI,YAAY,GAAC,cAAc,EAAE,CAAC;QAClC,IAAG,YAAY,IAAE,EAAE,EACnB;YACI,YAAY,GAAC,QAAQ,CAAC;SACzB;QAED,MAAM,MAAM,GAAG;YACX,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO;YACjB,aAAa,EAAE,GAAG;YAClB,eAAe,EAAE,aAAa;YAC9B,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,CAAC;YACnB,uBAAuB,EAAE,cAAc;YACvC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAChC,iBAAiB,EAAE,eAAe;YAClC,OAAO,EAAE,MAAM;YACf,EAAE,EAAE,MAAM;YACV,oBAAoB,EAAE,kBAAkB;YACxC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAE,SAAS;YACvC,iBAAiB,EAAC,iBAAiB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACvC,qBAAqB,EAAC,qBAAqB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YAC/C,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,kBAAkB,EAAC,kBAAkB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACzC,uBAAuB,EAAC,uBAAuB,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;YACnD,2BAA2B,EAAC,2BAA2B,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC;SAE9D,CAAC;QAED,MAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC;QACpE,OAAO,GAAG,CAAC,GAAG,CAA0B;YACpC,GAAG,EAAE,GAAG,YAAY,kCAAkC;YACtD,MAAM;SACT,CAAC,CAAC;IACP,CAAC;CACJ,CACJ","sourcesContent":["import {API} from \"./API\";\r\nimport {smartCollectionsProps, smartCollectionsResults} from \"../@types/categories\";\r\nimport {getInternalURL} from \"../utils/getInternalURL\";\r\n\r\nconst BASE_URL = \"https://api.fastsimon.com\";\r\n\r\n\r\nexport const SmartCollections = {\r\n getSmartCollections: ({\r\n uuid, storeID, cdn,\r\n facetRequired, narrowBy, page,\r\n productsPerPage, sortBy\r\n , withAttributes, categoryID, recent, rec, searchWithinSearch, segments,\r\n disable_semantics,disable_merchandising,disable_strategies,disable_turbolinks,disable_personalization,disable_merchandising_rules\r\n }: smartCollectionsProps) => {\r\n var internal_url=getInternalURL();\r\n if(internal_url==\"\")\r\n {\r\n internal_url=BASE_URL;\r\n }\r\n\r\n const params = {\r\n UUID: uuid,\r\n store_id: storeID,\r\n cdn_cache_key: cdn,\r\n facets_required: facetRequired,\r\n category_id: categoryID,\r\n page_num: page ?? 1,\r\n with_product_attributes: withAttributes,\r\n narrow: JSON.stringify(narrowBy),\r\n products_per_page: productsPerPage,\r\n sort_by: sortBy,\r\n sp: recent,\r\n search_within_search: searchWithinSearch,\r\n st: JSON.stringify(segments)||undefined,\r\n disable_semantics:disable_semantics?1:0,\r\n disable_merchandising:disable_merchandising?1:0,\r\n disable_strategies:disable_strategies?1:0,\r\n disable_turbolinks:disable_turbolinks?1:0,\r\n disable_personalization:disable_personalization?1:0,\r\n disable_merchandising_rules:disable_merchandising_rules?1:0\r\n\r\n };\r\n\r\n (params as any)[\"segments\"] = JSON.stringify(segments) || undefined;\r\n return API.get<smartCollectionsResults>({\r\n url: `${internal_url}/categories_navigation_reasoning`,\r\n params,\r\n });\r\n },\r\n }\r\n;"]}
@@ -0,0 +1 @@
1
+ export declare const getInternalURL: () => string;
@@ -0,0 +1,8 @@
1
+ export const getInternalURL = () => {
2
+ const url = localStorage.getItem("internal_url");
3
+ if (url !== null) {
4
+ return url;
5
+ }
6
+ return "";
7
+ };
8
+ //# sourceMappingURL=getInternalURL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getInternalURL.js","sourceRoot":"","sources":["../../src/utils/getInternalURL.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,GAAW,EAAE;IACvC,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACjD,IAAI,GAAG,KAAK,IAAI,EAAE;QACd,OAAO,GAAG,CAAC;KACd;IACD,OAAO,EAAE,CAAC;AACd,CAAC,CAAA","sourcesContent":["export const getInternalURL = (): string => {\r\n const url = localStorage.getItem(\"internal_url\");\r\n if (url !== null) {\r\n return url;\r\n }\r\n return \"\";\r\n}\r\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fast-simon/dashboard-utilities",
3
- "version": "1.0.41",
3
+ "version": "1.0.43",
4
4
  "scripts": {
5
5
  "dev": "vite",
6
6
  "preview": "vite preview",