@leav/ui 1.13.0-3e5f362c → 1.13.0-679fc681

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 (36) hide show
  1. package/dist/components/Explorer/Explorer.d.ts +5 -1
  2. package/dist/components/Explorer/Explorer.js +7 -0
  3. package/dist/components/Explorer/Explorer.js.map +1 -1
  4. package/dist/components/Explorer/_types.d.ts +6 -0
  5. package/dist/components/Explorer/_types.js.map +1 -1
  6. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +4 -4
  7. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  8. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +7 -31
  9. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js +9 -20
  10. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  11. package/dist/components/Explorer/useNotifyFiltersChange.d.ts +15 -0
  12. package/dist/components/Explorer/useNotifyFiltersChange.js +26 -0
  13. package/dist/components/Explorer/useNotifyFiltersChange.js.map +1 -0
  14. package/dist/components/Filters/context/filtersReducer.d.ts +9 -1
  15. package/dist/components/Filters/context/filtersReducer.js +9 -5
  16. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  17. package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js +14 -1
  18. package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js.map +1 -1
  19. package/dist/components/Filters/filter-items/filter-type/tree/useTreePermissions.js +1 -1
  20. package/dist/components/Filters/filter-items/filter-type/tree/useTreePermissions.js.map +1 -1
  21. package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.d.ts +3 -1
  22. package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.js.map +1 -1
  23. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +2 -1
  24. package/dist/hooks/useIFrameMessenger/messageHandlers.js +9 -0
  25. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  26. package/dist/hooks/useIFrameMessenger/types.d.ts +21 -2
  27. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  28. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +1 -0
  29. package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.js +29 -7
  30. package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.js.map +1 -1
  31. package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.d.ts +14 -0
  32. package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js +22 -0
  33. package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js.map +1 -0
  34. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +1 -0
  35. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +1 -0
  36. package/package.json +4 -9
@@ -1,6 +1,6 @@
1
1
  import { type ReactNode } from 'react';
2
2
  import { type ISubmitMultipleResult } from '../../components/RecordEdition/EditRecordContent/_types';
3
- import { type DefaultViewSettings, type Entrypoint, type IItemAction, type IMassActions, type IPrimaryAction } from './_types';
3
+ import { type DefaultViewSettings, type Entrypoint, type FiltersChangePayload, type IItemAction, type IMassActions, type IPrimaryAction, type ViewConfigTab } from './_types';
4
4
  import { type JoinLibraryContextFragment } from '../../_gqlTypes';
5
5
  export interface IExplorerProps {
6
6
  entrypoint: Entrypoint;
@@ -34,6 +34,10 @@ export interface IExplorerProps {
34
34
  export?: IMassActions['callback'];
35
35
  generatePreviews?: IMassActions['callback'];
36
36
  };
37
+ viewConfig?: {
38
+ onFiltersChange?: (payload: FiltersChangePayload) => void;
39
+ onViewConfigTabClick?: (tab: ViewConfigTab) => void;
40
+ };
37
41
  };
38
42
  showCreateOnNoResultOnly?: boolean;
39
43
  showFilters?: boolean;
@@ -31,6 +31,7 @@ import { useExportMassAction } from './actions-mass/useExportMassAction';
31
31
  import { useEditAttributeMassAction } from './actions-mass/useEditAttributeMassAction';
32
32
  import { useExplorerCountData } from './_queries/useExplorerCountData';
33
33
  import { useGeneratePreviewsMassAction } from './actions-mass/useGeneratePreviewsMassAction';
34
+ import { useNotifyFiltersChange } from './useNotifyFiltersChange';
34
35
  const isNotEmpty = (union) => union.length > 0;
35
36
  const emptyArray = [];
36
37
  const emptyObject = {};
