@fast-simon/dashboard-utilities 1.0.3 → 1.0.4

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 (215) hide show
  1. package/dist/@types/banner.d.ts +7 -0
  2. package/dist/@types/banner.js +2 -0
  3. package/dist/@types/banner.js.map +1 -0
  4. package/dist/@types/categories.d.ts +16 -0
  5. package/dist/@types/categories.js +2 -0
  6. package/dist/@types/categories.js.map +1 -0
  7. package/dist/@types/currency.d.ts +1 -0
  8. package/dist/@types/currency.js +2 -0
  9. package/dist/@types/currency.js.map +1 -0
  10. package/dist/@types/editorProduct.d.ts +26 -0
  11. package/dist/@types/editorProduct.js +6 -0
  12. package/dist/@types/editorProduct.js.map +1 -0
  13. package/dist/@types/iconProps.d.ts +9 -0
  14. package/dist/@types/iconProps.js +2 -0
  15. package/dist/@types/iconProps.js.map +1 -0
  16. package/dist/@types/product.d.ts +158 -0
  17. package/dist/@types/product.js +8 -0
  18. package/dist/@types/product.js.map +1 -0
  19. package/dist/@types/productLabel.d.ts +1 -0
  20. package/dist/@types/productLabel.js +2 -0
  21. package/dist/@types/productLabel.js.map +1 -0
  22. package/dist/@types/promoTile.d.ts +11 -0
  23. package/dist/@types/promoTile.js +2 -0
  24. package/dist/@types/promoTile.js.map +1 -0
  25. package/dist/@types/results.d.ts +42 -0
  26. package/dist/@types/results.js +2 -0
  27. package/dist/@types/results.js.map +1 -0
  28. package/dist/@types/sideMenu.d.ts +19 -0
  29. package/dist/@types/sideMenu.js +2 -0
  30. package/dist/@types/sideMenu.js.map +1 -0
  31. package/dist/@types/sortBy.d.ts +3 -0
  32. package/dist/@types/sortBy.js +2 -0
  33. package/dist/@types/sortBy.js.map +1 -0
  34. package/dist/App.d.ts +3 -0
  35. package/dist/App.js +15 -0
  36. package/dist/App.js.map +1 -0
  37. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.d.ts +9 -0
  38. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.js +74 -0
  39. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.js.map +1 -0
  40. package/dist/components/BackOfficeFiltersMenu/index.d.ts +1 -0
  41. package/dist/components/BackOfficeFiltersMenu/index.js +2 -0
  42. package/dist/components/BackOfficeFiltersMenu/index.js.map +1 -0
  43. package/dist/components/BackOfficeFiltersMenu/styles.module.css +10 -0
  44. package/dist/components/BackOfficeFiltersMenu/utils.d.ts +7 -0
  45. package/dist/components/BackOfficeFiltersMenu/utils.js +239 -0
  46. package/dist/components/BackOfficeFiltersMenu/utils.js.map +1 -0
  47. package/dist/components/CheckboxFilter/Checkbox/Checkbox.d.ts +10 -0
  48. package/dist/components/CheckboxFilter/Checkbox/Checkbox.js +7 -0
  49. package/dist/components/CheckboxFilter/Checkbox/Checkbox.js.map +1 -0
  50. package/dist/components/CheckboxFilter/Checkbox/styles.module.css +143 -0
  51. package/dist/components/CheckboxFilter/CheckboxFilter.d.ts +6 -0
  52. package/dist/components/CheckboxFilter/CheckboxFilter.js +9 -0
  53. package/dist/components/CheckboxFilter/CheckboxFilter.js.map +1 -0
  54. package/dist/components/CheckboxFilter/styles.module.css +5 -0
  55. package/dist/components/DragAndDrop/DndContextWrapper.d.ts +20 -0
  56. package/dist/components/DragAndDrop/DndContextWrapper.js +33 -0
  57. package/dist/components/DragAndDrop/DndContextWrapper.js.map +1 -0
  58. package/dist/components/DragAndDrop/Droppable.d.ts +7 -0
  59. package/dist/components/DragAndDrop/Droppable.js +10 -0
  60. package/dist/components/DragAndDrop/Droppable.js.map +1 -0
  61. package/dist/components/DragAndDrop/SortableItem.d.ts +13 -0
  62. package/dist/components/DragAndDrop/SortableItem.js +39 -0
  63. package/dist/components/DragAndDrop/SortableItem.js.map +1 -0
  64. package/dist/components/DragAndDrop/styles.module.css +21 -0
  65. package/dist/components/FacetItem/FacetItem.d.ts +13 -0
  66. package/dist/components/FacetItem/FacetItem.js +40 -0
  67. package/dist/components/FacetItem/FacetItem.js.map +1 -0
  68. package/dist/components/FacetItem/styles.module.css +55 -0
  69. package/dist/components/FastSimonApi/FastSimonApi.d.ts +32 -0
  70. package/dist/components/FastSimonApi/FastSimonApi.js +398 -0
  71. package/dist/components/FastSimonApi/FastSimonApi.js.map +1 -0
  72. package/dist/components/FastSimonApi/context.d.ts +50 -0
  73. package/dist/components/FastSimonApi/context.js +10 -0
  74. package/dist/components/FastSimonApi/context.js.map +1 -0
  75. package/dist/components/FastSimonApi/index.d.ts +3 -0
  76. package/dist/components/FastSimonApi/index.js +3 -0
  77. package/dist/components/FastSimonApi/index.js.map +1 -0
  78. package/dist/components/FastSimonApi/reducer.d.ts +172 -0
  79. package/dist/components/FastSimonApi/reducer.js +67 -0
  80. package/dist/components/FastSimonApi/reducer.js.map +1 -0
  81. package/dist/components/FromToFilter/From/From.d.ts +17 -0
  82. package/dist/components/FromToFilter/From/From.js +22 -0
  83. package/dist/components/FromToFilter/From/From.js.map +1 -0
  84. package/dist/components/FromToFilter/From/styles.module.css +9 -0
  85. package/dist/components/FromToFilter/FromToFilter.d.ts +14 -0
  86. package/dist/components/FromToFilter/FromToFilter.js +58 -0
  87. package/dist/components/FromToFilter/FromToFilter.js.map +1 -0
  88. package/dist/components/FromToFilter/To/To.d.ts +18 -0
  89. package/dist/components/FromToFilter/To/To.js +23 -0
  90. package/dist/components/FromToFilter/To/To.js.map +1 -0
  91. package/dist/components/FromToFilter/To/styles.module.css +9 -0
  92. package/dist/components/FromToFilter/styles.module.css +34 -0
  93. package/dist/components/FromToFilter/utils.d.ts +25 -0
  94. package/dist/components/FromToFilter/utils.js +7 -0
  95. package/dist/components/FromToFilter/utils.js.map +1 -0
  96. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.d.ts +10 -0
  97. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.js +34 -0
  98. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.js.map +1 -0
  99. package/dist/components/InStoreFiltersMenu/index.d.ts +1 -0
  100. package/dist/components/InStoreFiltersMenu/index.js +2 -0
  101. package/dist/components/InStoreFiltersMenu/index.js.map +1 -0
  102. package/dist/components/InStoreFiltersMenu/styles.module.css +10 -0
  103. package/dist/components/Input/Input.d.ts +22 -0
  104. package/dist/components/Input/Input.js +49 -0
  105. package/dist/components/Input/Input.js.map +1 -0
  106. package/dist/components/Input/index.d.ts +1 -0
  107. package/dist/components/Input/index.js +2 -0
  108. package/dist/components/Input/index.js.map +1 -0
  109. package/dist/components/Input/styles.module.css +3 -0
  110. package/dist/components/LastReceivedDateFilter/LastReceivedDate.d.ts +9 -0
  111. package/dist/components/LastReceivedDateFilter/LastReceivedDate.js +88 -0
  112. package/dist/components/LastReceivedDateFilter/LastReceivedDate.js.map +1 -0
  113. package/dist/components/LastReceivedDateFilter/styles.module.css +41 -0
  114. package/dist/components/LastReceivedDateFilter/utils.d.ts +3 -0
  115. package/dist/components/LastReceivedDateFilter/utils.js +43 -0
  116. package/dist/components/LastReceivedDateFilter/utils.js.map +1 -0
  117. package/dist/components/RadioFilter/Radio/Radio.d.ts +10 -0
  118. package/dist/components/RadioFilter/Radio/Radio.js +7 -0
  119. package/dist/components/RadioFilter/Radio/Radio.js.map +1 -0
  120. package/dist/components/RadioFilter/Radio/styles.module.css +145 -0
  121. package/dist/components/RadioFilter/RadioFilter.d.ts +9 -0
  122. package/dist/components/RadioFilter/RadioFilter.js +45 -0
  123. package/dist/components/RadioFilter/RadioFilter.js.map +1 -0
  124. package/dist/components/RadioFilter/styles.module.css +23 -0
  125. package/dist/components/RadioFilter/utils.d.ts +1 -0
  126. package/dist/components/RadioFilter/utils.js +8 -0
  127. package/dist/components/RadioFilter/utils.js.map +1 -0
  128. package/dist/components/ReactDatePicker/ReactDatePicker.d.ts +11 -0
  129. package/dist/components/ReactDatePicker/ReactDatePicker.js +16 -0
  130. package/dist/components/ReactDatePicker/ReactDatePicker.js.map +1 -0
  131. package/dist/components/ReactDatePicker/index.d.ts +1 -0
  132. package/dist/components/ReactDatePicker/index.js +2 -0
  133. package/dist/components/ReactDatePicker/index.js.map +1 -0
  134. package/dist/components/ReactDatePicker/styles.module.css +3 -0
  135. package/dist/components/RenderIfVisible/RenderIfVisible.d.ts +12 -0
  136. package/dist/components/RenderIfVisible/RenderIfVisible.js +59 -0
  137. package/dist/components/RenderIfVisible/RenderIfVisible.js.map +1 -0
  138. package/dist/components/RenderIfVisible/index.d.ts +1 -0
  139. package/dist/components/RenderIfVisible/index.js +2 -0
  140. package/dist/components/RenderIfVisible/index.js.map +1 -0
  141. package/dist/components/SingleFilter/SingleFilter.d.ts +11 -0
  142. package/dist/components/SingleFilter/SingleFilter.js +90 -0
  143. package/dist/components/SingleFilter/SingleFilter.js.map +1 -0
  144. package/dist/components/SingleFilter/styles.module.css +23 -0
  145. package/dist/components/SingleFilter/utils.d.ts +3 -0
  146. package/dist/components/SingleFilter/utils.js +42 -0
  147. package/dist/components/SingleFilter/utils.js.map +1 -0
  148. package/dist/components/SliderFilter/SliderFilter.d.ts +20 -0
  149. package/dist/components/SliderFilter/SliderFilter.js +46 -0
  150. package/dist/components/SliderFilter/SliderFilter.js.map +1 -0
  151. package/dist/components/SliderFilter/index.d.ts +1 -0
  152. package/dist/components/SliderFilter/index.js +2 -0
  153. package/dist/components/SliderFilter/index.js.map +1 -0
  154. package/dist/components/SliderFilter/styles.module.css +16 -0
  155. package/dist/components/Tooltip/Tooltip.d.ts +8 -0
  156. package/dist/components/Tooltip/Tooltip.js +9 -0
  157. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  158. package/dist/components/Tooltip/styles.module.css +34 -0
  159. package/dist/components/common.d.ts +34 -0
  160. package/dist/components/common.js +80 -0
  161. package/dist/components/common.js.map +1 -0
  162. package/dist/components/productGrid/ProductGrid.d.ts +7 -0
  163. package/dist/components/productGrid/ProductGrid.js +11 -0
  164. package/dist/components/productGrid/ProductGrid.js.map +1 -0
  165. package/dist/components/productGrid/index.d.ts +1 -0
  166. package/dist/components/productGrid/index.js +2 -0
  167. package/dist/components/productGrid/index.js.map +1 -0
  168. package/dist/components/productGrid/styles.module.css +23 -0
  169. package/dist/icons/BackOfficeFiltersIcon.d.ts +2 -0
  170. package/dist/icons/BackOfficeFiltersIcon.js +7 -0
  171. package/dist/icons/BackOfficeFiltersIcon.js.map +1 -0
  172. package/dist/icons/BannersIcon.d.ts +2 -0
  173. package/dist/icons/BannersIcon.js +7 -0
  174. package/dist/icons/BannersIcon.js.map +1 -0
  175. package/dist/icons/HelpIcon.d.ts +7 -0
  176. package/dist/icons/HelpIcon.js +5 -0
  177. package/dist/icons/HelpIcon.js.map +1 -0
  178. package/dist/icons/InStoreFiltersIcon.d.ts +2 -0
  179. package/dist/icons/InStoreFiltersIcon.js +7 -0
  180. package/dist/icons/InStoreFiltersIcon.js.map +1 -0
  181. package/dist/icons/PromoteIcon.d.ts +2 -0
  182. package/dist/icons/PromoteIcon.js +7 -0
  183. package/dist/icons/PromoteIcon.js.map +1 -0
  184. package/dist/icons/RemoveIcon.d.ts +2 -0
  185. package/dist/icons/RemoveIcon.js +7 -0
  186. package/dist/icons/RemoveIcon.js.map +1 -0
  187. package/dist/icons/RestoreIcon.d.ts +2 -0
  188. package/dist/icons/RestoreIcon.js +7 -0
  189. package/dist/icons/RestoreIcon.js.map +1 -0
  190. package/dist/icons/index.d.ts +7 -0
  191. package/dist/icons/index.js +8 -0
  192. package/dist/icons/index.js.map +1 -0
  193. package/dist/icons/styles.module.css +61 -0
  194. package/dist/main.d.ts +1 -0
  195. package/dist/main.js +6 -0
  196. package/dist/main.js.map +1 -0
  197. package/dist/services/API.d.ts +21 -0
  198. package/dist/services/API.js +50 -0
  199. package/dist/services/API.js.map +1 -0
  200. package/dist/services/landingPage.d.ts +28 -0
  201. package/dist/services/landingPage.js +153 -0
  202. package/dist/services/landingPage.js.map +1 -0
  203. package/dist/utils/customTagsFilters.d.ts +4 -0
  204. package/dist/utils/customTagsFilters.js +10 -0
  205. package/dist/utils/customTagsFilters.js.map +1 -0
  206. package/dist/utils/products.d.ts +30 -0
  207. package/dist/utils/products.js +39 -0
  208. package/dist/utils/products.js.map +1 -0
  209. package/dist/utils/shopifyMarkets.d.ts +3 -0
  210. package/dist/utils/shopifyMarkets.js +7 -0
  211. package/dist/utils/shopifyMarkets.js.map +1 -0
  212. package/dist/utils/useDragToSelect.d.ts +13 -0
  213. package/dist/utils/useDragToSelect.js +177 -0
  214. package/dist/utils/useDragToSelect.js.map +1 -0
  215. package/package.json +17 -22
