@sentecacommerce-theme/lib 0.12.49 → 0.12.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/cjs/cms/api/index.js +8 -0
  2. package/dist/cjs/cms/api/index.js.map +1 -1
  3. package/dist/cjs/cms/api/mutations/index.js +28 -0
  4. package/dist/cjs/cms/api/mutations/index.js.map +1 -0
  5. package/dist/cjs/cms/api/mutations/useCMSFoldersCreateMutation.js +59 -0
  6. package/dist/cjs/cms/api/mutations/useCMSFoldersCreateMutation.js.map +1 -0
  7. package/dist/cjs/cms/api/mutations/useCMSMediaDeleteAssetsMutation.js +51 -0
  8. package/dist/cjs/cms/api/mutations/useCMSMediaDeleteAssetsMutation.js.map +1 -0
  9. package/dist/cjs/cms/api/mutations/useCMSMediaUploadAssetsMutation.js +57 -0
  10. package/dist/cjs/cms/api/mutations/useCMSMediaUploadAssetsMutation.js.map +1 -0
  11. package/dist/cjs/cms/api/queries/index.js +16 -0
  12. package/dist/cjs/cms/api/queries/index.js.map +1 -1
  13. package/dist/cjs/cms/api/queries/useCMSFoldersQuery.js +40 -0
  14. package/dist/cjs/cms/api/queries/useCMSFoldersQuery.js.map +1 -0
  15. package/dist/cjs/cms/api/queries/useCMSMediaQuery.js +44 -0
  16. package/dist/cjs/cms/api/queries/useCMSMediaQuery.js.map +1 -0
  17. package/dist/cjs/cms/api/utils/cacheKeys.js +10 -0
  18. package/dist/cjs/cms/api/utils/cacheKeys.js.map +1 -0
  19. package/dist/cjs/cms/api/utils/index.js +12 -0
  20. package/dist/cjs/cms/api/utils/index.js.map +1 -0
  21. package/dist/cjs/cms/hooks/index.js +40 -0
  22. package/dist/cjs/cms/hooks/index.js.map +1 -1
  23. package/dist/cjs/cms/hooks/useCmsFolders.js +8 -0
  24. package/dist/cjs/cms/hooks/useCmsFolders.js.map +1 -0
  25. package/dist/cjs/cms/hooks/useCmsMedia.js +8 -0
  26. package/dist/cjs/cms/hooks/useCmsMedia.js.map +1 -0
  27. package/dist/cjs/cms/hooks/useCmsMediaDeleteAssets.js +8 -0
  28. package/dist/cjs/cms/hooks/useCmsMediaDeleteAssets.js.map +1 -0
  29. package/dist/cjs/cms/hooks/useCmsMediaUploadAssets.js +8 -0
  30. package/dist/cjs/cms/hooks/useCmsMediaUploadAssets.js.map +1 -0
  31. package/dist/cjs/cms/hooks/useCreateCmsFolders.js +8 -0
  32. package/dist/cjs/cms/hooks/useCreateCmsFolders.js.map +1 -0
  33. package/dist/cjs/components/FadeIn/index.js +1 -1
  34. package/dist/cjs/components/FadeIn/index.js.map +1 -1
  35. package/dist/cjs/config/SentecaProvider.js +26 -1
  36. package/dist/cjs/config/SentecaProvider.js.map +1 -1
  37. package/dist/cjs/hooks/basket-hooks/useGoToCheckout/index.js +1 -1
  38. package/dist/cjs/hooks/basket-hooks/useGoToCheckout/index.js.map +1 -1
  39. package/dist/cjs/listing/api/queries/useListingQuery.js +4 -4
  40. package/dist/cjs/listing/api/queries/useListingQuery.js.map +1 -1
  41. package/dist/cjs/listing/hooks/useListingBreadcrumbs.js +1 -1
  42. package/dist/cjs/listing/hooks/useListingBreadcrumbs.js.map +1 -1
  43. package/dist/cjs/listing/utils/buildCategoryQuery.js +3 -6
  44. package/dist/cjs/listing/utils/buildCategoryQuery.js.map +1 -1
  45. package/dist/cjs/listing/utils/buildFilterQuery.js +7 -2
  46. package/dist/cjs/listing/utils/buildFilterQuery.js.map +1 -1
  47. package/dist/esm/cms/api/index.js +1 -0
  48. package/dist/esm/cms/api/index.js.map +1 -1
  49. package/dist/esm/cms/api/mutations/index.js +4 -0
  50. package/dist/esm/cms/api/mutations/index.js.map +1 -0
  51. package/dist/esm/cms/api/mutations/useCMSFoldersCreateMutation.js +31 -0
  52. package/dist/esm/cms/api/mutations/useCMSFoldersCreateMutation.js.map +1 -0
  53. package/dist/esm/cms/api/mutations/useCMSMediaDeleteAssetsMutation.js +21 -0
  54. package/dist/esm/cms/api/mutations/useCMSMediaDeleteAssetsMutation.js.map +1 -0
  55. package/dist/esm/cms/api/mutations/useCMSMediaUploadAssetsMutation.js +26 -0
  56. package/dist/esm/cms/api/mutations/useCMSMediaUploadAssetsMutation.js.map +1 -0
  57. package/dist/esm/cms/api/queries/index.js +2 -0
  58. package/dist/esm/cms/api/queries/index.js.map +1 -1
  59. package/dist/esm/cms/api/queries/useCMSFoldersQuery.js +10 -0
  60. package/dist/esm/cms/api/queries/useCMSFoldersQuery.js.map +1 -0
  61. package/dist/esm/cms/api/queries/useCMSMediaQuery.js +13 -0
  62. package/dist/esm/cms/api/queries/useCMSMediaQuery.js.map +1 -0
  63. package/dist/esm/cms/api/utils/cacheKeys.js +5 -0
  64. package/dist/esm/cms/api/utils/cacheKeys.js.map +1 -0
  65. package/dist/esm/cms/api/utils/index.js +2 -0
  66. package/dist/esm/cms/api/utils/index.js.map +1 -0
  67. package/dist/esm/cms/hooks/index.js +5 -0
  68. package/dist/esm/cms/hooks/index.js.map +1 -1
  69. package/dist/esm/cms/hooks/useCmsFolders.js +3 -0
  70. package/dist/esm/cms/hooks/useCmsFolders.js.map +1 -0
  71. package/dist/esm/cms/hooks/useCmsMedia.js +3 -0
  72. package/dist/esm/cms/hooks/useCmsMedia.js.map +1 -0
  73. package/dist/esm/cms/hooks/useCmsMediaDeleteAssets.js +3 -0
  74. package/dist/esm/cms/hooks/useCmsMediaDeleteAssets.js.map +1 -0
  75. package/dist/esm/cms/hooks/useCmsMediaUploadAssets.js +3 -0
  76. package/dist/esm/cms/hooks/useCmsMediaUploadAssets.js.map +1 -0
  77. package/dist/esm/cms/hooks/useCreateCmsFolders.js +3 -0
  78. package/dist/esm/cms/hooks/useCreateCmsFolders.js.map +1 -0
  79. package/dist/esm/components/FadeIn/index.js +1 -1
  80. package/dist/esm/components/FadeIn/index.js.map +1 -1
  81. package/dist/esm/config/SentecaProvider.js +23 -1
  82. package/dist/esm/config/SentecaProvider.js.map +1 -1
  83. package/dist/esm/hooks/basket-hooks/useGoToCheckout/index.js +1 -1
  84. package/dist/esm/hooks/basket-hooks/useGoToCheckout/index.js.map +1 -1
  85. package/dist/esm/listing/api/queries/useListingQuery.js +4 -4
  86. package/dist/esm/listing/api/queries/useListingQuery.js.map +1 -1
  87. package/dist/esm/listing/hooks/useListingBreadcrumbs.js +1 -1
  88. package/dist/esm/listing/hooks/useListingBreadcrumbs.js.map +1 -1
  89. package/dist/esm/listing/utils/buildCategoryQuery.js +4 -4
  90. package/dist/esm/listing/utils/buildCategoryQuery.js.map +1 -1
  91. package/dist/esm/listing/utils/buildFilterQuery.js +7 -4
  92. package/dist/esm/listing/utils/buildFilterQuery.js.map +1 -1
  93. package/dist/types/cms/api/index.d.ts +1 -0
  94. package/dist/types/cms/api/mutations/index.d.ts +3 -0
  95. package/dist/types/cms/api/mutations/useCMSFoldersCreateMutation.d.ts +5 -0
  96. package/dist/types/cms/api/mutations/useCMSMediaDeleteAssetsMutation.d.ts +2 -0
  97. package/dist/types/cms/api/mutations/useCMSMediaUploadAssetsMutation.d.ts +6 -0
  98. package/dist/types/cms/api/queries/index.d.ts +2 -0
  99. package/dist/types/cms/api/queries/useCMSFoldersQuery.d.ts +16 -0
  100. package/dist/types/cms/api/queries/useCMSMediaQuery.d.ts +19 -0
  101. package/dist/types/cms/api/utils/cacheKeys.d.ts +4 -0
  102. package/dist/types/cms/api/utils/index.d.ts +1 -0
  103. package/dist/types/cms/hooks/index.d.ts +5 -0
  104. package/dist/types/cms/hooks/useCmsFolders.d.ts +2 -0
  105. package/dist/types/cms/hooks/useCmsMedia.d.ts +2 -0
  106. package/dist/types/cms/hooks/useCmsMediaDeleteAssets.d.ts +2 -0
  107. package/dist/types/cms/hooks/useCmsMediaUploadAssets.d.ts +2 -0
  108. package/dist/types/cms/hooks/useCreateCmsFolders.d.ts +2 -0
  109. package/dist/types/config/SentecaProvider.d.ts +3 -2
  110. package/dist/types/hooks/basket-hooks/useGoToCheckout/index.d.ts +2 -2
  111. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/FadeIn/index.tsx"],"names":["React","useEffect","useMemo","useRef","styled","css","keyframes","useBoolean","useConfigState","getElementOffset","getAnimationDelay","index","itemsPerRow","chainDelay","FadeIn","children","delay","direction","AnimationDirectionsEnum","Top","defaultItemsPerRow","thresholdPercentage","isInView","setIsInView","config","containerRef","defaultAnimationDelay","Object","keys","reduce","value","breakpoint","min","theme","breakpoints","breakpointItemsPerRow","query","container","current","handleScroll","screenHeight","window","screen","height","scrollBottom","scrollY","threshold","shouldTrigger","top","on","removeEventListener","addEventListener","setTimeout","fadeInTop","fadeInBottom","fadeInLeft","fadeInRight","FadeInStyledComponent","div","props","animation"],"mappings":"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","sourcesContent":["/* eslint-disable */\n\nimport React, { useEffect, useMemo, useRef } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { useBoolean } from '../../hooks/ui-hooks'\nimport { useConfigState } from '../../hooks/useConfig'\nimport { getElementOffset } from '../../utils'\n\nconst getAnimationDelay = (\n index: number,\n itemsPerRow: number,\n chainDelay: number\n): number => {\n return (index % itemsPerRow) * chainDelay\n}\n\nexport const FadeIn = ({\n children,\n delay,\n direction = AnimationDirectionsEnum.Top,\n chainDelay = 0,\n itemsPerRow = {},\n defaultItemsPerRow = 1,\n index = 0,\n thresholdPercentage = 0.1,\n}: FadeInProps) => {\n const [isInView, setIsInView] = useBoolean(false)\n const config: any = useConfigState()\n const containerRef = useRef<HTMLDivElement | null>(null)\n\n const defaultAnimationDelay = getAnimationDelay(\n index,\n defaultItemsPerRow,\n chainDelay\n )\n\n // generate animation delay css for different breakpoints\n const css = useMemo(() => {\n return Object.keys(itemsPerRow).reduce((value, breakpoint) => {\n const min = config?.theme?.breakpoints?.[breakpoint]?.min // min width\n\n if (!min) return value\n\n const breakpointItemsPerRow = itemsPerRow[breakpoint] // items per row on the current breakpoint\n\n // calculate the delay\n const delay = getAnimationDelay(index, breakpointItemsPerRow, chainDelay)\n\n // generate media query css\n const query = `@media(min-width: ${min}) { animation-delay: ${delay}ms; }`\n\n return `${value} ${query}`\n }, `animation-delay: ${defaultAnimationDelay}ms; `)\n }, [chainDelay, index, defaultAnimationDelay, itemsPerRow])\n\n useEffect(() => {\n const container = containerRef.current\n\n if (!container) return\n\n const handleScroll = () => {\n const screenHeight = window.screen.height\n const scrollBottom = window.scrollY + screenHeight\n\n const threshold = screenHeight * thresholdPercentage // screenHeight\n\n const shouldTrigger =\n scrollBottom - threshold >= getElementOffset(container).top\n\n if (shouldTrigger) {\n setIsInView.on()\n\n window.removeEventListener('scroll', handleScroll)\n }\n }\n\n window.addEventListener('scroll', handleScroll)\n\n handleScroll()\n setTimeout(handleScroll)\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n }\n }, [thresholdPercentage])\n\n return (\n <FadeInStyledComponent\n ref={containerRef}\n delay={delay}\n direction={direction}\n css={css}\n shouldTrigger={isInView}\n >\n {children}\n </FadeInStyledComponent>\n )\n}\n\nexport enum AnimationDirectionsEnum {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n}\n\nexport type FadeInProps = {\n children: any\n delay?: number\n direction?: AnimationDirectionsEnum\n chainDelay?: number\n itemsPerRow?: {\n [key: string]: number\n }\n defaultItemsPerRow?: number\n index?: number\n\n thresholdPercentage?: number\n}\n\nconst fadeInTop = keyframes`\n from {\n opacity: 0;\n transform: translateY(30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInBottom = keyframes`\n from {\n opacity: 0;\n transform: translateY(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translateX(30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translateX(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst FadeInStyledComponent = styled.div<{\n delay?: number\n direction?: AnimationDirectionsEnum\n css: string\n shouldTrigger: boolean\n}>`\n opacity: 0;\n\n ${(props) =>\n props.shouldTrigger\n ? css`\n animation: 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal forwards\n running ${() => {\n let animation = fadeInTop\n if (props.direction === 'bottom') animation = fadeInBottom\n else if (props.direction === 'left') animation = fadeInLeft\n else if (props.direction === 'right') animation = fadeInRight\n return animation\n }}\n };\n `\n : ''};\n\n animation-delay: ${(props) => props.delay || 0}ms;\n\n ${(props) => props.css}\n`\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../src/components/FadeIn/index.tsx"],"names":["React","useEffect","useMemo","useRef","styled","css","keyframes","useBoolean","useConfigState","getElementOffset","getAnimationDelay","index","itemsPerRow","chainDelay","FadeIn","children","delay","direction","AnimationDirectionsEnum","Top","defaultItemsPerRow","thresholdPercentage","isInView","setIsInView","config","containerRef","defaultAnimationDelay","Object","keys","reduce","value","breakpoint","min","theme","breakpoints","breakpointItemsPerRow","query","container","current","handleScroll","screenHeight","window","screen","height","scrollBottom","scrollY","threshold","shouldTrigger","top","on","removeEventListener","addEventListener","setTimeout","fadeInTop","fadeInBottom","fadeInLeft","fadeInRight","FadeInStyledComponent","div","props","animation"],"mappings":";;;;AAAA;AAEA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,OAA3B,EAAoCC,MAApC,QAAkD,OAAlD;AACA,OAAOC,MAAP,IAAiBC,GAAjB,EAAsBC,SAAtB,QAAuC,mBAAvC;AACA,SAASC,UAAT,QAA2B,sBAA3B;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA,SAASC,gBAAT,QAAiC,aAAjC;;AAEA,IAAMC,iBAAiB,GAAG,CACxBC,KADwB,EAExBC,WAFwB,EAGxBC,UAHwB,KAIb;AACX,SAAQF,KAAK,GAAGC,WAAT,GAAwBC,UAA/B;AACD,CAND;;AAQA,OAAO,IAAMC,MAAM,GAAG,UASH;AAAA,MATI;AACrBC,IAAAA,QADqB;AAErBC,IAAAA,KAFqB;AAGrBC,IAAAA,SAAS,GAAGC,uBAAuB,CAACC,GAHf;AAIrBN,IAAAA,UAAU,GAAG,CAJQ;AAKrBD,IAAAA,WAAW,GAAG,EALO;AAMrBQ,IAAAA,kBAAkB,GAAG,CANA;AAOrBT,IAAAA,KAAK,GAAG,CAPa;AAQrBU,IAAAA,mBAAmB,GAAG;AARD,GASJ;AACjB,MAAM,CAACC,QAAD,EAAWC,WAAX,IAA0BhB,UAAU,CAAC,KAAD,CAA1C;AACA,MAAMiB,MAAW,GAAGhB,cAAc,EAAlC;AACA,MAAMiB,YAAY,GAAGtB,MAAM,CAAwB,IAAxB,CAA3B;AAEA,MAAMuB,qBAAqB,GAAGhB,iBAAiB,CAC7CC,KAD6C,EAE7CS,kBAF6C,EAG7CP,UAH6C,CAA/C,CALiB,CAWjB;;AACA,MAAMR,GAAG,GAAGH,OAAO,CAAC,MAAM;AACxB,WAAOyB,MAAM,CAACC,IAAP,CAAYhB,WAAZ,EAAyBiB,MAAzB,CAAgC,CAACC,KAAD,EAAQC,UAAR,KAAuB;AAAA;;AAC5D,UAAMC,GAAG,GAAGR,MAAH,qCAAGA,MAAM,CAAES,KAAX,8CAAG,cAAeC,WAAlB,+CAAG,sBAA6BH,UAA7B,CAAH,qBAAG,uBAA0CC,GAAtD,CAD4D,CACF;;AAE1D,UAAI,CAACA,GAAL,EAAU,OAAOF,KAAP;AAEV,UAAMK,qBAAqB,GAAGvB,WAAW,CAACmB,UAAD,CAAzC,CAL4D,CAKN;AAEtD;;AACA,UAAMf,KAAK,GAAGN,iBAAiB,CAACC,KAAD,EAAQwB,qBAAR,EAA+BtB,UAA/B,CAA/B,CAR4D,CAU5D;;AACA,UAAMuB,KAAK,0BAAwBJ,GAAxB,6BAAmDhB,KAAnD,UAAX;AAEA,aAAUc,KAAV,SAAmBM,KAAnB;AACD,KAdM,wBAcgBV,qBAdhB,UAAP;AAeD,GAhBkB,EAgBhB,CAACb,UAAD,EAAaF,KAAb,EAAoBe,qBAApB,EAA2Cd,WAA3C,CAhBgB,CAAnB;AAkBAX,EAAAA,SAAS,CAAC,MAAM;AACd,QAAMoC,SAAS,GAAGZ,YAAY,CAACa,OAA/B;AAEA,QAAI,CAACD,SAAL,EAAgB;;AAEhB,QAAME,YAAY,GAAG,MAAM;AACzB,UAAMC,YAAY,GAAGC,MAAM,CAACC,MAAP,CAAcC,MAAnC;AACA,UAAMC,YAAY,GAAGH,MAAM,CAACI,OAAP,GAAiBL,YAAtC;AAEA,UAAMM,SAAS,GAAGN,YAAY,GAAGnB,mBAAjC,CAJyB,CAI4B;;AAErD,UAAM0B,aAAa,GACjBH,YAAY,GAAGE,SAAf,IAA4BrC,gBAAgB,CAAC4B,SAAD,CAAhB,CAA4BW,GAD1D;;AAGA,UAAID,aAAJ,EAAmB;AACjBxB,QAAAA,WAAW,CAAC0B,EAAZ;AAEAR,QAAAA,MAAM,CAACS,mBAAP,CAA2B,QAA3B,EAAqCX,YAArC;AACD;AACF,KAdD;;AAgBAE,IAAAA,MAAM,CAACU,gBAAP,CAAwB,QAAxB,EAAkCZ,YAAlC;AAEAA,IAAAA,YAAY;AACZa,IAAAA,UAAU,CAACb,YAAD,CAAV;AAEA,WAAO,MAAM;AACXE,MAAAA,MAAM,CAACS,mBAAP,CAA2B,QAA3B,EAAqCX,YAArC;AACD,KAFD;AAGD,GA7BQ,EA6BN,CAAClB,mBAAD,EAAsBZ,gBAAgB,CAACgB,YAAY,CAACa,OAAd,CAAhB,CAAuCU,GAA7D,CA7BM,CAAT;AA+BA,sBACE,oBAAC,qBAAD;AACE,IAAA,GAAG,EAAEvB,YADP;AAEE,IAAA,KAAK,EAAET,KAFT;AAGE,IAAA,SAAS,EAAEC,SAHb;AAIE,IAAA,GAAG,EAAEZ,GAJP;AAKE,IAAA,aAAa,EAAEiB;AALjB,KAOGP,QAPH,CADF;AAWD,CAjFM;AAmFP,WAAYG,uBAAZ;;WAAYA,uB;AAAAA,EAAAA,uB;AAAAA,EAAAA,uB;AAAAA,EAAAA,uB;AAAAA,EAAAA,uB;GAAAA,uB,KAAAA,uB;;AAqBZ,IAAMmC,SAAS,GAAG/C,SAAH,6NAAf;AAWA,IAAMgD,YAAY,GAAGhD,SAAH,gOAAlB;AAWA,IAAMiD,UAAU,GAAGjD,SAAH,+NAAhB;AAWA,IAAMkD,WAAW,GAAGlD,SAAH,gOAAjB;AAWA,IAAMmD,qBAAqB,GAAGrD,MAAM,CAACsD,GAAV,iJAQtBC,KAAD,IACAA,KAAK,CAACZ,aAAN,GACI1C,GADJ,sNAGoB,MAAM;AACd,MAAIuD,SAAS,GAAGP,SAAhB;AACA,MAAIM,KAAK,CAAC1C,SAAN,KAAoB,QAAxB,EAAkC2C,SAAS,GAAGN,YAAZ,CAAlC,KACK,IAAIK,KAAK,CAAC1C,SAAN,KAAoB,MAAxB,EAAgC2C,SAAS,GAAGL,UAAZ,CAAhC,KACA,IAAII,KAAK,CAAC1C,SAAN,KAAoB,OAAxB,EAAiC2C,SAAS,GAAGJ,WAAZ;AACtC,SAAOI,SAAP;AACD,CATX,IAYI,EArBmB,EAuBLD,KAAD,IAAWA,KAAK,CAAC3C,KAAN,IAAe,CAvBpB,EAyBtB2C,KAAD,IAAWA,KAAK,CAACtD,GAzBM,CAA3B","sourcesContent":["/* eslint-disable */\n\nimport React, { useEffect, useMemo, useRef } from 'react'\nimport styled, { css, keyframes } from 'styled-components'\nimport { useBoolean } from '../../hooks/ui-hooks'\nimport { useConfigState } from '../../hooks/useConfig'\nimport { getElementOffset } from '../../utils'\n\nconst getAnimationDelay = (\n index: number,\n itemsPerRow: number,\n chainDelay: number\n): number => {\n return (index % itemsPerRow) * chainDelay\n}\n\nexport const FadeIn = ({\n children,\n delay,\n direction = AnimationDirectionsEnum.Top,\n chainDelay = 0,\n itemsPerRow = {},\n defaultItemsPerRow = 1,\n index = 0,\n thresholdPercentage = 0.1,\n}: FadeInProps) => {\n const [isInView, setIsInView] = useBoolean(false)\n const config: any = useConfigState()\n const containerRef = useRef<HTMLDivElement | null>(null)\n\n const defaultAnimationDelay = getAnimationDelay(\n index,\n defaultItemsPerRow,\n chainDelay\n )\n\n // generate animation delay css for different breakpoints\n const css = useMemo(() => {\n return Object.keys(itemsPerRow).reduce((value, breakpoint) => {\n const min = config?.theme?.breakpoints?.[breakpoint]?.min // min width\n\n if (!min) return value\n\n const breakpointItemsPerRow = itemsPerRow[breakpoint] // items per row on the current breakpoint\n\n // calculate the delay\n const delay = getAnimationDelay(index, breakpointItemsPerRow, chainDelay)\n\n // generate media query css\n const query = `@media(min-width: ${min}) { animation-delay: ${delay}ms; }`\n\n return `${value} ${query}`\n }, `animation-delay: ${defaultAnimationDelay}ms; `)\n }, [chainDelay, index, defaultAnimationDelay, itemsPerRow])\n\n useEffect(() => {\n const container = containerRef.current\n\n if (!container) return\n\n const handleScroll = () => {\n const screenHeight = window.screen.height\n const scrollBottom = window.scrollY + screenHeight\n\n const threshold = screenHeight * thresholdPercentage // screenHeight\n\n const shouldTrigger =\n scrollBottom - threshold >= getElementOffset(container).top\n\n if (shouldTrigger) {\n setIsInView.on()\n\n window.removeEventListener('scroll', handleScroll)\n }\n }\n\n window.addEventListener('scroll', handleScroll)\n\n handleScroll()\n setTimeout(handleScroll)\n\n return () => {\n window.removeEventListener('scroll', handleScroll)\n }\n }, [thresholdPercentage, getElementOffset(containerRef.current).top])\n\n return (\n <FadeInStyledComponent\n ref={containerRef}\n delay={delay}\n direction={direction}\n css={css}\n shouldTrigger={isInView}\n >\n {children}\n </FadeInStyledComponent>\n )\n}\n\nexport enum AnimationDirectionsEnum {\n Top = 'top',\n Bottom = 'bottom',\n Left = 'left',\n Right = 'right',\n}\n\nexport type FadeInProps = {\n children: any\n delay?: number\n direction?: AnimationDirectionsEnum\n chainDelay?: number\n itemsPerRow?: {\n [key: string]: number\n }\n defaultItemsPerRow?: number\n index?: number\n\n thresholdPercentage?: number\n}\n\nconst fadeInTop = keyframes`\n from {\n opacity: 0;\n transform: translateY(30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInBottom = keyframes`\n from {\n opacity: 0;\n transform: translateY(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInLeft = keyframes`\n from {\n opacity: 0;\n transform: translateX(30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst fadeInRight = keyframes`\n from {\n opacity: 0;\n transform: translateX(-30px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n `\n\nconst FadeInStyledComponent = styled.div<{\n delay?: number\n direction?: AnimationDirectionsEnum\n css: string\n shouldTrigger: boolean\n}>`\n opacity: 0;\n\n ${(props) =>\n props.shouldTrigger\n ? css`\n animation: 0.6s cubic-bezier(0.4, 0, 0.2, 1) 0s 1 normal forwards\n running ${() => {\n let animation = fadeInTop\n if (props.direction === 'bottom') animation = fadeInBottom\n else if (props.direction === 'left') animation = fadeInLeft\n else if (props.direction === 'right') animation = fadeInRight\n return animation\n }}\n };\n `\n : ''};\n\n animation-delay: ${(props) => props.delay || 0}ms;\n\n ${(props) => props.css}\n`\n"],"file":"index.js"}
@@ -5,13 +5,15 @@ import fetch from 'node-fetch';
5
5
  import { getOptions } from '../api/getSDKConfig';
6
6
  import { ReactQueryConfigProvider, useQueryCache } from 'react-query';
7
7
  import { removeAnonToken, removeAuthToken } from '../utils/tokens';
8
+ import { useRouter } from 'next/router';
8
9
  var ConfigStateContext = /*#__PURE__*/React.createContext(undefined);
9
10
  export function SentecaProvider(_ref) {
10
11
  var {
11
12
  defaultConfig,
12
13
  transientConfig,
13
14
  localeData,
14
- children
15
+ children,
16
+ disableStaged
15
17
  } = _ref;
16
18
  var queryCache = useQueryCache();
17
19
  var options = getOptions(defaultConfig); // add interfaceKey and storeKey in the headers
@@ -31,6 +33,26 @@ export function SentecaProvider(_ref) {
31
33
  }));
