@leav/ui 1.6.0-22577b27 → 1.6.0-330dfdfa

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/_gqlTypes/index.d.ts +291 -27
  2. package/dist/_gqlTypes/index.js +172 -0
  3. package/dist/_gqlTypes/index.js.map +1 -1
  4. package/dist/components/Explorer/Explorer.js +2 -2
  5. package/dist/components/Explorer/Explorer.js.map +1 -1
  6. package/dist/components/Filters/FiltersProvider.d.ts +2 -2
  7. package/dist/components/Filters/FiltersProvider.js.map +1 -1
  8. package/dist/components/Filters/_types.d.ts +1 -0
  9. package/dist/components/Filters/_types.js.map +1 -1
  10. package/dist/components/Filters/context/filtersReducer.js +4 -0
  11. package/dist/components/Filters/context/filtersReducer.js.map +1 -1
  12. package/dist/components/Filters/filter-items/CommonFilterItem.d.ts +1 -0
  13. package/dist/components/Filters/filter-items/CommonFilterItem.js +19 -6
  14. package/dist/components/Filters/filter-items/CommonFilterItem.js.map +1 -1
  15. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js +4 -4
  16. package/dist/components/Filters/filter-items/EmptyValueCheckbox.js.map +1 -1
  17. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js +2 -2
  18. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js.map +1 -1
  19. package/dist/components/Filters/index.d.ts +1 -0
  20. package/dist/components/Filters/index.js +1 -0
  21. package/dist/components/Filters/index.js.map +1 -1
  22. package/dist/constants.d.ts +1 -0
  23. package/dist/constants.js +1 -0
  24. package/dist/constants.js.map +1 -1
  25. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +2 -1
  26. package/dist/hooks/useIFrameMessenger/messageHandlers.js +8 -0
  27. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  28. package/dist/hooks/useIFrameMessenger/schema.d.ts +3 -0
  29. package/dist/hooks/useIFrameMessenger/schema.js +1 -0
  30. package/dist/hooks/useIFrameMessenger/schema.js.map +1 -1
  31. package/dist/hooks/useIFrameMessenger/types.d.ts +12 -2
  32. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  33. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +1 -0
  34. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +15 -0
  35. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  36. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +1 -0
  37. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +1 -0
  38. package/dist/locales/en/shared.json +3 -3
  39. package/dist/locales/fr/shared.json +3 -3
  40. package/package.json +5 -2
@@ -89,7 +89,7 @@ export const Explorer = forwardRef(({ entrypoint, itemActions = [], primaryActio
89
89
  isMultivalue,
90
90
  onReplace: defaultCallbacks?.item?.replaceLink,
91
91
  canReplaceLinkValues: canEditLinkAttributeValues,
92
- columnsToDisplay: view.attributesIds,
92
+ columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],
93
93
  });
94
94
  const totalCount = data?.totalCount ?? 0;
95
95
  const hasNoResults = data === null || data.totalCount === 0;
@@ -119,7 +119,7 @@ export const Explorer = forwardRef(({ entrypoint, itemActions = [], primaryActio
119
119
  linkId: data?.totalCount === 0 ? undefined : data?.records[0]?.id_value,
120
120
  isMultivalue,
121
121
  maxItemsLeft: null, // TODO: use KitTable.row,
122
- columnsToDisplay: view.attributesIds,
122
+ columnsToDisplay: !joinLibraryContext ? view.attributesIds : [],
123
123
  });
124
124
  const allVisibleKeys = data?.records.map(({ key }) => key) ?? [];
125
125
  const { exportMassAction, ExportModal } = useExportMassAction({
@@ -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, WHO_AM_I_COLUMN} 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';\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'>;\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 };\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 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 ignoreViewByDefault = false,\n defaultActionsForItem = ['replaceLink', 'remove', 'activate'],\n defaultPrimaryActions = ['create'],\n defaultMassActions = ['deactivate', 'editAttribute'],\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: view.attributesIds,\n });\n\n const totalCount = data?.totalCount ?? 0;\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,\n formId: creationFormId,\n refetch,\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: view.attributesIds,\n });\n\n const allVisibleKeys = data?.records.map(({key}) => key) ?? [];\n\n const {exportMassAction, ExportModal} = useExportMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('export'),\n store: {view, dispatch: viewSettingsDispatch},\n totalCount,\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,\n });\n\n const {deactivateMassAction} = useDeactivateMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n allVisibleKeys,\n totalCount,\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 && totalCount > 0);\n\n const massActionSnackbarId = useMemo(() => `${SNACKBAR_MASS_ID}_${Date.now()}`, []);\n\n const {setSelectedKeys, selectAllButton} = useMassActions({\n isEnabled:\n totalCount > 0 &&\n !_isSelectionDisable &&\n (isNotEmpty(defaultMassActions) || isNotEmpty(massActions) || !!defaultCallbacks?.item?.select),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n totalCount,\n allVisibleKeys,\n massActions: [\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,\n }),\n [createPrimaryAction?.disabled, linkPrimaryAction?.disabled, totalCount],\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={[WHO_AM_I_COLUMN, ...view.attributesIds]}\n hideTableHeader={hideTableHeader}\n paginationProps={\n entrypoint.type === 'library' && !noPagination\n ? {\n pageSizeOptions: defaultPageSizeOptions,\n currentPage,\n pageSize: view.pageSize,\n setNewPageSize,\n setNewPage,\n totalCount,\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 />\n )}\n </ExplorerPageDivStyled>\n {settingsPanelElement && createPortal(<SidePanel />, settingsPanelElement?.() ?? document.body)}\n {replaceItemModal}\n {createModal}\n {linkModal}\n {editAttributeMassActionModal}\n {ExportModal}\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 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, WHO_AM_I_COLUMN} 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';\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'>;\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 };\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 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 ignoreViewByDefault = false,\n defaultActionsForItem = ['replaceLink', 'remove', 'activate'],\n defaultPrimaryActions = ['create'],\n defaultMassActions = ['deactivate', 'editAttribute'],\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 totalCount = data?.totalCount ?? 0;\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,\n formId: creationFormId,\n refetch,\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 {exportMassAction, ExportModal} = useExportMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('export'),\n store: {view, dispatch: viewSettingsDispatch},\n totalCount,\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,\n });\n\n const {deactivateMassAction} = useDeactivateMassAction({\n isEnabled: !isLink && isNotEmpty(defaultMassActions) && defaultMassActions.includes('deactivate'),\n store: {view, dispatch: viewSettingsDispatch},\n allVisibleKeys,\n totalCount,\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 && totalCount > 0);\n\n const massActionSnackbarId = useMemo(() => `${SNACKBAR_MASS_ID}_${Date.now()}`, []);\n\n const {setSelectedKeys, selectAllButton} = useMassActions({\n isEnabled:\n totalCount > 0 &&\n !_isSelectionDisable &&\n (isNotEmpty(defaultMassActions) || isNotEmpty(massActions) || !!defaultCallbacks?.item?.select),\n store: {view, dispatch: viewSettingsDispatch},\n filtersStore: filtersData,\n totalCount,\n allVisibleKeys,\n massActions: [\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,\n }),\n [createPrimaryAction?.disabled, linkPrimaryAction?.disabled, totalCount],\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={[WHO_AM_I_COLUMN, ...view.attributesIds]}\n hideTableHeader={hideTableHeader}\n paginationProps={\n entrypoint.type === 'library' && !noPagination\n ? {\n pageSizeOptions: defaultPageSizeOptions,\n currentPage,\n pageSize: view.pageSize,\n setNewPageSize,\n setNewPage,\n totalCount,\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 />\n )}\n </ExplorerPageDivStyled>\n {settingsPanelElement && createPortal(<SidePanel />, settingsPanelElement?.() ?? document.body)}\n {replaceItemModal}\n {createModal}\n {linkModal}\n {editAttributeMassActionModal}\n {ExportModal}\n </ViewSettingsContext.Provider>\n </FiltersContext.Provider>\n <KitSnackBarProvider id={massActionSnackbarId} />\n </>\n );\n },\n);\n"]}
@@ -1,3 +1,3 @@
1
- import { type FunctionComponent } from 'react';
1
+ import { type FunctionComponent, type PropsWithChildren } from 'react';
2
2
  import { type IFiltersProviderProps } from './context/useFiltersReducer';