@@ -0,0 +1,7 @@
1
+ export interface Banner {
2
+ title: string;
3
+ image: string;
4
+ mobileImage?: string;
5
+ id: string;
6
+ }
7
+ export declare const videoFormats: string[];
@@ -0,0 +1,2 @@
1
+ export const videoFormats = [".mp4", ".mov", ".avi", ".wmv", ".mkv", ".webm", ".flv", ".m4v", ".mpg", ".mpeg"];
2
+ //# sourceMappingURL=banner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/@types/banner.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC","sourcesContent":["export interface Banner {\r\n title: string;\r\n image: string;\r\n mobileImage?: string;\r\n id: string;\r\n}\r\n\r\nexport const videoFormats = [\".mp4\", \".mov\", \".avi\", \".wmv\", \".mkv\", \".webm\", \".flv\", \".m4v\", \".mpg\", \".mpeg\"];\r\n"]}
@@ -0,0 +1,16 @@
1
+ export type AncestorCategory = [string, string, string];
2
+ export interface RelatedCategory {
3
+ id: string;
4
+ l: string;
5
+ t: string;
6
+ u: string;
7
+ }
8
+ export interface Category {
9
+ d: string;
10
+ id: string;
11
+ l: string;
12
+ p_id: string;
13
+ t: string;
14
+ u: string;
15
+ parent_name?: string;
16
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=categories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.js","sourceRoot":"","sources":["../../src/@types/categories.ts"],"names":[],"mappings":"","sourcesContent":["export type AncestorCategory = [string, string, string] // category_id, category_name, category_url\r\nexport interface RelatedCategory {\r\n id: string\r\n l: string\r\n t: string\r\n u: string\r\n}\r\n\r\nexport interface Category {\r\n d: string\r\n id: string\r\n l: string\r\n p_id: string\r\n t: string\r\n u: string\r\n parent_name?: string\r\n}"]}
@@ -0,0 +1 @@
1
+ export type Currency = string | 'USD' | 'CRC' | 'AUD' | 'AZN' | 'NZD' | 'CAD' | 'VES' | 'SGD' | 'COP' | 'GBP' | 'BRL' | 'ILS' | 'AED' | 'JMD' | 'MYR' | 'THB' | 'DKK' | 'EGP' | 'NOK' | 'SEK' | 'HKD' | 'ZAR' | 'CHF' | 'HRK' | 'INR' | 'UAH' | 'RUB' | 'BYR' | 'IRR' | 'MXN' | 'TWD' | 'TRY' | 'TRL' | 'TL' | 'PLN' | 'HUF' | 'BGN' | 'EUR' | 'NGN' | 'RON' | 'VND' | 'BDT' | 'XOF' | 'JPY' | 'CNY' | 'KRW' | 'ARS';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=currency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currency.js","sourceRoot":"","sources":["../../src/@types/currency.ts"],"names":[],"mappings":"","sourcesContent":["export type Currency =\r\n string\r\n | 'USD'\r\n | 'CRC'\r\n | 'AUD'\r\n | 'AZN'\r\n | 'NZD'\r\n | 'CAD'\r\n | 'VES'\r\n | 'SGD'\r\n | 'COP'\r\n | 'GBP'\r\n | 'BRL'\r\n | 'ILS'\r\n | 'AED'\r\n | 'JMD'\r\n | 'MYR'\r\n | 'THB'\r\n | 'DKK'\r\n | 'EGP'\r\n | 'NOK'\r\n | 'SEK'\r\n | 'HKD'\r\n | 'ZAR'\r\n | 'CHF'\r\n | 'HRK'\r\n | 'INR'\r\n | 'UAH'\r\n | 'RUB'\r\n | 'BYR'\r\n | 'IRR'\r\n | 'MXN'\r\n | 'TWD'\r\n | 'TRY'\r\n | 'TRL'\r\n | 'TL'\r\n | 'PLN'\r\n | 'HUF'\r\n | 'BGN'\r\n | 'EUR'\r\n | 'NGN'\r\n | 'RON'\r\n | 'VND'\r\n | 'BDT'\r\n | 'XOF'\r\n | 'JPY'\r\n | 'CNY'\r\n | 'KRW'\r\n | 'ARS'\r\n"]}
@@ -0,0 +1,26 @@
1
+ import { Product } from "fast-simon-sdk";
2
+ import { ProductLabelType } from "./productLabel";
3
+ export interface EditorProduct extends Product {
4
+ org_pos: number | "";
5
+ inv_sale: ProductInvSale;
6
+ productLabel?: ProductLabelType;
7
+ is_unpublished?: boolean;
8
+ isFilteredProduct?: boolean;
9
+ pin_to_position?: number;
10
+ }
11
+ interface ProductInvSale {
12
+ cost: number;
13
+ d: number[];
14
+ i: number;
15
+ s: number;
16
+ tags: string[];
17
+ v: Record<string, any>;
18
+ }
19
+ export interface ChatbotAction {
20
+ actionName: "promote" | "hide" | "bury" | "position";
21
+ srcPosition: number;
22
+ destPosition: number;
23
+ disabled: boolean;
24
+ }
25
+ export declare function isEditorProduct(gridItem?: EditorProduct): gridItem is EditorProduct;
26
+ export {};
@@ -0,0 +1,6 @@
1
+ export function isEditorProduct(gridItem) {
2
+ if (gridItem === undefined)
3
+ return false;
4
+ return gridItem.l !== undefined;
5
+ }
6
+ //# sourceMappingURL=editorProduct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editorProduct.js","sourceRoot":"","sources":["../../src/@types/editorProduct.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,eAAe,CAAC,QAAwB;IACpD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACzC,OAAQ,QAA0B,CAAC,CAAC,KAAK,SAAS,CAAC;AACvD,CAAC","sourcesContent":["import { Product } from \"fast-simon-sdk\";\r\nimport { ProductLabelType } from \"./productLabel\";\r\n\r\nexport interface EditorProduct extends Product {\r\n org_pos: number | \"\";\r\n inv_sale: ProductInvSale;\r\n productLabel?: ProductLabelType;\r\n is_unpublished?: boolean;\r\n isFilteredProduct?: boolean;\r\n // chatbotAction?: ChatbotAction;\r\n pin_to_position?: number;\r\n}\r\ninterface ProductInvSale {\r\n cost: number;\r\n d: number[];\r\n i: number;\r\n s: number;\r\n tags: string[];\r\n v: Record<string, any>;\r\n}\r\n\r\nexport interface ChatbotAction {\r\n actionName: \"promote\" | \"hide\" | \"bury\" | \"position\";\r\n srcPosition: number;\r\n destPosition: number;\r\n disabled: boolean;\r\n}\r\n\r\nexport function isEditorProduct(gridItem?: EditorProduct): gridItem is EditorProduct {\r\n if (gridItem === undefined) return false;\r\n return (gridItem as EditorProduct).l !== undefined;\r\n}"]}
@@ -0,0 +1,9 @@
1
+ export interface IconProps {
2
+ width?: number;
3
+ height?: number;
4
+ customClasses?: {
5
+ wrapper?: string;
6
+ svg?: string;
7
+ path?: string;
8
+ };
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=iconProps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iconProps.js","sourceRoot":"","sources":["../../src/@types/iconProps.ts"],"names":[],"mappings":"","sourcesContent":["export interface IconProps {\r\n width?: number;\r\n height?: number;\r\n\r\n customClasses?: {\r\n wrapper?: string,\r\n svg?: string,\r\n path?: string\r\n };\r\n}"]}
@@ -0,0 +1,158 @@
1
+ import type { Currency } from "./currency";
2
+ import { PromoTileConfig } from "./promoTile";
3
+ export declare enum FeaturedRanking {
4
+ FEATURED_RANK_NO = 0,
5
+ FEATURED_RANK_ON_MATCH = 1,
6
+ FEATURED_RANK_ALWAYS = 2,
7
+ FEATURED_RANK_NEVER = 3
8
+ }
9
+ export interface ServerProduct {
10
+ c: Currency;
11
+ d: string;
12
+ f: FeaturedRanking;
13
+ id: productID;
14
+ iso: boolean;
15
+ l: string;
16
+ p: string;
17
+ p_c: string;
18
+ p_max: string;
19
+ p_max_c: string;
20
+ p_min: string;
21
+ p_min_c: string;
22
+ p_spl: number;
23
+ p_spl_id?: string;
24
+ review?: number;
25
+ reviews_count?: number;
26
+ s: string;
27
+ sku: string;
28
+ skus: string[];
29
+ t: string;
30
+ t2: string;
31
+ u: string;
32
+ v_c: number;
33
+ v: string;
34
+ vra: ServerVariant[];
35
+ vrc: object;
36
+ att?: Attribute[];
37
+ real_sku?: string;
38
+ image_id?: string;
39
+ alt?: AlternativeColor[];
40
+ inventory_lvl?: number;
41
+ promotile?: boolean;
42
+ }
43
+ export type ServerVariant = [number, VariantData[]];
44
+ export type VariantData = [string, string[]];
45
+ export type Attribute = [string, AttributeData[]];
46
+ export type AttributeData = string[] | string[][];
47
+ export interface ServerAltProductVariant {
48
+ sellable: boolean;
49
+ size: string;
50
+ v_id: number;
51
+ }
52
+ export interface ServerAltProductData {
53
+ l: string;
54
+ p: string;
55
+ p_c: string;
56
+ p_spl: number;
57
+ p_spl_id?: number;
58
+ sku?: string;
59
+ t: string[];
60
+ vra: ServerAltProductVariant[];
61
+ review?: number;
62
+ reviews_count?: number;
63
+ att?: any[];
64
+ s?: string;
65
+ p_min: string;
66
+ p_max: string;
67
+ }
68
+ export type AlternativeColor = [AlternativeColorName, AlternativeColorURL, productID?, ServerAltProductData?];
69
+ type AlternativeColorName = string;
70
+ type AlternativeColorURL = string;
71
+ type productID = number;
72
+ export interface Badge {
73
+ tag: string;
74
+ url: string;
75
+ }
76
+ export interface TextBadge {
77
+ badgeText: string;
78
+ tag: string;
79
+ badgeStyle: {
80
+ backgroundColor: string;
81
+ borderColor: string;
82
+ borderRadius: number;
83
+ horizontal: string;
84
+ vertical: string;
85
+ size: number;
86
+ textColor: string;
87
+ };
88
+ }
89
+ export interface Products {
90
+ [id: string]: Product;
91
+ }
92
+ export interface Product {
93
+ currency: Currency;
94
+ id: string;
95
+ title: string;
96
+ description: string;
97
+ variants: Variants;
98
+ isSoldOut: boolean;
99
+ price: number;
100
+ minPrice: number;
101
+ maxPrice: number;
102
+ maxCompare: number;
103
+ comparePrice: number;
104
+ maxFormattedCompare: string;
105
+ reviewScore: number | undefined;
106
+ reviewCount: number | undefined;
107
+ imageURL: string;
108
+ imageURL2: string;
109
+ optimizedURL?: string;
110
+ formattedPrice: string;
111
+ formattedCompare: string | undefined;
112
+ vendor: string;
113
+ sku: string;
114
+ s: string;
115
+ inventory_lvl?: number;
116
+ imagesSrcset: string;
117
+ productURL: string;
118
+ productBadges: Badge[];
119
+ productTextBadges?: TextBadge[];
120
+ alternativeProducts?: AlternativeProduct[];
121
+ tags?: string[];
122
+ promoTileConfig?: PromoTileConfig;
123
+ attributes?: Attribute[];
124
+ p_spl?: number;
125
+ p_spl_id?: string;
126
+ isIspNoPrice?: boolean;
127
+ imageID?: string;
128
+ vrc?: object;
129
+ }
130
+ export interface Variant {
131
+ id: number;
132
+ attributes: {
133
+ [key: string]: VariantsAttribute;
134
+ };
135
+ }
136
+ export type Variants = Variant[];
137
+ export type VariantsAttribute = string | number | boolean | string[] | undefined;
138
+ export interface AlternativeProduct {
139
+ color: string;
140
+ url: string;
141
+ id: string;
142
+ variants?: Variants;
143
+ s?: string;
144
+ price: number;
145
+ comparePrice: number;
146
+ formattedCompare?: string;
147
+ formattedPrice?: string;
148
+ attributes?: Attribute[] | undefined;
149
+ }
150
+ export interface ServerPromotile {
151
+ height: number;
152
+ id: string;
153
+ image: string;
154
+ link: string;
155
+ width: number;
156
+ title: string;
157
+ }
158
+ export {};
@@ -0,0 +1,8 @@
1
+ export var FeaturedRanking;
2
+ (function (FeaturedRanking) {
3
+ FeaturedRanking[FeaturedRanking["FEATURED_RANK_NO"] = 0] = "FEATURED_RANK_NO";
4
+ FeaturedRanking[FeaturedRanking["FEATURED_RANK_ON_MATCH"] = 1] = "FEATURED_RANK_ON_MATCH";
5
+ FeaturedRanking[FeaturedRanking["FEATURED_RANK_ALWAYS"] = 2] = "FEATURED_RANK_ALWAYS";
6
+ FeaturedRanking[FeaturedRanking["FEATURED_RANK_NEVER"] = 3] = "FEATURED_RANK_NEVER";
7
+ })(FeaturedRanking || (FeaturedRanking = {}));
8
+ //# sourceMappingURL=product.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product.js","sourceRoot":"","sources":["../../src/@types/product.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,eAKX;AALD,WAAY,eAAe;IACvB,6EAAgB,CAAA;IAChB,yFAAsB,CAAA;IACtB,qFAAoB,CAAA;IACpB,mFAAmB,CAAA;AACvB,CAAC,EALW,eAAe,KAAf,eAAe,QAK1B","sourcesContent":["import type {Currency} from \"./currency\";\r\nimport {PromoTileConfig} from \"./promoTile\";\r\n\r\nexport enum FeaturedRanking {\r\n FEATURED_RANK_NO,\r\n FEATURED_RANK_ON_MATCH,\r\n FEATURED_RANK_ALWAYS,\r\n FEATURED_RANK_NEVER,\r\n}\r\n\r\nexport interface ServerProduct {\r\n c: Currency\r\n d: string\r\n f: FeaturedRanking\r\n id: productID\r\n iso: boolean\r\n l: string\r\n p: string\r\n p_c: string\r\n p_max: string\r\n p_max_c: string\r\n p_min: string\r\n p_min_c: string\r\n p_spl: number\r\n p_spl_id?: string\r\n review?: number\r\n reviews_count?: number\r\n s: string\r\n sku: string\r\n skus: string[]\r\n t: string\r\n t2: string\r\n u: string\r\n v_c: number\r\n v: string\r\n vra: ServerVariant[]\r\n vrc: object\r\n att?: Attribute[]\r\n real_sku?: string\r\n image_id?: string\r\n alt?: AlternativeColor[]\r\n inventory_lvl?: number\r\n promotile?: boolean\r\n}\r\n\r\nexport type ServerVariant = [number, VariantData[]]\r\nexport type VariantData = [string, string[]]\r\n\r\nexport type Attribute = [string, AttributeData[]]\r\nexport type AttributeData = string[] | string[][]\r\n\r\nexport interface ServerAltProductVariant {\r\n sellable: boolean;\r\n size: string;\r\n v_id: number;\r\n}\r\n\r\nexport interface ServerAltProductData {\r\n l: string;\r\n p: string;\r\n p_c: string;\r\n p_spl: number;\r\n p_spl_id?: number;\r\n sku?: string;\r\n t: string[];\r\n vra: ServerAltProductVariant[];\r\n review?: number;\r\n reviews_count?: number;\r\n att?: any[];\r\n s?: string;\r\n p_min: string;\r\n p_max: string;\r\n}\r\n\r\nexport type AlternativeColor = [AlternativeColorName, AlternativeColorURL, productID?, ServerAltProductData?]\r\n\r\ntype AlternativeColorName = string\r\ntype AlternativeColorURL = string\r\ntype productID = number\r\n\r\nexport interface Badge {\r\n tag: string;\r\n url: string;\r\n}\r\n\r\nexport interface TextBadge {\r\n badgeText: string;\r\n tag: string;\r\n badgeStyle: {\r\n backgroundColor: string;\r\n borderColor: string;\r\n borderRadius: number;\r\n horizontal: string;\r\n vertical: string;\r\n size: number;\r\n textColor: string;\r\n }\r\n}\r\n\r\nexport interface Products {\r\n [id: string]: Product\r\n}\r\n\r\nexport interface Product {\r\n currency: Currency\r\n id: string\r\n title: string\r\n description: string\r\n variants: Variants\r\n isSoldOut: boolean\r\n price: number\r\n minPrice: number\r\n maxPrice: number\r\n maxCompare: number\r\n comparePrice: number\r\n maxFormattedCompare: string;\r\n reviewScore: number | undefined\r\n reviewCount: number | undefined\r\n imageURL: string\r\n imageURL2: string\r\n optimizedURL?: string;\r\n formattedPrice: string\r\n formattedCompare: string | undefined\r\n vendor: string\r\n sku: string\r\n s: string\r\n inventory_lvl?: number\r\n imagesSrcset: string\r\n productURL: string\r\n productBadges: Badge[]\r\n productTextBadges?: TextBadge[]\r\n alternativeProducts?: AlternativeProduct[]\r\n tags?: string[]\r\n promoTileConfig?: PromoTileConfig\r\n attributes?: Attribute[]\r\n p_spl?: number\r\n p_spl_id?: string\r\n isIspNoPrice?: boolean\r\n imageID?: string\r\n vrc?: object\r\n}\r\n\r\nexport interface Variant {\r\n id: number,\r\n attributes: {\r\n [key: string]: VariantsAttribute\r\n }\r\n}\r\n\r\nexport type Variants = Variant[]\r\n\r\nexport type VariantsAttribute = string | number | boolean | string[] | undefined\r\n\r\nexport interface AlternativeProduct {\r\n color: string,\r\n url: string,\r\n id: string,\r\n variants?: Variants,\r\n s?: string,\r\n price: number\r\n comparePrice: number,\r\n formattedCompare?: string,\r\n formattedPrice?: string,\r\n attributes?: Attribute[] | undefined\r\n}\r\n\r\nexport interface ServerPromotile {\r\n height: number;\r\n id: string;\r\n image: string;\r\n link: string;\r\n width: number;\r\n title: string;\r\n}"]}
@@ -0,0 +1 @@
1
+ export type ProductLabelType = 'Buried' | 'Promoted' | 'Pinned' | 'Hidden' | 'Unpublished' | 'Selected' | '';
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=productLabel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"productLabel.js","sourceRoot":"","sources":["../../src/@types/productLabel.ts"],"names":[],"mappings":"","sourcesContent":["export type ProductLabelType = 'Buried' | 'Promoted' | 'Pinned' | 'Hidden' | 'Unpublished' | 'Selected' | '';"]}
@@ -0,0 +1,11 @@
1
+ interface Size {
2
+ x: number;
3
+ y: number;
4
+ }
5
+ export interface PromoTileConfig {
6
+ size: Size;
7
+ url: string;
8
+ image: string;
9
+ title: string;
10
+ }
11
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=promoTile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promoTile.js","sourceRoot":"","sources":["../../src/@types/promoTile.ts"],"names":[],"mappings":"","sourcesContent":["\r\ninterface Size {\r\n x: number;\r\n y: number;\r\n}\r\nexport interface PromoTileConfig {\r\n size: Size;\r\n url: string;\r\n image: string;\r\n title: string;\r\n}"]}
@@ -0,0 +1,42 @@
1
+ import type { Narrow, Facet } from "@fast-simon/utilities";
2
+ import type { SortBy } from "./sortBy";
3
+ import { RelatedCategory } from "./categories";
4
+ import { Product } from "fast-simon-sdk";
5
+ interface Base {
6
+ narrow: Narrow;
7
+ sortBy: SortBy;
8
+ totalResults: number;
9
+ page: number;
10
+ totalPages: number;
11
+ items: Product[];
12
+ facets: Facet[];
13
+ avoidTagPrefixes: string[];
14
+ sort: SortBy;
15
+ productIDS: string[];
16
+ bannerHTML: string;
17
+ bannerHTMLMobile: string;
18
+ }
19
+ export interface SearchResults extends Base {
20
+ query: string;
21
+ totalCMS: number;
22
+ didYouMean?: string[];
23
+ personalizedProductIds: number[];
24
+ sessionProductIds: number[];
25
+ resultsFor?: string;
26
+ isRelatedResults?: boolean;
27
+ relatedSearch?: string[];
28
+ }
29
+ export interface CategoryResults extends Base {
30
+ categoryID: string;
31
+ categoryName: string;
32
+ personalizationRecencyLimit?: number;
33
+ personalizedProductIds: number[];
34
+ sessionProductIds: number[];
35
+ relatedCategories: RelatedCategory[];
36
+ }
37
+ export interface LandingPageResults extends Base {
38
+ lpSlug: string;
39
+ title: string;
40
+ indexPage: number;
41
+ }
42
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=results.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"results.js","sourceRoot":"","sources":["../../src/@types/results.ts"],"names":[],"mappings":"","sourcesContent":["import type {Narrow, Facet} from \"@fast-simon/utilities\";\r\nimport type {SortBy} from \"./sortBy\";\r\nimport {RelatedCategory} from \"./categories\";\r\nimport {Product} from \"fast-simon-sdk\";\r\n\r\ninterface Base {\r\n narrow: Narrow,\r\n sortBy: SortBy,\r\n totalResults: number,\r\n page: number,\r\n totalPages: number,\r\n items: Product[],\r\n facets: Facet[],\r\n avoidTagPrefixes: string[],\r\n sort: SortBy,\r\n productIDS: string[],\r\n bannerHTML: string,\r\n bannerHTMLMobile: string,\r\n // ancestors: Ancestor[]\r\n}\r\n\r\nexport interface SearchResults extends Base {\r\n query: string,\r\n totalCMS: number,\r\n didYouMean?: string[],\r\n personalizedProductIds: number[],\r\n sessionProductIds: number[],\r\n resultsFor?: string,\r\n isRelatedResults?: boolean\r\n relatedSearch?: string[]\r\n}\r\n\r\nexport interface CategoryResults extends Base {\r\n categoryID: string,\r\n categoryName: string,\r\n personalizationRecencyLimit?: number,\r\n personalizedProductIds: number[],\r\n sessionProductIds: number[],\r\n relatedCategories: RelatedCategory[],\r\n}\r\n\r\nexport interface LandingPageResults extends Base {\r\n lpSlug: string,\r\n title: string,\r\n indexPage: number\r\n}"]}
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ export type MenuItemName = 'in-store-filters' | 'back-office-filters' | 'buried' | 'hidden' | 'unpublished' | 'banners' | 'promo-tiles' | 'related-collections' | '' | 'chatbot' | string;
3
+ export interface CustomClasses {
4
+ wrapper?: string;
5
+ svg?: string;
6
+ path?: string;
7
+ }
8
+ export interface SideMenuType {
9
+ menuItem: SideMenuItem;
10
+ menu: React.ReactNode;
11
+ }
12
+ export interface SideMenuItem {
13
+ getIcon: (customClasses?: CustomClasses) => JSX.Element;
14
+ name: MenuItemName;
15
+ menuTitle: string;
16
+ hooverTooltip: string;
17
+ position?: number;
18
+ isSelected?: boolean;
19
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sideMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sideMenu.js","sourceRoot":"","sources":["../../src/@types/sideMenu.ts"],"names":[],"mappings":"","sourcesContent":["import React from \"react\";\r\n\r\nexport type MenuItemName = 'in-store-filters' | 'back-office-filters' | 'buried' | 'hidden' | 'unpublished' | 'banners' | 'promo-tiles' | 'related-collections' | '' | 'chatbot' | string;\r\n\r\nexport interface CustomClasses {\r\n wrapper?: string,\r\n svg?: string,\r\n path?: string\r\n}\r\n\r\nexport interface SideMenuType {\r\n menuItem: SideMenuItem\r\n menu: React.ReactNode\r\n}\r\n\r\nexport interface SideMenuItem {\r\n getIcon: (customClasses?: CustomClasses) => JSX.Element\r\n name: MenuItemName;\r\n menuTitle: string;\r\n hooverTooltip: string;\r\n position?: number\r\n isSelected?: boolean\r\n}"]}
@@ -0,0 +1,3 @@
1
+ export type SortBy = "price_min_to_max" | "price_max_to_min" | "creation_date" | "creation_date_oldest" | "popularity" | "reviews" | "a_to_z" | "z_to_a" | 'relevency' | 'relevance';
2
+ export type SortByTranslationKey = 'sort_by_best_match' | 'sort_by_price_low_to_high' | 'sort_by_price_high_to_low' | 'sort_by_newest' | 'sort_by_oldest' | 'sort_by_popularity' | 'sort_by_reviews' | 'sort_by_a_to_z' | 'sort_by_z_to_a';
3
+ export type SortByConfig = Record<SortBy, string>;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=sortBy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortBy.js","sourceRoot":"","sources":["../../src/@types/sortBy.ts"],"names":[],"mappings":"","sourcesContent":["export type SortBy =\r\n \"price_min_to_max\"\r\n | \"price_max_to_min\"\r\n | \"creation_date\"\r\n | \"creation_date_oldest\"\r\n | \"popularity\"\r\n | \"reviews\"\r\n | \"a_to_z\"\r\n | \"z_to_a\"\r\n | 'relevency'\r\n | 'relevance'\r\n\r\nexport type SortByTranslationKey =\r\n 'sort_by_best_match' |\r\n 'sort_by_price_low_to_high' |\r\n 'sort_by_price_high_to_low' |\r\n 'sort_by_newest' |\r\n 'sort_by_oldest' |\r\n 'sort_by_popularity' |\r\n 'sort_by_reviews' |\r\n 'sort_by_a_to_z' |\r\n 'sort_by_z_to_a'\r\n\r\nexport type SortByConfig = Record<SortBy, string>;"]}
package/dist/App.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ import "./index.css";
2
+ declare const App: () => import("react/jsx-runtime").JSX.Element;
3
+ export default App;
package/dist/App.js ADDED
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import "./index.css";
3
+ const App = () => {
4
+ const products = [
5
+ 'Product 1',
6
+ 'Product 2',
7
+ 'Product 3',
8
+ 'Product 4',
9
+ 'Product 5',
10
+ 'Product 6'
11
+ ];
12
+ return (_jsx("div", { children: _jsx("h2", { children: "Product Grid Example" }) }));
13
+ };
14
+ export default App;
15
+ //# sourceMappingURL=App.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"App.js","sourceRoot":"","sources":["../src/App.tsx"],"names":[],"mappings":";AACA,OAAO,aAAa,CAAC;AAIrB,MAAM,GAAG,GAAG,GAAG,EAAE;IACb,MAAM,QAAQ,GAAG;QACjB,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;QACX,WAAW;KACZ,CAAC;IACA,OAAO,CACH,wBACE,gDAA6B,GAMzB,CACP,CAAC;AACR,CAAC,CAAC;AAEF,eAAe,GAAG,CAAC","sourcesContent":["import ProductGrid from './components/productGrid'\r\nimport \"./index.css\";\r\n\r\n\r\n\r\nconst App = () => {\r\n const products = [\r\n 'Product 1',\r\n 'Product 2',\r\n 'Product 3',\r\n 'Product 4',\r\n 'Product 5',\r\n 'Product 6'\r\n ];\r\n return (\r\n <div>\r\n <h2>Product Grid Example</h2>\r\n {/*<ProductGrid numberPerRow={3}>*/}\r\n {/* {products.map((product, index) => (*/}\r\n {/* <div key={index}>{product}</div>*/}\r\n {/* ))}*/}\r\n {/*</ProductGrid>*/}\r\n </div>\r\n );\r\n};\r\n\r\nexport default App;\r\n"]}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { Narrow } from "@fast-simon/utilities";
3
+ export interface Props {
4
+ narrow: Narrow;
5
+ onNarrowChange: (narrow: any) => void;
6
+ onPageChange: (page: number) => void;
7
+ }
8
+ declare const BackOfficeFiltersMenu: React.FC<Props>;
9
+ export default BackOfficeFiltersMenu;
@@ -0,0 +1,74 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import classes from './styles.module.css';
4
+ import { FacetItem } from "../FacetItem/FacetItem";
5
+ import { NarrowParser, FacetsTypes, } from "@fast-simon/utilities";
6
+ import { FromToFilter } from "../FromToFilter/FromToFilter";
7
+ import { getBackOfficeFilters, getBackOfficeFilterTooltipText, getLastReceivedTimeRange } from "./utils";
8
+ import classNames from "classnames";
9
+ const BackOfficeFiltersMenu = ({ narrow, onNarrowChange, onPageChange }) => {
10
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
11
+ const [filters, setFilters] = useState(getBackOfficeFilters());
12
+ const [disableFilters, setDisableFilters] = useState(false);
13
+ let timer;
14
+ const onFilterChange = (facetid, value, updateSingleNarrow, fromDate, toDate) => {
15
+ setDisableFilters(true);
16
+ clearTimeout(timer);
17
+ if (facetid === 'merch_lrt') {
18
+ let merch_ltr_value = getLastReceivedTimeRange(value, fromDate !== null && fromDate !== void 0 ? fromDate : '', toDate !== null && toDate !== void 0 ? toDate : '');
19
+ value = merch_ltr_value !== null && merch_ltr_value !== void 0 ? merch_ltr_value : '';
20
+ timer = setTimeout(() => {
21
+ var _a, _b, _c, _d, _e, _f;
22
+ let newNarrow = undefined;
23
+ ((_b = (_a = narrow === null || narrow === void 0 ? void 0 : narrow['merch_lrt']) === null || _a === void 0 ? void 0 : _a.values) === null || _b === void 0 ? void 0 : _b.call(_a)) ? (_f = (_e = Array.from((_d = (_c = narrow === null || narrow === void 0 ? void 0 : narrow['merch_lrt']) === null || _c === void 0 ? void 0 : _c.values) === null || _d === void 0 ? void 0 : _d.call(_c))) === null || _e === void 0 ? void 0 : _e.forEach) === null || _f === void 0 ? void 0 : _f.call(_e, (filterValue) => {
24
+ newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, filterValue);
25
+ }) : null;
26
+ if (value) {
27
+ newNarrow = NarrowParser.updateSingleNarrow(newNarrow !== null && newNarrow !== void 0 ? newNarrow : narrow, facetid, value);
28
+ }
29
+ if (newNarrow) {
30
+ onNarrowChange(newNarrow);
31
+ onPageChange(1);
32
+ }
33
+ disableMenuDelay();
34
+ }, 750);
35
+ return;
36
+ }
37
+ timer = setTimeout(() => {
38
+ let newNarrow = NarrowParser.updateNarrow(narrow, facetid, value);
39
+ onNarrowChange(newNarrow);
40
+ onPageChange(1);
41
+ disableMenuDelay();
42
+ }, 750);
43
+ };
44
+ const onFromToFilterChange = (facetid, value) => {
45
+ setDisableFilters(true);
46
+ clearTimeout(timer);
47
+ timer = setTimeout(() => {
48
+ let newNarrow = {};
49
+ if (!value) {
50
+ newNarrow = Object.fromEntries(Object.entries(narrow).filter(([key, value]) => key !== facetid));
51
+ }
52
+ else {
53
+ newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, value);
54
+ }
55
+ onNarrowChange(newNarrow);
56
+ onPageChange(1);
57
+ disableMenuDelay();
58
+ }, 750);
59
+ };
60
+ const disableMenuDelay = () => {
61
+ const timerId = setTimeout(() => {
62
+ setDisableFilters(false);
63
+ }, 750);
64
+ return () => clearTimeout(timerId);
65
+ };
66
+ const clearAll = () => {
67
+ onNarrowChange({});
68
+ onPageChange(1);
69
+ setFilters(getBackOfficeFilters());
70
+ };
71
+ return (_jsxs("div", Object.assign({ className: classes.filtersContainer, style: { opacity: disableFilters ? 0.5 : 1, pointerEvents: disableFilters ? 'none' : 'auto' } }, { children: [_jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FacetItem, { narrow: narrow[(((_a = filters === null || filters === void 0 ? void 0 : filters["filter"]) === null || _a === void 0 ? void 0 : _a.meta) && narrow[(((_b = filters === null || filters === void 0 ? void 0 : filters["filter"]) === null || _b === void 0 ? void 0 : _b.name) + "_from_to")]) ? (((_c = filters === null || filters === void 0 ? void 0 : filters["filter"]) === null || _c === void 0 ? void 0 : _c.name) + "_from_to") : (_d = filters === null || filters === void 0 ? void 0 : filters["filter"]) === null || _d === void 0 ? void 0 : _d.id], facet: filters === null || filters === void 0 ? void 0 : filters["filter"], onChange: onFilterChange, onNarrowChange: onNarrowChange, onPageChange: onNarrowChange, type: FacetsTypes.multiSelect, tooltipText: getBackOfficeFilterTooltipText["filter"], disableSelect: disableFilters }, "fs-filters" + ((_e = filters === null || filters === void 0 ? void 0 : filters["filter"]) === null || _e === void 0 ? void 0 : _e.id.toString())) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FacetItem, { narrow: narrow[(((_f = filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"]) === null || _f === void 0 ? void 0 : _f.meta) && narrow[(((_g = filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"]) === null || _g === void 0 ? void 0 : _g.name) + "_from_to")]) ? (((_h = filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"]) === null || _h === void 0 ? void 0 : _h.name) + "_from_to") : (_j = filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"]) === null || _j === void 0 ? void 0 : _j.id], facet: filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"], onChange: onFilterChange, onNarrowChange: onNarrowChange, onPageChange: onNarrowChange, type: FacetsTypes.RadioSelect, tooltipText: getBackOfficeFilterTooltipText["lastReceivedDate"], disableSelect: disableFilters }, "fs-filters" + ((_k = filters === null || filters === void 0 ? void 0 : filters["lastReceivedDate"]) === null || _k === void 0 ? void 0 : _k.id.toString())) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["stockAvailability"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["stockAvailability"] }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["variantsInStock"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["variantsInStock"], limit: { min: 0, max: 100 } }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["sales"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["sales"] }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["weeksOfStock"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["weeksOfStock"] }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["margin"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["margin"] }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["marginPercent"], onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["marginPercent"], limit: { min: 0, max: 100 } }) })), _jsx("div", Object.assign({ className: classes.sideMenuContainer }, { children: _jsx(FromToFilter, { facet: filters === null || filters === void 0 ? void 0 : filters["merchCreationDate"], convertValueCallback: (value) => { var _a; return Number(value) > 0 ? (_a = (Number(value) / 1000)) === null || _a === void 0 ? void 0 : _a.toString() : value; }, onChange: onFromToFilterChange, tooltipText: getBackOfficeFilterTooltipText["merchCreationDate"] }) })), _jsx("span", Object.assign({ onClick: clearAll, className: classNames(classes.arrow, classes.clearAll) }, { children: _jsxs("small", { children: ["Clear All\u00A0\u00A0\u00A0", _jsx("i", {})] }) }))] })));
72
+ };
73
+ export default BackOfficeFiltersMenu;
74
+ //# sourceMappingURL=BackOfficeFiltersMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BackOfficeFiltersMenu.js","sourceRoot":"","sources":["../../../src/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {useState} from 'react';\nimport classes from './styles.module.css';\nimport {FacetItem} from \"../FacetItem/FacetItem\";\nimport {\n Facet,\n NarrowParser,\n FacetsTypes,\n Narrow,\n} from \"@fast-simon/utilities\";\nimport {FromToFilter} from \"../FromToFilter/FromToFilter\";\nimport {getBackOfficeFilters, getBackOfficeFilterTooltipText, getLastReceivedTimeRange} from \"./utils\";\nimport {FromTo} from \"../FromToFilter/utils\";\nimport classNames from \"classnames\";\n\nexport interface Props {\n narrow: Narrow;\n onNarrowChange: (narrow: any) => void;\n onPageChange: (page: number) => void;\n}\n\nconst BackOfficeFiltersMenu: React.FC<Props> = ({narrow, onNarrowChange, onPageChange}) => {\n const [filters, setFilters] = useState<any>(getBackOfficeFilters());\n const [disableFilters, setDisableFilters] = useState<boolean>(false);\n let timer: string | number | NodeJS.Timeout | undefined;\n const onFilterChange = (facetid: string, value: string, updateSingleNarrow?: boolean, fromDate?: string, toDate?: string) => {\n setDisableFilters(true)\n clearTimeout(timer);\n\n if (facetid === 'merch_lrt') {\n let merch_ltr_value = getLastReceivedTimeRange(value, fromDate??'', toDate??'');\n value = merch_ltr_value ?? '';\n timer = setTimeout(() => {\n let newNarrow: Narrow | undefined = undefined;\n narrow?.['merch_lrt']?.values?.() ? Array.from(narrow?.['merch_lrt']?.values?.())?.forEach?.((filterValue) => {\n newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, filterValue)\n }\n ) : null;\n if(value) {\n newNarrow = NarrowParser.updateSingleNarrow(newNarrow ?? narrow, facetid, value)\n }\n if (newNarrow) {\n onNarrowChange(newNarrow as any);\n onPageChange(1);\n }\n disableMenuDelay()\n }, 750);\n return;\n }\n timer = setTimeout(() => {\n let newNarrow = NarrowParser.updateNarrow(narrow, facetid, value);\n onNarrowChange(newNarrow as any);\n onPageChange(1);\n disableMenuDelay()\n }, 750);\n }\n const onFromToFilterChange = (facetid: string, value: string) => {\n setDisableFilters(true)\n clearTimeout(timer);\n\n timer = setTimeout(() => {\n let newNarrow: Narrow = {};\n if (!value) {\n newNarrow = Object.fromEntries(\n Object.entries(narrow).filter(([key, value]) => key !== facetid)\n );\n } else {\n newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, value);\n }\n onNarrowChange(newNarrow as any);\n onPageChange(1);\n disableMenuDelay()\n }, 750);\n }\n\n const disableMenuDelay = () => {\n const timerId = setTimeout(() => {\n setDisableFilters(false);\n }, 750);\n return () => clearTimeout(timerId);\n }\n\n const clearAll = () => {\n onNarrowChange({});\n onPageChange(1);\n setFilters(getBackOfficeFilters());\n }\n\n return (\n <div className={classes.filtersContainer} style={{ opacity: disableFilters ? 0.5 : 1, pointerEvents: disableFilters ? 'none' : 'auto' }}>\n <div className={classes.sideMenuContainer}>\n <FacetItem key={\"fs-filters\"+(filters?.[\"filter\"] as Facet)?.id.toString()}\n narrow={narrow[((filters?.[\"filter\"] as Facet)?.meta && narrow[((filters?.[\"filter\"] as Facet)?.name + \"_from_to\")]) ? ((filters?.[\"filter\"] as Facet)?.name + \"_from_to\") : (filters?.[\"filter\"] as Facet)?.id]}\n facet={(filters?.[\"filter\"] as Facet)} onChange={onFilterChange} onNarrowChange={onNarrowChange} onPageChange={onNarrowChange}\n type={FacetsTypes.multiSelect} tooltipText={getBackOfficeFilterTooltipText[\"filter\"]}\n disableSelect={disableFilters}></FacetItem>\n </div>\n <div className={classes.sideMenuContainer}>\n <FacetItem key={\"fs-filters\"+(filters?.[\"lastReceivedDate\"] as Facet)?.id.toString()}\n narrow={narrow[((filters?.[\"lastReceivedDate\"] as Facet)?.meta && narrow[((filters?.[\"lastReceivedDate\"] as Facet)?.name + \"_from_to\")]) ? ((filters?.[\"lastReceivedDate\"] as Facet)?.name + \"_from_to\") : (filters?.[\"lastReceivedDate\"] as Facet)?.id]}\n facet={(filters?.[\"lastReceivedDate\"] as Facet)} onChange={onFilterChange} onNarrowChange={onNarrowChange} onPageChange={onNarrowChange}\n type={FacetsTypes.RadioSelect} tooltipText={getBackOfficeFilterTooltipText[\"lastReceivedDate\"]}\n disableSelect={disableFilters}></FacetItem>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"stockAvailability\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"stockAvailability\"]}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"variantsInStock\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"variantsInStock\"]} limit={{min: 0, max:100}}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"sales\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"sales\"]}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"weeksOfStock\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"weeksOfStock\"]}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"margin\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"margin\"]}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"marginPercent\"] as FromTo)} onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"marginPercent\"]} limit={{min: 0, max:100}}></FromToFilter>\n </div>\n <div className={classes.sideMenuContainer}>\n <FromToFilter facet={(filters?.[\"merchCreationDate\"] as FromTo)}\n convertValueCallback={(value) => {return Number(value) > 0? (Number(value) / 1000)?.toString() : value}}\n onChange={onFromToFilterChange}\n tooltipText={getBackOfficeFilterTooltipText[\"merchCreationDate\"]}></FromToFilter>\n </div>\n <span onClick={clearAll}className={classNames(classes.arrow, classes.clearAll)}><small>Clear All&nbsp;&nbsp;&nbsp;<i/></small>\n </span>\n </div>\n )\n};\n\nexport default BackOfficeFiltersMenu;\n"]}
@@ -0,0 +1 @@
1
+ export { default } from "./BackOfficeFiltersMenu";
@@ -0,0 +1,2 @@
1
+ export { default } from "./BackOfficeFiltersMenu";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/BackOfficeFiltersMenu/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC","sourcesContent":["export { default } from \"./BackOfficeFiltersMenu\";\r\n"]}
@@ -0,0 +1,10 @@
1
+ .filtersContainer {
2
+ padding: 8px 16px;
3
+ font-size: 12px;
4
+ }
5
+ .clearAll {
6
+ color: var(--windows-blue);
7
+ text-decoration: none;
8
+ cursor: pointer;
9
+ font-size: 1.2rem;
10
+ }
@@ -0,0 +1,7 @@
1
+ import { Facet } from "@fast-simon/utilities";
2
+ import { FromTo } from "../FromToFilter/utils";
3
+ export declare const getBackOfficeFilters: () => Record<string, Facet | FromTo>;
4
+ export declare const getCustomPriceFilter: () => FromTo;
5
+ export declare const clearFilters: (filters: Record<string, Facet | FromTo>) => void;
6
+ export declare const getLastReceivedTimeRange: (selectedType: string, fromDate: string, toDate: string) => string | undefined;
7
+ export declare const getBackOfficeFilterTooltipText: Record<string, string>;