@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.
- package/dist/components/Explorer/Explorer.d.ts +5 -1
- package/dist/components/Explorer/Explorer.js +7 -0
- package/dist/components/Explorer/Explorer.js.map +1 -1
- package/dist/components/Explorer/_types.d.ts +6 -0
- package/dist/components/Explorer/_types.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +4 -4
- package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +7 -31
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js +9 -20
- package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
- package/dist/components/Explorer/useNotifyFiltersChange.d.ts +15 -0
- package/dist/components/Explorer/useNotifyFiltersChange.js +26 -0
- package/dist/components/Explorer/useNotifyFiltersChange.js.map +1 -0
- package/dist/components/Filters/context/filtersReducer.d.ts +9 -1
- package/dist/components/Filters/context/filtersReducer.js +9 -5
- package/dist/components/Filters/context/filtersReducer.js.map +1 -1
- package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js +14 -1
- package/dist/components/Filters/filter-items/filter-type/tree/TreeAttributeDropDown.js.map +1 -1
- package/dist/components/Filters/filter-items/filter-type/tree/useTreePermissions.js +1 -1
- package/dist/components/Filters/filter-items/filter-type/tree/useTreePermissions.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.d.ts +3 -1
- package/dist/hooks/useIFrameMessenger/iFrameMessengerContext.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +2 -1
- package/dist/hooks/useIFrameMessenger/messageHandlers.js +9 -0
- package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/types.d.ts +21 -2
- package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +1 -0
- package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.js +29 -7
- package/dist/hooks/useIFrameMessenger/useIFrameMessengerContext.js.map +1 -1
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.d.ts +14 -0
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js +22 -0
- package/dist/hooks/useIFrameMessenger/useNativePanelMessengerHandlers.js.map +1 -0
- package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +1 -0
- package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +1 -0
- 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":"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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 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 {
|
|
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:
|
|
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:
|
|
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:
|
|
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"]}
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts
CHANGED
|
@@ -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 |
|
|
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 {};
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js
CHANGED
|
@@ -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
|
}
|
package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 {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"]}
|