3
- export declare const FiltersProvider: FunctionComponent<IFiltersProviderProps>;
3
+ export declare const FiltersProvider: FunctionComponent<PropsWithChildren<IFiltersProviderProps>>;
@@ -1 +1 @@
1
- {"version":3,"file":"FiltersProvider.js","sourceRoot":"","sources":["../../../src/components/Filters/FiltersProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAA6B,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAE1F,MAAM,CAAC,MAAM,eAAe,GAA6C,CAAC,EAAC,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,EAAE;IAC9F,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,YAAG,QAAQ,GAA2B,CAAC;AACzG,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport {FiltersContext} from './context/filtersContext';\nimport {type IFiltersProviderProps, useFiltersReducer} from './context/useFiltersReducer';\n\nexport const FiltersProvider: FunctionComponent<IFiltersProviderProps> = ({children, ...props}) => {\n const {filtersData, dispatch} = useFiltersReducer(props);\n\n return <FiltersContext.Provider value={{filtersData, dispatch}}>{children}</FiltersContext.Provider>;\n};\n"]}
1
+ {"version":3,"file":"FiltersProvider.js","sourceRoot":"","sources":["../../../src/components/Filters/FiltersProvider.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAA6B,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAE1F,MAAM,CAAC,MAAM,eAAe,GAAgE,CAAC,EAAC,QAAQ,EAAE,GAAG,KAAK,EAAC,EAAE,EAAE;IACjH,MAAM,EAAC,WAAW,EAAE,QAAQ,EAAC,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAEzD,OAAO,KAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,WAAW,EAAE,QAAQ,EAAC,YAAG,QAAQ,GAA2B,CAAC;AACzG,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent, type PropsWithChildren} from 'react';\nimport {FiltersContext} from './context/filtersContext';\nimport {type IFiltersProviderProps, useFiltersReducer} from './context/useFiltersReducer';\n\nexport const FiltersProvider: FunctionComponent<PropsWithChildren<IFiltersProviderProps>> = ({children, ...props}) => {\n const {filtersData, dispatch} = useFiltersReducer(props);\n\n return <FiltersContext.Provider value={{filtersData, dispatch}}>{children}</FiltersContext.Provider>;\n};\n"]}
@@ -111,6 +111,7 @@ export declare const isUIFilterTree: (filter: UIFilter) => filter is IUIFilterTr
111
111
  export declare const isUIFilterTreeWithValueList: (filter: UIFilter) => filter is IUIFilterTreeValueList;
112
112
  export interface IUIFilterDropDownProps {
113
113
  filter: UIFilter;
114
+ canReset: boolean;
114
115
  canRemove: boolean;
115
116
  }