@@ -64,6 +65,12 @@ export const Explorer = forwardRef(({ entrypoint, itemActions = [], primaryActio
64
65
  ignoreViewByDefault,
65
66
  skip: viewSettingsLoading,
66
67
  });
68
+ useNotifyFiltersChange({
69
+ isLoading: viewSettingsLoading,
70
+ filters: filtersData.filters,
71
+ filtersOperator: filtersData.filtersOperator,
72
+ onFiltersChange: defaultCallbacks?.viewConfig?.onFiltersChange,
73
+ });
67
74
  const { currentPage, setNewPageSize, setNewPage } = usePagination(viewSettingsDispatch);
68
75
  const { data, isMultivalue, canEditLinkAttributeValues, loading: loadingData, refetch, } = useExplorerData({
69
76
  entrypoint,
@@ -1 +1 @@
1
- {"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../../src/components/Explorer/Explorer.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,UAAU,EAAkB,mBAAmB,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAC,YAAY,EAAC,MAAM,WAAW,CAAC;AACvC,OAAO,EAAC,QAAQ,EAAE,mBAAmB,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AACxE,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AASpE,OAAO,EAAC,eAAe,EAAC,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAC,QAAQ,EAAC,MAAM,YAAY,CAAC;AACpC,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAC,uBAAuB,EAAC,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAC,sBAAsB,EAAC,MAAM,0CAA0C,CAAC;AAChF,OAAO,EAAC,oBAAoB,EAAC,MAAM,wCAAwC,CAAC;AAC5E,OAAO,EAAC,cAAc,EAAC,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAC,uBAAuB,EAAC,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EACH,sBAAsB,EACtB,SAAS,EACT,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAC,sBAAsB,EAAC,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAC,kBAAkB,EAAE,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAClE,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,oBAAoB,EAAC,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAC,iBAAiB,EAAC,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAC,cAAc,EAAC,MAAM,+CAA+C,CAAC;AAC7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAC,0BAA0B,EAAC,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAC,6BAA6B,EAAC,MAAM,8CAA8C,CAAC;AAE3F,MAAM,UAAU,GAAG,CAAsB,KAAQ,EAA2B,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAEhG,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;CAKvC,CAAC;AAEF,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;CAMzC,CAAC;AAiEF,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAC9B,CACI,EACI,UAAU,EACV,WAAW,GAAG,EAAE,EAChB,cAAc,GAAG,EAAE,EACnB,WAAW,GAAG,EAAE,EAChB,KAAK,EACL,aAAa,GAAG,UAAU,EAC1B,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,wBAAwB,GAAG,KAAK,EAChC,WAAW,GAAG,KAAK,EACnB,SAAS,GAAG,KAAK,EACjB,oBAAoB,GAAG,KAAK,EAC5B,gBAAgB,GAAG,KAAK,EACxB,mBAAmB,GAAG,KAAK,EAC3B,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,kBAAkB,GAAG,KAAK,EAC1B,eAAe,GAAG,KAAK,EACvB,kBAAkB,GAAG,KAAK,EAC1B,eAAe,EACf,mBAAmB,GAAG,KAAK,EAC3B,qBAAqB,GAAG,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,EAC7D,qBAAqB,GAAG,CAAC,QAAQ,CAAC,EAClC,kBAAkB,GAAG,CAAC,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,kBAAkB,CAAC,EAClF,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,GACrB,EACD,GAAG,EACL,EAAE;IACA,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,EAAC,YAAY,EAAE,oBAAoB,EAAC,GAAG,eAAe,EAAE,CAAC;IAE/D,MAAM,EACF,OAAO,EAAE,mBAAmB,EAC5B,IAAI,EACJ,QAAQ,EAAE,oBAAoB,GACjC,GAAG,sBAAsB,CAAC,UAAU,EAAE,mBAAmB,EAAE,mBAAmB,CAAC,CAAC;IAEjF,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAC,GAAG,iBAAiB,CAAC;QAC/D,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;QAChC,OAAO,EAAE,mBAAmB,EAAE,OAAO,IAAI,SAAS;QAClD,eAAe,EAAE,mBAAmB,EAAE,eAAe,IAAI,SAAS;QAClE,mBAAmB;QACnB,IAAI,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,MAAM,EAAC,WAAW,EAAE,cAAc,EAAE,UAAU,EAAC,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;IAEtF,MAAM,EACF,IAAI,EACJ,YAAY,EACZ,0BAA0B,EAC1B,OAAO,EAAE,WAAW,EACpB,OAAO,GACV,GAAG,eAAe,CAAC;QAChB,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,YAAY,EAAE,IAAI,CAAC,aAAa;QAChC,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,EAAC;QACnG,KAAK,EAAE,IAAI,CAAC,IAAI;QAChB,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,eAAe,EAAE,WAAW,CAAC,eAAe;QAC5C,IAAI,EAAE,mBAAmB;KAC5B,CAAC,CAAC,CAAC,qCAAqC;IACzC,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,KAAK,kBAAkB,CAAC;IACrE,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,KAAK,MAAM,CAAC;IAE1C,MAAM,EAAC,oBAAoB,EAAC,GAAG,uBAAuB,CAAC;QACnD,SAAS,EACL,UAAU,CAAC,qBAAqB,CAAC;YACjC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC5F,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;QACxC,mBAAmB,EAAE,0BAA0B;QAC/C,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC;QAC7C,UAAU;KACb,CAAC,CAAC;IAEH,MAAM,EAAC,iBAAiB,EAAE,gBAAgB,EAAC,GAAG,oBAAoB,CAAC;QAC/D,SAAS,EAAE,MAAM,IAAI,UAAU,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC;QACvG,YAAY;QACZ,SAAS,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW;QAC9C,oBAAoB,EAAE,0BAA0B;QAChD,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;KAClE,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,IAAI,EAAE,UAAU,IAAI,CAAC,CAAC;IAEjD,MAAM,EAAC,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAC,GAAG,oBAAoB,CAAC;QACtE,UAAU;QACV,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,cAAc,EAAE,mBAAmB,EAAE,OAAO,IAAI,EAAE;QAClD,OAAO,EAAE,WAAW,CAAC,OAAO;QAC5B,IAAI,EAAE,mBAAmB;KAC5B,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,CAAC;IAE5D,MAAM,kBAAkB,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAE1F,MAAM,uBAAuB,GAAG,wBAAwB;QACpD,CAAC,CAAC,CAAC,kBAAkB,IAAI,CAAC,WAAW,IAAI,YAAY,IAAI,kBAAkB;QAC3E,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,EAAC,mBAAmB,EAAE,WAAW,EAAC,GAAG,sBAAsB,CAAC;QAC9D,SAAS,EAAE,UAAU,CAAC,qBAAqB,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxF,SAAS,EAAE,uBAAuB;QAClC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,qBAAqB,EAAE,0BAA0B;QACjD,QAAQ,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM;QAC3C,kBAAkB;QAClB,UAAU;QACV,YAAY;QACZ,UAAU,EAAE,kBAAkB;QAC9B,MAAM,EAAE,cAAc;QACtB,OAAO;QACP,YAAY;KACf,CAAC,CAAC;IACH,MAAM,EAAC,iBAAiB,EAAE,SAAS,EAAC,GAAG,oBAAoB,CAAC;QACxD,SAAS,EAAE,MAAM;QACjB,kBAAkB;QAClB,SAAS,EAAE,uBAAuB;QAClC,eAAe,EAAE,0BAA0B;QAC3C,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,IAAI;QACvC,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ;QACvE,YAAY;QACZ,YAAY,EAAE,IAAI,EAAE,0BAA0B;QAC9C,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;KAClE,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAE/D,MAAM,EAAC,0BAA0B,EAAE,qBAAqB,EAAC,GAAG,6BAA6B,CAAC;QACtF,SAAS,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QACvG,KAAK,EAAE,EAAC,IAAI,EAAC;QACb,UAAU,EAAE,kBAAkB;QAC9B,kBAAkB,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB;KAC/D,CAAC,CAAC;IAEH,MAAM,EAAC,gBAAgB,EAAE,WAAW,EAAC,GAAG,mBAAmB,CAAC;QACxD,SAAS,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC7F,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC;QAC7C,UAAU,EAAE,kBAAkB;QAC9B,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM;KAC3C,CAAC,CAAC;IAEH,MAAM,EAAC,uBAAuB,EAAE,4BAA4B,EAAC,GAAG,0BAA0B,CAAC;QACvF,SAAS,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC;QACpG,KAAK,EAAE,EAAC,IAAI,EAAC;QACb,UAAU,EAAE,kBAAkB;KACjC,CAAC,CAAC;IAEH,MAAM,EAAC,oBAAoB,EAAC,GAAG,uBAAuB,CAAC;QACnD,SAAS,EAAE,CAAC,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjG,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC;QAC7C,cAAc;QACd,UAAU,EAAE,kBAAkB;QAC9B,YAAY,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;QAChD,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,EAAC,gBAAgB,EAAC,GAAG,mBAAmB,CAAC;QAC3C,SAAS,EAAE,MAAM,IAAI,UAAU,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChG,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC;QAC7C,YAAY,EAAE,WAAW;QACzB,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC,WAAW,GAAG,CAAC,CAAC,EAAC;QACnG,cAAc;QACd,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU;QAC5C,OAAO;KACV,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC,YAAY,IAAI,kBAAkB,GAAG,CAAC,CAAC,CAAC;IAEpG,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,gBAAgB,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAEpF,MAAM,EAAC,eAAe,EAAE,eAAe,EAAC,GAAG,cAAc,CAAC;QACtD,SAAS,EACL,kBAAkB,GAAG,CAAC;YACtB,CAAC,mBAAmB;YACpB,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM,CAAC;QACnG,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC;QAC7C,YAAY,EAAE,WAAW;QACzB,kBAAkB;QAClB,iBAAiB;QACjB,cAAc;QACd,WAAW,EAAE;YACT,0BAA0B;YAC1B,gBAAgB;YAChB,uBAAuB;YACvB,oBAAoB;YACpB,gBAAgB;YAChB,GAAG,WAAW;SACjB,CAAC,MAAM,CAAC,OAAO,CAAC;QACjB,UAAU,EAAE,oBAAoB;KACnC,CAAC,CAAC;IAEH,MAAM,EAAC,aAAa,EAAC,GAAG,uBAAuB,CAAC;QAC5C,IAAI;QACJ,OAAO,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;QACpF,oBAAoB;KACvB,CAAC,CAAC;IAEH,MAAM,EAAC,kBAAkB,EAAE,cAAc,EAAC,GAAG,mBAAmB,CAAC,EAAC,IAAI,EAAE,SAAS,EAAE,CAAC,kBAAkB,EAAC,CAAC,CAAC;IAEzG,MAAM,EAAC,WAAW,EAAC,GAAG,cAAc,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAE,UAAU,EAAC,CAAC,CAAC;IAEzF,mBAAmB,CACf,GAAG,EACH,GAAG,EAAE,CAAC,CAAC;QACH,YAAY,EAAE,mBAAmB;QACjC,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,kBAAkB;KACjC,CAAC,EACF,CAAC,mBAAmB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CACnF,CAAC;IAEF,OAAO,CACH,8BACI,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAC,YACpE,MAAC,mBAAmB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAE,oBAAoB,EAAC,aACvE,MAAC,qBAAqB,eACjB,SAAS,IAAI,CACV,KAAC,uBAAuB,cACpB,KAAC,aAAa,CAAC,KAAK,IAAC,KAAK,EAAC,IAAI,YAEvB,CAAC,mBAAmB,IAAI,CACpB,KAAC,aAAa,IACV,OAAO,EAAE,IAAI,CAAC,SAAS,EACvB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GACxB,CACL,CAAC,wBAAwB,GAEZ,GACA,CAC7B,EACD,MAAC,eAAe,IACZ,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,QAAQ,EAAE,eAAe,EACzB,gBAAgB,EAAE,IAAI,EAAE,mBAAmB,IAAI,KAAK,EACpD,eAAe,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAC7D,mBAAmB,EAAE,mBAAmB,aAEvC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EACjD,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,EAC/B,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,EACrD,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,IAC5B,EACjB,WAAW,IAAI,mBAAmB,CAAC,CAAC,CAAC,CAClC,KAAC,OAAO,KAAG,CACd,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CACf,KAAC,uBAAuB,cACnB,gBAAgB,IAAI,KAAC,QAAQ,IAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,GAAI,GAC5C,CAC7B,CAAC,CAAC,CAAC,CACA,KAAC,QAAQ,IACL,yBAAyB,EAAE,IAAI,EAAE,OAAO,IAAI,UAAU,EACtD,oBAAoB,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW,EACrD,mBAAmB;oCACf,oDAAoD,CAAC,IAAI,CAAC,aAAa,EAE3E,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,kBAAkB,EACtC,eAAe,EACX,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,YAAY;wCAC1C,CAAC,CAAC;4CACI,eAAe,EAAE,sBAAsB;4CACvC,WAAW;4CACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;4CACvB,cAAc;4CACd,UAAU;4CACV,UAAU,EAAE,kBAAkB;yCACjC;wCACH,CAAC,CAAC,SAAS,EAEnB,WAAW,EAAE,CAAC,GAAG,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,CAAC;yCACjE,MAAM,CAAC,OAAO,CAAC;yCACf,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wCACZ,GAAG,MAAM;wCACT,QAAQ,EAAE,kBAAkB,IAAI,MAAM,CAAC,QAAQ;qCAClD,CAAC,CAAC,EACP,SAAS,EAAE;wCACP,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,EAAE,IAAI,EAAE,MAAM;wCACzE,iBAAiB,EAAE,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe;wCAC/D,kBAAkB;wCAClB,YAAY,EAAE,kBAAkB;4CAC5B,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;4CAC5C,CAAC,CAAE,IAAI,CAAC,aAA0B;wCACtC,IAAI,EAAE,aAAa;qCACtB,EACD,eAAe,EAAE,eAAe,GAClC,CACL,IACmB,EACvB,oBAAoB,IAAI,YAAY,CAAC,KAAC,SAAS,KAAG,EAAE,oBAAoB,EAAE,EAAE,IAAI,QAAQ,CAAC,IAAI,CAAC,EAC9F,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,4BAA4B,EAC5B,WAAW,EACX,qBAAqB,IACK,GACT,EAC1B,KAAC,mBAAmB,IAAC,EAAE,EAAE,oBAAoB,GAAI,IAClD,CACN,CAAC;AACN,CAAC,CACJ,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {forwardRef, type ReactNode, useImperativeHandle, useMemo} from 'react';\nimport {createPortal} from 'react-dom';\nimport {KitEmpty, KitSnackBarProvider, KitTypography} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {Loading} from '_ui/components/Loading';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ISubmitMultipleResult} from '_ui/components/RecordEdition/EditRecordContent/_types';\nimport {\n type DefaultViewSettings,\n type Entrypoint,\n type IItemAction,\n type IMassActions,\n type IPrimaryAction,\n} from './_types';\nimport {useExplorerData} from './_queries/useExplorerData';\nimport {DataView} from './DataView';\nimport {ExplorerTitle} from './ExplorerTitle';\nimport {ExplorerToolbar} from './ExplorerToolbar';\nimport {useEditStatusItemAction} from './actions-item/useEditStatusItemAction';\nimport {usePrimaryActionsButton} from './actions-primary/usePrimaryActions';\nimport {useCreatePrimaryAction} from './actions-primary/useCreatePrimaryAction';\nimport {useLinkPrimaryAction} from './actions-primary/useLinkPrimaryAction';\nimport {useMassActions} from './actions-mass/useMassActions';\nimport {useDeactivateMassAction} from './actions-mass/useDeactivateMassAction';\nimport {\n defaultPageSizeOptions,\n SidePanel,\n useEditSettings,\n useOpenViewSettings,\n ViewSettingsContext,\n} from './manage-view-settings';\nimport {useSearchInput} from './useSearchInput';\nimport {usePagination} from './usePagination';\nimport {useViewSettingsReducer} from './useViewSettingsReducer';\nimport {MASS_SELECTION_ALL, SNACKBAR_MASS_ID} from './_constants';\nimport {useDeleteLinkValues} from './actions-mass/useDeleteLinkValues';\nimport {useReplaceItemAction} from './actions-item/useReplaceItemAction';\nimport {type JoinLibraryContextFragment} from '_ui/_gqlTypes';\nimport {useFiltersReducer} from '_ui/components/Filters/context/useFiltersReducer';\nimport {FiltersContext} from '_ui/components/Filters/context/filtersContext';\nimport {useExportMassAction} from './actions-mass/useExportMassAction';\nimport {useEditAttributeMassAction} from './actions-mass/useEditAttributeMassAction';\nimport {useExplorerCountData} from './_queries/useExplorerCountData';\nimport {useGeneratePreviewsMassAction} from './actions-mass/useGeneratePreviewsMassAction';\n\nconst isNotEmpty = <T extends unknown[]>(union: T): union is Exclude<T, []> => union.length > 0;\n\nconst emptyArray = [];\nconst emptyObject = {};\n\nconst ExplorerHeaderDivStyled = styled.div`\n display: flex;\n align-items: flex-start;\n padding: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst ExplorerPageDivStyled = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`;\n\nconst ExplorerEmptyDataStyled = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport interface IExplorerProps {\n entrypoint: Entrypoint;\n noPagination?: true;\n itemActions?: IItemAction[];\n primaryActions?: IPrimaryAction[];\n massActions?: IMassActions[];\n title?: string;\n selectionMode?: 'multiple' | 'simple';\n emptyPlaceholder?: ReactNode;\n defaultActionsForItem?: Array<'replaceLink' | 'remove' | 'activate'>;\n defaultPrimaryActions?: Array<'create'>;\n defaultMassActions?: Array<'deactivate' | 'export' | 'editAttribute' | 'generatePreviews'>;\n defaultViewSettings?: DefaultViewSettings;\n defaultCallbacks?: {\n item?: {\n edit?: IItemAction['callback'];\n replaceLink?: (replaceValuesResult: ISubmitMultipleResult) => void;\n remove?: IItemAction['callback'];\n select?: IItemAction['callback'];\n };\n primary?: {\n create?: ({\n recordIdCreated,\n saveValuesResultOnLink,\n }: {\n recordIdCreated: string;\n saveValuesResultOnLink?: ISubmitMultipleResult;\n }) => void;\n link?: (saveValuesResult: ISubmitMultipleResult) => void;\n };\n mass?: {\n deactivate?: IMassActions['callback'];\n export?: IMassActions['callback'];\n generatePreviews?: IMassActions['callback'];\n };\n };\n showCreateOnNoResultOnly?: boolean;\n showFilters?: boolean;\n showSorts?: boolean;\n hideFirstActionLabel?: boolean;\n /**\n * Optional to `false` load the last added view when `props.defaultViewSettings.viewId` is `undefined`,\n * if set to `true` load default view.\n */\n ignoreViewByDefault?: boolean;\n showTitle?: boolean;\n showSearch?: boolean;\n disableSelection?: boolean;\n hideSelectAllAction?: boolean;\n hidePrimaryActions?: boolean;\n hideTableHeader?: boolean;\n useSmallHeaderSize?: boolean;\n tableBodyHeight?: string;\n creationFormId?: string;\n joinLibraryContext?: JoinLibraryContextFragment;\n}\n\nexport interface IExplorerRef {\n createAction: IPrimaryAction | null;\n linkAction: IPrimaryAction | null;\n totalCount: number;\n}\n\nexport const Explorer = forwardRef<IExplorerRef, IExplorerProps>(\n (\n {\n entrypoint,\n itemActions = [],\n primaryActions = [],\n massActions = [],\n title,\n selectionMode = 'multiple',\n emptyPlaceholder,\n noPagination,\n creationFormId,\n showCreateOnNoResultOnly = false,\n showFilters = false,\n showSorts = false,\n hideFirstActionLabel = false,\n disableSelection = false,\n hideSelectAllAction = false,\n showTitle = false,\n showSearch = false,\n hidePrimaryActions = false,\n hideTableHeader = false,\n useSmallHeaderSize = false,\n tableBodyHeight,\n ignoreViewByDefault = false,\n defaultActionsForItem = ['replaceLink', 'remove', 'activate'],\n defaultPrimaryActions = ['create'],\n defaultMassActions = ['deactivate', 'editAttribute', 'export', 'generatePreviews'],\n defaultCallbacks,\n defaultViewSettings,\n joinLibraryContext,\n },\n ref,\n ) => {\n const {t} = useSharedTranslation();\n\n const {panelElement: settingsPanelElement} = useEditSettings();\n\n const {\n loading: viewSettingsLoading,\n view,\n dispatch: viewSettingsDispatch,\n } = useViewSettingsReducer(entrypoint, defaultViewSettings, ignoreViewByDefault);\n\n const {filtersData, dispatch: filtersDispatch} = useFiltersReducer({\n libraryId: view.libraryId,\n viewId: view.viewId ?? undefined,\n filters: defaultViewSettings?.filters ?? undefined,\n filtersOperator: defaultViewSettings?.filtersOperator ?? undefined,\n ignoreViewByDefault,\n skip: viewSettingsLoading,\n });\n\n const {currentPage, setNewPageSize, setNewPage} = usePagination(viewSettingsDispatch);\n\n const {\n data,\n isMultivalue,\n canEditLinkAttributeValues,\n loading: loadingData,\n refetch,\n } = useExplorerData({\n entrypoint,\n libraryId: view.libraryId,\n attributeIds: view.attributesIds,\n fulltextSearch: view.fulltextSearch,\n pagination: noPagination ? null : {limit: view.pageSize, offset: view.pageSize * (currentPage - 1)},\n sorts: view.sort,\n filters: filtersData.filters,\n filtersOperator: filtersData.filtersOperator,\n skip: viewSettingsLoading,\n }); // TODO: refresh when go back on page\n const isMassSelectionAll = view.massSelection === MASS_SELECTION_ALL;\n const isLink = entrypoint.type === 'link';\n\n const {editStatusItemAction} = useEditStatusItemAction({\n isEnabled:\n isNotEmpty(defaultActionsForItem) &&\n (defaultActionsForItem.includes('remove') || defaultActionsForItem.includes('activate')),\n onRemove: defaultCallbacks?.item?.remove,\n canDeleteLinkValues: canEditLinkAttributeValues,\n store: {view, dispatch: viewSettingsDispatch},\n entrypoint,\n });\n\n const {replaceItemAction, replaceItemModal} = useReplaceItemAction({\n isEnabled: isLink && isNotEmpty(defaultActionsForItem) && defaultActionsForItem.includes('replaceLink'),\n isMultivalue,\n onReplace: defaultCallbacks?.item?.replaceLink,\n canReplaceLinkValues: canEditLinkAttributeValues,\n columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],\n });\n\n const totalCountFiltered = data?.totalCount ?? 0;\n\n const {countData: totalCountLibrary, refetchCount} = useExplorerCountData({\n entrypoint,\n libraryId: view.libraryId,\n defaultFilters: defaultViewSettings?.filters ?? [],\n filters: filtersData.filters,\n skip: viewSettingsLoading,\n });\n\n const hasNoResults = data === null || data.totalCount === 0;\n\n const isAllowedFreeEntry = !(entrypoint.type === 'library' && !entrypoint.allowFreeEntry);\n\n const showCreatePrimaryButton = showCreateOnNoResultOnly\n ? !hidePrimaryActions && !loadingData && hasNoResults && isAllowedFreeEntry\n : true;\n\n const {createPrimaryAction, createModal} = useCreatePrimaryAction({\n isEnabled: isNotEmpty(defaultPrimaryActions) && defaultPrimaryActions.includes('create'),\n isVisible: showCreatePrimaryButton,\n libraryId: view.libraryId,\n canCreateAndLinkValue: canEditLinkAttributeValues,\n onCreate: defaultCallbacks?.primary?.create,\n joinLibraryContext,\n entrypoint,\n isMultivalue,\n totalCount: totalCountFiltered,\n formId: creationFormId,\n refetch,\n refetchCount,\n });\n const {linkPrimaryAction, linkModal} = useLinkPrimaryAction({\n isEnabled: isLink,\n joinLibraryContext,\n isVisible: showCreatePrimaryButton,\n canAddLinkValue: canEditLinkAttributeValues,\n onLink: defaultCallbacks?.primary?.link,\n linkId: data?.totalCount === 0 ? undefined : data?.records[0]?.id_value,\n isMultivalue,\n maxItemsLeft: null, // TODO: use KitTable.row,\n columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],\n });\n\n const allVisibleKeys = data?.records.map(({key}) => key) ?? [];\n\n const {generatePreviewsMassAction, GeneratePreviewsModal} = useGeneratePreviewsMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('generatePreviews'),\n store: {view},\n totalCount: totalCountFiltered,\n onGeneratePreviews: defaultCallbacks?.mass?.generatePreviews,\n });\n\n const {exportMassAction, ExportModal} = useExportMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('export'),\n store: {view, dispatch: viewSettingsDispatch},\n totalCount: totalCountFiltered,\n onExport: defaultCallbacks?.mass?.export,\n });\n\n const {editAttributeMassAction, editAttributeMassActionModal} = useEditAttributeMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('editAttribute'),\n store: {view},\n totalCount: totalCountFiltered,\n });\n\n const {deactivateMassAction} = useDeactivateMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n allVisibleKeys,\n totalCount: totalCountFiltered,\n onDeactivate: defaultCallbacks?.mass?.deactivate,\n refetch,\n });\n\n const {unlinkMassAction} = useDeleteLinkValues({\n isEnabled: isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n pagination: noPagination ? null : {limit: view.pageSize, offset: view.pageSize * (currentPage - 1)},\n allVisibleKeys,\n onDelete: defaultCallbacks?.mass?.deactivate,\n refetch,\n });\n\n const _isSelectionDisable = disableSelection || (isLink && !isMultivalue && totalCountFiltered > 0);\n\n const massActionSnackbarId = useMemo(() => `${SNACKBAR_MASS_ID}_${Date.now()}`, []);\n\n const {setSelectedKeys, selectAllButton} = useMassActions({\n isEnabled:\n totalCountFiltered > 0 &&\n !_isSelectionDisable &&\n (isNotEmpty(defaultMassActions) || isNotEmpty(massActions) || !!defaultCallbacks?.item?.select),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n totalCountFiltered,\n totalCountLibrary,\n allVisibleKeys,\n massActions: [\n generatePreviewsMassAction,\n exportMassAction,\n editAttributeMassAction,\n deactivateMassAction,\n unlinkMassAction,\n ...massActions,\n ].filter(Boolean),\n snackbarId: massActionSnackbarId,\n });\n\n const {primaryButton} = usePrimaryActionsButton({\n view,\n actions: [createPrimaryAction, linkPrimaryAction, ...primaryActions].filter(Boolean),\n hideFirstActionLabel,\n });\n\n const {viewSettingsButton, viewListButton} = useOpenViewSettings({view, isEnabled: !isMassSelectionAll});\n\n const {searchInput} = useSearchInput({view, dispatch: viewSettingsDispatch, setNewPage});\n\n useImperativeHandle(\n ref,\n () => ({\n createAction: createPrimaryAction,\n linkAction: linkPrimaryAction,\n totalCount: totalCountFiltered,\n }),\n [createPrimaryAction?.disabled, linkPrimaryAction?.disabled, totalCountFiltered],\n );\n\n return (\n <>\n <FiltersContext.Provider value={{filtersData, dispatch: filtersDispatch}}>\n <ViewSettingsContext.Provider value={{view, dispatch: viewSettingsDispatch}}>\n <ExplorerPageDivStyled>\n {showTitle && (\n <ExplorerHeaderDivStyled>\n <KitTypography.Title level=\"h3\">\n {\n !viewSettingsLoading && (\n <ExplorerTitle\n library={view.libraryId}\n title={title}\n entrypoint={entrypoint}\n />\n ) /*TODO: manage loading*/\n }\n </KitTypography.Title>\n </ExplorerHeaderDivStyled>\n )}\n <ExplorerToolbar\n showFilters={showFilters}\n showSorts={showSorts}\n isMassSelectionAll={isMassSelectionAll}\n headless={hideTableHeader}\n canRemoveFilters={view?.enableConfigureView ?? false}\n selectAllButton={hideSelectAllAction ? null : selectAllButton}\n viewSettingsLoading={viewSettingsLoading}\n >\n {view?.enableConfigureView ? viewListButton : null}\n {showSearch ? searchInput : null}\n {view?.enableConfigureView ? viewSettingsButton : null}\n {hidePrimaryActions ? null : primaryButton}\n </ExplorerToolbar>\n {loadingData || viewSettingsLoading ? (\n <Loading />\n ) : hasNoResults ? (\n <ExplorerEmptyDataStyled>\n {emptyPlaceholder || <KitEmpty title={t('explorer.empty-data')} />}\n </ExplorerEmptyDataStyled>\n ) : (\n <DataView\n dataGroupedFilteredSorted={data?.records ?? emptyArray}\n attributesProperties={data?.attributes ?? emptyObject}\n attributesToDisplay={\n /* ⚠️ whoAmI column will always be displayed first*/ view.attributesIds\n }\n hideTableHeader={hideTableHeader}\n useSmallHeaderSize={useSmallHeaderSize}\n paginationProps={\n entrypoint.type === 'library' && !noPagination\n ? {\n pageSizeOptions: defaultPageSizeOptions,\n currentPage,\n pageSize: view.pageSize,\n setNewPageSize,\n setNewPage,\n totalCount: totalCountFiltered,\n }\n : undefined\n }\n itemActions={[...itemActions, replaceItemAction, editStatusItemAction]\n .filter(Boolean)\n .map(action => ({\n ...action,\n disabled: isMassSelectionAll || action.disabled,\n }))}\n selection={{\n onSelectItem: _isSelectionDisable ? null : defaultCallbacks?.item?.select,\n onSelectionChange: _isSelectionDisable ? null : setSelectedKeys,\n isMassSelectionAll,\n selectedKeys: isMassSelectionAll\n ? data?.records.map(({whoAmI}) => whoAmI.id)\n : (view.massSelection as string[]),\n mode: selectionMode,\n }}\n tableBodyHeight={tableBodyHeight}\n />\n )}\n </ExplorerPageDivStyled>\n {settingsPanelElement && createPortal(<SidePanel />, settingsPanelElement?.() ?? document.body)}\n {replaceItemModal}\n {createModal}\n {linkModal}\n {editAttributeMassActionModal}\n {ExportModal}\n {GeneratePreviewsModal}\n </ViewSettingsContext.Provider>\n </FiltersContext.Provider>\n <KitSnackBarProvider id={massActionSnackbarId} />\n </>\n );\n },\n);\n"]}
1
+ {"version":3,"file":"Explorer.js","sourceRoot":"","sources":["../../../src/components/Explorer/Explorer.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {forwardRef, type ReactNode, useImperativeHandle, useMemo} from 'react';\nimport {createPortal} from 'react-dom';\nimport {KitEmpty, KitSnackBarProvider, KitTypography} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {Loading} from '_ui/components/Loading';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ISubmitMultipleResult} from '_ui/components/RecordEdition/EditRecordContent/_types';\nimport {\n type DefaultViewSettings,\n type Entrypoint,\n type FiltersChangePayload,\n type IItemAction,\n type IMassActions,\n type IPrimaryAction,\n type ViewConfigTab,\n} from './_types';\nimport {useExplorerData} from './_queries/useExplorerData';\nimport {DataView} from './DataView';\nimport {ExplorerTitle} from './ExplorerTitle';\nimport {ExplorerToolbar} from './ExplorerToolbar';\nimport {useEditStatusItemAction} from './actions-item/useEditStatusItemAction';\nimport {usePrimaryActionsButton} from './actions-primary/usePrimaryActions';\nimport {useCreatePrimaryAction} from './actions-primary/useCreatePrimaryAction';\nimport {useLinkPrimaryAction} from './actions-primary/useLinkPrimaryAction';\nimport {useMassActions} from './actions-mass/useMassActions';\nimport {useDeactivateMassAction} from './actions-mass/useDeactivateMassAction';\nimport {\n defaultPageSizeOptions,\n SidePanel,\n useEditSettings,\n useOpenViewSettings,\n ViewSettingsContext,\n} from './manage-view-settings';\nimport {useSearchInput} from './useSearchInput';\nimport {usePagination} from './usePagination';\nimport {useViewSettingsReducer} from './useViewSettingsReducer';\nimport {MASS_SELECTION_ALL, SNACKBAR_MASS_ID} from './_constants';\nimport {useDeleteLinkValues} from './actions-mass/useDeleteLinkValues';\nimport {useReplaceItemAction} from './actions-item/useReplaceItemAction';\nimport {type JoinLibraryContextFragment} from '_ui/_gqlTypes';\nimport {useFiltersReducer} from '_ui/components/Filters/context/useFiltersReducer';\nimport {FiltersContext} from '_ui/components/Filters/context/filtersContext';\nimport {useExportMassAction} from './actions-mass/useExportMassAction';\nimport {useEditAttributeMassAction} from './actions-mass/useEditAttributeMassAction';\nimport {useExplorerCountData} from './_queries/useExplorerCountData';\nimport {useGeneratePreviewsMassAction} from './actions-mass/useGeneratePreviewsMassAction';\nimport {useNotifyFiltersChange} from './useNotifyFiltersChange';\n\nconst isNotEmpty = <T extends unknown[]>(union: T): union is Exclude<T, []> => union.length > 0;\n\nconst emptyArray = [];\nconst emptyObject = {};\n\nconst ExplorerHeaderDivStyled = styled.div`\n display: flex;\n align-items: flex-start;\n padding: calc(var(--general-spacing-xs) * 1px);\n`;\n\nconst ExplorerPageDivStyled = styled.div`\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n`;\n\nconst ExplorerEmptyDataStyled = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nexport interface IExplorerProps {\n entrypoint: Entrypoint;\n noPagination?: true;\n itemActions?: IItemAction[];\n primaryActions?: IPrimaryAction[];\n massActions?: IMassActions[];\n title?: string;\n selectionMode?: 'multiple' | 'simple';\n emptyPlaceholder?: ReactNode;\n defaultActionsForItem?: Array<'replaceLink' | 'remove' | 'activate'>;\n defaultPrimaryActions?: Array<'create'>;\n defaultMassActions?: Array<'deactivate' | 'export' | 'editAttribute' | 'generatePreviews'>;\n defaultViewSettings?: DefaultViewSettings;\n defaultCallbacks?: {\n item?: {\n edit?: IItemAction['callback'];\n replaceLink?: (replaceValuesResult: ISubmitMultipleResult) => void;\n remove?: IItemAction['callback'];\n select?: IItemAction['callback'];\n };\n primary?: {\n create?: ({\n recordIdCreated,\n saveValuesResultOnLink,\n }: {\n recordIdCreated: string;\n saveValuesResultOnLink?: ISubmitMultipleResult;\n }) => void;\n link?: (saveValuesResult: ISubmitMultipleResult) => void;\n };\n mass?: {\n deactivate?: IMassActions['callback'];\n export?: IMassActions['callback'];\n generatePreviews?: IMassActions['callback'];\n };\n viewConfig?: {\n onFiltersChange?: (payload: FiltersChangePayload) => void;\n onViewConfigTabClick?: (tab: ViewConfigTab) => void;\n };\n };\n showCreateOnNoResultOnly?: boolean;\n showFilters?: boolean;\n showSorts?: boolean;\n hideFirstActionLabel?: boolean;\n /**\n * Optional to `false` load the last added view when `props.defaultViewSettings.viewId` is `undefined`,\n * if set to `true` load default view.\n */\n ignoreViewByDefault?: boolean;\n showTitle?: boolean;\n showSearch?: boolean;\n disableSelection?: boolean;\n hideSelectAllAction?: boolean;\n hidePrimaryActions?: boolean;\n hideTableHeader?: boolean;\n useSmallHeaderSize?: boolean;\n tableBodyHeight?: string;\n creationFormId?: string;\n joinLibraryContext?: JoinLibraryContextFragment;\n}\n\nexport interface IExplorerRef {\n createAction: IPrimaryAction | null;\n linkAction: IPrimaryAction | null;\n totalCount: number;\n}\n\nexport const Explorer = forwardRef<IExplorerRef, IExplorerProps>(\n (\n {\n entrypoint,\n itemActions = [],\n primaryActions = [],\n massActions = [],\n title,\n selectionMode = 'multiple',\n emptyPlaceholder,\n noPagination,\n creationFormId,\n showCreateOnNoResultOnly = false,\n showFilters = false,\n showSorts = false,\n hideFirstActionLabel = false,\n disableSelection = false,\n hideSelectAllAction = false,\n showTitle = false,\n showSearch = false,\n hidePrimaryActions = false,\n hideTableHeader = false,\n useSmallHeaderSize = false,\n tableBodyHeight,\n ignoreViewByDefault = false,\n defaultActionsForItem = ['replaceLink', 'remove', 'activate'],\n defaultPrimaryActions = ['create'],\n defaultMassActions = ['deactivate', 'editAttribute', 'export', 'generatePreviews'],\n defaultCallbacks,\n defaultViewSettings,\n joinLibraryContext,\n },\n ref,\n ) => {\n const {t} = useSharedTranslation();\n\n const {panelElement: settingsPanelElement} = useEditSettings();\n\n const {\n loading: viewSettingsLoading,\n view,\n dispatch: viewSettingsDispatch,\n } = useViewSettingsReducer(entrypoint, defaultViewSettings, ignoreViewByDefault);\n\n const {filtersData, dispatch: filtersDispatch} = useFiltersReducer({\n libraryId: view.libraryId,\n viewId: view.viewId ?? undefined,\n filters: defaultViewSettings?.filters ?? undefined,\n filtersOperator: defaultViewSettings?.filtersOperator ?? undefined,\n ignoreViewByDefault,\n skip: viewSettingsLoading,\n });\n\n useNotifyFiltersChange({\n isLoading: viewSettingsLoading,\n filters: filtersData.filters,\n filtersOperator: filtersData.filtersOperator,\n onFiltersChange: defaultCallbacks?.viewConfig?.onFiltersChange,\n });\n\n const {currentPage, setNewPageSize, setNewPage} = usePagination(viewSettingsDispatch);\n\n const {\n data,\n isMultivalue,\n canEditLinkAttributeValues,\n loading: loadingData,\n refetch,\n } = useExplorerData({\n entrypoint,\n libraryId: view.libraryId,\n attributeIds: view.attributesIds,\n fulltextSearch: view.fulltextSearch,\n pagination: noPagination ? null : {limit: view.pageSize, offset: view.pageSize * (currentPage - 1)},\n sorts: view.sort,\n filters: filtersData.filters,\n filtersOperator: filtersData.filtersOperator,\n skip: viewSettingsLoading,\n }); // TODO: refresh when go back on page\n const isMassSelectionAll = view.massSelection === MASS_SELECTION_ALL;\n const isLink = entrypoint.type === 'link';\n\n const {editStatusItemAction} = useEditStatusItemAction({\n isEnabled:\n isNotEmpty(defaultActionsForItem) &&\n (defaultActionsForItem.includes('remove') || defaultActionsForItem.includes('activate')),\n onRemove: defaultCallbacks?.item?.remove,\n canDeleteLinkValues: canEditLinkAttributeValues,\n store: {view, dispatch: viewSettingsDispatch},\n entrypoint,\n });\n\n const {replaceItemAction, replaceItemModal} = useReplaceItemAction({\n isEnabled: isLink && isNotEmpty(defaultActionsForItem) && defaultActionsForItem.includes('replaceLink'),\n isMultivalue,\n onReplace: defaultCallbacks?.item?.replaceLink,\n canReplaceLinkValues: canEditLinkAttributeValues,\n columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],\n });\n\n const totalCountFiltered = data?.totalCount ?? 0;\n\n const {countData: totalCountLibrary, refetchCount} = useExplorerCountData({\n entrypoint,\n libraryId: view.libraryId,\n defaultFilters: defaultViewSettings?.filters ?? [],\n filters: filtersData.filters,\n skip: viewSettingsLoading,\n });\n\n const hasNoResults = data === null || data.totalCount === 0;\n\n const isAllowedFreeEntry = !(entrypoint.type === 'library' && !entrypoint.allowFreeEntry);\n\n const showCreatePrimaryButton = showCreateOnNoResultOnly\n ? !hidePrimaryActions && !loadingData && hasNoResults && isAllowedFreeEntry\n : true;\n\n const {createPrimaryAction, createModal} = useCreatePrimaryAction({\n isEnabled: isNotEmpty(defaultPrimaryActions) && defaultPrimaryActions.includes('create'),\n isVisible: showCreatePrimaryButton,\n libraryId: view.libraryId,\n canCreateAndLinkValue: canEditLinkAttributeValues,\n onCreate: defaultCallbacks?.primary?.create,\n joinLibraryContext,\n entrypoint,\n isMultivalue,\n totalCount: totalCountFiltered,\n formId: creationFormId,\n refetch,\n refetchCount,\n });\n const {linkPrimaryAction, linkModal} = useLinkPrimaryAction({\n isEnabled: isLink,\n joinLibraryContext,\n isVisible: showCreatePrimaryButton,\n canAddLinkValue: canEditLinkAttributeValues,\n onLink: defaultCallbacks?.primary?.link,\n linkId: data?.totalCount === 0 ? undefined : data?.records[0]?.id_value,\n isMultivalue,\n maxItemsLeft: null, // TODO: use KitTable.row,\n columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],\n });\n\n const allVisibleKeys = data?.records.map(({key}) => key) ?? [];\n\n const {generatePreviewsMassAction, GeneratePreviewsModal} = useGeneratePreviewsMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('generatePreviews'),\n store: {view},\n totalCount: totalCountFiltered,\n onGeneratePreviews: defaultCallbacks?.mass?.generatePreviews,\n });\n\n const {exportMassAction, ExportModal} = useExportMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('export'),\n store: {view, dispatch: viewSettingsDispatch},\n totalCount: totalCountFiltered,\n onExport: defaultCallbacks?.mass?.export,\n });\n\n const {editAttributeMassAction, editAttributeMassActionModal} = useEditAttributeMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('editAttribute'),\n store: {view},\n totalCount: totalCountFiltered,\n });\n\n const {deactivateMassAction} = useDeactivateMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n allVisibleKeys,\n totalCount: totalCountFiltered,\n onDeactivate: defaultCallbacks?.mass?.deactivate,\n refetch,\n });\n\n const {unlinkMassAction} = useDeleteLinkValues({\n isEnabled: isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n pagination: noPagination ? null : {limit: view.pageSize, offset: view.pageSize * (currentPage - 1)},\n allVisibleKeys,\n onDelete: defaultCallbacks?.mass?.deactivate,\n refetch,\n });\n\n const _isSelectionDisable = disableSelection || (isLink && !isMultivalue && totalCountFiltered > 0);\n\n const massActionSnackbarId = useMemo(() => `${SNACKBAR_MASS_ID}_${Date.now()}`, []);\n\n const {setSelectedKeys, selectAllButton} = useMassActions({\n isEnabled:\n totalCountFiltered > 0 &&\n !_isSelectionDisable &&\n (isNotEmpty(defaultMassActions) || isNotEmpty(massActions) || !!defaultCallbacks?.item?.select),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n totalCountFiltered,\n totalCountLibrary,\n allVisibleKeys,\n massActions: [\n generatePreviewsMassAction,\n exportMassAction,\n editAttributeMassAction,\n deactivateMassAction,\n unlinkMassAction,\n ...massActions,\n ].filter(Boolean),\n snackbarId: massActionSnackbarId,\n });\n\n const {primaryButton} = usePrimaryActionsButton({\n view,\n actions: [createPrimaryAction, linkPrimaryAction, ...primaryActions].filter(Boolean),\n hideFirstActionLabel,\n });\n\n const {viewSettingsButton, viewListButton} = useOpenViewSettings({view, isEnabled: !isMassSelectionAll});\n\n const {searchInput} = useSearchInput({view, dispatch: viewSettingsDispatch, setNewPage});\n\n useImperativeHandle(\n ref,\n () => ({\n createAction: createPrimaryAction,\n linkAction: linkPrimaryAction,\n totalCount: totalCountFiltered,\n }),\n [createPrimaryAction?.disabled, linkPrimaryAction?.disabled, totalCountFiltered],\n );\n\n return (\n <>\n <FiltersContext.Provider value={{filtersData, dispatch: filtersDispatch}}>\n <ViewSettingsContext.Provider value={{view, dispatch: viewSettingsDispatch}}>\n <ExplorerPageDivStyled>\n {showTitle && (\n <ExplorerHeaderDivStyled>\n <KitTypography.Title level=\"h3\">\n {\n !viewSettingsLoading && (\n <ExplorerTitle\n library={view.libraryId}\n title={title}\n entrypoint={entrypoint}\n />\n ) /*TODO: manage loading*/\n }\n </KitTypography.Title>\n </ExplorerHeaderDivStyled>\n )}\n <ExplorerToolbar\n showFilters={showFilters}\n showSorts={showSorts}\n isMassSelectionAll={isMassSelectionAll}\n headless={hideTableHeader}\n canRemoveFilters={view?.enableConfigureView ?? false}\n selectAllButton={hideSelectAllAction ? null : selectAllButton}\n viewSettingsLoading={viewSettingsLoading}\n >\n {view?.enableConfigureView ? viewListButton : null}\n {showSearch ? searchInput : null}\n {view?.enableConfigureView ? viewSettingsButton : null}\n {hidePrimaryActions ? null : primaryButton}\n </ExplorerToolbar>\n {loadingData || viewSettingsLoading ? (\n <Loading />\n ) : hasNoResults ? (\n <ExplorerEmptyDataStyled>\n {emptyPlaceholder || <KitEmpty title={t('explorer.empty-data')} />}\n </ExplorerEmptyDataStyled>\n ) : (\n <DataView\n dataGroupedFilteredSorted={data?.records ?? emptyArray}\n attributesProperties={data?.attributes ?? emptyObject}\n attributesToDisplay={\n /* ⚠️ whoAmI column will always be displayed first*/ view.attributesIds\n }\n hideTableHeader={hideTableHeader}\n useSmallHeaderSize={useSmallHeaderSize}\n paginationProps={\n entrypoint.type === 'library' && !noPagination\n ? {\n pageSizeOptions: defaultPageSizeOptions,\n currentPage,\n pageSize: view.pageSize,\n setNewPageSize,\n setNewPage,\n totalCount: totalCountFiltered,\n }\n : undefined\n }\n itemActions={[...itemActions, replaceItemAction, editStatusItemAction]\n .filter(Boolean)\n .map(action => ({\n ...action,\n disabled: isMassSelectionAll || action.disabled,\n }))}\n selection={{\n onSelectItem: _isSelectionDisable ? null : defaultCallbacks?.item?.select,\n onSelectionChange: _isSelectionDisable ? null : setSelectedKeys,\n isMassSelectionAll,\n selectedKeys: isMassSelectionAll\n ? data?.records.map(({whoAmI}) => whoAmI.id)\n : (view.massSelection as string[]),\n mode: selectionMode,\n }}\n tableBodyHeight={tableBodyHeight}\n />\n )}\n </ExplorerPageDivStyled>\n {settingsPanelElement && createPortal(<SidePanel />, settingsPanelElement?.() ?? document.body)}\n {replaceItemModal}\n {createModal}\n {linkModal}\n {editAttributeMassActionModal}\n {ExportModal}\n {GeneratePreviewsModal}\n </ViewSettingsContext.Provider>\n </FiltersContext.Provider>\n <KitSnackBarProvider id={massActionSnackbarId} />\n </>\n );\n },\n);\n"]}
@@ -60,6 +60,12 @@ export type DefaultViewSettings = Override<Partial<IViewSettingsState>, {
60
60
  filtersOperator?: 'AND' | 'OR';
61
61
  filters?: UIFilter[];
62
62
  }>;
63
+ export type SerializedView = DefaultViewSettings;
64
+ export type ViewConfigTab = 'display' | 'filters' | 'sorts' | 'catalogue';
65
+ export type FiltersChangePayload = {
66
+ filters: UIFilter[];
67
+ filtersOperator: 'AND' | 'OR';
68
+ };
63
69
  export interface IEntrypointTree {
64
70
  type: 'tree';
65
71
  treeId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../src/components/Explorer/_types.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type Override} from '@leav/utils';\nimport {\n type AttributePropertiesFragment,\n type PropertyValueFragment,\n type RecordFilterInput,\n type RecordIdentityFragment,\n} from '_ui/_gqlTypes';\nimport {type Key, type ReactElement} from 'react';\nimport {type IViewSettingsState} from './manage-view-settings';\nimport {type IView} from '_ui/types';\nimport {type MASS_SELECTION_ALL} from './_constants';\nimport {type UIFilter, type ValidFilter} from '../Filters/_types';\n\nexport type MassSelection = Key[] | typeof MASS_SELECTION_ALL;\n\nexport interface IExplorerData {\n totalCount: number;\n attributes: {\n [attributeId: string]: Override<AttributePropertiesFragment, {label: string}>;\n };\n records: IItemData[];\n}\n\nexport interface IItemData {\n libraryId: string;\n key: string;\n itemId: string;\n whoAmI: Required<RecordIdentityFragment['whoAmI']>;\n canActivate: boolean;\n canDelete: boolean;\n active: boolean;\n propertiesById: {\n [attributeId: string]: PropertyValueFragment[];\n };\n /**\n * Can be named `linkId` too, but for historical reason we keep old name 👴🏼.\n */\n id_value?: string;\n}\n\nexport interface IItemAction {\n callback: (item: IItemData) => void;\n icon: ReactElement | ((item: IItemData) => ReactElement);\n label: string | ((item: IItemData) => string);\n isDanger?: boolean | ((item: IItemData) => boolean);\n disabled?: boolean | ((item: IItemData) => boolean);\n useItemActionOnRowClick?: boolean;\n useItemDeletePermission?: boolean; //TODO: Add for PanelAttributeExplorer custom action (should be deleted later)\n}\n\nexport interface IPrimaryAction {\n callback: () => void;\n disabled?: boolean;\n icon: ReactElement;\n label: string;\n}\n\nexport interface IMassActions {\n callback: (massSelectedFilter: RecordFilterInput[], massSelection: MassSelection) => void | Promise<void>;\n deselectAll: boolean;\n icon: ReactElement;\n label: string;\n}\n\nexport type FeatureHook<T = {}> = {isEnabled: boolean; isVisible?: boolean} & T;\n\nexport type DefaultViewSettings = Override<\n Partial<IViewSettingsState>,\n {\n filtersOperator?: 'AND' | 'OR';\n filters?: UIFilter[];\n }\n>;\n\nexport interface IEntrypointTree {\n type: 'tree';\n treeId: string;\n nodeId: string;\n}\n\nexport interface IEntrypointLibrary {\n type: 'library';\n libraryId: string;\n /**\n * Used to display a list of values instead of all library records when adding a link\n */\n valuesList?: string[];\n /**\n * Used to allow free entry when adding a link with values list\n */\n allowFreeEntry?: boolean;\n}\n\nexport interface IEntrypointLink {\n type: 'link';\n parentLibraryId: string;\n parentRecordId: string;\n linkAttributeId: string;\n}\n\nexport type Entrypoint = IEntrypointTree | IEntrypointLibrary | IEntrypointLink;\n\nexport interface IUserView extends Pick<IView, 'shared' | 'display' | 'sort' | 'attributes'> {\n label: Record<string, string>;\n id: IView['id'] | null;\n filters: ValidFilter[];\n ownerId: string | null;\n}\n\nexport interface IDataViewOnAction {\n id: string | null;\n label: Record<string, string> | null;\n}\n\nexport type SetNewPage = (newCurrentPage: number, ignoredPageSize: number) => void;\n"]}
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../src/components/Explorer/_types.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type Override} from '@leav/utils';\nimport {\n type AttributePropertiesFragment,\n type PropertyValueFragment,\n type RecordFilterInput,\n type RecordIdentityFragment,\n} from '_ui/_gqlTypes';\nimport {type Key, type ReactElement} from 'react';\nimport {type IViewSettingsState} from './manage-view-settings';\nimport {type IView} from '_ui/types';\nimport {type MASS_SELECTION_ALL} from './_constants';\nimport {type UIFilter, type ValidFilter} from '../Filters/_types';\n\nexport type MassSelection = Key[] | typeof MASS_SELECTION_ALL;\n\nexport interface IExplorerData {\n totalCount: number;\n attributes: {\n [attributeId: string]: Override<AttributePropertiesFragment, {label: string}>;\n };\n records: IItemData[];\n}\n\nexport interface IItemData {\n libraryId: string;\n key: string;\n itemId: string;\n whoAmI: Required<RecordIdentityFragment['whoAmI']>;\n canActivate: boolean;\n canDelete: boolean;\n active: boolean;\n propertiesById: {\n [attributeId: string]: PropertyValueFragment[];\n };\n /**\n * Can be named `linkId` too, but for historical reason we keep old name 👴🏼.\n */\n id_value?: string;\n}\n\nexport interface IItemAction {\n callback: (item: IItemData) => void;\n icon: ReactElement | ((item: IItemData) => ReactElement);\n label: string | ((item: IItemData) => string);\n isDanger?: boolean | ((item: IItemData) => boolean);\n disabled?: boolean | ((item: IItemData) => boolean);\n useItemActionOnRowClick?: boolean;\n useItemDeletePermission?: boolean; //TODO: Add for PanelAttributeExplorer custom action (should be deleted later)\n}\n\nexport interface IPrimaryAction {\n callback: () => void;\n disabled?: boolean;\n icon: ReactElement;\n label: string;\n}\n\nexport interface IMassActions {\n callback: (massSelectedFilter: RecordFilterInput[], massSelection: MassSelection) => void | Promise<void>;\n deselectAll: boolean;\n icon: ReactElement;\n label: string;\n}\n\nexport type FeatureHook<T = {}> = {isEnabled: boolean; isVisible?: boolean} & T;\n\nexport type DefaultViewSettings = Override<\n Partial<IViewSettingsState>,\n {\n filtersOperator?: 'AND' | 'OR';\n filters?: UIFilter[];\n }\n>;\n\nexport type SerializedView = DefaultViewSettings;\n\nexport type ViewConfigTab = 'display' | 'filters' | 'sorts' | 'catalogue';\n\nexport type FiltersChangePayload = {\n filters: UIFilter[];\n filtersOperator: 'AND' | 'OR';\n};\n\nexport interface IEntrypointTree {\n type: 'tree';\n treeId: string;\n nodeId: string;\n}\n\nexport interface IEntrypointLibrary {\n type: 'library';\n libraryId: string;\n /**\n * Used to display a list of values instead of all library records when adding a link\n */\n valuesList?: string[];\n /**\n * Used to allow free entry when adding a link with values list\n */\n allowFreeEntry?: boolean;\n}\n\nexport interface IEntrypointLink {\n type: 'link';\n parentLibraryId: string;\n parentRecordId: string;\n linkAttributeId: string;\n}\n\nexport type Entrypoint = IEntrypointTree | IEntrypointLibrary | IEntrypointLink;\n\nexport interface IUserView extends Pick<IView, 'shared' | 'display' | 'sort' | 'attributes'> {\n label: Record<string, string>;\n id: IView['id'] | null;\n filters: ValidFilter[];\n ownerId: string | null;\n}\n\nexport interface IDataViewOnAction {\n id: string | null;\n label: Record<string, string> | null;\n}\n\nexport type SetNewPage = (newCurrentPage: number, ignoredPageSize: number) => void;\n"]}
@@ -6,7 +6,7 @@ import { AttributeFormat, AttributeType, } from '../../../../_gqlTypes';
6
6
  import { closestCenter, DndContext, KeyboardSensor, PointerSensor, useSensor, useSensors, } from '@dnd-kit/core';
7
7
  import { SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy } from '@dnd-kit/sortable';
8
8
  import { useAttributeDetailsData } from '../_shared/useAttributeDetailsData';
9
- import { ViewSettingsActionTypes } from '../store-view-settings/viewSettingsReducer';
9
+ import { FiltersActionTypes } from '../../../../components/Filters/context/filtersReducer';
10
10
  import { FilterListItem } from './FilterListItem';
11
11
  import { CommonFilterItem } from '../../../../components/Filters/filter-items/CommonFilterItem';
12
12
  import { useFiltersContext } from '../../../../components/Filters/useFiltersContext';
@@ -40,7 +40,7 @@ export const FilterItems = ({ libraryId }) => {
40
40
  }));
41
41
  const addFilter = (attributeId) => () => {
42
42
  dispatch({
43
- type: ViewSettingsActionTypes.ADD_FILTER,
43
+ type: FiltersActionTypes.ADD_FILTER,
44
44
  payload: {
45
45
  field: attributeId,
46
46
  attribute: {
@@ -64,7 +64,7 @@ export const FilterItems = ({ libraryId }) => {
64
64
  };
65
65
  const removeFilter = (filterId) => () => {
66
66
  dispatch({
67
- type: ViewSettingsActionTypes.REMOVE_FILTER,
67
+ type: FiltersActionTypes.REMOVE_FILTER,
68
68
  payload: {
69
69
  id: filterId,
70
70
  },
@@ -76,7 +76,7 @@ export const FilterItems = ({ libraryId }) => {
76
76
  if (!dropTarget || indexFrom === indexTo || indexTo === -1) {
77
77
  return;
78
78
  }
79
- dispatch({ type: ViewSettingsActionTypes.MOVE_FILTER, payload: { indexFrom, indexTo } });
79
+ dispatch({ type: FiltersActionTypes.MOVE_FILTER, payload: { indexFrom, indexTo } });
80
80
  };
81
81
  const activeFilters = filters.filter(({ attribute }) => searchFilteredColumnsIds.includes(attribute.id));
82
82
  const inactiveFilters = searchFilteredColumnsIds.filter(attributeId => filters.every(filterItem => filterItem.attribute.id !== attributeId) &&
@@ -1 +1 @@
1
- {"version":3,"file":"FilterItems.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/filter-items/FilterItems.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport {KitFilter, KitInput, KitTypography} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n AttributeFormat,\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n type AttributesByLibAttributeTreeAttributeFragment,\n AttributeType,\n} from '_ui/_gqlTypes';\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {useAttributeDetailsData} from '../_shared/useAttributeDetailsData';\nimport {ViewSettingsActionTypes} from '../store-view-settings/viewSettingsReducer';\nimport {FilterListItem} from './FilterListItem';\nimport {CommonFilterItem} from '_ui/components/Filters/filter-items/CommonFilterItem';\nimport {useFiltersContext} from '_ui/components/Filters/useFiltersContext';\nimport {type IUIFilterBaseAttribute, type UIFilter} from '_ui/components/Filters/_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faEye, faEyeSlash, faSearch} from '@fortawesome/free-solid-svg-icons';\n\nconst StyledListContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-l) * 1px);\n`;\n\nconst StyledList = styled.ul`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0;\n list-style: none;\n color: var(--general-utilities-text-primary);\n`;\n\nconst StyledEyeSlash = styled(FontAwesomeIcon)`\n color: var(--general-utilities-neutral-dark);\n`;\n\nconst StyledFaEye = styled(FontAwesomeIcon)`\n color: var(--general-utilities-neutral-deepDark);\n`;\n\nconst _isLibraryLinkAttribute = (\n attribute: AttributesByLibAttributeFragment,\n): attribute is AttributesByLibAttributeLinkAttributeFragment =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) && 'linked_library' in attribute;\n\nconst _isLibraryTreeAttribute = (\n attribute: AttributesByLibAttributeFragment,\n): attribute is AttributesByLibAttributeTreeAttributeFragment =>\n attribute.type === AttributeType.tree && 'linked_tree' in attribute;\n\nexport const FilterItems: FunctionComponent<{libraryId: string}> = ({libraryId}) => {\n const {t} = useSharedTranslation();\n const {\n filtersData: {filters},\n dispatch,\n } = useFiltersContext();\n\n const {onSearchChanged, searchFilteredColumnsIds, attributeDetailsById} = useAttributeDetailsData(libraryId);\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const addFilter = (attributeId: string) => () => {\n dispatch({\n type: ViewSettingsActionTypes.ADD_FILTER,\n payload: {\n field: attributeId,\n attribute: {\n id: attributeId,\n label: attributeDetailsById[attributeId].label,\n format: attributeDetailsById[attributeId].format ?? AttributeFormat.text,\n type: attributeDetailsById[attributeId].type,\n valuesList: (attributeDetailsById[attributeId] as IUIFilterBaseAttribute).valuesList,\n linkedLibrary: _isLibraryLinkAttribute(attributeDetailsById[attributeId])\n ? (attributeDetailsById[attributeId].linked_library ?? undefined)\n : undefined, // TODO : https://aristid.atlassian.net/browse/XSTREAM-1155\n linkedTree: _isLibraryTreeAttribute(attributeDetailsById[attributeId])\n ? (attributeDetailsById[attributeId].linked_tree ?? undefined)\n : undefined,\n smartFilter:\n 'smart_filter' in attributeDetailsById[attributeId]\n ? attributeDetailsById[attributeId].smart_filter\n : undefined,\n },\n },\n });\n };\n\n const removeFilter = (filterId: string) => () => {\n dispatch({\n type: ViewSettingsActionTypes.REMOVE_FILTER,\n payload: {\n id: filterId,\n },\n });\n };\n\n const _handleDragEnd = ({active: draggedElement, over: dropTarget}: DragEndEvent) => {\n const indexFrom = activeFilters.findIndex(({field}) =>\n Array.isArray(field) ? field.includes(String(draggedElement.id)) : field === String(draggedElement.id),\n );\n const indexTo = activeFilters.findIndex(({field}) =>\n Array.isArray(field) ? field.includes(String(dropTarget?.id)) : field === String(dropTarget?.id),\n );\n if (!dropTarget || indexFrom === indexTo || indexTo === -1) {\n return;\n }\n\n dispatch({type: ViewSettingsActionTypes.MOVE_FILTER, payload: {indexFrom, indexTo}});\n };\n\n const activeFilters = filters.filter(({attribute}) => searchFilteredColumnsIds.includes(attribute.id));\n const inactiveFilters = searchFilteredColumnsIds.filter(\n attributeId =>\n filters.every(filterItem => filterItem.attribute.id !== attributeId) &&\n !('compute' in attributeDetailsById[attributeId] && attributeDetailsById[attributeId]?.compute),\n );\n\n if (!Object.keys(attributeDetailsById).length) {\n return <></>;\n }\n\n return (\n <StyledListContainer>\n {activeFilters.length > 0 && (\n <StyledList aria-label={t('explorer.filter-list.active')}>\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={_handleDragEnd}>\n <SortableContext\n items={activeFilters.map(({attribute}) => attribute.id)}\n strategy={verticalListSortingStrategy}\n >\n {activeFilters.map(activeFilter => (\n <FilterListItem\n key={activeFilter.attribute.id}\n attributeId={activeFilter.attribute.id}\n isDraggable\n visibilityButtonProps={{\n icon: <StyledFaEye icon={faEye} />,\n title: String(t('explorer.hide')),\n onClick: removeFilter(activeFilter.id),\n }}\n >\n <CommonFilterItem\n filter={\n {\n ...activeFilter,\n attribute: {\n ...activeFilter.attribute,\n ...attributeDetailsById[activeFilter?.attribute?.id],\n },\n } as UIFilter\n }\n />\n </FilterListItem>\n ))}\n </SortableContext>\n </DndContext>\n </StyledList>\n )}\n <KitTypography.Title level=\"h4\">{t('explorer.available-attributes')}</KitTypography.Title>\n <KitInput\n placeholder={String(t('global.search'))}\n onChange={onSearchChanged}\n allowClear\n prefix={<FontAwesomeIcon icon={faSearch} />}\n />\n <StyledList aria-label={t('explorer.filter-list.inactive')}>\n {inactiveFilters.map(attributeId => (\n <FilterListItem\n key={attributeId}\n attributeId={attributeId}\n visibilityButtonProps={{\n icon: <StyledEyeSlash icon={faEyeSlash} />,\n title: String(t('explorer.show')),\n onClick: addFilter(attributeId),\n }}\n >\n <KitFilter label={attributeDetailsById[attributeId].label} />\n </FilterListItem>\n ))}\n </StyledList>\n </StyledListContainer>\n );\n};\n"]}
1
+ {"version":3,"file":"FilterItems.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/filter-items/FilterItems.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport {KitFilter, KitInput, KitTypography} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {\n AttributeFormat,\n type AttributesByLibAttributeFragment,\n type AttributesByLibAttributeLinkAttributeFragment,\n type AttributesByLibAttributeTreeAttributeFragment,\n AttributeType,\n} from '_ui/_gqlTypes';\nimport {\n closestCenter,\n DndContext,\n type DragEndEvent,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {useAttributeDetailsData} from '../_shared/useAttributeDetailsData';\nimport {FiltersActionTypes} from '_ui/components/Filters/context/filtersReducer';\nimport {FilterListItem} from './FilterListItem';\nimport {CommonFilterItem} from '_ui/components/Filters/filter-items/CommonFilterItem';\nimport {useFiltersContext} from '_ui/components/Filters/useFiltersContext';\nimport {type IUIFilterBaseAttribute, type UIFilter} from '_ui/components/Filters/_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faEye, faEyeSlash, faSearch} from '@fortawesome/free-solid-svg-icons';\n\nconst StyledListContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-l) * 1px);\n`;\n\nconst StyledList = styled.ul`\n padding: calc(var(--general-spacing-s) * 1px) 0;\n margin: 0;\n list-style: none;\n color: var(--general-utilities-text-primary);\n`;\n\nconst StyledEyeSlash = styled(FontAwesomeIcon)`\n color: var(--general-utilities-neutral-dark);\n`;\n\nconst StyledFaEye = styled(FontAwesomeIcon)`\n color: var(--general-utilities-neutral-deepDark);\n`;\n\nconst _isLibraryLinkAttribute = (\n attribute: AttributesByLibAttributeFragment,\n): attribute is AttributesByLibAttributeLinkAttributeFragment =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(attribute.type) && 'linked_library' in attribute;\n\nconst _isLibraryTreeAttribute = (\n attribute: AttributesByLibAttributeFragment,\n): attribute is AttributesByLibAttributeTreeAttributeFragment =>\n attribute.type === AttributeType.tree && 'linked_tree' in attribute;\n\nexport const FilterItems: FunctionComponent<{libraryId: string}> = ({libraryId}) => {\n const {t} = useSharedTranslation();\n const {\n filtersData: {filters},\n dispatch,\n } = useFiltersContext();\n\n const {onSearchChanged, searchFilteredColumnsIds, attributeDetailsById} = useAttributeDetailsData(libraryId);\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const addFilter = (attributeId: string) => () => {\n dispatch({\n type: FiltersActionTypes.ADD_FILTER,\n payload: {\n field: attributeId,\n attribute: {\n id: attributeId,\n label: attributeDetailsById[attributeId].label,\n format: attributeDetailsById[attributeId].format ?? AttributeFormat.text,\n type: attributeDetailsById[attributeId].type,\n valuesList: (attributeDetailsById[attributeId] as IUIFilterBaseAttribute).valuesList,\n linkedLibrary: _isLibraryLinkAttribute(attributeDetailsById[attributeId])\n ? (attributeDetailsById[attributeId].linked_library ?? undefined)\n : undefined, // TODO : https://aristid.atlassian.net/browse/XSTREAM-1155\n linkedTree: _isLibraryTreeAttribute(attributeDetailsById[attributeId])\n ? (attributeDetailsById[attributeId].linked_tree ?? undefined)\n : undefined,\n smartFilter:\n 'smart_filter' in attributeDetailsById[attributeId]\n ? attributeDetailsById[attributeId].smart_filter\n : undefined,\n },\n },\n });\n };\n\n const removeFilter = (filterId: string) => () => {\n dispatch({\n type: FiltersActionTypes.REMOVE_FILTER,\n payload: {\n id: filterId,\n },\n });\n };\n\n const _handleDragEnd = ({active: draggedElement, over: dropTarget}: DragEndEvent) => {\n const indexFrom = activeFilters.findIndex(({field}) =>\n Array.isArray(field) ? field.includes(String(draggedElement.id)) : field === String(draggedElement.id),\n );\n const indexTo = activeFilters.findIndex(({field}) =>\n Array.isArray(field) ? field.includes(String(dropTarget?.id)) : field === String(dropTarget?.id),\n );\n if (!dropTarget || indexFrom === indexTo || indexTo === -1) {\n return;\n }\n\n dispatch({type: FiltersActionTypes.MOVE_FILTER, payload: {indexFrom, indexTo}});\n };\n\n const activeFilters = filters.filter(({attribute}) => searchFilteredColumnsIds.includes(attribute.id));\n const inactiveFilters = searchFilteredColumnsIds.filter(\n attributeId =>\n filters.every(filterItem => filterItem.attribute.id !== attributeId) &&\n !('compute' in attributeDetailsById[attributeId] && attributeDetailsById[attributeId]?.compute),\n );\n\n if (!Object.keys(attributeDetailsById).length) {\n return <></>;\n }\n\n return (\n <StyledListContainer>\n {activeFilters.length > 0 && (\n <StyledList aria-label={t('explorer.filter-list.active')}>\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={_handleDragEnd}>\n <SortableContext\n items={activeFilters.map(({attribute}) => attribute.id)}\n strategy={verticalListSortingStrategy}\n >\n {activeFilters.map(activeFilter => (\n <FilterListItem\n key={activeFilter.attribute.id}\n attributeId={activeFilter.attribute.id}\n isDraggable\n visibilityButtonProps={{\n icon: <StyledFaEye icon={faEye} />,\n title: String(t('explorer.hide')),\n onClick: removeFilter(activeFilter.id),\n }}\n >\n <CommonFilterItem\n filter={\n {\n ...activeFilter,\n attribute: {\n ...activeFilter.attribute,\n ...attributeDetailsById[activeFilter?.attribute?.id],\n },\n } as UIFilter\n }\n />\n </FilterListItem>\n ))}\n </SortableContext>\n </DndContext>\n </StyledList>\n )}\n <KitTypography.Title level=\"h4\">{t('explorer.available-attributes')}</KitTypography.Title>\n <KitInput\n placeholder={String(t('global.search'))}\n onChange={onSearchChanged}\n allowClear\n prefix={<FontAwesomeIcon icon={faSearch} />}\n />\n <StyledList aria-label={t('explorer.filter-list.inactive')}>\n {inactiveFilters.map(attributeId => (\n <FilterListItem\n key={attributeId}\n attributeId={attributeId}\n visibilityButtonProps={{\n icon: <StyledEyeSlash icon={faEyeSlash} />,\n title: String(t('explorer.show')),\n onClick: addFilter(attributeId),\n }}\n >\n <KitFilter label={attributeDetailsById[attributeId].label} />\n </FilterListItem>\n ))}\n </StyledList>\n </StyledListContainer>\n );\n};\n"]}
@@ -1,6 +1,5 @@
1
1
  import { type SortOrder } from '../../../../_gqlTypes';
2
- import { type DefaultViewSettings, type Entrypoint, type IUserView, type MassSelection } from '../../_types';
3
- import { type IUIFilterTree, type UIFilter } from '../../../../components/Filters';
2
+ import { type DefaultViewSettings, type Entrypoint, type IUserView, type MassSelection, type SerializedView } from '../../_types';
4
3
  export type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';
5
4
  export declare const ViewSettingsActionTypes: {
6
5
  readonly RESET: "RESET";
@@ -16,17 +15,13 @@ export declare const ViewSettingsActionTypes: {
16
15
  readonly CHANGE_PAGE_SIZE: "CHANGE_PAGE_SIZE";
17
16
  readonly CHANGE_FULLTEXT_SEARCH: "CHANGE_FULLTEXT_SEARCH";
18
17
  readonly CLEAR_FULLTEXT_SEARCH: "CLEAR_FULLTEXT_SEARCH";
19
- readonly ADD_FILTER: "ADD_FILTER";
20
- readonly RESET_FILTER: "RESET_FILTER";
21
- readonly REMOVE_FILTER: "REMOVE_FILTER";
22
- readonly MOVE_FILTER: "MOVE_FILTER";
23
- readonly CHANGE_FILTER_CONFIG: "CHANGE_FILTER_CONFIG";
24
18
  readonly SET_SELECTED_KEYS: "SET_SELECTED_KEYS";
25
19
  readonly RESTORE_INITIAL_VIEW_SETTINGS: "RESTORE_INITIAL_VIEW_SETTINGS";
26
20
  readonly UPDATE_VIEWS: "UPDATE_VIEWS";
27
21
  readonly RENAME_VIEW: "RENAME_VIEW";
28
22
  readonly DELETE_VIEW: "DELETE_VIEW";
29
23
  readonly LOAD_VIEW: "LOAD_VIEW";
24
+ readonly APPLY_SERIALIZED_VIEW: "APPLY_SERIALIZED_VIEW";
30
25
  };
31
26
  export interface IViewSettingsState {
32
27
  libraryId: string;
@@ -118,29 +113,6 @@ interface IViewSettingsActionChangeFulltextSearch {
118
113
  interface IViewSettingsActionClearFulltextSearch {
119
114
  type: typeof ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH;
120
115
  }
121
- interface IViewSettingsActionAddFilter {
122
- type: typeof ViewSettingsActionTypes.ADD_FILTER;
123
- payload: Omit<UIFilter, 'id' | 'value' | 'condition'>;
124
- }
125
- interface IViewSettingsActionResetFilter {
126
- type: typeof ViewSettingsActionTypes.RESET_FILTER;
127
- payload: Pick<UIFilter, 'id'>;
128
- }
129
- interface IViewSettingsActionRemoveFilter {
130
- type: typeof ViewSettingsActionTypes.REMOVE_FILTER;
131
- payload: Pick<UIFilter, 'id'>;
132
- }
133
- interface IViewSettingsActionChangeFilterConfig {
134
- type: typeof ViewSettingsActionTypes.CHANGE_FILTER_CONFIG;
135
- payload: UIFilter | IUIFilterTree;
136
- }
137
- interface IViewSettingsActionMoveFilter {
138
- type: typeof ViewSettingsActionTypes.MOVE_FILTER;
139
- payload: {
140
- indexFrom: number;
141
- indexTo: number;
142
- };
143
- }
144
116
  interface IViewSettingsActionReset {
145
117
  type: typeof ViewSettingsActionTypes.RESET;
146
118
  payload: IViewSettingsState;
@@ -175,6 +147,10 @@ interface IViewSettingsActionLoadView {
175
147
  type: typeof ViewSettingsActionTypes.LOAD_VIEW;
176
148
  payload: IViewSettingsActionLoadViewPayload;
177
149
  }
150
+ interface IViewSettingsActionApplySerializedView {
151
+ type: typeof ViewSettingsActionTypes.APPLY_SERIALIZED_VIEW;
152
+ payload: Omit<SerializedView, 'filters' | 'filtersOperator'>;
153
+ }
178
154
  type Reducer<PAYLOAD extends {
179
155
  type: keyof typeof ViewSettingsActionTypes;
180
156
  payload?: unknown;
@@ -183,6 +159,6 @@ type Reducer<PAYLOAD extends {
183
159
  payload: 'no_payload';
184
160
  }> = PAYLOAD['payload'] extends 'no_payload' ? (state: IViewSettingsState) => IViewSettingsState : (state: IViewSettingsState, payload: PAYLOAD['payload']) => IViewSettingsState;
185
161
  export declare const clearFulltextSearch: Reducer;
186
- export type IViewSettingsAction = IViewSettingsActionResetAttributes | IViewSettingsActionAddAttribute | IViewSettingsActionRemoveAttribute | IViewSettingsActionMoveAttribute | IViewSettingsActionChangeViewType | IViewSettingsActionAddSort | IViewSettingsActionRemoveSort | IViewSettingsActionChangeSortOrder | IViewSettingsActionMoveSort | IViewSettingsActionChangePageSize | IViewSettingsActionChangeFulltextSearch | IViewSettingsActionClearFulltextSearch | IViewSettingsActionAddFilter | IViewSettingsActionResetFilter | IViewSettingsActionRemoveFilter | IViewSettingsActionChangeFilterConfig | IViewSettingsActionMoveFilter | IViewSettingsActionReset | IViewSettingsActionSetSelectedKeys | IViewSettingsActionRestoreInitialViewSettings | IViewSettingsActionUpdateViewListAndCurrentView | IViewSettingsActionRenameView | IViewSettingsActionDeleteView | IViewSettingsActionLoadView;
162
+ export type IViewSettingsAction = IViewSettingsActionResetAttributes | IViewSettingsActionAddAttribute | IViewSettingsActionRemoveAttribute | IViewSettingsActionMoveAttribute | IViewSettingsActionChangeViewType | IViewSettingsActionAddSort | IViewSettingsActionRemoveSort | IViewSettingsActionChangeSortOrder | IViewSettingsActionMoveSort | IViewSettingsActionChangePageSize | IViewSettingsActionChangeFulltextSearch | IViewSettingsActionClearFulltextSearch | IViewSettingsActionReset | IViewSettingsActionSetSelectedKeys | IViewSettingsActionRestoreInitialViewSettings | IViewSettingsActionUpdateViewListAndCurrentView | IViewSettingsActionRenameView | IViewSettingsActionDeleteView | IViewSettingsActionLoadView | IViewSettingsActionApplySerializedView;
187
163
  export declare const viewSettingsReducer: (state: IViewSettingsState, action: IViewSettingsAction) => IViewSettingsState;
188
164
  export {};
@@ -13,17 +13,13 @@ export const ViewSettingsActionTypes = {
13
13
  CHANGE_PAGE_SIZE: 'CHANGE_PAGE_SIZE',
14
14
  CHANGE_FULLTEXT_SEARCH: 'CHANGE_FULLTEXT_SEARCH',
15
15
  CLEAR_FULLTEXT_SEARCH: 'CLEAR_FULLTEXT_SEARCH',
16
- ADD_FILTER: 'ADD_FILTER',
17
- RESET_FILTER: 'RESET_FILTER',
18
- REMOVE_FILTER: 'REMOVE_FILTER',
19
- MOVE_FILTER: 'MOVE_FILTER',
20
- CHANGE_FILTER_CONFIG: 'CHANGE_FILTER_CONFIG',
21
16
  SET_SELECTED_KEYS: 'SET_SELECTED_KEYS',
22
17
  RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS',
23
18
  UPDATE_VIEWS: 'UPDATE_VIEWS',
24
19
  RENAME_VIEW: 'RENAME_VIEW',
25
20
  DELETE_VIEW: 'DELETE_VIEW',
26
21
  LOAD_VIEW: 'LOAD_VIEW',
22
+ APPLY_SERIALIZED_VIEW: 'APPLY_SERIALIZED_VIEW',
27
23
  };
28
24
  const changePageSize = (state, payload) => ({
29
25
  ...state,
@@ -147,6 +143,11 @@ const deleteView = (state, payload) => {
147
143
  savedViews: newSavedViews,
148
144
  };
149
145
  };
146
+ const applySerializedView = (state, payload) => ({
147
+ ...state,
148
+ ...payload,
149
+ viewModified: true,
150
+ });
150
151
  const loadView = (state, payload) => ({
151
152
  ...state,
152
153
  ...payload,
@@ -196,21 +197,6 @@ export const viewSettingsReducer = (state, action) => {
196
197
  case ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH: {
197
198
  return clearFulltextSearch(state);
198
199
  }
199
- /*case ViewSettingsActionTypes.ADD_FILTER: {
200
- return addFilter(state, action.payload);
201
- }
202
- case ViewSettingsActionTypes.RESET_FILTER: {
203
- return resetFilter(state, action.payload);
204
- }
205
- case ViewSettingsActionTypes.REMOVE_FILTER: {
206
- return removeFilter(state, action.payload);
207
- }
208
- case ViewSettingsActionTypes.CHANGE_FILTER_CONFIG: {
209
- return changeFilterConfig(state, action.payload);
210
- }
211
- case ViewSettingsActionTypes.MOVE_FILTER: {
212
- return moveFilter(state, action.payload);
213
- }*/
214
200
  case ViewSettingsActionTypes.RESET: {
215
201
  return reset(state, action.payload);
216
202
  }
@@ -232,6 +218,9 @@ export const viewSettingsReducer = (state, action) => {
232
218
  case ViewSettingsActionTypes.LOAD_VIEW: {
233
219
  return loadView(state, action.payload);
234
220
  }
221
+ case ViewSettingsActionTypes.APPLY_SERIALIZED_VIEW: {
222
+ return applySerializedView(state, action.payload);
223
+ }
235
224
  default:
236
225
  return state;
237
226
  }
@@ -1 +1 @@
1
- {"version":3,"file":"viewSettingsReducer.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.ts"],"names":[],"mappings":"AAOA,OAAO,EAAC,aAAa,EAAC,MAAM,4BAA4B,CAAC;AAmBzD,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,eAAe;IAC9B,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;IACtB,iBAAiB,EAAE,mBAAmB;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,sBAAsB,EAAE,wBAAwB;IAChD,qBAAqB,EAAE,uBAAuB;IAC9C,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,cAAc;IAC5B,aAAa,EAAE,eAAe;IAC9B,WAAW,EAAE,aAAa;IAC1B,oBAAoB,EAAE,sBAAsB;IAC5C,iBAAiB,EAAE,mBAAmB;IACtC,6BAA6B,EAAE,+BAA+B;IAC9D,YAAY,EAAE,cAAc;IAC5B,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,SAAS,EAAE,WAAW;CAChB,CAAC;AAwKX,MAAM,cAAc,GAA+C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACpF,GAAG,KAAK;IACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;CAC7B,CAAC,CAAC;AAEH,MAAM,YAAY,GAA6C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChF,GAAG,KAAK;IACR,aAAa,EAAE,CAAC,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC;IAC5D,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAgD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtF,GAAG,KAAK;IACR,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,KAAK,OAAO,CAAC,WAAW,CAAC;IAC/F,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,aAAa,GAA8C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAChF,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvE,qCAAqC;IACrC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,iBAAiB,CAAC,CAAC;IAC5D,OAAO;QACH,GAAG,KAAK;QACR,aAAa;QACb,YAAY,EAAE,IAAI;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,eAAe,GAAY,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,GAAG,KAAK;IACR,aAAa,EAAE,EAAE;CACpB,CAAC,CAAC;AAEH,MAAM,cAAc,GAA+C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACpF,GAAG,KAAK;IACR,QAAQ,EAAE,OAAO,CAAC,QAAQ;IAC1B,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,OAAO,GAAwC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtE,GAAG,KAAK;IACR,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC;IACnE,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,UAAU,GAA2C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5E,GAAG,KAAK;IACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,KAAK,EAAE,WAAW,EAAC,EAAE,EAAE,CAAC,WAAW,KAAK,OAAO,CAAC,KAAK,CAAC;IAChF,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAgD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtF,GAAG,KAAK;IACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACrG,YAAY,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAyC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACtE,MAAM,oBAAoB,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,CAAC,GAAG,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IACvE,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IAC5D,OAAO;QACH,GAAG,KAAK;QACR,IAAI,EAAE,oBAAoB;QAC1B,YAAY,EAAE,IAAI;KACrB,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAqD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChG,GAAG,KAAK;IACR,cAAc,EAAE,OAAO,CAAC,MAAM;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAY,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,GAAG,KAAK;IACR,cAAc,EAAE,EAAE;CACrB,CAAC,CAAC;AAEH,MAAM,KAAK,GAAsC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC;AAEzE,MAAM,eAAe,GAAgD,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACtF,GAAG,KAAK;IACR,aAAa,EAAE,OAAO;CACzB,CAAC,CAAC;AAEH,MAAM,0BAA0B,GAAY,KAAK,CAAC,EAAE,CAAC,CAAC;IAClD,GAAG,KAAK;IACR,GAAG,KAAK,CAAC,mBAAmB;IAC5B,YAAY,EAAE,KAAK;CACtB,CAAC,CAAC;AAEH,MAAM,4BAA4B,GAA6D,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAChH,GAAG,KAAK;IACR,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI;IAC1B,UAAU,EAAE,OAAO,CAAC,KAAK;IACzB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAE,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;QAC1D,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC;IACxC,mBAAmB,EAAE;QACjB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B;IACD,YAAY,EAAE,KAAK;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,GAA2C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IAC5E,GAAG,KAAK;IACR,UAAU,EAAE,OAAO,CAAC,KAAK;IACzB,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,GAAG,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;CAC/G,CAAC,CAAC;AAEH,MAAM,UAAU,GAA2C,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC1E,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;IACjF,qCAAqC;IACrC,IAAI,gBAAgB,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1B,aAAa,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;QAC9B,MAAM,mBAAmB,GAAG;YACxB,GAAG,KAAK,CAAC,mBAAmB;YAC5B,MAAM,EAAE,aAAa;YACrB,UAAU,EAAE,EAAE;YACd,YAAY,EAAE,KAAK;SACtB,CAAC;QACF,OAAO;YACH,GAAG,KAAK;YACR,GAAG,mBAAmB;YACtB,UAAU,EAAE,aAAa;SAC5B,CAAC;IACN,CAAC;IACD,OAAO;QACH,GAAG,KAAK;QACR,UAAU,EAAE,aAAa;KAC5B,CAAC;AACN,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAyC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;IACxE,GAAG,KAAK;IACR,GAAG,OAAO;IACV,mBAAmB,EAAE;QACjB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;KAC3B;IACD,YAAY,EAAE,KAAK;CACtB,CAAC,CAAC;AA4BH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAyB,EAAE,MAA2B,EAAsB,EAAE;IAC9G,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,uBAAuB,CAAC,aAAa,CAAC,CAAC,CAAC;YACzC,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5C,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC;YAC1C,OAAO,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5C,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,uBAAuB,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5C,OAAO,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,KAAK,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpC,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;YACrC,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,uBAAuB,CAAC,sBAAsB,CAAC,CAAC,CAAC;YAClD,OAAO,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QACD,KAAK,uBAAuB,CAAC,qBAAqB,CAAC,CAAC,CAAC;YACjD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QACD;;;;;;;;;;;;;;WAcG;QACH,KAAK,uBAAuB,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,KAAK,uBAAuB,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC7C,OAAO,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,KAAK,uBAAuB,CAAC,6BAA6B,CAAC,CAAC,CAAC;YACzD,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,uBAAuB,CAAC,YAAY,CAAC,CAAC,CAAC;YACxC,OAAO,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC;YACvC,OAAO,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC;YACrC,OAAO,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QACD;YACI,OAAO,KAAK,CAAC;IACrB,CAAC;AACL,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {AttributeFormat, type RecordFilterCondition, type SortOrder} from '_ui/_gqlTypes';\nimport {type DefaultViewSettings, type Entrypoint, type IUserView, type MassSelection} from '../../_types';\nimport {hasOnlyNoValueConditions, nullValueConditions} from '../../conditionsHelper';\nimport {AttributeConditionFilter, ThroughConditionFilter} from '_ui/types';\nimport {DefaultViewId} from './viewSettingsInitialState';\nimport {isLinkAttribute} from '_ui/_utils/attributeType';\nimport {\n conditionsByFormat,\n getFirstConditionByFilterType,\n} from '_ui/components/Filters/filter-items/filter-type/useConditionOptionsByType';\nimport {\n isUIFilterLink,\n isUIFilterStandard,\n isUIFilterThrough,\n isUIFilterTree,\n isUIFilterValueList,\n type IUIFilterStandard,\n type IUIFilterTree,\n type UIFilter,\n} from '_ui/components/Filters';\n\nexport type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';\n\nexport const ViewSettingsActionTypes = {\n RESET: 'RESET',\n ADD_ATTRIBUTE: 'ADD_ATTRIBUTE',\n REMOVE_ATTRIBUTE: 'REMOVE_ATTRIBUTE',\n MOVE_ATTRIBUTE: 'MOVE_ATTRIBUTE',\n RESET_ATTRIBUTES: 'RESET_ATTRIBUTES',\n CHANGE_VIEW_TYPE: 'CHANGE_VIEW_TYPE',\n ADD_SORT: 'ADD_SORT',\n REMOVE_SORT: 'REMOVE_SORT',\n MOVE_SORT: 'MOVE_SORT',\n CHANGE_SORT_ORDER: 'CHANGE_SORT_ORDER',\n CHANGE_PAGE_SIZE: 'CHANGE_PAGE_SIZE',\n CHANGE_FULLTEXT_SEARCH: 'CHANGE_FULLTEXT_SEARCH',\n CLEAR_FULLTEXT_SEARCH: 'CLEAR_FULLTEXT_SEARCH',\n ADD_FILTER: 'ADD_FILTER',\n RESET_FILTER: 'RESET_FILTER',\n REMOVE_FILTER: 'REMOVE_FILTER',\n MOVE_FILTER: 'MOVE_FILTER',\n CHANGE_FILTER_CONFIG: 'CHANGE_FILTER_CONFIG',\n SET_SELECTED_KEYS: 'SET_SELECTED_KEYS',\n RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS',\n UPDATE_VIEWS: 'UPDATE_VIEWS',\n RENAME_VIEW: 'RENAME_VIEW',\n DELETE_VIEW: 'DELETE_VIEW',\n LOAD_VIEW: 'LOAD_VIEW',\n} as const;\n\nexport interface IViewSettingsState {\n libraryId: string;\n viewId: string | null;\n viewLabels: Record<string, string>;\n viewModified: boolean;\n entrypoint: Entrypoint;\n viewType: ViewType;\n savedViews: IUserView[];\n attributesIds: string[];\n fulltextSearch: string;\n sort: Array<{\n field: string;\n order: SortOrder;\n }>;\n pageSize: number;\n initialViewSettings: Pick<IViewSettingsState, 'viewType' | 'attributesIds' | 'sort' | 'pageSize'>;\n defaultViewSettings: DefaultViewSettings;\n massSelection: MassSelection;\n enableConfigureView?: boolean;\n}\n\ninterface IViewSettingsActionChangePageSize {\n type: typeof ViewSettingsActionTypes.CHANGE_PAGE_SIZE;\n payload: {pageSize: number};\n}\n\ninterface IViewSettingsActionAddAttribute {\n type: typeof ViewSettingsActionTypes.ADD_ATTRIBUTE;\n payload: {attributeId: string};\n}\n\ninterface IViewSettingsActionRemoveAttribute {\n type: typeof ViewSettingsActionTypes.REMOVE_ATTRIBUTE;\n payload: {attributeId: string};\n}\n\ninterface IViewSettingsActionMoveAttribute {\n type: typeof ViewSettingsActionTypes.MOVE_ATTRIBUTE;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IViewSettingsActionChangeViewType {\n type: typeof ViewSettingsActionTypes.CHANGE_VIEW_TYPE;\n payload: {viewType: ViewType};\n}\n\ninterface IViewSettingsActionResetAttributes {\n type: typeof ViewSettingsActionTypes.RESET_ATTRIBUTES;\n}\n\ninterface IViewSettingsActionAddSort {\n type: typeof ViewSettingsActionTypes.ADD_SORT;\n payload: {field: string; order: SortOrder};\n}\n\ninterface IViewSettingsActionRemoveSort {\n type: typeof ViewSettingsActionTypes.REMOVE_SORT;\n payload: {field: string};\n}\n\ninterface IViewSettingsActionChangeSortOrder {\n type: typeof ViewSettingsActionTypes.CHANGE_SORT_ORDER;\n payload: {field: string; order: SortOrder};\n}\n\ninterface IViewSettingsActionMoveSort {\n type: typeof ViewSettingsActionTypes.MOVE_SORT;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IViewSettingsActionChangeFulltextSearch {\n type: typeof ViewSettingsActionTypes.CHANGE_FULLTEXT_SEARCH;\n payload: {search: string};\n}\n\ninterface IViewSettingsActionClearFulltextSearch {\n type: typeof ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH;\n}\n\ninterface IViewSettingsActionAddFilter {\n type: typeof ViewSettingsActionTypes.ADD_FILTER;\n payload: Omit<UIFilter, 'id' | 'value' | 'condition'>;\n}\n\ninterface IViewSettingsActionResetFilter {\n type: typeof ViewSettingsActionTypes.RESET_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IViewSettingsActionRemoveFilter {\n type: typeof ViewSettingsActionTypes.REMOVE_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IViewSettingsActionChangeFilterConfig {\n type: typeof ViewSettingsActionTypes.CHANGE_FILTER_CONFIG;\n payload: UIFilter | IUIFilterTree;\n}\n\ninterface IViewSettingsActionMoveFilter {\n type: typeof ViewSettingsActionTypes.MOVE_FILTER;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IViewSettingsActionReset {\n type: typeof ViewSettingsActionTypes.RESET;\n payload: IViewSettingsState;\n}\n\ninterface IViewSettingsActionSetSelectedKeys {\n type: typeof ViewSettingsActionTypes.SET_SELECTED_KEYS;\n payload: MassSelection;\n}\n\ninterface IViewSettingsActionRestoreInitialViewSettings {\n type: typeof ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS;\n}\n\ninterface IViewSettingsActionUpdateViewListAndCurrentView {\n type: typeof ViewSettingsActionTypes.UPDATE_VIEWS;\n payload: IUserView;\n}\n\ninterface IViewDataPayload {\n id: string;\n label: Record<string, string>;\n}\n\ninterface IViewSettingsActionRenameView {\n type: typeof ViewSettingsActionTypes.RENAME_VIEW;\n payload: IViewDataPayload;\n}\n\ninterface IViewSettingsActionDeleteView {\n type: typeof ViewSettingsActionTypes.DELETE_VIEW;\n payload: {id: string};\n}\n\nexport type IViewSettingsActionLoadViewPayload = Pick<\n IViewSettingsState,\n 'viewId' | 'viewLabels' | 'viewType' | 'attributesIds' | 'sort'\n>;\n\ninterface IViewSettingsActionLoadView {\n type: typeof ViewSettingsActionTypes.LOAD_VIEW;\n payload: IViewSettingsActionLoadViewPayload;\n}\n\ntype Reducer<\n PAYLOAD extends {\n type: keyof typeof ViewSettingsActionTypes;\n payload?: unknown;\n } = {type: any; payload: 'no_payload'},\n> = PAYLOAD['payload'] extends 'no_payload'\n ? (state: IViewSettingsState) => IViewSettingsState\n : (state: IViewSettingsState, payload: PAYLOAD['payload']) => IViewSettingsState;\n\nconst changePageSize: Reducer<IViewSettingsActionChangePageSize> = (state, payload) => ({\n ...state,\n pageSize: payload.pageSize,\n});\n\nconst addAttribute: Reducer<IViewSettingsActionAddAttribute> = (state, payload) => ({\n ...state,\n attributesIds: [...state.attributesIds, payload.attributeId],\n viewModified: true,\n});\n\nconst removeAttribute: Reducer<IViewSettingsActionRemoveAttribute> = (state, payload) => ({\n ...state,\n attributesIds: state.attributesIds.filter(attributesId => attributesId !== payload.attributeId),\n viewModified: true,\n});\n\nconst moveAttribute: Reducer<IViewSettingsActionMoveAttribute> = (state, payload) => {\n const attributesIds = [...state.attributesIds];\n const [attributeIdToMove] = attributesIds.splice(payload.indexFrom, 1);\n // TODO use newES6 syntax (toSpliced)\n attributesIds.splice(payload.indexTo, 0, attributeIdToMove);\n return {\n ...state,\n attributesIds,\n viewModified: true,\n };\n};\n\nconst resetAttributes: Reducer = state => ({\n ...state,\n attributesIds: [],\n});\n\nconst changeViewType: Reducer<IViewSettingsActionChangeViewType> = (state, payload) => ({\n ...state,\n viewType: payload.viewType,\n viewModified: true,\n});\n\nconst addSort: Reducer<IViewSettingsActionAddSort> = (state, payload) => ({\n ...state,\n sort: [...state.sort, {field: payload.field, order: payload.order}],\n viewModified: true,\n});\n\nconst removeSort: Reducer<IViewSettingsActionRemoveSort> = (state, payload) => ({\n ...state,\n sort: state.sort.filter(({field: attributeId}) => attributeId !== payload.field),\n viewModified: true,\n});\n\nconst changeSortOrder: Reducer<IViewSettingsActionChangeSortOrder> = (state, payload) => ({\n ...state,\n sort: state.sort.map(sort => (sort.field === payload.field ? {...sort, order: payload.order} : sort)),\n viewModified: true,\n});\n\nconst moveSort: Reducer<IViewSettingsActionMoveSort> = (state, payload) => {\n const attributesUsedToSort = [...state.sort];\n const [sortToMove] = attributesUsedToSort.splice(payload.indexFrom, 1);\n attributesUsedToSort.splice(payload.indexTo, 0, sortToMove);\n return {\n ...state,\n sort: attributesUsedToSort,\n viewModified: true,\n };\n};\n\nconst changeFulltextSearch: Reducer<IViewSettingsActionChangeFulltextSearch> = (state, payload) => ({\n ...state,\n fulltextSearch: payload.search,\n});\n\nexport const clearFulltextSearch: Reducer = state => ({\n ...state,\n fulltextSearch: '',\n});\n\nconst reset: Reducer<IViewSettingsActionReset> = (_, payload) => payload;\n\nconst setSelectedKeys: Reducer<IViewSettingsActionSetSelectedKeys> = (state, payload) => ({\n ...state,\n massSelection: payload,\n});\n\nconst restoreInitialViewSettings: Reducer = state => ({\n ...state,\n ...state.initialViewSettings,\n viewModified: false,\n});\n\nconst updateViewListAndCurrentView: Reducer<IViewSettingsActionUpdateViewListAndCurrentView> = (state, payload) => ({\n ...state,\n viewId: payload.id ?? null,\n viewLabels: payload.label,\n savedViews: state.savedViews.find(({id}) => id === payload.id)\n ? state.savedViews.map(view => (view.id === payload.id ? payload : view))\n : state.savedViews.concat([payload]),\n initialViewSettings: {\n viewType: state.viewType,\n attributesIds: state.attributesIds,\n sort: state.sort,\n pageSize: state.pageSize,\n },\n viewModified: false,\n});\n\nconst renameView: Reducer<IViewSettingsActionRenameView> = (state, payload) => ({\n ...state,\n viewLabels: payload.label,\n savedViews: state.savedViews.map(view => (view.id === payload.id ? {...view, label: payload?.label} : view)),\n});\n\nconst deleteView: Reducer<IViewSettingsActionDeleteView> = (state, payload) => {\n const newSavedViews = [...state.savedViews];\n const indexViewDeleted = newSavedViews.findIndex(view => view.id === payload.id);\n // TODO use newES6 syntax (toSpliced)\n if (indexViewDeleted !== -1) {\n newSavedViews.splice(indexViewDeleted, 1);\n }\n if (state.viewId === payload.id) {\n const defaultViewSettings = {\n ...state.defaultViewSettings,\n viewId: DefaultViewId,\n viewLabels: {},\n viewModified: false,\n };\n return {\n ...state,\n ...defaultViewSettings,\n savedViews: newSavedViews,\n };\n }\n return {\n ...state,\n savedViews: newSavedViews,\n };\n};\n\nconst loadView: Reducer<IViewSettingsActionLoadView> = (state, payload) => ({\n ...state,\n ...payload,\n initialViewSettings: {\n viewType: payload.viewType,\n attributesIds: payload.attributesIds,\n sort: payload.sort,\n pageSize: state.pageSize,\n },\n viewModified: false,\n});\n\nexport type IViewSettingsAction =\n | IViewSettingsActionResetAttributes\n | IViewSettingsActionAddAttribute\n | IViewSettingsActionRemoveAttribute\n | IViewSettingsActionMoveAttribute\n | IViewSettingsActionChangeViewType\n | IViewSettingsActionAddSort\n | IViewSettingsActionRemoveSort\n | IViewSettingsActionChangeSortOrder\n | IViewSettingsActionMoveSort\n | IViewSettingsActionChangePageSize\n | IViewSettingsActionChangeFulltextSearch\n | IViewSettingsActionClearFulltextSearch\n | IViewSettingsActionAddFilter\n | IViewSettingsActionResetFilter\n | IViewSettingsActionRemoveFilter\n | IViewSettingsActionChangeFilterConfig\n | IViewSettingsActionMoveFilter\n | IViewSettingsActionReset\n | IViewSettingsActionSetSelectedKeys\n | IViewSettingsActionRestoreInitialViewSettings\n | IViewSettingsActionUpdateViewListAndCurrentView\n | IViewSettingsActionRenameView\n | IViewSettingsActionDeleteView\n | IViewSettingsActionLoadView;\n\nexport const viewSettingsReducer = (state: IViewSettingsState, action: IViewSettingsAction): IViewSettingsState => {\n switch (action.type) {\n case ViewSettingsActionTypes.CHANGE_PAGE_SIZE: {\n return changePageSize(state, action.payload);\n }\n case ViewSettingsActionTypes.ADD_ATTRIBUTE: {\n return addAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.REMOVE_ATTRIBUTE: {\n return removeAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.MOVE_ATTRIBUTE: {\n return moveAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.RESET_ATTRIBUTES: {\n return resetAttributes(state);\n }\n case ViewSettingsActionTypes.CHANGE_VIEW_TYPE: {\n return changeViewType(state, action.payload);\n }\n case ViewSettingsActionTypes.ADD_SORT: {\n return addSort(state, action.payload);\n }\n case ViewSettingsActionTypes.REMOVE_SORT: {\n return removeSort(state, action.payload);\n }\n case ViewSettingsActionTypes.MOVE_SORT: {\n return moveSort(state, action.payload);\n }\n case ViewSettingsActionTypes.CHANGE_SORT_ORDER: {\n return changeSortOrder(state, action.payload);\n }\n case ViewSettingsActionTypes.CHANGE_FULLTEXT_SEARCH: {\n return changeFulltextSearch(state, action.payload);\n }\n case ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH: {\n return clearFulltextSearch(state);\n }\n /*case ViewSettingsActionTypes.ADD_FILTER: {\n return addFilter(state, action.payload);\n }\n case ViewSettingsActionTypes.RESET_FILTER: {\n return resetFilter(state, action.payload);\n }\n case ViewSettingsActionTypes.REMOVE_FILTER: {\n return removeFilter(state, action.payload);\n }\n case ViewSettingsActionTypes.CHANGE_FILTER_CONFIG: {\n return changeFilterConfig(state, action.payload);\n }\n case ViewSettingsActionTypes.MOVE_FILTER: {\n return moveFilter(state, action.payload);\n }*/\n case ViewSettingsActionTypes.RESET: {\n return reset(state, action.payload);\n }\n case ViewSettingsActionTypes.SET_SELECTED_KEYS: {\n return setSelectedKeys(state, action.payload);\n }\n case ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS: {\n return restoreInitialViewSettings(state);\n }\n case ViewSettingsActionTypes.UPDATE_VIEWS: {\n return updateViewListAndCurrentView(state, action.payload);\n }\n case ViewSettingsActionTypes.RENAME_VIEW: {\n return renameView(state, action.payload);\n }\n case ViewSettingsActionTypes.DELETE_VIEW: {\n return deleteView(state, action.payload);\n }\n case ViewSettingsActionTypes.LOAD_VIEW: {\n return loadView(state, action.payload);\n }\n default:\n return state;\n }\n};\n"]}
1
+ {"version":3,"file":"viewSettingsReducer.js","sourceRoot":"","sources":["../../../../../src/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type SortOrder} from '_ui/_gqlTypes';\nimport {\n type DefaultViewSettings,\n type Entrypoint,\n type IUserView,\n type MassSelection,\n type SerializedView,\n} from '../../_types';\nimport {DefaultViewId} from './viewSettingsInitialState';\n\nexport type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';\n\nexport const ViewSettingsActionTypes = {\n RESET: 'RESET',\n ADD_ATTRIBUTE: 'ADD_ATTRIBUTE',\n REMOVE_ATTRIBUTE: 'REMOVE_ATTRIBUTE',\n MOVE_ATTRIBUTE: 'MOVE_ATTRIBUTE',\n RESET_ATTRIBUTES: 'RESET_ATTRIBUTES',\n CHANGE_VIEW_TYPE: 'CHANGE_VIEW_TYPE',\n ADD_SORT: 'ADD_SORT',\n REMOVE_SORT: 'REMOVE_SORT',\n MOVE_SORT: 'MOVE_SORT',\n CHANGE_SORT_ORDER: 'CHANGE_SORT_ORDER',\n CHANGE_PAGE_SIZE: 'CHANGE_PAGE_SIZE',\n CHANGE_FULLTEXT_SEARCH: 'CHANGE_FULLTEXT_SEARCH',\n CLEAR_FULLTEXT_SEARCH: 'CLEAR_FULLTEXT_SEARCH',\n SET_SELECTED_KEYS: 'SET_SELECTED_KEYS',\n RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS',\n UPDATE_VIEWS: 'UPDATE_VIEWS',\n RENAME_VIEW: 'RENAME_VIEW',\n DELETE_VIEW: 'DELETE_VIEW',\n LOAD_VIEW: 'LOAD_VIEW',\n APPLY_SERIALIZED_VIEW: 'APPLY_SERIALIZED_VIEW',\n} as const;\n\nexport interface IViewSettingsState {\n libraryId: string;\n viewId: string | null;\n viewLabels: Record<string, string>;\n viewModified: boolean;\n entrypoint: Entrypoint;\n viewType: ViewType;\n savedViews: IUserView[];\n attributesIds: string[];\n fulltextSearch: string;\n sort: Array<{\n field: string;\n order: SortOrder;\n }>;\n pageSize: number;\n initialViewSettings: Pick<IViewSettingsState, 'viewType' | 'attributesIds' | 'sort' | 'pageSize'>;\n defaultViewSettings: DefaultViewSettings;\n massSelection: MassSelection;\n enableConfigureView?: boolean;\n}\n\ninterface IViewSettingsActionChangePageSize {\n type: typeof ViewSettingsActionTypes.CHANGE_PAGE_SIZE;\n payload: {pageSize: number};\n}\n\ninterface IViewSettingsActionAddAttribute {\n type: typeof ViewSettingsActionTypes.ADD_ATTRIBUTE;\n payload: {attributeId: string};\n}\n\ninterface IViewSettingsActionRemoveAttribute {\n type: typeof ViewSettingsActionTypes.REMOVE_ATTRIBUTE;\n payload: {attributeId: string};\n}\n\ninterface IViewSettingsActionMoveAttribute {\n type: typeof ViewSettingsActionTypes.MOVE_ATTRIBUTE;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IViewSettingsActionChangeViewType {\n type: typeof ViewSettingsActionTypes.CHANGE_VIEW_TYPE;\n payload: {viewType: ViewType};\n}\n\ninterface IViewSettingsActionResetAttributes {\n type: typeof ViewSettingsActionTypes.RESET_ATTRIBUTES;\n}\n\ninterface IViewSettingsActionAddSort {\n type: typeof ViewSettingsActionTypes.ADD_SORT;\n payload: {field: string; order: SortOrder};\n}\n\ninterface IViewSettingsActionRemoveSort {\n type: typeof ViewSettingsActionTypes.REMOVE_SORT;\n payload: {field: string};\n}\n\ninterface IViewSettingsActionChangeSortOrder {\n type: typeof ViewSettingsActionTypes.CHANGE_SORT_ORDER;\n payload: {field: string; order: SortOrder};\n}\n\ninterface IViewSettingsActionMoveSort {\n type: typeof ViewSettingsActionTypes.MOVE_SORT;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IViewSettingsActionChangeFulltextSearch {\n type: typeof ViewSettingsActionTypes.CHANGE_FULLTEXT_SEARCH;\n payload: {search: string};\n}\n\ninterface IViewSettingsActionClearFulltextSearch {\n type: typeof ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH;\n}\n\ninterface IViewSettingsActionReset {\n type: typeof ViewSettingsActionTypes.RESET;\n payload: IViewSettingsState;\n}\n\ninterface IViewSettingsActionSetSelectedKeys {\n type: typeof ViewSettingsActionTypes.SET_SELECTED_KEYS;\n payload: MassSelection;\n}\n\ninterface IViewSettingsActionRestoreInitialViewSettings {\n type: typeof ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS;\n}\n\ninterface IViewSettingsActionUpdateViewListAndCurrentView {\n type: typeof ViewSettingsActionTypes.UPDATE_VIEWS;\n payload: IUserView;\n}\n\ninterface IViewDataPayload {\n id: string;\n label: Record<string, string>;\n}\n\ninterface IViewSettingsActionRenameView {\n type: typeof ViewSettingsActionTypes.RENAME_VIEW;\n payload: IViewDataPayload;\n}\n\ninterface IViewSettingsActionDeleteView {\n type: typeof ViewSettingsActionTypes.DELETE_VIEW;\n payload: {id: string};\n}\n\nexport type IViewSettingsActionLoadViewPayload = Pick<\n IViewSettingsState,\n 'viewId' | 'viewLabels' | 'viewType' | 'attributesIds' | 'sort'\n>;\n\ninterface IViewSettingsActionLoadView {\n type: typeof ViewSettingsActionTypes.LOAD_VIEW;\n payload: IViewSettingsActionLoadViewPayload;\n}\n\ninterface IViewSettingsActionApplySerializedView {\n type: typeof ViewSettingsActionTypes.APPLY_SERIALIZED_VIEW;\n payload: Omit<SerializedView, 'filters' | 'filtersOperator'>;\n}\n\ntype Reducer<\n PAYLOAD extends {\n type: keyof typeof ViewSettingsActionTypes;\n payload?: unknown;\n } = {type: any; payload: 'no_payload'},\n> = PAYLOAD['payload'] extends 'no_payload'\n ? (state: IViewSettingsState) => IViewSettingsState\n : (state: IViewSettingsState, payload: PAYLOAD['payload']) => IViewSettingsState;\n\nconst changePageSize: Reducer<IViewSettingsActionChangePageSize> = (state, payload) => ({\n ...state,\n pageSize: payload.pageSize,\n});\n\nconst addAttribute: Reducer<IViewSettingsActionAddAttribute> = (state, payload) => ({\n ...state,\n attributesIds: [...state.attributesIds, payload.attributeId],\n viewModified: true,\n});\n\nconst removeAttribute: Reducer<IViewSettingsActionRemoveAttribute> = (state, payload) => ({\n ...state,\n attributesIds: state.attributesIds.filter(attributesId => attributesId !== payload.attributeId),\n viewModified: true,\n});\n\nconst moveAttribute: Reducer<IViewSettingsActionMoveAttribute> = (state, payload) => {\n const attributesIds = [...state.attributesIds];\n const [attributeIdToMove] = attributesIds.splice(payload.indexFrom, 1);\n // TODO use newES6 syntax (toSpliced)\n attributesIds.splice(payload.indexTo, 0, attributeIdToMove);\n return {\n ...state,\n attributesIds,\n viewModified: true,\n };\n};\n\nconst resetAttributes: Reducer = state => ({\n ...state,\n attributesIds: [],\n});\n\nconst changeViewType: Reducer<IViewSettingsActionChangeViewType> = (state, payload) => ({\n ...state,\n viewType: payload.viewType,\n viewModified: true,\n});\n\nconst addSort: Reducer<IViewSettingsActionAddSort> = (state, payload) => ({\n ...state,\n sort: [...state.sort, {field: payload.field, order: payload.order}],\n viewModified: true,\n});\n\nconst removeSort: Reducer<IViewSettingsActionRemoveSort> = (state, payload) => ({\n ...state,\n sort: state.sort.filter(({field: attributeId}) => attributeId !== payload.field),\n viewModified: true,\n});\n\nconst changeSortOrder: Reducer<IViewSettingsActionChangeSortOrder> = (state, payload) => ({\n ...state,\n sort: state.sort.map(sort => (sort.field === payload.field ? {...sort, order: payload.order} : sort)),\n viewModified: true,\n});\n\nconst moveSort: Reducer<IViewSettingsActionMoveSort> = (state, payload) => {\n const attributesUsedToSort = [...state.sort];\n const [sortToMove] = attributesUsedToSort.splice(payload.indexFrom, 1);\n attributesUsedToSort.splice(payload.indexTo, 0, sortToMove);\n return {\n ...state,\n sort: attributesUsedToSort,\n viewModified: true,\n };\n};\n\nconst changeFulltextSearch: Reducer<IViewSettingsActionChangeFulltextSearch> = (state, payload) => ({\n ...state,\n fulltextSearch: payload.search,\n});\n\nexport const clearFulltextSearch: Reducer = state => ({\n ...state,\n fulltextSearch: '',\n});\n\nconst reset: Reducer<IViewSettingsActionReset> = (_, payload) => payload;\n\nconst setSelectedKeys: Reducer<IViewSettingsActionSetSelectedKeys> = (state, payload) => ({\n ...state,\n massSelection: payload,\n});\n\nconst restoreInitialViewSettings: Reducer = state => ({\n ...state,\n ...state.initialViewSettings,\n viewModified: false,\n});\n\nconst updateViewListAndCurrentView: Reducer<IViewSettingsActionUpdateViewListAndCurrentView> = (state, payload) => ({\n ...state,\n viewId: payload.id ?? null,\n viewLabels: payload.label,\n savedViews: state.savedViews.find(({id}) => id === payload.id)\n ? state.savedViews.map(view => (view.id === payload.id ? payload : view))\n : state.savedViews.concat([payload]),\n initialViewSettings: {\n viewType: state.viewType,\n attributesIds: state.attributesIds,\n sort: state.sort,\n pageSize: state.pageSize,\n },\n viewModified: false,\n});\n\nconst renameView: Reducer<IViewSettingsActionRenameView> = (state, payload) => ({\n ...state,\n viewLabels: payload.label,\n savedViews: state.savedViews.map(view => (view.id === payload.id ? {...view, label: payload?.label} : view)),\n});\n\nconst deleteView: Reducer<IViewSettingsActionDeleteView> = (state, payload) => {\n const newSavedViews = [...state.savedViews];\n const indexViewDeleted = newSavedViews.findIndex(view => view.id === payload.id);\n // TODO use newES6 syntax (toSpliced)\n if (indexViewDeleted !== -1) {\n newSavedViews.splice(indexViewDeleted, 1);\n }\n if (state.viewId === payload.id) {\n const defaultViewSettings = {\n ...state.defaultViewSettings,\n viewId: DefaultViewId,\n viewLabels: {},\n viewModified: false,\n };\n return {\n ...state,\n ...defaultViewSettings,\n savedViews: newSavedViews,\n };\n }\n return {\n ...state,\n savedViews: newSavedViews,\n };\n};\n\nconst applySerializedView: Reducer<IViewSettingsActionApplySerializedView> = (state, payload) => ({\n ...state,\n ...payload,\n viewModified: true,\n});\n\nconst loadView: Reducer<IViewSettingsActionLoadView> = (state, payload) => ({\n ...state,\n ...payload,\n initialViewSettings: {\n viewType: payload.viewType,\n attributesIds: payload.attributesIds,\n sort: payload.sort,\n pageSize: state.pageSize,\n },\n viewModified: false,\n});\n\nexport type IViewSettingsAction =\n | IViewSettingsActionResetAttributes\n | IViewSettingsActionAddAttribute\n | IViewSettingsActionRemoveAttribute\n | IViewSettingsActionMoveAttribute\n | IViewSettingsActionChangeViewType\n | IViewSettingsActionAddSort\n | IViewSettingsActionRemoveSort\n | IViewSettingsActionChangeSortOrder\n | IViewSettingsActionMoveSort\n | IViewSettingsActionChangePageSize\n | IViewSettingsActionChangeFulltextSearch\n | IViewSettingsActionClearFulltextSearch\n | IViewSettingsActionReset\n | IViewSettingsActionSetSelectedKeys\n | IViewSettingsActionRestoreInitialViewSettings\n | IViewSettingsActionUpdateViewListAndCurrentView\n | IViewSettingsActionRenameView\n | IViewSettingsActionDeleteView\n | IViewSettingsActionLoadView\n | IViewSettingsActionApplySerializedView;\n\nexport const viewSettingsReducer = (state: IViewSettingsState, action: IViewSettingsAction): IViewSettingsState => {\n switch (action.type) {\n case ViewSettingsActionTypes.CHANGE_PAGE_SIZE: {\n return changePageSize(state, action.payload);\n }\n case ViewSettingsActionTypes.ADD_ATTRIBUTE: {\n return addAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.REMOVE_ATTRIBUTE: {\n return removeAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.MOVE_ATTRIBUTE: {\n return moveAttribute(state, action.payload);\n }\n case ViewSettingsActionTypes.RESET_ATTRIBUTES: {\n return resetAttributes(state);\n }\n case ViewSettingsActionTypes.CHANGE_VIEW_TYPE: {\n return changeViewType(state, action.payload);\n }\n case ViewSettingsActionTypes.ADD_SORT: {\n return addSort(state, action.payload);\n }\n case ViewSettingsActionTypes.REMOVE_SORT: {\n return removeSort(state, action.payload);\n }\n case ViewSettingsActionTypes.MOVE_SORT: {\n return moveSort(state, action.payload);\n }\n case ViewSettingsActionTypes.CHANGE_SORT_ORDER: {\n return changeSortOrder(state, action.payload);\n }\n case ViewSettingsActionTypes.CHANGE_FULLTEXT_SEARCH: {\n return changeFulltextSearch(state, action.payload);\n }\n case ViewSettingsActionTypes.CLEAR_FULLTEXT_SEARCH: {\n return clearFulltextSearch(state);\n }\n case ViewSettingsActionTypes.RESET: {\n return reset(state, action.payload);\n }\n case ViewSettingsActionTypes.SET_SELECTED_KEYS: {\n return setSelectedKeys(state, action.payload);\n }\n case ViewSettingsActionTypes.RESTORE_INITIAL_VIEW_SETTINGS: {\n return restoreInitialViewSettings(state);\n }\n case ViewSettingsActionTypes.UPDATE_VIEWS: {\n return updateViewListAndCurrentView(state, action.payload);\n }\n case ViewSettingsActionTypes.RENAME_VIEW: {\n return renameView(state, action.payload);\n }\n case ViewSettingsActionTypes.DELETE_VIEW: {\n return deleteView(state, action.payload);\n }\n case ViewSettingsActionTypes.LOAD_VIEW: {\n return loadView(state, action.payload);\n }\n case ViewSettingsActionTypes.APPLY_SERIALIZED_VIEW: {\n return applySerializedView(state, action.payload);\n }\n default:\n return state;\n }\n};\n"]}