32
34
  }
33
35
 
36
+ var router = useRouter();
37
+ React.useEffect(() => {
38
+ if (disableStaged || router.query.staged !== 'true') return;
39
+ var pageName = router.pathname;
40
+
41
+ if (pageName === '/[[...path]]') {
42
+ pageName = router.asPath.split('?')[0];
43
+ }
44
+
45
+ router.replace({
46
+ pathname: '/preview',
47
+ query: _extends({
48
+ pageName
49
+ }, router.query, {
50
+ staged: 'redirected'
51
+ })
52
+ });
53
+ }, [router, disableStaged]);
54
+ if (!disableStaged && router.asPath.includes('staged=true')) return null;
55
+
34
56
  if (!defaultConfig) {
35
57
  throw new Error('SentecaProvider requires a valid config object');
36
58
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/config/SentecaProvider.tsx"],"names":["React","HttpClient","Configuration","fetch","getOptions","ReactQueryConfigProvider","useQueryCache","removeAnonToken","removeAuthToken","ConfigStateContext","createContext","undefined","SentecaProvider","defaultConfig","transientConfig","localeData","children","queryCache","options","headers","InterfaceKey","interfaceKey","StoreKey","storeKey","Error","fetchApi","window","queries","onError","e","statusCode","clear"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAoCC,aAApC,QAAyD,sBAAzD;AACA,OAAOC,KAAP,MAAkB,YAAlB;AACA,SAASC,UAAT,QAA2B,qBAA3B;AACA,SAASC,wBAAT,EAAmCC,aAAnC,QAAwD,aAAxD;AACA,SAASC,eAAT,EAA0BC,eAA1B,QAAiD,iBAAjD;AAsBA,IAAMC,kBAAkB,gBAAGT,KAAK,CAACU,aAAN,CACzBC,SADyB,CAA3B;AAIA,OAAO,SAASC,eAAT,OAUJ;AAAA,MAV6B;AAC9BC,IAAAA,aAD8B;AAE9BC,IAAAA,eAF8B;AAG9BC,IAAAA,UAH8B;AAI9BC,IAAAA;AAJ8B,GAU7B;AACD,MAAMC,UAAU,GAAGX,aAAa,EAAhC;AAEA,MAAMY,OAAO,GAAGd,UAAU,CAACS,aAAD,CAA1B,CAHC,CAKD;;AACA,MAAIE,UAAJ,EAAgB;AACdG,IAAAA,OAAO,CAACC,OAAR,gBACMD,OAAO,CAACC,OAAR,IAAmB,EADzB;AAEEC,MAAAA,YAAY,EAAEL,UAAU,CAACM,YAF3B;AAGEC,MAAAA,QAAQ,EAAEP,UAAU,CAACQ;AAHvB;AAKD;;AAEDtB,EAAAA,UAAU,CAACY,aAAX,GAA2B,IAAIX,aAAJ,CAAkBgB,OAAlB,CAA3B;;AAEA,MAAIJ,eAAJ,EAAqB;AACnBb,IAAAA,UAAU,CAACa,eAAX,GAA6B,IAAIZ,aAAJ,cACxBgB,OADwB,EAEvBJ,eAFuB;AAG3BK,MAAAA,OAAO,eACDD,OAAO,CAACC,OAAR,IAAmB,EADlB,EAEDL,eAAe,CAACK,OAAhB,IAA2B,EAF1B;AAHoB,OAA7B;AAQD;;AAED,MAAI,CAACN,aAAL,EAAoB;AAClB,UAAM,IAAIW,KAAJ,CAAU,gDAAV,CAAN;AACD;;AAEDX,EAAAA,aAAa,CAACY,QAAd,GACE,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAM,CAACvB,KAAvC,GAAgDA,KADlD;AAGA,sBACE,oBAAC,wBAAD;AACE,IAAA,MAAM,EAAE;AACNwB,MAAAA,OAAO,EAAE;AACPC,QAAAA,OAAO,EAAGC,CAAD,IAAY;AACnB,cAAI,CAAAA,CAAC,QAAD,YAAAA,CAAC,CAAEC,UAAH,MAAkB,GAAtB,EAA2B;AACzBtB,YAAAA,eAAe;AACfD,YAAAA,eAAe;AAEfU,YAAAA,UAAU,CAACc,KAAX;AACD;AACF;AARM;AADH;AADV,kBAcE,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAE;AAAElB,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB;AAApC,KACGE,QADH,CAdF,CADF;AAoBD","sourcesContent":["import React from 'react'\nimport { HttpClient, ConfigOptions, Configuration } from '@sentecacommerce/sdk'\nimport fetch from 'node-fetch'\nimport { getOptions } from '../api/getSDKConfig'\nimport { ReactQueryConfigProvider, useQueryCache } from 'react-query'\nimport { removeAnonToken, removeAuthToken } from '../utils/tokens'\n\nexport type SentecaProps = {\n children?: React.ReactNode\n}\n\nexport interface ConfigProps {\n defaultConfig: ConfigOptions\n transientConfig?: ConfigOptions\n}\n\nexport interface LocaleData {\n interfaceKey: string\n storeKey: string\n locale: string\n domain: string\n theme: {\n themeKey: string\n themeVersion: string\n }\n}\n\nconst ConfigStateContext = React.createContext<ConfigProps | undefined>(\n undefined\n)\n\nexport function SentecaProvider({\n defaultConfig,\n transientConfig,\n localeData,\n children,\n}: {\n defaultConfig: ConfigOptions\n transientConfig?: ConfigOptions\n children: React.ReactNode\n localeData?: LocaleData\n}) {\n const queryCache = useQueryCache()\n\n const options = getOptions(defaultConfig)\n\n // add interfaceKey and storeKey in the headers\n if (localeData) {\n options.headers = {\n ...(options.headers || {}),\n InterfaceKey: localeData.interfaceKey,\n StoreKey: localeData.storeKey,\n }\n }\n\n HttpClient.defaultConfig = new Configuration(options)\n\n if (transientConfig) {\n HttpClient.transientConfig = new Configuration({\n ...options,\n ...(transientConfig as any),\n headers: {\n ...(options.headers || {}),\n ...(transientConfig.headers || {}),\n },\n })\n }\n\n if (!defaultConfig) {\n throw new Error('SentecaProvider requires a valid config object')\n }\n\n defaultConfig.fetchApi =\n typeof window !== 'undefined' ? window.fetch : (fetch as any)\n\n return (\n <ReactQueryConfigProvider\n config={{\n queries: {\n onError: (e: any) => {\n if (e?.statusCode === 401) {\n removeAuthToken()\n removeAnonToken()\n\n queryCache.clear()\n }\n },\n },\n }}\n >\n <ConfigStateContext.Provider value={{ defaultConfig, transientConfig }}>\n {children}\n </ConfigStateContext.Provider>\n </ReactQueryConfigProvider>\n )\n}\n"],"file":"SentecaProvider.js"}
1
+ {"version":3,"sources":["../../../src/config/SentecaProvider.tsx"],"names":["React","HttpClient","Configuration","fetch","getOptions","ReactQueryConfigProvider","useQueryCache","removeAnonToken","removeAuthToken","useRouter","ConfigStateContext","createContext","undefined","SentecaProvider","defaultConfig","transientConfig","localeData","children","disableStaged","queryCache","options","headers","InterfaceKey","interfaceKey","StoreKey","storeKey","router","useEffect","query","staged","pageName","pathname","asPath","split","replace","includes","Error","fetchApi","window","queries","onError","e","statusCode","clear"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { HttpClient, ConfigOptions, Configuration } from '@sentecacommerce/sdk'\nimport fetch from 'node-fetch'\nimport { getOptions } from '../api/getSDKConfig'\nimport { ReactQueryConfigProvider, useQueryCache } from 'react-query'\nimport { removeAnonToken, removeAuthToken } from '../utils/tokens'\nimport { useRouter } from 'next/router'\n\nexport type SentecaProps = {\n children?: React.ReactNode\n}\n\nexport interface ConfigProps {\n defaultConfig: ConfigOptions\n transientConfig?: ConfigOptions\n}\n\nexport interface LocaleData {\n interfaceKey: string\n storeKey: string\n locale: string\n domain: string\n theme: {\n themeKey: string\n themeVersion: string\n }\n}\n\nconst ConfigStateContext = React.createContext<ConfigProps | undefined>(\n undefined\n)\n\nexport function SentecaProvider({\n defaultConfig,\n transientConfig,\n localeData,\n children,\n disableStaged,\n}: {\n defaultConfig: ConfigOptions\n transientConfig?: ConfigOptions\n children: React.ReactNode\n localeData?: LocaleData\n disableStaged?: true\n}) {\n const queryCache = useQueryCache()\n\n const options = getOptions(defaultConfig)\n\n // add interfaceKey and storeKey in the headers\n if (localeData) {\n options.headers = {\n ...(options.headers || {}),\n InterfaceKey: localeData.interfaceKey,\n StoreKey: localeData.storeKey,\n }\n }\n\n HttpClient.defaultConfig = new Configuration(options)\n\n if (transientConfig) {\n HttpClient.transientConfig = new Configuration({\n ...options,\n ...(transientConfig as any),\n headers: {\n ...(options.headers || {}),\n ...(transientConfig.headers || {}),\n },\n })\n }\n\n const router = useRouter()\n\n React.useEffect(() => {\n if (disableStaged || router.query.staged !== 'true') return\n\n let pageName = router.pathname\n\n if (pageName === '/[[...path]]') {\n pageName = router.asPath.split('?')[0]\n }\n\n router.replace({\n pathname: '/preview',\n query: {\n pageName,\n ...router.query,\n staged: 'redirected',\n },\n })\n }, [router, disableStaged])\n\n if (!disableStaged && router.asPath.includes('staged=true')) return null\n\n if (!defaultConfig) {\n throw new Error('SentecaProvider requires a valid config object')\n }\n\n defaultConfig.fetchApi =\n typeof window !== 'undefined' ? window.fetch : (fetch as any)\n\n return (\n <ReactQueryConfigProvider\n config={{\n queries: {\n onError: (e: any) => {\n if (e?.statusCode === 401) {\n removeAuthToken()\n removeAnonToken()\n\n queryCache.clear()\n }\n },\n },\n }}\n >\n <ConfigStateContext.Provider value={{ defaultConfig, transientConfig }}>\n {children}\n </ConfigStateContext.Provider>\n </ReactQueryConfigProvider>\n )\n}\n"],"file":"SentecaProvider.js"}
@@ -22,7 +22,7 @@ export var useGoToCheckout = (_ref) => {
22
22
  }
23
23
 
24
24
  if (isLoading) return;
25
- isAuthenticated ? authenticatedCallback() : guestCallback();
25
+ isAuthenticated ? authenticatedCallback(order) : guestCallback(order);
26
26
  };
27
27
 
28
28
  return useBasketSync(callback);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/hooks/basket-hooks/useGoToCheckout/index.tsx"],"names":["LineItemDTOStatusEnum","useIsAuthenticated","useBasketSync","useGoToCheckout","guestCallback","authenticatedCallback","onErrorCallback","isAuthenticated","isLoading","callback","order","productsWithErrors","lineItems","filter","item","status","CanPurchase","length","canPurchase"],"mappings":"AAAA,SAEEA,qBAFF,QAIO,sBAJP;AAKA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,aAAT,QAA8B,kBAA9B;AAEA,OAAO,IAAMC,eAAe,GAAG,UAQzB;AAAA,MAR0B;AAC9BC,IAAAA,aAD8B;AAE9BC,IAAAA,qBAF8B;AAG9BC,IAAAA;AAH8B,GAQ1B;AACJ,MAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAiCP,kBAAkB,EAAzD;;AAEA,MAAMQ,QAAQ,GAAIC,KAAD,IAAqB;AACpC,QAAMC,kBAAkB,GAAGD,KAAK,CAACE,SAAN,CAAgBC,MAAhB,CAAwBC,IAAD,IAAU;AAC1D,aAAOA,IAAI,CAACC,MAAL,KAAgBf,qBAAqB,CAACgB,WAA7C;AACD,KAF0B,CAA3B;;AAIA,QAAIL,kBAAkB,CAACM,MAAnB,IAA6B,CAACP,KAAK,CAACQ,WAAxC,EAAqD;AACnD,aAAOZ,eAAP,oBAAOA,eAAe,CAAGK,kBAAH,CAAtB;AACD;;AAED,QAAIH,SAAJ,EAAe;AAEfD,IAAAA,eAAe,GAAGF,qBAAqB,EAAxB,GAA6BD,aAAa,EAAzD;AACD,GAZD;;AAcA,SAAOF,aAAa,CAACO,QAAD,CAApB;AACD,CA1BM","sourcesContent":["import {\n OrderDTO,\n LineItemDTOStatusEnum,\n LineItemDTO,\n} from '@sentecacommerce/sdk'\nimport { useIsAuthenticated } from '../../../user/hooks'\nimport { useBasketSync } from '../useBasketSync'\n\nexport const useGoToCheckout = ({\n guestCallback,\n authenticatedCallback,\n onErrorCallback,\n}: {\n guestCallback: () => void\n authenticatedCallback: () => void\n onErrorCallback?: (data: LineItemDTO[]) => void\n}) => {\n const { isAuthenticated, isLoading } = useIsAuthenticated()\n\n const callback = (order: OrderDTO) => {\n const productsWithErrors = order.lineItems.filter((item) => {\n return item.status !== LineItemDTOStatusEnum.CanPurchase\n })\n\n if (productsWithErrors.length || !order.canPurchase) {\n return onErrorCallback?.(productsWithErrors)\n }\n\n if (isLoading) return\n\n isAuthenticated ? authenticatedCallback() : guestCallback()\n }\n\n return useBasketSync(callback)\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../../../../src/hooks/basket-hooks/useGoToCheckout/index.tsx"],"names":["LineItemDTOStatusEnum","useIsAuthenticated","useBasketSync","useGoToCheckout","guestCallback","authenticatedCallback","onErrorCallback","isAuthenticated","isLoading","callback","order","productsWithErrors","lineItems","filter","item","status","CanPurchase","length","canPurchase"],"mappings":"AAAA,SAEEA,qBAFF,QAIO,sBAJP;AAKA,SAASC,kBAAT,QAAmC,qBAAnC;AACA,SAASC,aAAT,QAA8B,kBAA9B;AAEA,OAAO,IAAMC,eAAe,GAAG,UAQzB;AAAA,MAR0B;AAC9BC,IAAAA,aAD8B;AAE9BC,IAAAA,qBAF8B;AAG9BC,IAAAA;AAH8B,GAQ1B;AACJ,MAAM;AAAEC,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAiCP,kBAAkB,EAAzD;;AAEA,MAAMQ,QAAQ,GAAIC,KAAD,IAAqB;AACpC,QAAMC,kBAAkB,GAAGD,KAAK,CAACE,SAAN,CAAgBC,MAAhB,CAAwBC,IAAD,IAAU;AAC1D,aAAOA,IAAI,CAACC,MAAL,KAAgBf,qBAAqB,CAACgB,WAA7C;AACD,KAF0B,CAA3B;;AAIA,QAAIL,kBAAkB,CAACM,MAAnB,IAA6B,CAACP,KAAK,CAACQ,WAAxC,EAAqD;AACnD,aAAOZ,eAAP,oBAAOA,eAAe,CAAGK,kBAAH,CAAtB;AACD;;AAED,QAAIH,SAAJ,EAAe;AAEfD,IAAAA,eAAe,GAAGF,qBAAqB,CAACK,KAAD,CAAxB,GAAkCN,aAAa,CAACM,KAAD,CAA9D;AACD,GAZD;;AAcA,SAAOR,aAAa,CAACO,QAAD,CAApB;AACD,CA1BM","sourcesContent":["import {\n OrderDTO,\n LineItemDTOStatusEnum,\n LineItemDTO,\n} from '@sentecacommerce/sdk'\nimport { useIsAuthenticated } from '../../../user/hooks'\nimport { useBasketSync } from '../useBasketSync'\n\nexport const useGoToCheckout = ({\n guestCallback,\n authenticatedCallback,\n onErrorCallback,\n}: {\n guestCallback: (data?: OrderDTO) => void\n authenticatedCallback: (data?: OrderDTO) => void\n onErrorCallback?: (data: LineItemDTO[]) => void\n}) => {\n const { isAuthenticated, isLoading } = useIsAuthenticated()\n\n const callback = (order: OrderDTO) => {\n const productsWithErrors = order.lineItems.filter((item) => {\n return item.status !== LineItemDTOStatusEnum.CanPurchase\n })\n\n if (productsWithErrors.length || !order.canPurchase) {\n return onErrorCallback?.(productsWithErrors)\n }\n\n if (isLoading) return\n\n isAuthenticated ? authenticatedCallback(order) : guestCallback(order)\n }\n\n return useBasketSync(callback)\n}\n"],"file":"index.js"}
@@ -63,7 +63,7 @@ export function processListingQuery(_x) {
63
63
 
64
64
  function _processListingQuery() {
65
65
  _processListingQuery = _asyncToGenerator(function* (_ref5) {
66
- var _query$sort3;
66
+ var _config$listing, _query$sort3;
67
67
 
68
68
  var {
69
69
  predicate,
@@ -85,14 +85,14 @@ function _processListingQuery() {
85
85
  offset: offset || 0,
86
86
  filter: extendFilter({
87
87
  slug: filter,
88
- filterExtension: config == null ? void 0 : config.filterExtension,
88
+ filterExtension: config == null ? void 0 : (_config$listing = config.listing) == null ? void 0 : _config$listing.filterExtension,
89
89
  noSplit: true
90
90
  }),
91
91
  sort: (_query$sort3 = query.sort) != null ? _query$sort3 : sort
92
92
  }, (query == null ? void 0 : query.filter) && {
93
93
  postFilter
94
- }, (config == null ? void 0 : config.collapseMode) && type !== ListingTypesEnum.Collection && {
95
- collapseMode: config == null ? void 0 : config.collapseMode
94
+ }, (config == null ? void 0 : config.listing.collapseMode) && type !== ListingTypesEnum.Collection && {
95
+ collapseMode: config == null ? void 0 : config.listing.collapseMode
96
96
  }));
97
97
  });
98
98
  return _processListingQuery.apply(this, arguments);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/listing/api/queries/useListingQuery.ts"],"names":["CatalogFilter","useQuery","useRouter","useListingConfig","useListingSlug","useListingAlias","getListingQueryKeys","usePredicate","ListingTypesEnum","calculateOffset","getListingPageType","getPostFilters","extendFilter","useConfigState","useListingQuery","router","slug","config","globalConfig","data","predicate","aliasedSlug","query","postFilter","limit","listing","sort","defaultSortKey","offset","page","queryKeys","type","processListingQuery","refetchOnMount","refetchOnReconnect","refetchOnWindowFocus","enabled","isListingQueryEnabled","keepPreviousData","staleTime","filter","generateFilter","filterExtension","noSplit","collapseMode","Collection","Category","cat","_id","parseAttribute","AttrPage","Brand","View","filters","Search","q","search","val","split"],"mappings":"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","sourcesContent":["import { CatalogFilter, CatalogFilterResultDTO } from '@sentecacommerce/sdk'\nimport { QueryResult, useQuery } from 'react-query'\nimport { NextRouter, useRouter } from 'next/router'\nimport { useListingConfig, useListingSlug, useListingAlias } from '../../hooks'\nimport { getListingQueryKeys, PredicateType, usePredicate } from '..'\nimport { ListingTypesEnum } from '../../types'\nimport {\n calculateOffset,\n getListingPageType,\n getPostFilters,\n extendFilter,\n} from '../../utils'\nimport { useConfigState } from '../../..'\n\nexport const useListingQuery = (): QueryResult<\n CatalogFilterResultDTO,\n unknown\n> => {\n const router = useRouter()\n const slug = useListingSlug()\n const config = useListingConfig()\n const globalConfig = useConfigState() as any\n const { data: predicate } = usePredicate()\n\n const { slug: aliasedSlug } = useListingAlias()\n\n const { query } = router\n\n const postFilter = getPostFilters(router)\n const limit = router.query?.limit ?? globalConfig?.listing?.limit ?? 24\n const sort =\n query.sort ?? globalConfig?.listing?.defaultSortKey ?? 'defaultSort'\n const offset = calculateOffset(query?.page as string, limit)\n\n const queryKeys = getListingQueryKeys({\n type: config.type,\n predicate,\n sort: query.sort ?? globalConfig.defaultSortKey ?? sort,\n postFilter,\n slug,\n offset,\n })\n\n return useQuery(\n queryKeys,\n async () => {\n const data = processListingQuery({\n predicate,\n limit,\n sort,\n router,\n postFilter,\n offset,\n config: globalConfig,\n slug: aliasedSlug,\n })\n return data\n },\n {\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n enabled: isListingQueryEnabled(config.type, predicate),\n keepPreviousData: true,\n staleTime: 30000,\n }\n )\n}\n\nexport async function processListingQuery({\n predicate,\n router,\n limit,\n sort,\n postFilter,\n offset,\n config,\n slug,\n}: {\n predicate?: PredicateType\n router: NextRouter\n limit: number\n offset: number\n sort?: string\n postFilter?: string\n config?: any\n slug?: string\n}) {\n const { query } = router\n\n const type = getListingPageType(router, slug, config)\n\n const filter = generateFilter(type, query, slug, predicate)\n\n return CatalogFilter({\n limit: limit,\n offset: offset || 0,\n filter: extendFilter({\n slug: filter as string,\n filterExtension: config?.filterExtension,\n noSplit: true,\n }),\n sort: (query.sort ?? sort) as string,\n ...(query?.filter && { postFilter }),\n ...(config?.collapseMode &&\n type !== ListingTypesEnum.Collection && {\n collapseMode: config?.collapseMode,\n }),\n })\n}\n\nfunction generateFilter(\n type: ListingTypesEnum,\n query: any,\n slug?: string,\n predicate?: PredicateType\n) {\n switch (type) {\n case ListingTypesEnum.Category:\n if (query.cat) {\n return `category;eq;\"${predicate?._id}\"&${parseAttribute(\n slug as string\n )}`\n }\n return `category;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.AttrPage:\n return parseAttribute(slug as string)\n case ListingTypesEnum.Brand:\n return `brand;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.Collection:\n return `collection;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.View:\n return predicate?.filters\n case ListingTypesEnum.Search:\n return query.q\n ? `text;eq;\"${query.q}\"`\n : `category;eq;\"${predicate?._id}\"&text;eq;\"${query.search}\"`\n }\n}\n\nexport function isListingQueryEnabled(type: string, predicate?: PredicateType) {\n if (type === ListingTypesEnum.Search || type === ListingTypesEnum.AttrPage)\n return true\n\n if (predicate?._id) return true\n\n return false\n}\n\nfunction parseAttribute(slug: string) {\n const [type, val] = slug.split('-')\n\n return `attr.${type};eq;\"${val}\"`\n}\n"],"file":"useListingQuery.js"}
1
+ {"version":3,"sources":["../../../../../src/listing/api/queries/useListingQuery.ts"],"names":["CatalogFilter","useQuery","useRouter","useListingConfig","useListingSlug","useListingAlias","getListingQueryKeys","usePredicate","ListingTypesEnum","calculateOffset","getListingPageType","getPostFilters","extendFilter","useConfigState","useListingQuery","router","slug","config","globalConfig","data","predicate","aliasedSlug","query","postFilter","limit","listing","sort","defaultSortKey","offset","page","queryKeys","type","processListingQuery","refetchOnMount","refetchOnReconnect","refetchOnWindowFocus","enabled","isListingQueryEnabled","keepPreviousData","staleTime","filter","generateFilter","filterExtension","noSplit","collapseMode","Collection","Category","cat","_id","parseAttribute","AttrPage","Brand","View","filters","Search","q","search","val","split"],"mappings":"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","sourcesContent":["import { CatalogFilter, CatalogFilterResultDTO } from '@sentecacommerce/sdk'\nimport { QueryResult, useQuery } from 'react-query'\nimport { NextRouter, useRouter } from 'next/router'\nimport { useListingConfig, useListingSlug, useListingAlias } from '../../hooks'\nimport { getListingQueryKeys, PredicateType, usePredicate } from '..'\nimport { ListingTypesEnum } from '../../types'\nimport {\n calculateOffset,\n getListingPageType,\n getPostFilters,\n extendFilter,\n} from '../../utils'\nimport { useConfigState } from '../../..'\n\nexport const useListingQuery = (): QueryResult<\n CatalogFilterResultDTO,\n unknown\n> => {\n const router = useRouter()\n const slug = useListingSlug()\n const config = useListingConfig()\n const globalConfig = useConfigState() as any\n const { data: predicate } = usePredicate()\n\n const { slug: aliasedSlug } = useListingAlias()\n\n const { query } = router\n\n const postFilter = getPostFilters(router)\n const limit = router.query?.limit ?? globalConfig?.listing?.limit ?? 24\n const sort =\n query.sort ?? globalConfig?.listing?.defaultSortKey ?? 'defaultSort'\n const offset = calculateOffset(query?.page as string, limit)\n\n const queryKeys = getListingQueryKeys({\n type: config.type,\n predicate,\n sort: query.sort ?? globalConfig.defaultSortKey ?? sort,\n postFilter,\n slug,\n offset,\n })\n\n return useQuery(\n queryKeys,\n async () => {\n const data = processListingQuery({\n predicate,\n limit,\n sort,\n router,\n postFilter,\n offset,\n config: globalConfig,\n slug: aliasedSlug,\n })\n return data\n },\n {\n refetchOnMount: false,\n refetchOnReconnect: false,\n refetchOnWindowFocus: false,\n enabled: isListingQueryEnabled(config.type, predicate),\n keepPreviousData: true,\n staleTime: 30000,\n }\n )\n}\n\nexport async function processListingQuery({\n predicate,\n router,\n limit,\n sort,\n postFilter,\n offset,\n config,\n slug,\n}: {\n predicate?: PredicateType\n router: NextRouter\n limit: number\n offset: number\n sort?: string\n postFilter?: string\n config?: any\n slug?: string\n}) {\n const { query } = router\n\n const type = getListingPageType(router, slug, config)\n\n const filter = generateFilter(type, query, slug, predicate)\n\n return CatalogFilter({\n limit: limit,\n offset: offset || 0,\n filter: extendFilter({\n slug: filter as string,\n filterExtension: config?.listing?.filterExtension,\n noSplit: true,\n }),\n sort: (query.sort ?? sort) as string,\n ...(query?.filter && { postFilter }),\n ...(config?.listing.collapseMode &&\n type !== ListingTypesEnum.Collection && {\n collapseMode: config?.listing.collapseMode,\n }),\n })\n}\n\nfunction generateFilter(\n type: ListingTypesEnum,\n query: any,\n slug?: string,\n predicate?: PredicateType\n) {\n switch (type) {\n case ListingTypesEnum.Category:\n if (query.cat) {\n return `category;eq;\"${predicate?._id}\"&${parseAttribute(\n slug as string\n )}`\n }\n return `category;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.AttrPage:\n return parseAttribute(slug as string)\n case ListingTypesEnum.Brand:\n return `brand;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.Collection:\n return `collection;eq;\"${predicate?._id}\"`\n case ListingTypesEnum.View:\n return predicate?.filters\n case ListingTypesEnum.Search:\n return query.q\n ? `text;eq;\"${query.q}\"`\n : `category;eq;\"${predicate?._id}\"&text;eq;\"${query.search}\"`\n }\n}\n\nexport function isListingQueryEnabled(type: string, predicate?: PredicateType) {\n if (type === ListingTypesEnum.Search || type === ListingTypesEnum.AttrPage)\n return true\n\n if (predicate?._id) return true\n\n return false\n}\n\nfunction parseAttribute(slug: string) {\n const [type, val] = slug.split('-')\n\n return `attr.${type};eq;\"${val}\"`\n}\n"],"file":"useListingQuery.js"}
@@ -35,7 +35,7 @@ export var useListingBreadcrumbs = () => {
35
35
  }
36
36
 
37
37
  return createCatalogBreadcrumb(data, config.type, router);
38
- }, [data, router.query.q, config.type, router.query.filter]);
38
+ }, [data, config.type, router.query]);
39
39
  var lastBreadcrumb = React.useMemo(() => {
40
40
  return result == null ? void 0 : result[(result == null ? void 0 : result.length) - 2];
41
41
  }, [result]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/hooks/useListingBreadcrumbs.tsx"],"names":["React","useRouter","usePredicate","useListingConfig","useConfigState","useListingAlias","typeToSuffix","getTranslatableField","ListingTypesEnum","useListingBreadcrumbs","data","isLoading","config","router","mainConfig","slug","result","useMemo","type","AttrPage","name","listing","titleAliases","id","link","query","q","createCatalogBreadcrumb","filter","lastBreadcrumb","length","last","predicate","sortedAncestors","sortAncestors","ancestors","attrLink","cat","undefined","breadcrumb","push","label","_id","applyFilters","forEach","ancestor","processLink","filters","Array","isArray","join","attr","newAncestors","a","resource","tree","mapListToTree","treeToArray","list","map","node","roots","i","resourceId","children","parent","hasOwnProperty","concat","child","arr"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { NextRouter, useRouter } from 'next/router'\nimport { PredicateType, usePredicate } from '../api'\nimport { useListingConfig } from './'\nimport { useConfigState, useListingAlias } from '../../index'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { getTranslatableField } from '../../utils/getTranslatableField'\nimport { IdReferenceDTO, LangValue } from '@sentecacommerce/sdk'\nimport { ListingTypesEnum } from '..'\n\nexport type Breadcrumb = { name: string; id: string; link: string }[]\n\nexport type UseListingBreadcrumbsResult = {\n data: {\n name: string\n id: string\n link: string\n }[]\n last: {\n name: string\n id: string\n link: string\n }\n isLoading: boolean\n}\n\nexport const useListingBreadcrumbs = (): UseListingBreadcrumbsResult => {\n const { data, isLoading } = usePredicate()\n const config = useListingConfig()\n const router = useRouter()\n\n const mainConfig = useConfigState() as any\n const { slug } = useListingAlias()\n\n const result = React.useMemo(() => {\n if (config.type === ListingTypesEnum.AttrPage) {\n return [\n {\n name: mainConfig.listing.titleAliases[slug],\n id: '',\n link: `/${router.query.slug}/c`,\n },\n ]\n }\n if (router.query.q) {\n return [\n {\n name: `${router.query.q}`,\n id: '',\n link: `/search?q=${router.query.q}`,\n },\n ]\n }\n\n return createCatalogBreadcrumb(data as PredicateType, config.type, router)\n }, [data, router.query.q, config.type, router.query.filter])\n\n const lastBreadcrumb = React.useMemo(() => {\n return result?.[result?.length - 2]\n }, [result])\n\n return { data: result, last: lastBreadcrumb, isLoading }\n}\n\nconst createCatalogBreadcrumb = (\n predicate: PredicateType,\n type: string,\n router: NextRouter\n): Breadcrumb => {\n const result: {\n name: string\n id: string\n link: string\n }[] = []\n\n const sortedAncestors = sortAncestors(predicate?.ancestors)\n const attrLink = router.query.cat ? (router.query.slug as string) : undefined\n\n if (predicate?.breadcrumb) {\n result.push({\n name: getTranslatableField(predicate.breadcrumb.label),\n id: predicate._id,\n\n link: `/${router.query.slug}/${getTranslatableField(\n sortedAncestors?.[0]?.slug || predicate?.slug\n )}/c${applyFilters(router)}`,\n })\n }\n\n sortedAncestors.forEach((ancestor) => {\n result.push({\n name: getTranslatableField(ancestor.name),\n id: ancestor._id,\n link: processLink(ancestor.slug, type, attrLink) + applyFilters(router),\n })\n })\n\n if (predicate?.slug[0]) {\n result.push({\n name: getTranslatableField(predicate?.name),\n id: predicate._id,\n link: processLink(predicate?.slug, type, attrLink) + applyFilters(router),\n })\n }\n\n return result\n}\nfunction applyFilters(router?: NextRouter) {\n const filters = router?.query.filter\n if (filters) {\n if (Array.isArray(filters)) {\n return `?filter=` + filters.join('&filter=')\n } else {\n return `?filter=` + filters\n }\n }\n\n return ''\n}\nfunction processLink(slug: LangValue[], type: string, attr?: string) {\n if (attr) {\n return `/${attr}/${getTranslatableField(slug)}/${typeToSuffix[type]}`\n }\n return `/${getTranslatableField(slug)}/${typeToSuffix[type]}`\n}\n\nfunction sortAncestors(ancestors?: IdReferenceDTO[]) {\n let result = []\n\n if (Array.isArray(ancestors)) {\n const newAncestors = ancestors.filter(\n (a) => a.resource && typeof a.resource === 'object'\n )\n\n if (newAncestors.length) {\n const tree = mapListToTree(newAncestors)\n\n result = treeToArray(tree)[0]\n }\n }\n\n return result\n}\n\nconst mapListToTree = (list: any[]) => {\n const map = {}\n let node\n const roots = []\n let i\n for (i = 0; i < list.length; i += 1) {\n map[list[i].resourceId] = i\n list[i].children = []\n }\n for (i = 0; i < list.length; i += 1) {\n node = list[i]\n if (\n node.resource.parent &&\n map.hasOwnProperty(node.resource.parent.resourceId)\n ) {\n list[map[node.resource.parent.resourceId]].children.push(node)\n } else {\n roots.push(node)\n }\n }\n return roots[0]\n}\n\nconst treeToArray = (node: any) =>\n (node.children.length ? [] : [[node.resource]]).concat(\n ...node.children.map((child: any) =>\n treeToArray(child).map((arr) => [node.resource].concat(arr))\n )\n )\n"],"file":"useListingBreadcrumbs.js"}