116
117
  export type ValidFieldFilter = Override<ViewDetailsFilterFragment, {
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../src/components/Filters/_types.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,aAAa,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAqHxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAA+B,EAAE,CAChF,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAA2B,EAAE,CACxE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACxF,MAAM,CAAC,SAAS,KAAK,sBAAsB,CAAC,OAAO,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAgB,EAA8B,EAAE,CAC9E,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACxF,MAAM,CAAC,SAAS,KAAK,sBAAsB,CAAC,OAAO,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAgB,EAAgC,EAAE,CAClF,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAAgB,EAAwC,EAAE,CACtG,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAE1G,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAgB,EAAoC,EAAE,CAC9F,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAA2B,EAAE,CACxE,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAgB,EAAoC,EAAE,CAC9F,cAAc,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAmE,EAAE,CACtG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type Override} from '@leav/utils';\nimport {\n type AttributeFormat,\n AttributeType,\n type LinkAttributeDetailsFragment,\n type RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {ThroughConditionFilter} from '_ui/types/search';\n\nexport type FiltersOperator = 'AND' | 'OR';\n\nexport interface IUIFilterBaseAttribute {\n type: AttributeType;\n /**\n * Used to display the label of the filter.\n *\n * > Not displayed when filter is hidden\n */\n label: string;\n /**\n * Used to verify unicity: one filter per attribute\n */\n id: string;\n format?: AttributeFormat | null | undefined;\n valuesList?:\n | NonNullable<StandardAttributeDetailsFragment['valuesList']>\n | NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n}\n\nexport interface IUIFilterStandardAttribute extends IUIFilterBaseAttribute {\n format: AttributeFormat;\n}\n\nexport interface IUIFilterLinkAttribute extends IUIFilterBaseAttribute {\n linkedLibrary?: {\n id: string;\n };\n}\n\nexport interface IUIFilterTreeAttribute extends IUIFilterBaseAttribute {\n linkedTree?: {\n id: string;\n };\n}\n\ninterface IUIFilterBase {\n id: string;\n attribute: IUIFilterBaseAttribute;\n condition: RecordFilterCondition | ThroughConditionFilter | null;\n /**\n * Used to build filter field.\n *\n * - ex: `campaigns_id_pac`\n * - ex with **subField**: `campaigns_id_pac.id`\n */\n field: any;\n value: string | null;\n formattedValue?: string | null;\n hidden?: boolean | undefined;\n withEmptyValues?: boolean;\n}\n\nexport interface IUIFilterStandard extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterStandardAttribute;\n condition: RecordFilterCondition | null;\n field: string;\n}\n\nexport interface IUIFilterLink extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterLinkAttribute;\n condition: RecordFilterCondition | null;\n field: string;\n}\n\nexport interface IUIFilterThrough extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterLinkAttribute;\n condition: ThroughConditionFilter.THROUGH | null;\n subCondition: RecordFilterCondition | null;\n subField: string | null;\n field: string;\n}\n\nexport interface IUIFilterTree extends Omit<IUIFilterBase, 'value' | 'formattedValue' | 'field'> {\n attribute: IUIFilterTreeAttribute;\n condition: RecordFilterCondition | null;\n value: string[] | null;\n formattedValue?: string[] | null;\n nodes?: null | Array<{nodeId: string; libraryId: string}>;\n field: string[];\n}\n\nexport interface IUIFilterValueList extends Omit<IUIFilterBase, 'value' | 'formattedValue'> {\n attribute: (IUIFilterStandardAttribute | IUIFilterLinkAttribute) & {\n valuesList:\n | NonNullable<StandardAttributeDetailsFragment['valuesList']>\n | NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n value: string[] | null;\n condition: RecordFilterCondition | null;\n field: string | string[];\n}\n\nexport interface IUIFilterStandardValueList extends Omit<IUIFilterStandard, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterStandardAttribute & {\n valuesList: NonNullable<StandardAttributeDetailsFragment['valuesList']>;\n };\n field: string;\n}\n\nexport interface IUIFilterLinkValueList extends Omit<IUIFilterLink, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterLinkAttribute & {\n valuesList: NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n field: string;\n}\nexport interface IUIFilterTreeValueList extends Omit<IUIFilterTree, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterLinkAttribute & {\n valuesList: NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n field: string[];\n}\n\nexport type UIFilter = IUIFilterStandard | IUIFilterLink | IUIFilterThrough | IUIFilterValueList | IUIFilterTree;\n\nexport const isUIFilterStandard = (filter: UIFilter): filter is IUIFilterStandard =>\n [AttributeType.simple, AttributeType.advanced].includes(filter.attribute.type);\n\nexport const isUIFilterLink = (filter: UIFilter): filter is IUIFilterLink =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) &&\n filter.condition !== ThroughConditionFilter.THROUGH;\n\nexport const isUIFilterThrough = (filter: UIFilter): filter is IUIFilterThrough =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) &&\n filter.condition === ThroughConditionFilter.THROUGH;\n\nexport const isUIFilterValueList = (filter: UIFilter): filter is IUIFilterValueList =>\n (isUIFilterStandard(filter) || isUIFilterLink(filter)) && isValueList(filter);\n\nexport const isUIFilterStandardWithValueList = (filter: UIFilter): filter is IUIFilterStandardValueList =>\n [AttributeType.simple, AttributeType.advanced].includes(filter.attribute.type) && isValueList(filter);\n\nexport const isUIFilterLinkWithValueList = (filter: UIFilter): filter is IUIFilterLinkValueList =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) && isValueList(filter);\n\nexport const isUIFilterTree = (filter: UIFilter): filter is IUIFilterTree =>\n filter.attribute.type === AttributeType.tree;\n\nexport const isUIFilterTreeWithValueList = (filter: UIFilter): filter is IUIFilterTreeValueList =>\n isUIFilterTree(filter) && isValueList(filter);\n\nconst isValueList = (filter: UIFilter): filter is UIFilter & {attribute: {valuesList: {enabled: true}}} =>\n !!filter.attribute?.valuesList && filter.attribute?.valuesList.enable;\n\nexport interface IUIFilterDropDownProps {\n filter: UIFilter;\n canRemove: boolean;\n}\n\nexport type ValidFieldFilter = Override<\n ViewDetailsFilterFragment,\n {\n field: NonNullable<ViewDetailsFilterFragment['field']>;\n condition: NonNullable<ViewDetailsFilterFragment['condition']>;\n hidden: boolean;\n withEmptyValues?: boolean;\n }\n>;\n\nexport type ValidFieldFilterStandardValuesList = Override<\n ValidFieldFilter,\n {\n valuesList: StandardAttributeDetailsFragment['valuesList'];\n }\n>;\n\nexport type ValidFieldFilterLinkValuesList = Override<\n ValidFieldFilter,\n {\n valuesList: LinkAttributeDetailsFragment['valuesList'];\n }\n>;\n\nexport type ValidFieldFilterThrough = Override<\n ValidFieldFilter,\n {\n condition: ThroughConditionFilter.THROUGH;\n hidden: boolean;\n }\n> & {\n subField: NonNullable<ViewDetailsFilterFragment['field']>;\n subCondition?: ViewDetailsFilterFragment['condition'];\n};\n\nexport type ValidFilter =\n | ValidFieldFilter\n | ValidFieldFilterThrough\n | ValidFieldFilterStandardValuesList\n | ValidFieldFilterLinkValuesList;\n"]}
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../../src/components/Filters/_types.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,aAAa,GAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,sBAAsB,EAAC,MAAM,kBAAkB,CAAC;AAqHxD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAgB,EAA+B,EAAE,CAChF,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAA2B,EAAE,CACxE,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACxF,MAAM,CAAC,SAAS,KAAK,sBAAsB,CAAC,OAAO,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAgB,EAA8B,EAAE,CAC9E,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;IACxF,MAAM,CAAC,SAAS,KAAK,sBAAsB,CAAC,OAAO,CAAC;AAExD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAgB,EAAgC,EAAE,CAClF,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAElF,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,MAAgB,EAAwC,EAAE,CACtG,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAE1G,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAgB,EAAoC,EAAE,CAC9F,CAAC,aAAa,CAAC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAEpH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAgB,EAA2B,EAAE,CACxE,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,aAAa,CAAC,IAAI,CAAC;AAEjD,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,MAAgB,EAAoC,EAAE,CAC9F,cAAc,CAAC,MAAM,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,GAAG,CAAC,MAAgB,EAAmE,EAAE,CACtG,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,IAAI,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type Override} from '@leav/utils';\nimport {\n type AttributeFormat,\n AttributeType,\n type LinkAttributeDetailsFragment,\n type RecordFilterCondition,\n type StandardAttributeDetailsFragment,\n type ViewDetailsFilterFragment,\n} from '_ui/_gqlTypes';\nimport {ThroughConditionFilter} from '_ui/types/search';\n\nexport type FiltersOperator = 'AND' | 'OR';\n\nexport interface IUIFilterBaseAttribute {\n type: AttributeType;\n /**\n * Used to display the label of the filter.\n *\n * > Not displayed when filter is hidden\n */\n label: string;\n /**\n * Used to verify unicity: one filter per attribute\n */\n id: string;\n format?: AttributeFormat | null | undefined;\n valuesList?:\n | NonNullable<StandardAttributeDetailsFragment['valuesList']>\n | NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n}\n\nexport interface IUIFilterStandardAttribute extends IUIFilterBaseAttribute {\n format: AttributeFormat;\n}\n\nexport interface IUIFilterLinkAttribute extends IUIFilterBaseAttribute {\n linkedLibrary?: {\n id: string;\n };\n}\n\nexport interface IUIFilterTreeAttribute extends IUIFilterBaseAttribute {\n linkedTree?: {\n id: string;\n };\n}\n\ninterface IUIFilterBase {\n id: string;\n attribute: IUIFilterBaseAttribute;\n condition: RecordFilterCondition | ThroughConditionFilter | null;\n /**\n * Used to build filter field.\n *\n * - ex: `campaigns_id_pac`\n * - ex with **subField**: `campaigns_id_pac.id`\n */\n field: any;\n value: string | null;\n formattedValue?: string | null;\n hidden?: boolean | undefined;\n withEmptyValues?: boolean;\n}\n\nexport interface IUIFilterStandard extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterStandardAttribute;\n condition: RecordFilterCondition | null;\n field: string;\n}\n\nexport interface IUIFilterLink extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterLinkAttribute;\n condition: RecordFilterCondition | null;\n field: string;\n}\n\nexport interface IUIFilterThrough extends Omit<IUIFilterBase, 'field'> {\n attribute: IUIFilterLinkAttribute;\n condition: ThroughConditionFilter.THROUGH | null;\n subCondition: RecordFilterCondition | null;\n subField: string | null;\n field: string;\n}\n\nexport interface IUIFilterTree extends Omit<IUIFilterBase, 'value' | 'formattedValue' | 'field'> {\n attribute: IUIFilterTreeAttribute;\n condition: RecordFilterCondition | null;\n value: string[] | null;\n formattedValue?: string[] | null;\n nodes?: null | Array<{nodeId: string; libraryId: string}>;\n field: string[];\n}\n\nexport interface IUIFilterValueList extends Omit<IUIFilterBase, 'value' | 'formattedValue'> {\n attribute: (IUIFilterStandardAttribute | IUIFilterLinkAttribute) & {\n valuesList:\n | NonNullable<StandardAttributeDetailsFragment['valuesList']>\n | NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n value: string[] | null;\n condition: RecordFilterCondition | null;\n field: string | string[];\n}\n\nexport interface IUIFilterStandardValueList extends Omit<IUIFilterStandard, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterStandardAttribute & {\n valuesList: NonNullable<StandardAttributeDetailsFragment['valuesList']>;\n };\n field: string;\n}\n\nexport interface IUIFilterLinkValueList extends Omit<IUIFilterLink, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterLinkAttribute & {\n valuesList: NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n field: string;\n}\nexport interface IUIFilterTreeValueList extends Omit<IUIFilterTree, 'attribute' | 'value'>, IUIFilterValueList {\n attribute: IUIFilterLinkAttribute & {\n valuesList: NonNullable<LinkAttributeDetailsFragment['valuesList']>;\n };\n field: string[];\n}\n\nexport type UIFilter = IUIFilterStandard | IUIFilterLink | IUIFilterThrough | IUIFilterValueList | IUIFilterTree;\n\nexport const isUIFilterStandard = (filter: UIFilter): filter is IUIFilterStandard =>\n [AttributeType.simple, AttributeType.advanced].includes(filter.attribute.type);\n\nexport const isUIFilterLink = (filter: UIFilter): filter is IUIFilterLink =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) &&\n filter.condition !== ThroughConditionFilter.THROUGH;\n\nexport const isUIFilterThrough = (filter: UIFilter): filter is IUIFilterThrough =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) &&\n filter.condition === ThroughConditionFilter.THROUGH;\n\nexport const isUIFilterValueList = (filter: UIFilter): filter is IUIFilterValueList =>\n (isUIFilterStandard(filter) || isUIFilterLink(filter)) && isValueList(filter);\n\nexport const isUIFilterStandardWithValueList = (filter: UIFilter): filter is IUIFilterStandardValueList =>\n [AttributeType.simple, AttributeType.advanced].includes(filter.attribute.type) && isValueList(filter);\n\nexport const isUIFilterLinkWithValueList = (filter: UIFilter): filter is IUIFilterLinkValueList =>\n [AttributeType.simple_link, AttributeType.advanced_link].includes(filter.attribute.type) && isValueList(filter);\n\nexport const isUIFilterTree = (filter: UIFilter): filter is IUIFilterTree =>\n filter.attribute.type === AttributeType.tree;\n\nexport const isUIFilterTreeWithValueList = (filter: UIFilter): filter is IUIFilterTreeValueList =>\n isUIFilterTree(filter) && isValueList(filter);\n\nconst isValueList = (filter: UIFilter): filter is UIFilter & {attribute: {valuesList: {enabled: true}}} =>\n !!filter.attribute?.valuesList && filter.attribute?.valuesList.enable;\n\nexport interface IUIFilterDropDownProps {\n filter: UIFilter;\n canReset: boolean;\n canRemove: boolean;\n}\n\nexport type ValidFieldFilter = Override<\n ViewDetailsFilterFragment,\n {\n field: NonNullable<ViewDetailsFilterFragment['field']>;\n condition: NonNullable<ViewDetailsFilterFragment['condition']>;\n hidden: boolean;\n withEmptyValues?: boolean;\n }\n>;\n\nexport type ValidFieldFilterStandardValuesList = Override<\n ValidFieldFilter,\n {\n valuesList: StandardAttributeDetailsFragment['valuesList'];\n }\n>;\n\nexport type ValidFieldFilterLinkValuesList = Override<\n ValidFieldFilter,\n {\n valuesList: LinkAttributeDetailsFragment['valuesList'];\n }\n>;\n\nexport type ValidFieldFilterThrough = Override<\n ValidFieldFilter,\n {\n condition: ThroughConditionFilter.THROUGH;\n hidden: boolean;\n }\n> & {\n subField: NonNullable<ViewDetailsFilterFragment['field']>;\n subCondition?: ViewDetailsFilterFragment['condition'];\n};\n\nexport type ValidFilter =\n | ValidFieldFilter\n | ValidFieldFilterThrough\n | ValidFieldFilterStandardValuesList\n | ValidFieldFilterLinkValuesList;\n"]}
@@ -82,6 +82,7 @@ const resetFilter = (state, payload) => ({
82
82
  ? null
83
83
  : conditionsByFormat[filter.attribute.format][0],
84
84
  value: null,
85
+ formattedValue: null,
85
86
  };
86
87
  }
