@fast-simon/dashboard-utilities 1.0.96 → 1.0.98

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 (277) hide show
  1. package/dist/@types/autocomplete.d.ts +58 -58
  2. package/dist/@types/autocomplete.js +1 -1
  3. package/dist/@types/autocomplete.js.map +1 -1
  4. package/dist/@types/banner.d.ts +7 -7
  5. package/dist/@types/banner.js +1 -1
  6. package/dist/@types/banner.js.map +1 -1
  7. package/dist/@types/categories.d.ts +113 -113
  8. package/dist/@types/categories.js +1 -1
  9. package/dist/@types/categories.js.map +1 -1
  10. package/dist/@types/categoriesNavigation.d.ts +27 -27
  11. package/dist/@types/categoriesNavigation.js +1 -1
  12. package/dist/@types/categoriesNavigation.js.map +1 -1
  13. package/dist/@types/context.d.ts +49 -49
  14. package/dist/@types/context.js +1 -1
  15. package/dist/@types/context.js.map +1 -1
  16. package/dist/@types/currency.d.ts +1 -1
  17. package/dist/@types/currency.js +1 -1
  18. package/dist/@types/currency.js.map +1 -1
  19. package/dist/@types/editorProduct.d.ts +26 -26
  20. package/dist/@types/editorProduct.js +5 -5
  21. package/dist/@types/editorProduct.js.map +1 -1
  22. package/dist/@types/facets.d.ts +59 -59
  23. package/dist/@types/facets.js +18 -18
  24. package/dist/@types/facets.js.map +1 -1
  25. package/dist/@types/iconProps.d.ts +9 -9
  26. package/dist/@types/iconProps.js +1 -1
  27. package/dist/@types/iconProps.js.map +1 -1
  28. package/dist/@types/narrow.d.ts +7 -7
  29. package/dist/@types/narrow.js +1 -1
  30. package/dist/@types/narrow.js.map +1 -1
  31. package/dist/@types/product.d.ts +160 -160
  32. package/dist/@types/product.js +7 -7
  33. package/dist/@types/product.js.map +1 -1
  34. package/dist/@types/productLabel.d.ts +1 -1
  35. package/dist/@types/productLabel.js +1 -1
  36. package/dist/@types/promoTile.d.ts +11 -11
  37. package/dist/@types/promoTile.js +1 -1
  38. package/dist/@types/promoTile.js.map +1 -1
  39. package/dist/@types/results.d.ts +142 -142
  40. package/dist/@types/results.js +1 -1
  41. package/dist/@types/results.js.map +1 -1
  42. package/dist/@types/sideMenu.d.ts +19 -19
  43. package/dist/@types/sideMenu.js +1 -1
  44. package/dist/@types/sideMenu.js.map +1 -1
  45. package/dist/@types/sortBy.d.ts +3 -3
  46. package/dist/@types/sortBy.js +1 -1
  47. package/dist/@types/sortBy.js.map +1 -1
  48. package/dist/@types/widget.d.ts +8 -8
  49. package/dist/@types/widget.js +1 -1
  50. package/dist/@types/widget.js.map +1 -1
  51. package/dist/App.d.ts +3 -3
  52. package/dist/App.js +14 -14
  53. package/dist/App.js.map +1 -1
  54. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.d.ts +9 -9
  55. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.js +73 -73
  56. package/dist/components/BackOfficeFiltersMenu/BackOfficeFiltersMenu.js.map +1 -1
  57. package/dist/components/BackOfficeFiltersMenu/index.d.ts +1 -1
  58. package/dist/components/BackOfficeFiltersMenu/index.js +1 -1
  59. package/dist/components/BackOfficeFiltersMenu/index.js.map +1 -1
  60. package/dist/components/BackOfficeFiltersMenu/styles.module.css +9 -9
  61. package/dist/components/BackOfficeFiltersMenu/utils.d.ts +7 -7
  62. package/dist/components/BackOfficeFiltersMenu/utils.js +238 -238
  63. package/dist/components/BackOfficeFiltersMenu/utils.js.map +1 -1
  64. package/dist/components/CheckboxFilter/Checkbox/Checkbox.d.ts +10 -10
  65. package/dist/components/CheckboxFilter/Checkbox/Checkbox.js +6 -6
  66. package/dist/components/CheckboxFilter/Checkbox/Checkbox.js.map +1 -1
  67. package/dist/components/CheckboxFilter/CheckboxFilter.d.ts +6 -6
  68. package/dist/components/CheckboxFilter/CheckboxFilter.js +8 -8
  69. package/dist/components/CheckboxFilter/CheckboxFilter.js.map +1 -1
  70. package/dist/components/CheckboxFilter/styles.module.css +4 -4
  71. package/dist/components/DragAndDrop/DndContextWrapper.d.ts +19 -19
  72. package/dist/components/DragAndDrop/DndContextWrapper.js +30 -30
  73. package/dist/components/DragAndDrop/DndContextWrapper.js.map +1 -1
  74. package/dist/components/DragAndDrop/Droppable.d.ts +7 -7
  75. package/dist/components/DragAndDrop/Droppable.js +9 -9
  76. package/dist/components/DragAndDrop/Droppable.js.map +1 -1
  77. package/dist/components/DragAndDrop/SortableItem.d.ts +13 -13
  78. package/dist/components/DragAndDrop/SortableItem.js +38 -38
  79. package/dist/components/DragAndDrop/SortableItem.js.map +1 -1
  80. package/dist/components/DragAndDrop/styles.module.css +15 -15
  81. package/dist/components/FacetItem/FacetItem.d.ts +13 -13
  82. package/dist/components/FacetItem/FacetItem.js +39 -39
  83. package/dist/components/FacetItem/FacetItem.js.map +1 -1
  84. package/dist/components/FacetItem/styles.module.css +54 -54
  85. package/dist/components/FastSimonApi/FastSimonApi.d.ts +39 -39
  86. package/dist/components/FastSimonApi/FastSimonApi.js +605 -605
  87. package/dist/components/FastSimonApi/FastSimonApi.js.map +1 -1
  88. package/dist/components/FastSimonApi/context.d.ts +62 -62
  89. package/dist/components/FastSimonApi/context.js +9 -9
  90. package/dist/components/FastSimonApi/context.js.map +1 -1
  91. package/dist/components/FastSimonApi/index.d.ts +3 -3
  92. package/dist/components/FastSimonApi/index.js +2 -2
  93. package/dist/components/FastSimonApi/index.js.map +1 -1
  94. package/dist/components/FastSimonApi/reducer.d.ts +458 -458
  95. package/dist/components/FastSimonApi/reducer.js +76 -76
  96. package/dist/components/FastSimonApi/reducer.js.map +1 -1
  97. package/dist/components/FromToFilter/From/From.d.ts +17 -17
  98. package/dist/components/FromToFilter/From/From.js +21 -21
  99. package/dist/components/FromToFilter/From/From.js.map +1 -1
  100. package/dist/components/FromToFilter/FromToFilter.d.ts +14 -14
  101. package/dist/components/FromToFilter/FromToFilter.js +57 -57
  102. package/dist/components/FromToFilter/FromToFilter.js.map +1 -1
  103. package/dist/components/FromToFilter/To/To.d.ts +18 -18
  104. package/dist/components/FromToFilter/To/To.js +22 -22
  105. package/dist/components/FromToFilter/To/To.js.map +1 -1
  106. package/dist/components/FromToFilter/styles.module.css +33 -33
  107. package/dist/components/FromToFilter/utils.d.ts +25 -25
  108. package/dist/components/FromToFilter/utils.js +6 -6
  109. package/dist/components/FromToFilter/utils.js.map +1 -1
  110. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.d.ts +10 -10
  111. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.js +33 -33
  112. package/dist/components/InStoreFiltersMenu/InStoreFiltersMenu.js.map +1 -1
  113. package/dist/components/InStoreFiltersMenu/index.d.ts +1 -1
  114. package/dist/components/InStoreFiltersMenu/index.js +1 -1
  115. package/dist/components/InStoreFiltersMenu/index.js.map +1 -1
  116. package/dist/components/InStoreFiltersMenu/styles.module.css +9 -9
  117. package/dist/components/Input/Input.d.ts +22 -22
  118. package/dist/components/Input/Input.js +48 -48
  119. package/dist/components/Input/Input.js.map +1 -1
  120. package/dist/components/Input/index.d.ts +1 -1
  121. package/dist/components/Input/index.js +1 -1
  122. package/dist/components/Input/index.js.map +1 -1
  123. package/dist/components/Input/styles.module.css +2 -2
  124. package/dist/components/LastReceivedDateFilter/LastReceivedDate.d.ts +9 -9
  125. package/dist/components/LastReceivedDateFilter/LastReceivedDate.js +87 -87
  126. package/dist/components/LastReceivedDateFilter/LastReceivedDate.js.map +1 -1
  127. package/dist/components/LastReceivedDateFilter/styles.module.css +40 -40
  128. package/dist/components/LastReceivedDateFilter/utils.d.ts +3 -3
  129. package/dist/components/LastReceivedDateFilter/utils.js +42 -42
  130. package/dist/components/LastReceivedDateFilter/utils.js.map +1 -1
  131. package/dist/components/ProductLabel/ProductLabel.d.ts +11 -11
  132. package/dist/components/ProductLabel/ProductLabel.js +10 -10
  133. package/dist/components/ProductLabel/ProductLabel.js.map +1 -1
  134. package/dist/components/ProductLabel/index.d.ts +1 -1
  135. package/dist/components/ProductLabel/index.js +1 -1
  136. package/dist/components/ProductLabel/index.js.map +1 -1
  137. package/dist/components/ProductLabel/styles.module.css +41 -41
  138. package/dist/components/ProductLabel/utils.d.ts +8 -8
  139. package/dist/components/ProductLabel/utils.js +8 -8
  140. package/dist/components/ProductLabel/utils.js.map +1 -1
  141. package/dist/components/RadioFilter/Radio/Radio.d.ts +10 -10
  142. package/dist/components/RadioFilter/Radio/Radio.js +6 -6
  143. package/dist/components/RadioFilter/Radio/Radio.js.map +1 -1
  144. package/dist/components/RadioFilter/RadioFilter.d.ts +9 -9
  145. package/dist/components/RadioFilter/RadioFilter.js +44 -44
  146. package/dist/components/RadioFilter/RadioFilter.js.map +1 -1
  147. package/dist/components/RadioFilter/styles.module.css +22 -22
  148. package/dist/components/RadioFilter/utils.d.ts +1 -1
  149. package/dist/components/RadioFilter/utils.js +7 -7
  150. package/dist/components/RadioFilter/utils.js.map +1 -1
  151. package/dist/components/ReactDatePicker/ReactDatePicker.d.ts +11 -11
  152. package/dist/components/ReactDatePicker/ReactDatePicker.js +15 -15
  153. package/dist/components/ReactDatePicker/ReactDatePicker.js.map +1 -1
  154. package/dist/components/ReactDatePicker/index.d.ts +1 -1
  155. package/dist/components/ReactDatePicker/index.js +1 -1
  156. package/dist/components/ReactDatePicker/index.js.map +1 -1
  157. package/dist/components/ReactDatePicker/styles.module.css +2 -2
  158. package/dist/components/RenderIfVisible/RenderIfVisible.d.ts +12 -12
  159. package/dist/components/RenderIfVisible/RenderIfVisible.js +58 -58
  160. package/dist/components/RenderIfVisible/RenderIfVisible.js.map +1 -1
  161. package/dist/components/RenderIfVisible/index.d.ts +1 -1
  162. package/dist/components/RenderIfVisible/index.js +1 -1
  163. package/dist/components/RenderIfVisible/index.js.map +1 -1
  164. package/dist/components/ScrollToTop/ScrollToTop.d.ts +6 -6
  165. package/dist/components/ScrollToTop/ScrollToTop.js +27 -27
  166. package/dist/components/ScrollToTop/ScrollToTop.js.map +1 -1
  167. package/dist/components/ScrollToTop/styles.module.css +18 -18
  168. package/dist/components/SelectCard/SelectCard.d.ts +5 -5
  169. package/dist/components/SelectCard/SelectCard.js +6 -6
  170. package/dist/components/SelectCard/SelectCard.js.map +1 -1
  171. package/dist/components/SelectCard/index.d.ts +1 -1
  172. package/dist/components/SelectCard/index.js +1 -1
  173. package/dist/components/SelectCard/index.js.map +1 -1
  174. package/dist/components/SelectCard/styles.module.css +20 -20
  175. package/dist/components/SingleFilter/SingleFilter.d.ts +11 -11
  176. package/dist/components/SingleFilter/SingleFilter.js +89 -89
  177. package/dist/components/SingleFilter/SingleFilter.js.map +1 -1
  178. package/dist/components/SingleFilter/styles.module.css +23 -23
  179. package/dist/components/SingleFilter/utils.d.ts +3 -3
  180. package/dist/components/SingleFilter/utils.js +41 -41
  181. package/dist/components/SingleFilter/utils.js.map +1 -1
  182. package/dist/components/SliderFilter/SliderFilter.d.ts +20 -20
  183. package/dist/components/SliderFilter/SliderFilter.js +45 -45
  184. package/dist/components/SliderFilter/SliderFilter.js.map +1 -1
  185. package/dist/components/SliderFilter/index.d.ts +1 -1
  186. package/dist/components/SliderFilter/index.js +1 -1
  187. package/dist/components/SliderFilter/index.js.map +1 -1
  188. package/dist/components/SliderFilter/styles.module.css +15 -15
  189. package/dist/components/Tooltip/Tooltip.d.ts +8 -8
  190. package/dist/components/Tooltip/Tooltip.js +8 -8
  191. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  192. package/dist/components/Tooltip/styles.module.css +33 -33
  193. package/dist/components/common.d.ts +23 -23
  194. package/dist/components/common.js +30 -30
  195. package/dist/components/common.js.map +1 -1
  196. package/dist/components/productGrid/ProductGrid.d.ts +11 -11
  197. package/dist/components/productGrid/ProductGrid.js +32 -32
  198. package/dist/components/productGrid/ProductGrid.js.map +1 -1
  199. package/dist/components/productGrid/index.d.ts +1 -1
  200. package/dist/components/productGrid/index.js +1 -1
  201. package/dist/components/productGrid/index.js.map +1 -1
  202. package/dist/components/productGrid/styles.module.css +25 -25
  203. package/dist/icons/BackOfficeFiltersIcon.d.ts +2 -2
  204. package/dist/icons/BackOfficeFiltersIcon.js +6 -6
  205. package/dist/icons/BackOfficeFiltersIcon.js.map +1 -1
  206. package/dist/icons/BannersIcon.d.ts +2 -2
  207. package/dist/icons/BannersIcon.js +6 -6
  208. package/dist/icons/BannersIcon.js.map +1 -1
  209. package/dist/icons/GeneralIcon.d.ts +2 -2
  210. package/dist/icons/GeneralIcon.js +6 -6
  211. package/dist/icons/GeneralIcon.js.map +1 -1
  212. package/dist/icons/HelpIcon.d.ts +7 -7
  213. package/dist/icons/HelpIcon.js +4 -4
  214. package/dist/icons/HelpIcon.js.map +1 -1
  215. package/dist/icons/InStoreFiltersIcon.d.ts +2 -2
  216. package/dist/icons/InStoreFiltersIcon.js +6 -6
  217. package/dist/icons/InStoreFiltersIcon.js.map +1 -1
  218. package/dist/icons/PromoteIcon.d.ts +2 -2
  219. package/dist/icons/PromoteIcon.js +6 -6
  220. package/dist/icons/PromoteIcon.js.map +1 -1
  221. package/dist/icons/RemoveIcon.d.ts +2 -2
  222. package/dist/icons/RemoveIcon.js +6 -6
  223. package/dist/icons/RemoveIcon.js.map +1 -1
  224. package/dist/icons/RestoreIcon.d.ts +2 -2
  225. package/dist/icons/RestoreIcon.js +6 -6
  226. package/dist/icons/RestoreIcon.js.map +1 -1
  227. package/dist/icons/styles.module.css +60 -60
  228. package/dist/index.d.ts +41 -41
  229. package/dist/index.js +32 -32
  230. package/dist/index.js.map +1 -1
  231. package/dist/main.d.ts +1 -1
  232. package/dist/main.js +5 -5
  233. package/dist/main.js.map +1 -1
  234. package/dist/services/API.d.ts +21 -21
  235. package/dist/services/API.js +49 -49
  236. package/dist/services/API.js.map +1 -1
  237. package/dist/services/autocomplete.d.ts +4 -4
  238. package/dist/services/autocomplete.js +25 -25
  239. package/dist/services/autocomplete.js.map +1 -1
  240. package/dist/services/getFormatProducts.d.ts +13 -13
  241. package/dist/services/getFormatProducts.js +43 -43
  242. package/dist/services/getFormatProducts.js.map +1 -1
  243. package/dist/services/landingPage.d.ts +28 -28
  244. package/dist/services/landingPage.js +86 -86
  245. package/dist/services/landingPage.js.map +1 -1
  246. package/dist/services/products.d.ts +9 -9
  247. package/dist/services/products.js +30 -30
  248. package/dist/services/products.js.map +1 -1
  249. package/dist/services/search.d.ts +13 -13
  250. package/dist/services/search.js +113 -113
  251. package/dist/services/search.js.map +1 -1
  252. package/dist/services/smartCollections.d.ts +5 -5
  253. package/dist/services/smartCollections.js +44 -44
  254. package/dist/services/smartCollections.js.map +1 -1
  255. package/dist/utils/customTagsFilters.d.ts +4 -4
  256. package/dist/utils/customTagsFilters.js +9 -9
  257. package/dist/utils/customTagsFilters.js.map +1 -1
  258. package/dist/utils/getCacheSettings.d.ts +16 -16
  259. package/dist/utils/getCacheSettings.js +25 -25
  260. package/dist/utils/getCacheSettings.js.map +1 -1
  261. package/dist/utils/getInternalURL.d.ts +1 -1
  262. package/dist/utils/getInternalURL.js +7 -7
  263. package/dist/utils/getInternalURL.js.map +1 -1
  264. package/dist/utils/getLSVectorSearch.d.ts +4 -4
  265. package/dist/utils/getLSVectorSearch.js +8 -8
  266. package/dist/utils/getLSVectorSearch.js.map +1 -1
  267. package/dist/utils/useDragToSelect.d.ts +13 -13
  268. package/dist/utils/useDragToSelect.js +172 -172
  269. package/dist/utils/useDragToSelect.js.map +1 -1
  270. package/dist/utils/useProductsPerRow.d.ts +3 -3
  271. package/dist/utils/useProductsPerRow.js +18 -18
  272. package/dist/utils/useProductsPerRow.js.map +1 -1
  273. package/package.json +64 -64
  274. package/dist/components/CheckboxFilter/Checkbox/styles.module.css +0 -143
  275. package/dist/components/FromToFilter/From/styles.module.css +0 -9
  276. package/dist/components/FromToFilter/To/styles.module.css +0 -9
  277. package/dist/components/RadioFilter/Radio/styles.module.css +0 -145