1
+ {"version":3,"sources":["../../../../src/listing/hooks/useListingBreadcrumbs.tsx"],"names":["React","useRouter","usePredicate","useListingConfig","useConfigState","useListingAlias","typeToSuffix","getTranslatableField","ListingTypesEnum","useListingBreadcrumbs","data","isLoading","config","router","mainConfig","slug","result","useMemo","type","AttrPage","name","listing","titleAliases","id","link","query","q","createCatalogBreadcrumb","lastBreadcrumb","length","last","predicate","sortedAncestors","sortAncestors","ancestors","attrLink","cat","undefined","breadcrumb","push","label","_id","applyFilters","forEach","ancestor","processLink","filters","filter","Array","isArray","join","attr","newAncestors","a","resource","tree","mapListToTree","treeToArray","list","map","node","roots","i","resourceId","children","parent","hasOwnProperty","concat","child","arr"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAqBC,SAArB,QAAsC,aAAtC;AACA,SAAwBC,YAAxB,QAA4C,QAA5C;AACA,SAASC,gBAAT,QAAiC,IAAjC;AACA,SAASC,cAAT,EAAyBC,eAAzB,QAAgD,aAAhD;AACA,SAASC,YAAT,QAA6B,0BAA7B;AACA,SAASC,oBAAT,QAAqC,kCAArC;AAEA,SAASC,gBAAT,QAAiC,IAAjC;AAkBA,OAAO,IAAMC,qBAAqB,GAAG,MAAmC;AACtE,MAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAsBT,YAAY,EAAxC;AACA,MAAMU,MAAM,GAAGT,gBAAgB,EAA/B;AACA,MAAMU,MAAM,GAAGZ,SAAS,EAAxB;AAEA,MAAMa,UAAU,GAAGV,cAAc,EAAjC;AACA,MAAM;AAAEW,IAAAA;AAAF,MAAWV,eAAe,EAAhC;AAEA,MAAMW,MAAM,GAAGhB,KAAK,CAACiB,OAAN,CAAc,MAAM;AACjC,QAAIL,MAAM,CAACM,IAAP,KAAgBV,gBAAgB,CAACW,QAArC,EAA+C;AAC7C,aAAO,CACL;AACEC,QAAAA,IAAI,EAAEN,UAAU,CAACO,OAAX,CAAmBC,YAAnB,CAAgCP,IAAhC,CADR;AAEEQ,QAAAA,EAAE,EAAE,EAFN;AAGEC,QAAAA,IAAI,QAAMX,MAAM,CAACY,KAAP,CAAaV,IAAnB;AAHN,OADK,CAAP;AAOD;;AACD,QAAIF,MAAM,CAACY,KAAP,CAAaC,CAAjB,EAAoB;AAClB,aAAO,CACL;AACEN,QAAAA,IAAI,OAAKP,MAAM,CAACY,KAAP,CAAaC,CADxB;AAEEH,QAAAA,EAAE,EAAE,EAFN;AAGEC,QAAAA,IAAI,iBAAeX,MAAM,CAACY,KAAP,CAAaC;AAHlC,OADK,CAAP;AAOD;;AAED,WAAOC,uBAAuB,CAACjB,IAAD,EAAwBE,MAAM,CAACM,IAA/B,EAAqCL,MAArC,CAA9B;AACD,GArBc,EAqBZ,CAACH,IAAD,EAAOE,MAAM,CAACM,IAAd,EAAoBL,MAAM,CAACY,KAA3B,CArBY,CAAf;AAuBA,MAAMG,cAAc,GAAG5B,KAAK,CAACiB,OAAN,CAAc,MAAM;AACzC,WAAOD,MAAP,oBAAOA,MAAM,CAAG,CAAAA,MAAM,QAAN,YAAAA,MAAM,CAAEa,MAAR,IAAiB,CAApB,CAAb;AACD,GAFsB,EAEpB,CAACb,MAAD,CAFoB,CAAvB;AAIA,SAAO;AAAEN,IAAAA,IAAI,EAAEM,MAAR;AAAgBc,IAAAA,IAAI,EAAEF,cAAtB;AAAsCjB,IAAAA;AAAtC,GAAP;AACD,CApCM;;AAsCP,IAAMgB,uBAAuB,GAAG,CAC9BI,SAD8B,EAE9Bb,IAF8B,EAG9BL,MAH8B,KAIf;AACf,MAAMG,MAIH,GAAG,EAJN;AAMA,MAAMgB,eAAe,GAAGC,aAAa,CAACF,SAAD,oBAACA,SAAS,CAAEG,SAAZ,CAArC;AACA,MAAMC,QAAQ,GAAGtB,MAAM,CAACY,KAAP,CAAaW,GAAb,GAAoBvB,MAAM,CAACY,KAAP,CAAaV,IAAjC,GAAmDsB,SAApE;;AAEA,MAAIN,SAAJ,YAAIA,SAAS,CAAEO,UAAf,EAA2B;AAAA;;AACzBtB,IAAAA,MAAM,CAACuB,IAAP,CAAY;AACVnB,MAAAA,IAAI,EAAEb,oBAAoB,CAACwB,SAAS,CAACO,UAAV,CAAqBE,KAAtB,CADhB;AAEVjB,MAAAA,EAAE,EAAEQ,SAAS,CAACU,GAFJ;AAIVjB,MAAAA,IAAI,QAAMX,MAAM,CAACY,KAAP,CAAaV,IAAnB,SAA2BR,oBAAoB,CACjD,CAAAyB,eAAe,QAAf,iCAAAA,eAAe,CAAG,CAAH,CAAf,uCAAsBjB,IAAtB,MAA8BgB,SAA9B,oBAA8BA,SAAS,CAAEhB,IAAzC,CADiD,CAA/C,UAEE2B,YAAY,CAAC7B,MAAD;AANR,KAAZ;AAQD;;AAEDmB,EAAAA,eAAe,CAACW,OAAhB,CAAyBC,QAAD,IAAc;AACpC5B,IAAAA,MAAM,CAACuB,IAAP,CAAY;AACVnB,MAAAA,IAAI,EAAEb,oBAAoB,CAACqC,QAAQ,CAACxB,IAAV,CADhB;AAEVG,MAAAA,EAAE,EAAEqB,QAAQ,CAACH,GAFH;AAGVjB,MAAAA,IAAI,EAAEqB,WAAW,CAACD,QAAQ,CAAC7B,IAAV,EAAgBG,IAAhB,EAAsBiB,QAAtB,CAAX,GAA6CO,YAAY,CAAC7B,MAAD;AAHrD,KAAZ;AAKD,GAND;;AAQA,MAAIkB,SAAJ,YAAIA,SAAS,CAAEhB,IAAX,CAAgB,CAAhB,CAAJ,EAAwB;AACtBC,IAAAA,MAAM,CAACuB,IAAP,CAAY;AACVnB,MAAAA,IAAI,EAAEb,oBAAoB,CAACwB,SAAD,oBAACA,SAAS,CAAEX,IAAZ,CADhB;AAEVG,MAAAA,EAAE,EAAEQ,SAAS,CAACU,GAFJ;AAGVjB,MAAAA,IAAI,EAAEqB,WAAW,CAACd,SAAD,oBAACA,SAAS,CAAEhB,IAAZ,EAAkBG,IAAlB,EAAwBiB,QAAxB,CAAX,GAA+CO,YAAY,CAAC7B,MAAD;AAHvD,KAAZ;AAKD;;AAED,SAAOG,MAAP;AACD,CA1CD;;AA2CA,SAAS0B,YAAT,CAAsB7B,MAAtB,EAA2C;AACzC,MAAMiC,OAAO,GAAGjC,MAAH,oBAAGA,MAAM,CAAEY,KAAR,CAAcsB,MAA9B;;AACA,MAAID,OAAJ,EAAa;AACX,QAAIE,KAAK,CAACC,OAAN,CAAcH,OAAd,CAAJ,EAA4B;AAC1B,aAAO,aAAaA,OAAO,CAACI,IAAR,CAAa,UAAb,CAApB;AACD,KAFD,MAEO;AACL,aAAO,aAAaJ,OAApB;AACD;AACF;;AAED,SAAO,EAAP;AACD;;AACD,SAASD,WAAT,CAAqB9B,IAArB,EAAwCG,IAAxC,EAAsDiC,IAAtD,EAAqE;AACnE,MAAIA,IAAJ,EAAU;AACR,iBAAWA,IAAX,SAAmB5C,oBAAoB,CAACQ,IAAD,CAAvC,SAAiDT,YAAY,CAACY,IAAD,CAA7D;AACD;;AACD,eAAWX,oBAAoB,CAACQ,IAAD,CAA/B,SAAyCT,YAAY,CAACY,IAAD,CAArD;AACD;;AAED,SAASe,aAAT,CAAuBC,SAAvB,EAAqD;AACnD,MAAIlB,MAAM,GAAG,EAAb;;AAEA,MAAIgC,KAAK,CAACC,OAAN,CAAcf,SAAd,CAAJ,EAA8B;AAC5B,QAAMkB,YAAY,GAAGlB,SAAS,CAACa,MAAV,CAClBM,CAAD,IAAOA,CAAC,CAACC,QAAF,IAAc,OAAOD,CAAC,CAACC,QAAT,KAAsB,QADxB,CAArB;;AAIA,QAAIF,YAAY,CAACvB,MAAjB,EAAyB;AACvB,UAAM0B,IAAI,GAAGC,aAAa,CAACJ,YAAD,CAA1B;AAEApC,MAAAA,MAAM,GAAGyC,WAAW,CAACF,IAAD,CAAX,CAAkB,CAAlB,CAAT;AACD;AACF;;AAED,SAAOvC,MAAP;AACD;;AAED,IAAMwC,aAAa,GAAIE,IAAD,IAAiB;AACrC,MAAMC,GAAG,GAAG,EAAZ;AACA,MAAIC,IAAJ;AACA,MAAMC,KAAK,GAAG,EAAd;AACA,MAAIC,CAAJ;;AACA,OAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGJ,IAAI,CAAC7B,MAArB,EAA6BiC,CAAC,IAAI,CAAlC,EAAqC;AACnCH,IAAAA,GAAG,CAACD,IAAI,CAACI,CAAD,CAAJ,CAAQC,UAAT,CAAH,GAA0BD,CAA1B;AACAJ,IAAAA,IAAI,CAACI,CAAD,CAAJ,CAAQE,QAAR,GAAmB,EAAnB;AACD;;AACD,OAAKF,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGJ,IAAI,CAAC7B,MAArB,EAA6BiC,CAAC,IAAI,CAAlC,EAAqC;AACnCF,IAAAA,IAAI,GAAGF,IAAI,CAACI,CAAD,CAAX;;AACA,QACEF,IAAI,CAACN,QAAL,CAAcW,MAAd,IACAN,GAAG,CAACO,cAAJ,CAAmBN,IAAI,CAACN,QAAL,CAAcW,MAAd,CAAqBF,UAAxC,CAFF,EAGE;AACAL,MAAAA,IAAI,CAACC,GAAG,CAACC,IAAI,CAACN,QAAL,CAAcW,MAAd,CAAqBF,UAAtB,CAAJ,CAAJ,CAA2CC,QAA3C,CAAoDzB,IAApD,CAAyDqB,IAAzD;AACD,KALD,MAKO;AACLC,MAAAA,KAAK,CAACtB,IAAN,CAAWqB,IAAX;AACD;AACF;;AACD,SAAOC,KAAK,CAAC,CAAD,CAAZ;AACD,CArBD;;AAuBA,IAAMJ,WAAW,GAAIG,IAAD,IAClB,CAACA,IAAI,CAACI,QAAL,CAAcnC,MAAd,GAAuB,EAAvB,GAA4B,CAAC,CAAC+B,IAAI,CAACN,QAAN,CAAD,CAA7B,EAAgDa,MAAhD,CACE,GAAGP,IAAI,CAACI,QAAL,CAAcL,GAAd,CAAmBS,KAAD,IACnBX,WAAW,CAACW,KAAD,CAAX,CAAmBT,GAAnB,CAAwBU,GAAD,IAAS,CAACT,IAAI,CAACN,QAAN,EAAgBa,MAAhB,CAAuBE,GAAvB,CAAhC,CADC,CADL,CADF","sourcesContent":["import React from 'react'\nimport { NextRouter, useRouter } from 'next/router'\nimport { PredicateType, usePredicate } from '../api'\nimport { useListingConfig } from './'\nimport { useConfigState, useListingAlias } from '../../index'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { getTranslatableField } from '../../utils/getTranslatableField'\nimport { IdReferenceDTO, LangValue } from '@sentecacommerce/sdk'\nimport { ListingTypesEnum } from '..'\n\nexport type Breadcrumb = { name: string; id: string; link: string }[]\n\nexport type UseListingBreadcrumbsResult = {\n data: {\n name: string\n id: string\n link: string\n }[]\n last: {\n name: string\n id: string\n link: string\n }\n isLoading: boolean\n}\n\nexport const useListingBreadcrumbs = (): UseListingBreadcrumbsResult => {\n const { data, isLoading } = usePredicate()\n const config = useListingConfig()\n const router = useRouter()\n\n const mainConfig = useConfigState() as any\n const { slug } = useListingAlias()\n\n const result = React.useMemo(() => {\n if (config.type === ListingTypesEnum.AttrPage) {\n return [\n {\n name: mainConfig.listing.titleAliases[slug],\n id: '',\n link: `/${router.query.slug}/c`,\n },\n ]\n }\n if (router.query.q) {\n return [\n {\n name: `${router.query.q}`,\n id: '',\n link: `/search?q=${router.query.q}`,\n },\n ]\n }\n\n return createCatalogBreadcrumb(data as PredicateType, config.type, router)\n }, [data, config.type, router.query])\n\n const lastBreadcrumb = React.useMemo(() => {\n return result?.[result?.length - 2]\n }, [result])\n\n return { data: result, last: lastBreadcrumb, isLoading }\n}\n\nconst createCatalogBreadcrumb = (\n predicate: PredicateType,\n type: string,\n router: NextRouter\n): Breadcrumb => {\n const result: {\n name: string\n id: string\n link: string\n }[] = []\n\n const sortedAncestors = sortAncestors(predicate?.ancestors)\n const attrLink = router.query.cat ? (router.query.slug as string) : undefined\n\n if (predicate?.breadcrumb) {\n result.push({\n name: getTranslatableField(predicate.breadcrumb.label),\n id: predicate._id,\n\n link: `/${router.query.slug}/${getTranslatableField(\n sortedAncestors?.[0]?.slug || predicate?.slug\n )}/c${applyFilters(router)}`,\n })\n }\n\n sortedAncestors.forEach((ancestor) => {\n result.push({\n name: getTranslatableField(ancestor.name),\n id: ancestor._id,\n link: processLink(ancestor.slug, type, attrLink) + applyFilters(router),\n })\n })\n\n if (predicate?.slug[0]) {\n result.push({\n name: getTranslatableField(predicate?.name),\n id: predicate._id,\n link: processLink(predicate?.slug, type, attrLink) + applyFilters(router),\n })\n }\n\n return result\n}\nfunction applyFilters(router?: NextRouter) {\n const filters = router?.query.filter\n if (filters) {\n if (Array.isArray(filters)) {\n return `?filter=` + filters.join('&filter=')\n } else {\n return `?filter=` + filters\n }\n }\n\n return ''\n}\nfunction processLink(slug: LangValue[], type: string, attr?: string) {\n if (attr) {\n return `/${attr}/${getTranslatableField(slug)}/${typeToSuffix[type]}`\n }\n return `/${getTranslatableField(slug)}/${typeToSuffix[type]}`\n}\n\nfunction sortAncestors(ancestors?: IdReferenceDTO[]) {\n let result = []\n\n if (Array.isArray(ancestors)) {\n const newAncestors = ancestors.filter(\n (a) => a.resource && typeof a.resource === 'object'\n )\n\n if (newAncestors.length) {\n const tree = mapListToTree(newAncestors)\n\n result = treeToArray(tree)[0]\n }\n }\n\n return result\n}\n\nconst mapListToTree = (list: any[]) => {\n const map = {}\n let node\n const roots = []\n let i\n for (i = 0; i < list.length; i += 1) {\n map[list[i].resourceId] = i\n list[i].children = []\n }\n for (i = 0; i < list.length; i += 1) {\n node = list[i]\n if (\n node.resource.parent &&\n map.hasOwnProperty(node.resource.parent.resourceId)\n ) {\n list[map[node.resource.parent.resourceId]].children.push(node)\n } else {\n roots.push(node)\n }\n }\n return roots[0]\n}\n\nconst treeToArray = (node: any) =>\n (node.children.length ? [] : [[node.resource]]).concat(\n ...node.children.map((child: any) =>\n treeToArray(child).map((arr) => [node.resource].concat(arr))\n )\n )\n"],"file":"useListingBreadcrumbs.js"}
@@ -2,6 +2,8 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import { ListingTypesEnum } from '../index';
3
3
  import { extendFilter } from './extendFilter';
4
4
  export var buildCategoryQuery = (_ref) => {
5
+ var _aggregates$, _aggregates$2;
6
+
5
7
  var {
6
8
  aggregates,
7
9
  predicate,
@@ -11,10 +13,8 @@ export var buildCategoryQuery = (_ref) => {
11
13
  router,
12
14
  slug
13
15
  } = _ref;
14
- var {
15
- aggregationType: type,
16
- aggregationDefinition: term
17
- } = aggregates == null ? void 0 : aggregates[0];
16
+ var type = aggregates == null ? void 0 : (_aggregates$ = aggregates[0]) == null ? void 0 : _aggregates$.aggregationType;
17
+ var term = aggregates == null ? void 0 : (_aggregates$2 = aggregates[0]) == null ? void 0 : _aggregates$2.aggregationDefinition;
18
18
  var aggValue = getAggValue({
19
19
  id: predicate == null ? void 0 : predicate._id,
20
20
  term
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/utils/buildCategoryQuery.ts"],"names":["ListingTypesEnum","extendFilter","buildCategoryQuery","aggregates","predicate","postFilter","pageType","config","router","slug","aggregationType","type","aggregationDefinition","term","aggValue","getAggValue","id","_id","listingConfig","listing","getFilters","filter","Brand","applyBrandsPostFilter","query","cat","filterExtension","Category","AttrPage","Search","searchQuery","q","search","Collection","collapseMode","filtersArr","split","filters","reduce","res","val","i","includes"],"mappings":"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","sourcesContent":["import { NextRouter } from 'next/router'\nimport { ListingTypesEnum, Aggregate, PredicateType } from '../index'\nimport { extendFilter } from './extendFilter'\n\nexport const buildCategoryQuery = ({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n}: {\n pageType: ListingTypesEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n config?: any\n}) => {\n const { aggregationType: type, aggregationDefinition: term } = aggregates?.[0]\n\n const aggValue = getAggValue({ id: predicate?._id, term })\n\n const listingConfig = config?.listing\n\n const getFilters = () => {\n let filter = ''\n switch (pageType) {\n case ListingTypesEnum.Brand:\n filter += `brand;eq;\"${predicate?._id}\"${applyBrandsPostFilter({\n postFilter,\n })}`\n\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n break\n\n case ListingTypesEnum.Category:\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) {\n if (router.query.cat) filter += '&'\n filter += postFilter\n }\n\n break\n\n case ListingTypesEnum.AttrPage:\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n case ListingTypesEnum.Search:\n const searchQuery = router.query.q ?? router.query.search\n filter += `text;eq;\"${searchQuery}\"`\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n default:\n return `${listingConfig?.filterExtension + `${postFilter ?? ''}`}`\n }\n\n return filter\n }\n let query = {\n [type]: aggValue,\n filter: getFilters(),\n }\n\n if (pageType === ListingTypesEnum.Collection) {\n const collapseMode = listingConfig?.collapseMode\n query = { ...query, collapseMode }\n }\n\n return query\n}\n\nconst getAggValue = ({ id, term }: { id?: string; term: string }) => {\n return id && term !== 'categories' ? `${term}:${id}` : term\n}\n\nconst applyBrandsPostFilter = ({ postFilter }: { postFilter?: string }) => {\n if (postFilter) {\n const filtersArr = postFilter.split('&')\n\n const filters = filtersArr.reduce((res, val, i) => {\n if (val.includes('category')) return res\n\n return (res += `&${val}`)\n }, '')\n\n return `${filters}`\n }\n\n return ''\n}\n"],"file":"buildCategoryQuery.js"}
1
+ {"version":3,"sources":["../../../../src/listing/utils/buildCategoryQuery.ts"],"names":["ListingTypesEnum","extendFilter","buildCategoryQuery","aggregates","predicate","postFilter","pageType","config","router","slug","type","aggregationType","term","aggregationDefinition","aggValue","getAggValue","id","_id","listingConfig","listing","getFilters","filter","Brand","applyBrandsPostFilter","query","cat","filterExtension","Category","AttrPage","Search","searchQuery","q","search","Collection","collapseMode","filtersArr","split","filters","reduce","res","val","i","includes"],"mappings":"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","sourcesContent":["import { NextRouter } from 'next/router'\nimport { ListingTypesEnum, Aggregate, PredicateType } from '../index'\nimport { extendFilter } from './extendFilter'\n\nexport const buildCategoryQuery = ({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n}: {\n pageType: ListingTypesEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n config?: any\n}) => {\n const type = aggregates?.[0]?.aggregationType\n const term = aggregates?.[0]?.aggregationDefinition\n\n const aggValue = getAggValue({ id: predicate?._id, term })\n\n const listingConfig = config?.listing\n\n const getFilters = () => {\n let filter = ''\n switch (pageType) {\n case ListingTypesEnum.Brand:\n filter += `brand;eq;\"${predicate?._id}\"${applyBrandsPostFilter({\n postFilter,\n })}`\n\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n break\n\n case ListingTypesEnum.Category:\n if (router.query.cat)\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) {\n if (router.query.cat) filter += '&'\n filter += postFilter\n }\n\n break\n\n case ListingTypesEnum.AttrPage:\n filter += extendFilter({\n slug,\n filterExtension: listingConfig?.filterExtension,\n })\n\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n case ListingTypesEnum.Search:\n const searchQuery = router.query.q ?? router.query.search\n filter += `text;eq;\"${searchQuery}\"`\n if (postFilter) filter += `&${postFilter}`\n\n break\n\n default:\n return `${listingConfig?.filterExtension + `${postFilter ?? ''}`}`\n }\n\n return filter\n }\n let query = {\n [type]: aggValue,\n filter: getFilters(),\n }\n\n if (pageType === ListingTypesEnum.Collection) {\n const collapseMode = listingConfig?.collapseMode\n query = { ...query, collapseMode }\n }\n\n return query\n}\n\nconst getAggValue = ({ id, term }: { id?: string; term: string }) => {\n return id && term !== 'categories' ? `${term}:${id}` : term\n}\n\nconst applyBrandsPostFilter = ({ postFilter }: { postFilter?: string }) => {\n if (postFilter) {\n const filtersArr = postFilter.split('&')\n\n const filters = filtersArr.reduce((res, val, i) => {\n if (val.includes('category')) return res\n\n return (res += `&${val}`)\n }, '')\n\n return `${filters}`\n }\n\n return ''\n}\n"],"file":"buildCategoryQuery.js"}
@@ -16,10 +16,13 @@ export var buildFilterQuery = (_ref) => {
16
16
  } = _ref;
17
17
  var query = (predicate == null ? void 0 : predicate.filters) || (predicate == null ? void 0 : predicate._id) || slug;
18
18
  var queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType;
19
- var {
20
- filterExtension,
21
- collapseMode
22
- } = config;
19
+ var filterExtension, collapseMode;
20
+
21
+ if (config.listing) {
22
+ filterExtension = config.listing.filterExtension;
23
+ collapseMode = config.listing.collapseMode;
24
+ }
25
+
23
26
  var filter = '';
24
27
 
25
28
  if (pageType === ListingTypesEnum.AttrPage) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/listing/utils/buildFilterQuery.ts"],"names":["ListingTypesEnum","getAttributePageType","extendFilter","buildFilterQuery","predicate","slug","pageType","router","aggregates","config","postFilter","query","filters","_id","queryType","Search","filterExtension","collapseMode","filter","AttrPage","type","val","cat","View","searchQuery","q","search","aggregatesMap","reduce","map","agg","aggregateType","aggregationType","aggregationTerm","aggregationDefinition","builtQuery","noSplit","Collection"],"mappings":";AACA,SAAoBA,gBAApB,QAA2D,UAA3D;AACA,SAASC,oBAAT,QAAqC,gBAArC;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA,OAAO,IAAMC,gBAAgB,GAAG,UAgB1B;AAAA;;AAAA,MAhB2B;AAC/BC,IAAAA,SAD+B;AAE/BC,IAAAA,IAF+B;AAG/BC,IAAAA,QAH+B;AAI/BC,IAAAA,MAJ+B;AAK/BC,IAAAA,UAL+B;AAM/BC,IAAAA,MAN+B;AAO/BC,IAAAA;AAP+B,GAgB3B;AACJ,MAAMC,KAAK,GAAG,CAAAP,SAAS,QAAT,YAAAA,SAAS,CAAEQ,OAAX,MAAsBR,SAAtB,oBAAsBA,SAAS,CAAES,GAAjC,KAAwCR,IAAtD;AAEA,MAAMS,SAAS,GAAGR,QAAQ,KAAKN,gBAAgB,CAACe,MAA9B,GAAuC,MAAvC,GAAgDT,QAAlE;AAEA,MAAM;AAAEU,IAAAA,eAAF;AAAmBC,IAAAA;AAAnB,MAAoCR,MAA1C;AAEA,MAAIS,MAAM,GAAG,EAAb;;AAEA,MAAIZ,QAAQ,KAAKN,gBAAgB,CAACmB,QAAlC,EAA4C;AAC1C,QAAM,CAACC,IAAD,EAAOC,GAAP,IAAcpB,oBAAoB,CAACM,MAAD,EAASF,IAAT,CAAxC;AACAa,IAAAA,MAAM,aAAWE,IAAX,cAAuBC,GAAvB,OAAN;AACD,GAHD,MAGO;AACLH,IAAAA,MAAM,GAAMJ,SAAN,cAAuBH,KAAvB,OAAN;AACD;;AAED,MAAIJ,MAAM,CAACI,KAAP,CAAaW,GAAjB,EAAsB;AACpB,QAAM,CAACF,KAAD,EAAOC,IAAP,IAAcpB,oBAAoB,CAACM,MAAD,EAASF,IAAT,CAAxC;AACAa,IAAAA,MAAM,eAAaE,KAAb,YAAwBC,IAA9B;AACD;;AACD,MAAIf,QAAQ,KAAKN,gBAAgB,CAACuB,IAAlC,EAAwC;AACtCL,IAAAA,MAAM,GAAGP,KAAT;AACD;;AAED,MAAIL,QAAQ,KAAKN,gBAAgB,CAACe,MAAlC,EAA0C;AAAA;;AACxC,QAAMS,WAAW,sBAAGjB,MAAM,CAACI,KAAP,CAAac,CAAhB,8BAAqBlB,MAAM,CAACI,KAAP,CAAae,MAAnD;AACAR,IAAAA,MAAM,kBAAeM,WAAf,OAAN;AACD;;AAED,MAAMG,aAAa,GAAGnB,UAAH,oBAAGA,UAAU,CAAEoB,MAAZ,CAAmB,CAACC,GAAD,EAAMC,GAAN,KAAc;AACrD,QAAMC,aAAa,GAAGD,GAAG,CAACE,eAA1B;AACA,QAAMC,eAAe,GAAGH,GAAG,CAACI,qBAA5B;;AACA,QAAIL,GAAG,CAACE,aAAD,CAAP,EAAwB;AACtB,0BACKF,GADL;AAEE,SAACE,aAAD,GAAoBF,GAAG,CAACE,aAAD,CAAvB,SAA0CE;AAF5C;AAID;;AAED,wBACKJ,GADL;AAEE,OAACE,aAAD,QAAoBE;AAFtB;AAID,GAdqB,EAcnB,EAdmB,CAAtB;;AAgBA,MAAIE,UAAe,gBACdR,aADc;AAEjBT,IAAAA,MAAM,EAAEhB,YAAY,CAAC;AAAEG,MAAAA,IAAI,EAAEa,MAAR;AAAgBF,MAAAA,eAAhB;AAAiCoB,MAAAA,OAAO,EAAE;AAA1C,KAAD;AAFH,IAAnB;;AAKA,uBAAI7B,MAAM,CAACI,KAAX,aAAI,cAAcO,MAAlB,EACEiB,UAAU,gBAAQA,UAAR;AAAoBzB,IAAAA,UAAU,EAAEA;AAAhC,IAAV;AAEF,MAAIJ,QAAQ,KAAKN,gBAAgB,CAACqC,UAA9B,IAA4CpB,YAAhD,EACEkB,UAAU,gBAAQA,UAAR;AAAoBlB,IAAAA;AAApB,IAAV;AAEF,SAAOkB,UAAP;AACD,CAzEM","sourcesContent":["import { NextRouter } from 'next/router'\nimport { Aggregate, ListingTypesEnum, PredicateType } from '../index'\nimport { getAttributePageType } from '../hooks/utils'\nimport { extendFilter } from './extendFilter'\n\nexport const buildFilterQuery = ({\n predicate,\n slug,\n pageType,\n router,\n aggregates,\n config,\n postFilter,\n}: {\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n pageType: ListingTypesEnum\n config: any\n}) => {\n const query = predicate?.filters || predicate?._id || slug\n\n const queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType\n\n const { filterExtension, collapseMode } = config\n\n let filter = ''\n\n if (pageType === ListingTypesEnum.AttrPage) {\n const [type, val] = getAttributePageType(router, slug)\n filter = `attr.${type};eq;\"${val}\"`\n } else {\n filter = `${queryType};eq;\"${query}\"`\n }\n\n if (router.query.cat) {\n const [type, val] = getAttributePageType(router, slug)\n filter += `&attr.${type};eq;${val}`\n }\n if (pageType === ListingTypesEnum.View) {\n filter = query\n }\n\n if (pageType === ListingTypesEnum.Search) {\n const searchQuery = router.query.q ?? router.query.search\n filter = `text;eq;\"${searchQuery}\"`\n }\n\n const aggregatesMap = aggregates?.reduce((map, agg) => {\n const aggregateType = agg.aggregationType\n const aggregationTerm = agg.aggregationDefinition\n if (map[aggregateType]) {\n return {\n ...map,\n [aggregateType]: `${map[aggregateType]}&${aggregationTerm}`,\n }\n }\n\n return {\n ...map,\n [aggregateType]: `${aggregationTerm}`,\n }\n }, {})\n\n let builtQuery: any = {\n ...aggregatesMap,\n filter: extendFilter({ slug: filter, filterExtension, noSplit: true }),\n }\n\n if (router.query?.filter)\n builtQuery = { ...builtQuery, postFilter: postFilter as string }\n\n if (pageType !== ListingTypesEnum.Collection && collapseMode)\n builtQuery = { ...builtQuery, collapseMode }\n\n return builtQuery\n}\n"],"file":"buildFilterQuery.js"}
1
+ {"version":3,"sources":["../../../../src/listing/utils/buildFilterQuery.ts"],"names":["ListingTypesEnum","getAttributePageType","extendFilter","buildFilterQuery","predicate","slug","pageType","router","aggregates","config","postFilter","query","filters","_id","queryType","Search","filterExtension","collapseMode","listing","filter","AttrPage","type","val","cat","View","searchQuery","q","search","aggregatesMap","reduce","map","agg","aggregateType","aggregationType","aggregationTerm","aggregationDefinition","builtQuery","noSplit","Collection"],"mappings":";AACA,SAAoBA,gBAApB,QAA2D,UAA3D;AACA,SAASC,oBAAT,QAAqC,gBAArC;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA,OAAO,IAAMC,gBAAgB,GAAG,UAgB1B;AAAA;;AAAA,MAhB2B;AAC/BC,IAAAA,SAD+B;AAE/BC,IAAAA,IAF+B;AAG/BC,IAAAA,QAH+B;AAI/BC,IAAAA,MAJ+B;AAK/BC,IAAAA,UAL+B;AAM/BC,IAAAA,MAN+B;AAO/BC,IAAAA;AAP+B,GAgB3B;AACJ,MAAMC,KAAK,GAAG,CAAAP,SAAS,QAAT,YAAAA,SAAS,CAAEQ,OAAX,MAAsBR,SAAtB,oBAAsBA,SAAS,CAAES,GAAjC,KAAwCR,IAAtD;AAEA,MAAMS,SAAS,GAAGR,QAAQ,KAAKN,gBAAgB,CAACe,MAA9B,GAAuC,MAAvC,GAAgDT,QAAlE;AAEA,MAAIU,eAAJ,EAAqBC,YAArB;;AAEA,MAAIR,MAAM,CAACS,OAAX,EAAoB;AAClBF,IAAAA,eAAe,GAAGP,MAAM,CAACS,OAAP,CAAeF,eAAjC;AACAC,IAAAA,YAAY,GAAGR,MAAM,CAACS,OAAP,CAAeD,YAA9B;AACD;;AAED,MAAIE,MAAM,GAAG,EAAb;;AAEA,MAAIb,QAAQ,KAAKN,gBAAgB,CAACoB,QAAlC,EAA4C;AAC1C,QAAM,CAACC,IAAD,EAAOC,GAAP,IAAcrB,oBAAoB,CAACM,MAAD,EAASF,IAAT,CAAxC;AACAc,IAAAA,MAAM,aAAWE,IAAX,cAAuBC,GAAvB,OAAN;AACD,GAHD,MAGO;AACLH,IAAAA,MAAM,GAAML,SAAN,cAAuBH,KAAvB,OAAN;AACD;;AAED,MAAIJ,MAAM,CAACI,KAAP,CAAaY,GAAjB,EAAsB;AACpB,QAAM,CAACF,KAAD,EAAOC,IAAP,IAAcrB,oBAAoB,CAACM,MAAD,EAASF,IAAT,CAAxC;AACAc,IAAAA,MAAM,eAAaE,KAAb,YAAwBC,IAA9B;AACD;;AACD,MAAIhB,QAAQ,KAAKN,gBAAgB,CAACwB,IAAlC,EAAwC;AACtCL,IAAAA,MAAM,GAAGR,KAAT;AACD;;AAED,MAAIL,QAAQ,KAAKN,gBAAgB,CAACe,MAAlC,EAA0C;AAAA;;AACxC,QAAMU,WAAW,sBAAGlB,MAAM,CAACI,KAAP,CAAae,CAAhB,8BAAqBnB,MAAM,CAACI,KAAP,CAAagB,MAAnD;AACAR,IAAAA,MAAM,kBAAeM,WAAf,OAAN;AACD;;AAED,MAAMG,aAAa,GAAGpB,UAAH,oBAAGA,UAAU,CAAEqB,MAAZ,CAAmB,CAACC,GAAD,EAAMC,GAAN,KAAc;AACrD,QAAMC,aAAa,GAAGD,GAAG,CAACE,eAA1B;AACA,QAAMC,eAAe,GAAGH,GAAG,CAACI,qBAA5B;;AACA,QAAIL,GAAG,CAACE,aAAD,CAAP,EAAwB;AACtB,0BACKF,GADL;AAEE,SAACE,aAAD,GAAoBF,GAAG,CAACE,aAAD,CAAvB,SAA0CE;AAF5C;AAID;;AAED,wBACKJ,GADL;AAEE,OAACE,aAAD,QAAoBE;AAFtB;AAID,GAdqB,EAcnB,EAdmB,CAAtB;;AAgBA,MAAIE,UAAe,gBACdR,aADc;AAEjBT,IAAAA,MAAM,EAAEjB,YAAY,CAAC;AAAEG,MAAAA,IAAI,EAAEc,MAAR;AAAgBH,MAAAA,eAAhB;AAAiCqB,MAAAA,OAAO,EAAE;AAA1C,KAAD;AAFH,IAAnB;;AAKA,uBAAI9B,MAAM,CAACI,KAAX,aAAI,cAAcQ,MAAlB,EACEiB,UAAU,gBAAQA,UAAR;AAAoB1B,IAAAA,UAAU,EAAEA;AAAhC,IAAV;AAEF,MAAIJ,QAAQ,KAAKN,gBAAgB,CAACsC,UAA9B,IAA4CrB,YAAhD,EACEmB,UAAU,gBAAQA,UAAR;AAAoBnB,IAAAA;AAApB,IAAV;AAEF,SAAOmB,UAAP;AACD,CA9EM","sourcesContent":["import { NextRouter } from 'next/router'\nimport { Aggregate, ListingTypesEnum, PredicateType } from '../index'\nimport { getAttributePageType } from '../hooks/utils'\nimport { extendFilter } from './extendFilter'\n\nexport const buildFilterQuery = ({\n predicate,\n slug,\n pageType,\n router,\n aggregates,\n config,\n postFilter,\n}: {\n aggregates: Aggregate[]\n router: NextRouter\n postFilter?: string\n predicate?: PredicateType\n slug: string\n pageType: ListingTypesEnum\n config: any\n}) => {\n const query = predicate?.filters || predicate?._id || slug\n\n const queryType = pageType === ListingTypesEnum.Search ? 'text' : pageType\n\n let filterExtension, collapseMode\n\n if (config.listing) {\n filterExtension = config.listing.filterExtension\n collapseMode = config.listing.collapseMode\n }\n\n let filter = ''\n\n if (pageType === ListingTypesEnum.AttrPage) {\n const [type, val] = getAttributePageType(router, slug)\n filter = `attr.${type};eq;\"${val}\"`\n } else {\n filter = `${queryType};eq;\"${query}\"`\n }\n\n if (router.query.cat) {\n const [type, val] = getAttributePageType(router, slug)\n filter += `&attr.${type};eq;${val}`\n }\n if (pageType === ListingTypesEnum.View) {\n filter = query\n }\n\n if (pageType === ListingTypesEnum.Search) {\n const searchQuery = router.query.q ?? router.query.search\n filter = `text;eq;\"${searchQuery}\"`\n }\n\n const aggregatesMap = aggregates?.reduce((map, agg) => {\n const aggregateType = agg.aggregationType\n const aggregationTerm = agg.aggregationDefinition\n if (map[aggregateType]) {\n return {\n ...map,\n [aggregateType]: `${map[aggregateType]}&${aggregationTerm}`,\n }\n }\n\n return {\n ...map,\n [aggregateType]: `${aggregationTerm}`,\n }\n }, {})\n\n let builtQuery: any = {\n ...aggregatesMap,\n filter: extendFilter({ slug: filter, filterExtension, noSplit: true }),\n }\n\n if (router.query?.filter)\n builtQuery = { ...builtQuery, postFilter: postFilter as string }\n\n if (pageType !== ListingTypesEnum.Collection && collapseMode)\n builtQuery = { ...builtQuery, collapseMode }\n\n return builtQuery\n}\n"],"file":"buildFilterQuery.js"}
@@ -1 +1,2 @@
1
1
  export * from './queries';
2
+ export * from './mutations';
@@ -0,0 +1,3 @@
1
+ export * from './useCMSFoldersCreateMutation';
2
+ export * from './useCMSMediaUploadAssetsMutation';
3
+ export * from './useCMSMediaDeleteAssetsMutation';
@@ -0,0 +1,5 @@
1
+ import { FolderDTO, FolderDraftDTO } from '@sentecacommerce/sdk';
2
+ export declare const useCMSFoldersCreateMutation: () => import("react-query").MutationResultPair<FolderDTO, unknown, {
3
+ parent?: FolderDraftDTO | undefined;
4
+ folder: FolderDraftDTO;
5
+ }, unknown>;
@@ -0,0 +1,2 @@
1
+ import { MediaDeleteDTO } from '@sentecacommerce/sdk';
2
+ export declare const useCMSMediaDeleteAssetsMutation: () => import("react-query").MutationResultPair<any, unknown, MediaDeleteDTO, unknown>;
@@ -0,0 +1,6 @@
1
+ import { FolderDTO, MediaDTO, MediaFilterResultDTO } from '@sentecacommerce/sdk';
2
+ export { FolderDTO, MediaDTO, MediaFilterResultDTO };
3
+ export declare const useCMSMediaUploadAssetsMutation: () => import("react-query").MutationResultPair<MediaDTO[], unknown, {
4
+ folderId: string;
5
+ assets: any;
6
+ }, unknown>;
@@ -2,3 +2,5 @@ export * from './useInjectedContentQuery';
2
2
  export * from './keys';
3
3
  export * from './useCMSContentListQuery';
4
4
  export * from './useCMSContentQuery';
5
+ export * from './useCMSFoldersQuery';
6
+ export * from './useCMSMediaQuery';
@@ -0,0 +1,16 @@
1
+ export interface FoldersFilterQueryDTO {
2
+ storeKey?: string;
3
+ interfaceKey?: string;
4
+ currencyCode?: string;
5
+ languageCode?: string;
6
+ priceListKey?: string;
7
+ time?: number;
8
+ merchantKey?: string;
9
+ expand?: string;
10
+ project?: string;
11
+ filter?: string;
12
+ sort?: string;
13
+ limit?: number;
14
+ offset?: number;
15
+ }
16
+ export declare const useCMSFoldersQuery: (query?: FoldersFilterQueryDTO | undefined) => import("react-query").QueryResult<import("@sentecacommerce/sdk").FolderFilterResultDTO, unknown>;
@@ -0,0 +1,19 @@
1
+ export interface MediaFilterQueryDTO {
2
+ storeKey?: string;
3
+ interfaceKey?: string;
4
+ currencyCode?: string;
5
+ languageCode?: string;
6
+ priceListKey?: string;
7
+ time?: number;
8
+ merchantKey?: string;
9
+ expand?: string;
10
+ project?: string;
11
+ filter?: string;
12
+ sort?: string;
13
+ limit?: number;
14
+ offset?: number;
15
+ }
16
+ export declare const useCMSMediaQuery: (query?: MediaFilterQueryDTO | undefined, props?: {
17
+ enabled?: boolean | undefined;
18
+ getFetchMore?: ((lastPage: any, allPages: any[]) => void) | undefined;
19
+ } | undefined) => import("react-query").InfiniteQueryResult<import("@sentecacommerce/sdk").MediaFilterResultDTO, unknown>;
@@ -0,0 +1,4 @@
1
+ export declare const cacheKeys: {
2
+ cmsFolders: string;
3
+ cmsMedia: string;
4
+ };
@@ -0,0 +1 @@
1
+ export * from './cacheKeys';
@@ -4,3 +4,8 @@ export * from './useInjectedContentContext';
4
4
  export * from './useCmsContent';
5
5
  export * from './useCmsContentList';
6
6
  export * from './useContentCategoriesMap';
7
+ export * from './useCmsFolders';
8
+ export * from './useCreateCmsFolders';
9
+ export * from './useCmsMedia';
10
+ export * from './useCmsMediaUploadAssets';
11
+ export * from './useCmsMediaDeleteAssets';
@@ -0,0 +1,2 @@
1
+ import { useCMSFoldersQuery } from '../api';
2
+ export { useCMSFoldersQuery as useCmsFolders };
@@ -0,0 +1,2 @@
1
+ import { useCMSMediaQuery } from '../api';
2
+ export { useCMSMediaQuery as useCmsMedia };
@@ -0,0 +1,2 @@
1
+ import { useCMSMediaDeleteAssetsMutation } from '../api';
2
+ export { useCMSMediaDeleteAssetsMutation as useCmsMediaDeleteAssets };
@@ -0,0 +1,2 @@
1
+ import { useCMSMediaUploadAssetsMutation } from '../api';
2
+ export { useCMSMediaUploadAssetsMutation as useCmsMediaUploadAssets };
@@ -0,0 +1,2 @@
1
+ import { useCMSFoldersCreateMutation } from '../api';
2
+ export { useCMSFoldersCreateMutation as useCreateCmsFolders };
@@ -17,9 +17,10 @@ export interface LocaleData {
17
17
  themeVersion: string;
18
18
  };
19
19
  }
20
- export declare function SentecaProvider({ defaultConfig, transientConfig, localeData, children, }: {
20
+ export declare function SentecaProvider({ defaultConfig, transientConfig, localeData, children, disableStaged, }: {
21
21
  defaultConfig: ConfigOptions;
22
22
  transientConfig?: ConfigOptions;
23
23
  children: React.ReactNode;
24
24
  localeData?: LocaleData;
25
- }): JSX.Element;
25
+ disableStaged?: true;
26
+ }): JSX.Element | null;
@@ -1,7 +1,7 @@
1
1
  import { OrderDTO, LineItemDTO } from '@sentecacommerce/sdk';
2
2
  export declare const useGoToCheckout: ({ guestCallback, authenticatedCallback, onErrorCallback, }: {
3
- guestCallback: () => void;
4
- authenticatedCallback: () => void;
3
+ guestCallback: (data?: OrderDTO | undefined) => void;
4
+ authenticatedCallback: (data?: OrderDTO | undefined) => void;
5
5
  onErrorCallback?: ((data: LineItemDTO[]) => void) | undefined;
6
6
  }) => import("react-query").MutationResultPair<OrderDTO, unknown, {
7
7
  query?: {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sentecacommerce-theme/lib",
3
3
  "sideEffects": false,
4
- "version": "0.12.49",
4
+ "version": "0.12.53",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
7
7
  "types": "dist/types/index.d.ts",
@@ -28,9 +28,9 @@
28
28
  "build:types": "tsc --emitDeclarationOnly --declaration --declarationDir dist/types",
29
29
  "dev": "yarn build:esm --watch"
30
30
  },
31
- "gitHead": "4fbf3ea9ee1aad196237ca3d938792987045c3d5",
31
+ "gitHead": "2c679cfe2f1c5c7fb093ca470df6e058fb1de741",
32
32
  "dependencies": {
33
- "@sentecacommerce-theme/base": "^0.12.49",
33
+ "@sentecacommerce-theme/base": "^0.12.53",
34
34
  "@sentecacommerce/sdk": "2.0.118",
35
35
  "body-scroll-lock": "^3.1.5",
36
36
  "copy-to-clipboard": "^3.3.1",