87
88
  if (isUIFilterThrough(filter)) {
@@ -89,6 +90,7 @@ const resetFilter = (state, payload) => ({
89
90
  ...filter,
90
91
  condition: ThroughConditionFilter.THROUGH,
91
92
  value: null,
93
+ formattedValue: null,
92
94
  };
93
95
  }
94
96
  if (isUIFilterLink(filter)) {
@@ -96,6 +98,7 @@ const resetFilter = (state, payload) => ({
96
98
  ...filter,
97
99
  condition: conditionsByFormat[AttributeFormat.text][0],
98
100
  value: null,
101
+ formattedValue: null,
99
102
  };
100
103
  }
101
104
  if (isUIFilterTree(filter)) {
@@ -103,6 +106,7 @@ const resetFilter = (state, payload) => ({
103
106
  ...filter,
104
107
  condition: null,
105
108
  value: null,
109
+ formattedValue: null,
106
110
  };
107
111
  }
108
112
  }
@@ -1 +1 @@
1
- {"version":3,"file":"filtersReducer.js","sourceRoot":"","sources":["../../../../src/components/Filters/context/filtersReducer.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} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterStandard,\n type IUIFilterTree,\n isUIFilterLink,\n isUIFilterStandard,\n isUIFilterThrough,\n isUIFilterTree,\n isUIFilterValueList,\n type FiltersOperator,\n} from '../_types';\nimport {hasOnlyNoValueConditions, nullValueConditions} from '../conditionsHelper';\nimport {conditionsByFormat, getFirstConditionByFilterType} from '../filter-items/filter-type/useConditionOptionsByType';\nimport {AttributeConditionFilter, ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute} from '_ui/_utils/attributeType';\nimport {type AttributesById} from '../useTransformFilters';\n\nexport type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';\n\nexport const FiltersActionTypes = {\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 LOAD_VIEW: 'LOAD_VIEW',\n RESET: 'RESET',\n RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS',\n UPDATE_VIEWS: 'UPDATE_VIEWS',\n} as const;\n\nexport interface IUIFiltersState {\n libraryId: string;\n viewId: string | null;\n filtersOperator: FiltersOperator;\n filters: UIFilter[] | IUIFilterTree[];\n initialFilters: UIFilter[] | IUIFilterTree[];\n attributesDataById: AttributesById;\n loading: boolean;\n}\n\ninterface IUIFiltersActionAddFilter {\n type: typeof FiltersActionTypes.ADD_FILTER;\n payload: Omit<UIFilter, 'id' | 'value' | 'condition'>;\n}\n\ninterface IIUIFiltersActionResetFilter {\n type: typeof FiltersActionTypes.RESET_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IUIFiltersActionRemoveFilter {\n type: typeof FiltersActionTypes.REMOVE_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IUIFiltersActionChangeFilterConfig {\n type: typeof FiltersActionTypes.CHANGE_FILTER_CONFIG;\n payload: UIFilter | IUIFilterTree;\n}\n\ninterface IUIFiltersActionMoveFilter {\n type: typeof FiltersActionTypes.MOVE_FILTER;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IUIFiltersActionReset {\n type: typeof FiltersActionTypes.RESET;\n payload: IUIFiltersState;\n}\n\ninterface IUIFiltersActionLoadView {\n type: typeof FiltersActionTypes.LOAD_VIEW;\n payload: Pick<IUIFiltersState, 'filters' | 'viewId' | 'attributesDataById'>;\n}\n\ninterface IUIFiltersActionRestoreInitialViewSettings {\n type: typeof FiltersActionTypes.RESTORE_INITIAL_VIEW_SETTINGS;\n}\n\ninterface IUIFiltersActionUpdateViewListAndCurrentView {\n type: typeof FiltersActionTypes.UPDATE_VIEWS;\n payload: IUIFiltersState;\n}\n\ntype Reducer<\n PAYLOAD extends {\n type: keyof typeof FiltersActionTypes;\n payload?: unknown;\n } = {type: any; payload: 'no_payload'},\n> = PAYLOAD['payload'] extends 'no_payload'\n ? (state: IUIFiltersState) => IUIFiltersState\n : (state: IUIFiltersState, payload: PAYLOAD['payload']) => IUIFiltersState;\n\nexport type UIFiltersAction =\n | IUIFiltersActionAddFilter\n | IIUIFiltersActionResetFilter\n | IUIFiltersActionRemoveFilter\n | IUIFiltersActionChangeFilterConfig\n | IUIFiltersActionMoveFilter\n | IUIFiltersActionReset\n | IUIFiltersActionLoadView\n | IUIFiltersActionRestoreInitialViewSettings\n | IUIFiltersActionUpdateViewListAndCurrentView;\n\nconst addFilter: Reducer<IUIFiltersActionAddFilter> = (state, payload) => {\n const hasValueList = payload.attribute.valuesList?.enable;\n let condition = hasOnlyNoValueConditions((payload as IUIFilterStandard).attribute.format)\n ? null\n : (conditionsByFormat[(payload as IUIFilterStandard).attribute.format][0] ?? null);\n if (hasValueList) {\n condition = AttributeConditionFilter.EQUAL;\n }\n\n let filterToAdd;\n if (isUIFilterTree(payload as UIFilter)) {\n const filterWithDefaultValues = state.initialFilters.find(\n initialFilter => initialFilter.attribute.id === payload.attribute.id,\n );\n if (filterWithDefaultValues !== undefined) {\n filterToAdd = filterWithDefaultValues;\n } else {\n filterToAdd = {\n ...payload,\n id: window.crypto.randomUUID(),\n field: Array.isArray(payload.field) ? payload.field : [payload.field],\n condition: hasOnlyNoValueConditions((payload as IUIFilterStandard).attribute.format)\n ? null\n : (getFirstConditionByFilterType(payload as UIFilter) as RecordFilterCondition[])[0],\n value: null,\n };\n }\n } else {\n filterToAdd = {\n ...payload,\n field: isLinkAttribute(payload.attribute.type) ? `${payload.field}.id` : (payload.field as string),\n id: window.crypto.randomUUID(),\n condition,\n value: null,\n valuesList: hasValueList ? payload.attribute.valuesList : undefined,\n };\n }\n\n return {\n ...state,\n filters: [...state.filters, filterToAdd],\n viewModified: true,\n };\n};\n\nconst resetFilter: Reducer<IIUIFiltersActionResetFilter> = (state, payload) => ({\n ...state,\n filters: state.filters.map(filter => {\n if (filter.id === payload.id) {\n const initialFilter = state.initialFilters.find(({id}) => id === payload.id);\n if (initialFilter) {\n return initialFilter;\n }\n\n if (isUIFilterValueList(filter)) {\n return {\n ...filter,\n condition: null,\n value: null,\n };\n }\n\n if (isUIFilterStandard(filter)) {\n return {\n ...filter,\n condition: hasOnlyNoValueConditions(filter.attribute.format)\n ? null\n : conditionsByFormat[filter.attribute.format][0],\n value: null,\n };\n }\n\n if (isUIFilterThrough(filter)) {\n return {\n ...filter,\n condition: ThroughConditionFilter.THROUGH,\n value: null,\n };\n }\n\n if (isUIFilterLink(filter)) {\n return {\n ...filter,\n condition: conditionsByFormat[AttributeFormat.text][0],\n value: null,\n };\n }\n\n if (isUIFilterTree(filter)) {\n return {\n ...filter,\n condition: null,\n value: null,\n };\n }\n }\n return filter;\n }),\n});\n\nconst removeFilter: Reducer<IUIFiltersActionRemoveFilter> = (state, payload) => ({\n ...state,\n filters: state.filters.filter(({id}) => id !== payload.id),\n viewModified: true,\n});\n\nconst changeFilterConfig: Reducer<IUIFiltersActionChangeFilterConfig> = (state, payload) => ({\n ...state,\n filters: state.filters.map(filter => {\n if (filter.id !== payload.id) {\n return filter;\n }\n if (isUIFilterTree(filter) && payload.value && payload.value.length === 0) {\n return {...filter, ...payload, value: null};\n }\n if (isUIFilterValueList(filter) && filter.condition && nullValueConditions.includes(filter.condition)) {\n return {...filter, ...payload, value: null};\n }\n return {...filter, ...payload};\n }),\n viewModified: true,\n});\n\nconst moveFilter: Reducer<IUIFiltersActionMoveFilter> = (state, payload) => {\n const attributesUsedToFilter = [...state.filters];\n const [filterToMove] = attributesUsedToFilter.splice(payload.indexFrom, 1);\n attributesUsedToFilter.splice(payload.indexTo, 0, filterToMove);\n return {\n ...state,\n filters: attributesUsedToFilter,\n viewModified: true,\n };\n};\n\nconst reset: Reducer<IUIFiltersActionReset> = (_, payload) => payload;\n\nconst loadView: Reducer<IUIFiltersActionLoadView> = (state, payload) => ({\n ...state,\n ...payload,\n initialFilters: payload.filters,\n});\n\nconst restoreInitialViewSettings: Reducer = state => ({\n ...state,\n filters: state.initialFilters,\n});\n\nexport const filtersReducer =\n setRefetchViews =>\n (state: IUIFiltersState, action: UIFiltersAction): IUIFiltersState => {\n switch (action.type) {\n case FiltersActionTypes.ADD_FILTER: {\n return addFilter(state, action.payload);\n }\n case FiltersActionTypes.RESET_FILTER: {\n return resetFilter(state, action.payload);\n }\n case FiltersActionTypes.REMOVE_FILTER: {\n return removeFilter(state, action.payload);\n }\n case FiltersActionTypes.CHANGE_FILTER_CONFIG: {\n return changeFilterConfig(state, action.payload);\n }\n case FiltersActionTypes.MOVE_FILTER: {\n return moveFilter(state, action.payload);\n }\n case FiltersActionTypes.RESET: {\n return reset(state, action.payload);\n }\n case FiltersActionTypes.LOAD_VIEW: {\n return loadView(state, action.payload);\n }\n case FiltersActionTypes.RESTORE_INITIAL_VIEW_SETTINGS: {\n return restoreInitialViewSettings(state);\n }\n case FiltersActionTypes.UPDATE_VIEWS: {\n setRefetchViews?.(true);\n return state;\n }\n default:\n return state;\n }\n };\n"]}
1
+ {"version":3,"file":"filtersReducer.js","sourceRoot":"","sources":["../../../../src/components/Filters/context/filtersReducer.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} from '_ui/_gqlTypes';\nimport {\n type UIFilter,\n type IUIFilterStandard,\n type IUIFilterTree,\n isUIFilterLink,\n isUIFilterStandard,\n isUIFilterThrough,\n isUIFilterTree,\n isUIFilterValueList,\n type FiltersOperator,\n} from '../_types';\nimport {hasOnlyNoValueConditions, nullValueConditions} from '../conditionsHelper';\nimport {conditionsByFormat, getFirstConditionByFilterType} from '../filter-items/filter-type/useConditionOptionsByType';\nimport {AttributeConditionFilter, ThroughConditionFilter} from '_ui/types';\nimport {isLinkAttribute} from '_ui/_utils/attributeType';\nimport {type AttributesById} from '../useTransformFilters';\n\nexport type ViewType = 'table' | 'list' | 'timeline' | 'mosaic';\n\nexport const FiltersActionTypes = {\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 LOAD_VIEW: 'LOAD_VIEW',\n RESET: 'RESET',\n RESTORE_INITIAL_VIEW_SETTINGS: 'RESTORE_INITIAL_VIEW_SETTINGS',\n UPDATE_VIEWS: 'UPDATE_VIEWS',\n} as const;\n\nexport interface IUIFiltersState {\n libraryId: string;\n viewId: string | null;\n filtersOperator: FiltersOperator;\n filters: UIFilter[] | IUIFilterTree[];\n initialFilters: UIFilter[] | IUIFilterTree[];\n attributesDataById: AttributesById;\n loading: boolean;\n}\n\ninterface IUIFiltersActionAddFilter {\n type: typeof FiltersActionTypes.ADD_FILTER;\n payload: Omit<UIFilter, 'id' | 'value' | 'condition'>;\n}\n\ninterface IIUIFiltersActionResetFilter {\n type: typeof FiltersActionTypes.RESET_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IUIFiltersActionRemoveFilter {\n type: typeof FiltersActionTypes.REMOVE_FILTER;\n payload: Pick<UIFilter, 'id'>;\n}\n\ninterface IUIFiltersActionChangeFilterConfig {\n type: typeof FiltersActionTypes.CHANGE_FILTER_CONFIG;\n payload: UIFilter | IUIFilterTree;\n}\n\ninterface IUIFiltersActionMoveFilter {\n type: typeof FiltersActionTypes.MOVE_FILTER;\n payload: {\n indexFrom: number;\n indexTo: number;\n };\n}\n\ninterface IUIFiltersActionReset {\n type: typeof FiltersActionTypes.RESET;\n payload: IUIFiltersState;\n}\n\ninterface IUIFiltersActionLoadView {\n type: typeof FiltersActionTypes.LOAD_VIEW;\n payload: Pick<IUIFiltersState, 'filters' | 'viewId' | 'attributesDataById'>;\n}\n\ninterface IUIFiltersActionRestoreInitialViewSettings {\n type: typeof FiltersActionTypes.RESTORE_INITIAL_VIEW_SETTINGS;\n}\n\ninterface IUIFiltersActionUpdateViewListAndCurrentView {\n type: typeof FiltersActionTypes.UPDATE_VIEWS;\n payload: IUIFiltersState;\n}\n\ntype Reducer<\n PAYLOAD extends {\n type: keyof typeof FiltersActionTypes;\n payload?: unknown;\n } = {type: any; payload: 'no_payload'},\n> = PAYLOAD['payload'] extends 'no_payload'\n ? (state: IUIFiltersState) => IUIFiltersState\n : (state: IUIFiltersState, payload: PAYLOAD['payload']) => IUIFiltersState;\n\nexport type UIFiltersAction =\n | IUIFiltersActionAddFilter\n | IIUIFiltersActionResetFilter\n | IUIFiltersActionRemoveFilter\n | IUIFiltersActionChangeFilterConfig\n | IUIFiltersActionMoveFilter\n | IUIFiltersActionReset\n | IUIFiltersActionLoadView\n | IUIFiltersActionRestoreInitialViewSettings\n | IUIFiltersActionUpdateViewListAndCurrentView;\n\nconst addFilter: Reducer<IUIFiltersActionAddFilter> = (state, payload) => {\n const hasValueList = payload.attribute.valuesList?.enable;\n let condition = hasOnlyNoValueConditions((payload as IUIFilterStandard).attribute.format)\n ? null\n : (conditionsByFormat[(payload as IUIFilterStandard).attribute.format][0] ?? null);\n if (hasValueList) {\n condition = AttributeConditionFilter.EQUAL;\n }\n\n let filterToAdd;\n if (isUIFilterTree(payload as UIFilter)) {\n const filterWithDefaultValues = state.initialFilters.find(\n initialFilter => initialFilter.attribute.id === payload.attribute.id,\n );\n if (filterWithDefaultValues !== undefined) {\n filterToAdd = filterWithDefaultValues;\n } else {\n filterToAdd = {\n ...payload,\n id: window.crypto.randomUUID(),\n field: Array.isArray(payload.field) ? payload.field : [payload.field],\n condition: hasOnlyNoValueConditions((payload as IUIFilterStandard).attribute.format)\n ? null\n : (getFirstConditionByFilterType(payload as UIFilter) as RecordFilterCondition[])[0],\n value: null,\n };\n }\n } else {\n filterToAdd = {\n ...payload,\n field: isLinkAttribute(payload.attribute.type) ? `${payload.field}.id` : (payload.field as string),\n id: window.crypto.randomUUID(),\n condition,\n value: null,\n valuesList: hasValueList ? payload.attribute.valuesList : undefined,\n };\n }\n\n return {\n ...state,\n filters: [...state.filters, filterToAdd],\n viewModified: true,\n };\n};\n\nconst resetFilter: Reducer<IIUIFiltersActionResetFilter> = (state, payload) => ({\n ...state,\n filters: state.filters.map(filter => {\n if (filter.id === payload.id) {\n const initialFilter = state.initialFilters.find(({id}) => id === payload.id);\n if (initialFilter) {\n return initialFilter;\n }\n\n if (isUIFilterValueList(filter)) {\n return {\n ...filter,\n condition: null,\n value: null,\n };\n }\n\n if (isUIFilterStandard(filter)) {\n return {\n ...filter,\n condition: hasOnlyNoValueConditions(filter.attribute.format)\n ? null\n : conditionsByFormat[filter.attribute.format][0],\n value: null,\n formattedValue: null,\n };\n }\n\n if (isUIFilterThrough(filter)) {\n return {\n ...filter,\n condition: ThroughConditionFilter.THROUGH,\n value: null,\n formattedValue: null,\n };\n }\n\n if (isUIFilterLink(filter)) {\n return {\n ...filter,\n condition: conditionsByFormat[AttributeFormat.text][0],\n value: null,\n formattedValue: null,\n };\n }\n\n if (isUIFilterTree(filter)) {\n return {\n ...filter,\n condition: null,\n value: null,\n formattedValue: null,\n };\n }\n }\n return filter;\n }),\n});\n\nconst removeFilter: Reducer<IUIFiltersActionRemoveFilter> = (state, payload) => ({\n ...state,\n filters: state.filters.filter(({id}) => id !== payload.id),\n viewModified: true,\n});\n\nconst changeFilterConfig: Reducer<IUIFiltersActionChangeFilterConfig> = (state, payload) => ({\n ...state,\n filters: state.filters.map(filter => {\n if (filter.id !== payload.id) {\n return filter;\n }\n if (isUIFilterTree(filter) && payload.value && payload.value.length === 0) {\n return {...filter, ...payload, value: null};\n }\n if (isUIFilterValueList(filter) && filter.condition && nullValueConditions.includes(filter.condition)) {\n return {...filter, ...payload, value: null};\n }\n return {...filter, ...payload};\n }),\n viewModified: true,\n});\n\nconst moveFilter: Reducer<IUIFiltersActionMoveFilter> = (state, payload) => {\n const attributesUsedToFilter = [...state.filters];\n const [filterToMove] = attributesUsedToFilter.splice(payload.indexFrom, 1);\n attributesUsedToFilter.splice(payload.indexTo, 0, filterToMove);\n return {\n ...state,\n filters: attributesUsedToFilter,\n viewModified: true,\n };\n};\n\nconst reset: Reducer<IUIFiltersActionReset> = (_, payload) => payload;\n\nconst loadView: Reducer<IUIFiltersActionLoadView> = (state, payload) => ({\n ...state,\n ...payload,\n initialFilters: payload.filters,\n});\n\nconst restoreInitialViewSettings: Reducer = state => ({\n ...state,\n filters: state.initialFilters,\n});\n\nexport const filtersReducer =\n setRefetchViews =>\n (state: IUIFiltersState, action: UIFiltersAction): IUIFiltersState => {\n switch (action.type) {\n case FiltersActionTypes.ADD_FILTER: {\n return addFilter(state, action.payload);\n }\n case FiltersActionTypes.RESET_FILTER: {\n return resetFilter(state, action.payload);\n }\n case FiltersActionTypes.REMOVE_FILTER: {\n return removeFilter(state, action.payload);\n }\n case FiltersActionTypes.CHANGE_FILTER_CONFIG: {\n return changeFilterConfig(state, action.payload);\n }\n case FiltersActionTypes.MOVE_FILTER: {\n return moveFilter(state, action.payload);\n }\n case FiltersActionTypes.RESET: {\n return reset(state, action.payload);\n }\n case FiltersActionTypes.LOAD_VIEW: {\n return loadView(state, action.payload);\n }\n case FiltersActionTypes.RESTORE_INITIAL_VIEW_SETTINGS: {\n return restoreInitialViewSettings(state);\n }\n case FiltersActionTypes.UPDATE_VIEWS: {\n setRefetchViews?.(true);\n return state;\n }\n default:\n return state;\n }\n };\n"]}
@@ -4,5 +4,6 @@ export interface ICommonFilterProps {
4
4
  filter: UIFilter;
5
5
  isPinned?: boolean;
6
6
  disabled?: boolean;
7
+ readonly?: boolean;
7
8
  }
8
9
  export declare const CommonFilterItem: FunctionComponent<ICommonFilterProps>;
@@ -3,10 +3,11 @@ import { FilterDropDown } from '../filter-items/filter-type/FilterDropDown';
3
3
  import styled from 'styled-components';
4
4
  import { KitFilter } from 'aristid-ds';
5
5
  import { AttributeFormat } from '../../../_gqlTypes';
6
- import { useTranslation } from 'react-i18next';
7
6
  import { getAttributeConditionOptions } from '../filter-items/filter-type/useConditionOptionsByType';
8
7
  import { nullValueConditions } from '../conditionsHelper';
9
8
  import { isUIFilterStandard, isUIFilterTree } from '../_types';
9
+ import { ACTIVE_ATTRIBUTE_ID } from '../../../constants';
10
+ import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
10
11
  const FilterStyled = styled(KitFilter) `
11
12
  flex: 0 0 auto;
12
13
  `;
@@ -21,7 +22,7 @@ const getFilterValues = (filter, t) => {
21
22
  }
22
23
  if (isUIFilterStandard(filter) &&
23
24
  [AttributeFormat.date, AttributeFormat.boolean].includes(filter.attribute.format)) {
24
- return filter.formattedValue ? [...filterValues, ...filter.formattedValue] : filterValues;
25
+ return filter.formattedValue ? [...filterValues, filter.formattedValue] : filterValues;
25
26
  }
26
27
  if (Array.isArray(filter.value)) {
27
28
  return [...filterValues, ...filter.value];
@@ -31,11 +32,23 @@ const getFilterValues = (filter, t) => {
31
32
  }
32
33
  return filterValues;
33
34
  };
34
- export const CommonFilterItem = ({ filter, isPinned = false, disabled }) => {
35
- const { t } = useTranslation();
36
- return (_jsx(FilterStyled, { expandable: true, disabled: disabled, label: filter.attribute.label, values: getFilterValues(filter, t), dropDownProps: {
35
+ const isActiveAttribute = (filter) => filter.attribute.format === AttributeFormat.boolean &&
36
+ filter.attribute.id === ACTIVE_ATTRIBUTE_ID &&
37
+ isUIFilterStandard(filter);
38
+ export const CommonFilterItem = ({ filter, isPinned = false, readonly = false, disabled, }) => {
39
+ const { t } = useSharedTranslation();
40
+ let canReset = true;
41
+ // Active attribute is a special case, we need to handle it differently
42
+ if (isActiveAttribute(filter)) {
43
+ canReset = false;
44
+ if (!filter.value) {
45
+ filter.value = 'true';
46
+ filter.formattedValue = t('explorer.true');
47
+ }
48
+ }
49
+ return (_jsx(FilterStyled, { disabled: disabled, readonly: readonly, expandable: !readonly, label: filter.attribute.label, values: getFilterValues(filter, t), dropDownProps: {
37
50
  placement: 'bottomLeft',
38
- dropdownRender: () => _jsx(FilterDropDown, { filter: filter, canRemove: !isPinned }),
51
+ dropdownRender: () => _jsx(FilterDropDown, { filter: filter, canReset: canReset, canRemove: !isPinned }),
39
52
  } }));
40
53
  };
41
54
  //# sourceMappingURL=CommonFilterItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CommonFilterItem.js","sourceRoot":"","sources":["../../../../src/components/Filters/filter-items/CommonFilterItem.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,cAAc,EAAC,MAAM,4CAA4C,CAAC;AAC1E,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,eAAe,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,4BAA4B,EAAC,MAAM,uDAAuD,CAAC;AAEnG,OAAO,EAAC,mBAAmB,EAAC,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAgB,MAAM,WAAW,CAAC;AAE5E,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;;CAErC,CAAC;AACF,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAE,CAAY,EAAY,EAAE;IACjE,IAAI,MAAM,CAAC,SAAS,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QACrE,MAAM,eAAe,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1G,OAAO,CAAC,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,YAAY,GAAa,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAExF,IAAI,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED,IACI,kBAAkB,CAAC,MAAM,CAAC;QAC1B,CAAC,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EACnF,CAAC;QACC,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAC9F,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC,CAAC;AAQF,MAAM,CAAC,MAAM,gBAAgB,GAA0C,CAAC,EAAC,MAAM,EAAE,QAAQ,GAAG,KAAK,EAAE,QAAQ,EAAC,EAAE,EAAE;IAC5G,MAAM,EAAC,CAAC,EAAC,GAAG,cAAc,EAAE,CAAC;IAE7B,OAAO,CACH,KAAC,YAAY,IACT,UAAU,QACV,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK,EAC7B,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,EAClC,aAAa,EAAE;YACX,SAAS,EAAE,YAAY;YACvB,cAAc,EAAE,GAAG,EAAE,CAAC,KAAC,cAAc,IAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,QAAQ,GAAI;SACjF,GACH,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport {FilterDropDown} from '../filter-items/filter-type/FilterDropDown';\nimport styled from 'styled-components';\nimport {KitFilter} from 'aristid-ds';\nimport {AttributeFormat} from '_ui/_gqlTypes';\nimport {useTranslation} from 'react-i18next';\nimport {getAttributeConditionOptions} from '../filter-items/filter-type/useConditionOptionsByType';\nimport {type TFunction} from 'i18next';\nimport {nullValueConditions} from '../conditionsHelper';\nimport {isUIFilterStandard, isUIFilterTree, type UIFilter} from '../_types';\n\nconst FilterStyled = styled(KitFilter)`\n flex: 0 0 auto;\n`;\nconst getFilterValues = (filter: UIFilter, t: TFunction): string[] => {\n if (filter.condition && nullValueConditions.includes(filter.condition)) {\n const conditionOption = getAttributeConditionOptions(t).find(option => option.value === filter.condition);\n return [conditionOption?.label ?? ''];\n }\n\n const filterValues: string[] = filter.withEmptyValues ? [t('filters.empty-value')] : [];\n\n if (isUIFilterTree(filter)) {\n return [...filterValues, ...(filter.formattedValue ?? [])];\n }\n\n if (\n isUIFilterStandard(filter) &&\n [AttributeFormat.date, AttributeFormat.boolean].includes(filter.attribute.format)\n ) {\n return filter.formattedValue ? [...filterValues, ...filter.formattedValue] : filterValues;\n }\n\n if (Array.isArray(filter.value)) {\n return [...filterValues, ...filter.value];\n } else if (filter.value) {\n return [...filterValues, filter.value];\n }\n return filterValues;\n};\n\nexport interface ICommonFilterProps {\n filter: UIFilter;\n isPinned?: boolean;\n disabled?: boolean;\n}\n\nexport const CommonFilterItem: FunctionComponent<ICommonFilterProps> = ({filter, isPinned = false, disabled}) => {\n const {t} = useTranslation();\n\n return (\n <FilterStyled\n expandable\n disabled={disabled}\n label={filter.attribute.label}\n values={getFilterValues(filter, t)}\n dropDownProps={{\n placement: 'bottomLeft',\n dropdownRender: () => <FilterDropDown filter={filter} canRemove={!isPinned} />,\n }}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"CommonFilterItem.js","sourceRoot":"","sources":["../../../../src/components/Filters/filter-items/CommonFilterItem.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 {FilterDropDown} from '../filter-items/filter-type/FilterDropDown';\nimport styled from 'styled-components';\nimport {KitFilter} from 'aristid-ds';\nimport {AttributeFormat} from '_ui/_gqlTypes';\nimport {getAttributeConditionOptions} from '../filter-items/filter-type/useConditionOptionsByType';\nimport {type TFunction} from 'i18next';\nimport {nullValueConditions} from '../conditionsHelper';\nimport {isUIFilterStandard, isUIFilterTree, type IUIFilterStandard, type UIFilter} from '../_types';\nimport {ACTIVE_ATTRIBUTE_ID} from '_ui/constants';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\n\nconst FilterStyled = styled(KitFilter)`\n flex: 0 0 auto;\n`;\nconst getFilterValues = (filter: UIFilter, t: TFunction): string[] => {\n if (filter.condition && nullValueConditions.includes(filter.condition)) {\n const conditionOption = getAttributeConditionOptions(t).find(option => option.value === filter.condition);\n return [conditionOption?.label ?? ''];\n }\n\n const filterValues: string[] = filter.withEmptyValues ? [t('filters.empty-value')] : [];\n\n if (isUIFilterTree(filter)) {\n return [...filterValues, ...(filter.formattedValue ?? [])];\n }\n\n if (\n isUIFilterStandard(filter) &&\n [AttributeFormat.date, AttributeFormat.boolean].includes(filter.attribute.format)\n ) {\n return filter.formattedValue ? [...filterValues, filter.formattedValue] : filterValues;\n }\n\n if (Array.isArray(filter.value)) {\n return [...filterValues, ...filter.value];\n } else if (filter.value) {\n return [...filterValues, filter.value];\n }\n return filterValues;\n};\n\nexport interface ICommonFilterProps {\n filter: UIFilter;\n isPinned?: boolean;\n disabled?: boolean;\n readonly?: boolean;\n}\n\nconst isActiveAttribute = (filter: UIFilter): filter is IUIFilterStandard =>\n filter.attribute.format === AttributeFormat.boolean &&\n filter.attribute.id === ACTIVE_ATTRIBUTE_ID &&\n isUIFilterStandard(filter);\n\nexport const CommonFilterItem: FunctionComponent<ICommonFilterProps> = ({\n filter,\n isPinned = false,\n readonly = false,\n disabled,\n}) => {\n const {t} = useSharedTranslation();\n\n let canReset = true;\n\n // Active attribute is a special case, we need to handle it differently\n if (isActiveAttribute(filter)) {\n canReset = false;\n\n if (!filter.value) {\n filter.value = 'true';\n filter.formattedValue = t('explorer.true');\n }\n }\n\n return (\n <FilterStyled\n disabled={disabled}\n readonly={readonly}\n expandable={!readonly}\n label={filter.attribute.label}\n values={getFilterValues(filter, t)}\n dropDownProps={{\n placement: 'bottomLeft',\n dropdownRender: () => <FilterDropDown filter={filter} canReset={canReset} canRemove={!isPinned} />,\n }}\n />\n );\n};\n"]}
@@ -1,16 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import styled from 'styled-components';
3
- import { KitCheckbox } from 'aristid-ds';
3
+ import { KitTree } from 'aristid-ds';
4
4
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
5
- const CheckboxStyled = styled(KitCheckbox) `
5
+ const TreeStyled = styled(KitTree) `
6
6
  font-style: italic;
7
- padding-left: 3px;
8
7
  `;
8
+ const EMPTY_VALUE_KEY = '0';
9
9
  export const EmptyValueCheckbox = ({ filter, onSelect }) => {
10
10
  const { t } = useSharedTranslation();
11
11
  const onChange = () => {
12
12
  onSelect(!filter.withEmptyValues);
13
13
  };
14
- return (_jsx(CheckboxStyled, { checked: filter.withEmptyValues, onChange: onChange, children: t('explorer.empty_value') }));
14
+ return (_jsx(TreeStyled, { checkable: true, treeData: [{ title: t('filters.empty-value'), key: EMPTY_VALUE_KEY, isLeaf: true }], checkedKeys: filter.withEmptyValues ? [EMPTY_VALUE_KEY] : [], onSelect: onChange, onCheck: onChange }));
15
15
  };
16
16
  //# sourceMappingURL=EmptyValueCheckbox.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmptyValueCheckbox.js","sourceRoot":"","sources":["../../../../src/components/Filters/filter-items/EmptyValueCheckbox.tsx"],"names":[],"mappings":";AAIA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AACvC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAQpE,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;;;CAGzC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAgD,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE,EAAE;IAClG,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,cAAc,IAAC,OAAO,EAAE,MAAM,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,YAC9D,CAAC,CAAC,sBAAsB,CAAC,GACb,CACpB,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport styled from 'styled-components';\nimport {KitCheckbox} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type UIFilter} from '../_types';\n\ninterface IEmptyValueCheckboxProps {\n filter: UIFilter;\n onSelect: (selected: boolean) => void;\n}\n\nconst CheckboxStyled = styled(KitCheckbox)`\n font-style: italic;\n padding-left: 3px;\n`;\n\nexport const EmptyValueCheckbox: FunctionComponent<IEmptyValueCheckboxProps> = ({filter, onSelect}) => {\n const {t} = useSharedTranslation();\n\n const onChange = () => {\n onSelect(!filter.withEmptyValues);\n };\n\n return (\n <CheckboxStyled checked={filter.withEmptyValues} onChange={onChange}>\n {t('explorer.empty_value')}\n </CheckboxStyled>\n );\n};\n"]}
1
+ {"version":3,"file":"EmptyValueCheckbox.js","sourceRoot":"","sources":["../../../../src/components/Filters/filter-items/EmptyValueCheckbox.tsx"],"names":[],"mappings":";AAIA,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,OAAO,EAAC,MAAM,YAAY,CAAC;AACnC,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAQpE,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;;CAEjC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,MAAM,CAAC,MAAM,kBAAkB,GAAgD,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAC,EAAE,EAAE;IAClG,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAG,GAAG,EAAE;QAClB,QAAQ,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,UAAU,IACP,SAAS,QACT,QAAQ,EAAE,CAAC,EAAC,KAAK,EAAE,CAAC,CAAC,qBAAqB,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,EACjF,WAAW,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,EAC5D,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,QAAQ,GACnB,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type FunctionComponent} from 'react';\nimport styled from 'styled-components';\nimport {KitTree} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type UIFilter} from '../_types';\n\ninterface IEmptyValueCheckboxProps {\n filter: UIFilter;\n onSelect: (selected: boolean) => void;\n}\n\nconst TreeStyled = styled(KitTree)`\n font-style: italic;\n`;\n\nconst EMPTY_VALUE_KEY = '0';\n\nexport const EmptyValueCheckbox: FunctionComponent<IEmptyValueCheckboxProps> = ({filter, onSelect}) => {\n const {t} = useSharedTranslation();\n\n const onChange = () => {\n onSelect(!filter.withEmptyValues);\n };\n\n return (\n <TreeStyled\n checkable\n treeData={[{title: t('filters.empty-value'), key: EMPTY_VALUE_KEY, isLeaf: true}]}\n checkedKeys={filter.withEmptyValues ? [EMPTY_VALUE_KEY] : []}\n onSelect={onChange}\n onCheck={onChange}\n />\n );\n};\n"]}
@@ -16,7 +16,7 @@ const FilterDropDownStyledDiv = styled.div `
16
16
  flex-direction: column;
17
17
  gap: calc(var(--general-spacing-xxs) * 1px);
18
18
  `;
19
- export const FilterDropDown = ({ filter, canRemove }) => {
19
+ export const FilterDropDown = ({ filter, canReset, canRemove }) => {
20
20
  const { t } = useSharedTranslation();
21
21
  const { dispatch } = useFiltersContext();
22
22
  const selectDropDownRef = useRef(null);
@@ -36,6 +36,6 @@ export const FilterDropDown = ({ filter, canRemove }) => {
36
36
  id: filter.id,
37
37
  },
38
38
  });
39
- return (_jsxs(FilterDropDownStyledDiv, { children: [_jsx(FilterDropdownContent, { filter: filter, onFilterChange: onFilterChange, selectDropDownRef: selectDropDownRef }), _jsx("div", { ref: selectDropDownRef }), _jsx(KitDivider, { noMargin: true }), _jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faClockRotateLeft }), onClick: _onResetFilter, children: t('global.reset') }), canRemove && (_jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faTrash }), onClick: _onDeleteFilter, danger: true, children: t('global.delete') }))] }));
39
+ return (_jsxs(FilterDropDownStyledDiv, { children: [_jsx(FilterDropdownContent, { filter: filter, onFilterChange: onFilterChange, selectDropDownRef: selectDropDownRef }), _jsx("div", { ref: selectDropDownRef }), _jsx(KitDivider, { noMargin: true }), canReset && (_jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faClockRotateLeft }), onClick: _onResetFilter, children: t('global.reset') })), canRemove && (_jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faTrash }), onClick: _onDeleteFilter, danger: true, children: t('global.delete') }))] }));
40
40
  };
41
41
  //# sourceMappingURL=FilterDropDown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterDropDown.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA8C,MAAM,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAE,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAE7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,EAAE,EAAE;IAC7F,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,QAAQ,EAAC,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAmE,CAAC,UAAoB,EAAE,EAAE,CAC5G,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,oBAAoB;QAC7C,OAAO,EAAE,UAAU;KACtB,CAAC,CAAC;IAEP,MAAM,cAAc,GAAgD,GAAG,EAAE,CACrE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,YAAY;QACrC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,MAAM,eAAe,GAAgD,GAAG,EAAE,CACtE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,aAAa;QACtC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,qBAAqB,IAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACtC,EACF,cAAK,GAAG,EAAE,iBAAiB,GAAI,EAC/B,KAAC,UAAU,IAAC,QAAQ,SAAG,EACvB,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,iBAAiB,GAAI,EAAE,OAAO,EAAE,cAAc,YAC/F,CAAC,CAAC,cAAc,CAAC,GACV,EACX,SAAS,IAAI,CACV,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,GAAI,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAC9F,CAAC,CAAC,eAAe,CAAC,GACX,CACf,IACqB,CAC7B,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useRef} from 'react';\nimport styled from 'styled-components';\nimport {KitDivider, KitButton} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FilterDropdownContent} from './FilterDropdownContent';\nimport {useFiltersContext} from '../../useFiltersContext';\nimport {FiltersActionTypes} from '../../context/filtersReducer';\nimport {type IUIFilterDropDownProps, type UIFilter} from '../../_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faClockRotateLeft, faTrash} from '@fortawesome/free-solid-svg-icons';\n\nconst FilterDropDownStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nexport const FilterDropDown: FunctionComponent<IUIFilterDropDownProps> = ({filter, canRemove}) => {\n const {t} = useSharedTranslation();\n const {dispatch} = useFiltersContext();\n const selectDropDownRef = useRef<HTMLDivElement>(null);\n\n const onFilterChange: ComponentProps<typeof FilterDropdownContent>['onFilterChange'] = (filterData: UIFilter) =>\n dispatch({\n type: FiltersActionTypes.CHANGE_FILTER_CONFIG,\n payload: filterData,\n });\n\n const _onResetFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.RESET_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n const _onDeleteFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.REMOVE_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n return (\n <FilterDropDownStyledDiv>\n <FilterDropdownContent\n filter={filter}\n onFilterChange={onFilterChange}\n selectDropDownRef={selectDropDownRef}\n />\n <div ref={selectDropDownRef} />\n <KitDivider noMargin />\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faClockRotateLeft} />} onClick={_onResetFilter}>\n {t('global.reset')}\n </KitButton>\n {canRemove && (\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faTrash} />} onClick={_onDeleteFilter} danger>\n {t('global.delete')}\n </KitButton>\n )}\n </FilterDropDownStyledDiv>\n );\n};\n"]}
1
+ {"version":3,"file":"FilterDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterDropDown.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA8C,MAAM,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAE,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAE7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAC,EAAE,EAAE;IACvG,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,QAAQ,EAAC,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAmE,CAAC,UAAoB,EAAE,EAAE,CAC5G,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,oBAAoB;QAC7C,OAAO,EAAE,UAAU;KACtB,CAAC,CAAC;IAEP,MAAM,cAAc,GAAgD,GAAG,EAAE,CACrE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,YAAY;QACrC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,MAAM,eAAe,GAAgD,GAAG,EAAE,CACtE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,aAAa;QACtC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,qBAAqB,IAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACtC,EACF,cAAK,GAAG,EAAE,iBAAiB,GAAI,EAC/B,KAAC,UAAU,IAAC,QAAQ,SAAG,EACtB,QAAQ,IAAI,CACT,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,iBAAiB,GAAI,EAAE,OAAO,EAAE,cAAc,YAC/F,CAAC,CAAC,cAAc,CAAC,GACV,CACf,EACA,SAAS,IAAI,CACV,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,GAAI,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAC9F,CAAC,CAAC,eAAe,CAAC,GACX,CACf,IACqB,CAC7B,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useRef} from 'react';\nimport styled from 'styled-components';\nimport {KitDivider, KitButton} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FilterDropdownContent} from './FilterDropdownContent';\nimport {useFiltersContext} from '../../useFiltersContext';\nimport {FiltersActionTypes} from '../../context/filtersReducer';\nimport {type IUIFilterDropDownProps, type UIFilter} from '../../_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faClockRotateLeft, faTrash} from '@fortawesome/free-solid-svg-icons';\n\nconst FilterDropDownStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nexport const FilterDropDown: FunctionComponent<IUIFilterDropDownProps> = ({filter, canReset, canRemove}) => {\n const {t} = useSharedTranslation();\n const {dispatch} = useFiltersContext();\n const selectDropDownRef = useRef<HTMLDivElement>(null);\n\n const onFilterChange: ComponentProps<typeof FilterDropdownContent>['onFilterChange'] = (filterData: UIFilter) =>\n dispatch({\n type: FiltersActionTypes.CHANGE_FILTER_CONFIG,\n payload: filterData,\n });\n\n const _onResetFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.RESET_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n const _onDeleteFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.REMOVE_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n return (\n <FilterDropDownStyledDiv>\n <FilterDropdownContent\n filter={filter}\n onFilterChange={onFilterChange}\n selectDropDownRef={selectDropDownRef}\n />\n <div ref={selectDropDownRef} />\n <KitDivider noMargin />\n {canReset && (\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faClockRotateLeft} />} onClick={_onResetFilter}>\n {t('global.reset')}\n </KitButton>\n )}\n {canRemove && (\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faTrash} />} onClick={_onDeleteFilter} danger>\n {t('global.delete')}\n </KitButton>\n )}\n </FilterDropDownStyledDiv>\n );\n};\n"]}
@@ -5,4 +5,5 @@ export { FiltersProvider } from './FiltersProvider';
5
5
  export { prepareFiltersForRequest } from './prepareFiltersForRequest';
6
6
  export { useFiltersReducer } from './context/useFiltersReducer';
7
7
  export { CommonFilterItem } from './filter-items/CommonFilterItem';
8
+ export { FiltersContext } from './context/filtersContext';
8
9
  export * from './_types';
@@ -8,5 +8,6 @@ export { FiltersProvider } from './FiltersProvider';
8
8
  export { prepareFiltersForRequest } from './prepareFiltersForRequest';
9
9
  export { useFiltersReducer } from './context/useFiltersReducer';
10
10
  export { CommonFilterItem } from './filter-items/CommonFilterItem';
11
+ export { FiltersContext } from './context/filtersContext';
11
12
  export * from './_types';
12
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Filters/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,cAAc,UAAU,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nexport {useFilters} from './useFilters';\nexport {useFiltersContext} from './useFiltersContext';\nexport {useTransformFilters} from './useTransformFilters';\nexport {FiltersProvider} from './FiltersProvider';\nexport {prepareFiltersForRequest} from './prepareFiltersForRequest';\nexport {useFiltersReducer} from './context/useFiltersReducer';\nexport {CommonFilterItem} from './filter-items/CommonFilterItem';\nexport * from './_types';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Filters/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,iBAAiB,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,wBAAwB,EAAC,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAC,gBAAgB,EAAC,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAC,cAAc,EAAC,MAAM,0BAA0B,CAAC;AACxD,cAAc,UAAU,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nexport {useFilters} from './useFilters';\nexport {useFiltersContext} from './useFiltersContext';\nexport {useTransformFilters} from './useTransformFilters';\nexport {FiltersProvider} from './FiltersProvider';\nexport {prepareFiltersForRequest} from './prepareFiltersForRequest';\nexport {useFiltersReducer} from './context/useFiltersReducer';\nexport {CommonFilterItem} from './filter-items/CommonFilterItem';\nexport {FiltersContext} from './context/filtersContext';\nexport * from './_types';\n"]}
@@ -5,6 +5,7 @@ export declare enum PreviewSize {
5
5
  MEDIUM = "medium",
6
6
  BIG = "big"
7
7
  }
8
+ export declare const ACTIVE_ATTRIBUTE_ID = "active";
8
9
  export declare const tagColorByAttributeType: {
9
10
  [key in AttributeType]: [border: string, background: string];
10
11
  };
package/dist/constants.js CHANGED
@@ -12,6 +12,7 @@ export var PreviewSize;
12
12
  PreviewSize["MEDIUM"] = "medium";
13
13
  PreviewSize["BIG"] = "big";
14
14
  })(PreviewSize || (PreviewSize = {}));
15
+ export const ACTIVE_ATTRIBUTE_ID = 'active';
15
16
  export const tagColorByAttributeType = {
16
17
  [AttributeType.simple]: ['purple', '#ffe5ff'],
17
18
  [AttributeType.simple_link]: ['blue', '#e5e5ff'],