@@ -1,74 +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;
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
74
  //# sourceMappingURL=BackOfficeFiltersMenu.js.map
@@ -1 +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';\r\nimport classes from './styles.module.css';\r\nimport {FacetItem} from \"../FacetItem/FacetItem\";\r\nimport {\r\n Facet,\r\n NarrowParser,\r\n FacetsTypes,\r\n Narrow,\r\n} from \"@fast-simon/utilities\";\r\nimport {FromToFilter} from \"../FromToFilter/FromToFilter\";\r\nimport {getBackOfficeFilters, getBackOfficeFilterTooltipText, getLastReceivedTimeRange} from \"./utils\";\r\nimport {FromTo} from \"../FromToFilter/utils\";\r\nimport classNames from \"classnames\";\r\n\r\nexport interface Props {\r\n narrow: Narrow;\r\n onNarrowChange: (narrow: any) => void;\r\n onPageChange: (page: number) => void;\r\n}\r\n\r\nconst BackOfficeFiltersMenu: React.FC<Props> = ({narrow, onNarrowChange, onPageChange}) => {\r\n const [filters, setFilters] = useState<any>(getBackOfficeFilters());\r\n const [disableFilters, setDisableFilters] = useState<boolean>(false);\r\n let timer: string | number | NodeJS.Timeout | undefined;\r\n const onFilterChange = (facetid: string, value: string, updateSingleNarrow?: boolean, fromDate?: string, toDate?: string) => {\r\n setDisableFilters(true)\r\n clearTimeout(timer);\r\n\r\n if (facetid === 'merch_lrt') {\r\n let merch_ltr_value = getLastReceivedTimeRange(value, fromDate??'', toDate??'');\r\n value = merch_ltr_value ?? '';\r\n timer = setTimeout(() => {\r\n let newNarrow: Narrow | undefined = undefined;\r\n narrow?.['merch_lrt']?.values?.() ? Array.from(narrow?.['merch_lrt']?.values?.())?.forEach?.((filterValue) => {\r\n newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, filterValue)\r\n }\r\n ) : null;\r\n if(value) {\r\n newNarrow = NarrowParser.updateSingleNarrow(newNarrow ?? narrow, facetid, value)\r\n }\r\n if (newNarrow) {\r\n onNarrowChange(newNarrow as any);\r\n onPageChange(1);\r\n }\r\n disableMenuDelay()\r\n }, 750);\r\n return;\r\n }\r\n timer = setTimeout(() => {\r\n let newNarrow = NarrowParser.updateNarrow(narrow, facetid, value);\r\n onNarrowChange(newNarrow as any);\r\n onPageChange(1);\r\n disableMenuDelay()\r\n }, 750);\r\n }\r\n const onFromToFilterChange = (facetid: string, value: string) => {\r\n setDisableFilters(true)\r\n clearTimeout(timer);\r\n\r\n timer = setTimeout(() => {\r\n let newNarrow: Narrow = {};\r\n if (!value) {\r\n newNarrow = Object.fromEntries(\r\n Object.entries(narrow).filter(([key, value]) => key !== facetid)\r\n );\r\n } else {\r\n newNarrow = NarrowParser.updateSingleNarrow(narrow, facetid, value);\r\n }\r\n onNarrowChange(newNarrow as any);\r\n onPageChange(1);\r\n disableMenuDelay()\r\n }, 750);\r\n }\r\n\r\n const disableMenuDelay = () => {\r\n const timerId = setTimeout(() => {\r\n setDisableFilters(false);\r\n }, 750);\r\n return () => clearTimeout(timerId);\r\n }\r\n\r\n const clearAll = () => {\r\n onNarrowChange({});\r\n onPageChange(1);\r\n setFilters(getBackOfficeFilters());\r\n }\r\n\r\n return (\r\n <div className={classes.filtersContainer} style={{ opacity: disableFilters ? 0.5 : 1, pointerEvents: disableFilters ? 'none' : 'auto' }}>\r\n <div className={classes.sideMenuContainer}>\r\n <FacetItem key={\"fs-filters\"+(filters?.[\"filter\"] as Facet)?.id.toString()}\r\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]}\r\n facet={(filters?.[\"filter\"] as Facet)} onChange={onFilterChange} onNarrowChange={onNarrowChange} onPageChange={onNarrowChange}\r\n type={FacetsTypes.multiSelect} tooltipText={getBackOfficeFilterTooltipText[\"filter\"]}\r\n disableSelect={disableFilters}></FacetItem>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FacetItem key={\"fs-filters\"+(filters?.[\"lastReceivedDate\"] as Facet)?.id.toString()}\r\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]}\r\n facet={(filters?.[\"lastReceivedDate\"] as Facet)} onChange={onFilterChange} onNarrowChange={onNarrowChange} onPageChange={onNarrowChange}\r\n type={FacetsTypes.RadioSelect} tooltipText={getBackOfficeFilterTooltipText[\"lastReceivedDate\"]}\r\n disableSelect={disableFilters}></FacetItem>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"stockAvailability\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"stockAvailability\"]}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"variantsInStock\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"variantsInStock\"]} limit={{min: 0, max:100}}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"sales\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"sales\"]}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"weeksOfStock\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"weeksOfStock\"]}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"margin\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"margin\"]}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"marginPercent\"] as FromTo)} onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"marginPercent\"]} limit={{min: 0, max:100}}></FromToFilter>\r\n </div>\r\n <div className={classes.sideMenuContainer}>\r\n <FromToFilter facet={(filters?.[\"merchCreationDate\"] as FromTo)}\r\n convertValueCallback={(value) => {return Number(value) > 0? (Number(value) / 1000)?.toString() : value}}\r\n onChange={onFromToFilterChange}\r\n tooltipText={getBackOfficeFilterTooltipText[\"merchCreationDate\"]}></FromToFilter>\r\n </div>\r\n <span onClick={clearAll}className={classNames(classes.arrow, classes.clearAll)}><small>Clear All&nbsp;&nbsp;&nbsp;<i/></small>\r\n </span>\r\n </div>\r\n )\r\n};\r\n\r\nexport default BackOfficeFiltersMenu;\r\n"]}
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"]}
@@ -1 +1 @@
1
- export { default } from "./BackOfficeFiltersMenu";
1
+ export { default } from "./BackOfficeFiltersMenu";
@@ -1,2 +1,2 @@
1
- export { default } from "./BackOfficeFiltersMenu";
1
+ export { default } from "./BackOfficeFiltersMenu";
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +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"]}
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\";\n"]}
@@ -1,10 +1,10 @@
1
- .filtersContainer {
2
- padding: 8px 16px;
3
- font-size: 12px;
4
- }
5
- .clearAll {
6
- color: var(--blue);
7
- text-decoration: none;
8
- cursor: pointer;
9
- font-size: 1.2rem;
1
+ .filtersContainer {
2
+ padding: 8px 16px;
3
+ font-size: 12px;
4
+ }
5
+ .clearAll {
6
+ color: var(--blue);
7
+ text-decoration: none;
8
+ cursor: pointer;
9
+ font-size: 1.2rem;
10
10
  }
@@ -1,7 +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>;
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>;