@databiosphere/findable-ui 35.1.0 → 36.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +27 -0
- package/lib/common/entities.d.ts +2 -3
- package/lib/components/DataDictionary/components/Entities/constants.d.ts +3 -1
- package/lib/components/DataDictionary/components/Entities/constants.js +6 -2
- package/lib/components/DataDictionary/components/Entities/entities.js +6 -2
- package/lib/components/DataDictionary/components/Entities/entities.styles.d.ts +3 -0
- package/lib/components/DataDictionary/components/Entities/entities.styles.js +5 -0
- package/lib/components/DataDictionary/components/Entity/entity.styles.js +1 -8
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.d.ts +4 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.js +15 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.d.ts +7 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.js +7 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.js +6 -0
- package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.d.ts +6 -0
- package/lib/components/DataDictionary/components/Filters/filters.js +2 -0
- package/lib/components/DataDictionary/components/Filters/filters.styles.js +3 -3
- package/lib/components/DataDictionary/components/Filters/stories/constants.d.ts +1 -0
- package/lib/components/DataDictionary/components/Filters/stories/constants.js +16 -0
- package/lib/components/DataDictionary/components/Filters/stories/filters.stories.js +11 -3
- package/lib/components/DataDictionary/components/Filters/stories/hook.d.ts +4 -0
- package/lib/components/DataDictionary/components/Filters/stories/hook.js +4 -0
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.d.ts +2 -1
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js +4 -4
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.js +1 -4
- package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts +4 -2
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.d.ts +2 -1
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.js +4 -4
- package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.js +4 -1
- package/lib/components/DataDictionary/components/Table/hook.d.ts +2 -2
- package/lib/components/DataDictionary/components/Table/hook.js +8 -4
- package/lib/components/DataDictionary/components/Table/options/columnFilters/constants.js +2 -1
- package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.d.ts +2 -5
- package/lib/components/DataDictionary/components/Table/options/columnFilters/hook.js +8 -6
- package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/constants.js +5 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.d.ts +3 -0
- package/lib/components/DataDictionary/components/Table/options/globalFilter/hook.js +16 -0
- package/lib/components/DataDictionary/components/Table/options/hook.js +7 -5
- package/lib/components/DataDictionary/components/Table/options/pagination/constants.d.ts +2 -0
- package/lib/components/DataDictionary/components/Table/options/pagination/constants.js +3 -0
- package/lib/components/DataDictionary/dataDictionary.d.ts +1 -1
- package/lib/components/DataDictionary/dataDictionary.js +31 -12
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.d.ts +4 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.js +27 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.d.ts +7 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/types.js +1 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.d.ts +6 -0
- package/lib/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.js +8 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.d.ts +2 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/hook.js +17 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.d.ts +7 -0
- package/lib/components/DataDictionary/hooks/UseMeasureFilters/types.js +1 -0
- package/lib/components/DataDictionary/types.d.ts +1 -0
- package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.js +21 -29
- package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestSpreadsheet/fileManifestSpreadsheet.js +21 -36
- package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/constants.d.ts +2 -0
- package/lib/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/constants.js +22 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.d.ts +2 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.js +8 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.d.ts +3 -0
- package/lib/components/Filter/components/FilterCountChip/filterCountChip.styles.js +18 -0
- package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.d.ts +6 -0
- package/lib/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.js +6 -0
- package/lib/components/Filter/components/FilterCountChip/types.d.ts +5 -0
- package/lib/components/Filter/components/FilterCountChip/types.js +1 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
- package/lib/components/Layout/components/Outline/outline.styles.d.ts +1 -1
- package/lib/components/Table/columnDef/globalFilter/constants.d.ts +2 -0
- package/lib/components/Table/columnDef/globalFilter/constants.js +4 -0
- package/lib/components/Table/columnDef/globalFilter/filterFn.d.ts +13 -0
- package/lib/components/Table/columnDef/globalFilter/filterFn.js +24 -0
- package/lib/components/Table/columnDef/globalFilter/types.d.ts +4 -0
- package/lib/components/Table/columnDef/globalFilter/types.js +1 -0
- package/lib/components/Table/columnDef/globalFilter/utils.d.ts +23 -0
- package/lib/components/Table/columnDef/globalFilter/utils.js +57 -0
- package/lib/components/Table/components/TableCell/components/CodeCell/codeCell.d.ts +3 -0
- package/lib/components/Table/components/TableCell/components/CodeCell/codeCell.js +9 -0
- package/lib/components/Table/components/TableCell/components/CodeCell/codeCell.styles.d.ts +5 -0
- package/lib/components/Table/components/TableCell/components/CodeCell/codeCell.styles.js +15 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.d.ts +3 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/rankedCell.js +25 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/utils.d.ts +30 -0
- package/lib/components/Table/components/TableCell/components/RankedCell/utils.js +64 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.js +9 -5
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.d.ts +9 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.js +20 -1
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.js +9 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.d.ts +5 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.js +24 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.js +10 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.js +17 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.js +1 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.d.ts +2 -1
- package/lib/components/Table/components/TableFeatures/ColumnFilter/constants.js +6 -0
- package/lib/components/Table/components/TableFeatures/ColumnFilter/types.d.ts +3 -2
- package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.d.ts +2 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/constants.js +6 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.d.ts +3 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/globalFilter.js +10 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/types.d.ts +6 -0
- package/lib/components/Table/components/TableFeatures/GlobalFilter/types.js +1 -0
- package/lib/components/Table/coreOptions/state/pagination/constants.d.ts +2 -0
- package/lib/components/Table/coreOptions/state/pagination/constants.js +6 -0
- package/lib/components/Table/coreOptions/state/pagination/utils.d.ts +9 -0
- package/lib/components/Table/coreOptions/state/pagination/utils.js +18 -0
- package/lib/components/common/AnchorLink/anchorLink.js +4 -2
- package/lib/components/common/AnchorLink/anchorLink.styles.d.ts +1 -1
- package/lib/components/common/AnchorLink/anchorLink.styles.js +1 -1
- package/lib/components/common/CustomIcon/components/SearchIcon/searchIcon.d.ts +2 -2
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.js +13 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.d.ts +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.js +11 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.d.ts +3 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.js +10 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.d.ts +4 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.js +1 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.js +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.d.ts +1 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.js +9 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.d.ts +2 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/components/constants.js +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.d.ts +5 -0
- package/lib/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.js +5 -0
- package/lib/components/common/OutlinedInput/outlinedInput.styles.d.ts +7 -0
- package/lib/components/common/OutlinedInput/outlinedInput.styles.js +18 -0
- package/lib/hooks/stateSyncManager/hooks/UseMetaCommands/hook.js +2 -2
- package/lib/hooks/stateSyncManager/hooks/UseStateSync/hook.js +3 -3
- package/lib/hooks/stateSyncManager/types.d.ts +1 -1
- package/lib/hooks/useFileManifest/useFileManifestDownload.d.ts +2 -2
- package/lib/hooks/useFileManifest/useFileManifestDownload.js +3 -10
- package/lib/hooks/useFileManifest/useFileManifestSpreadsheet.d.ts +5 -4
- package/lib/hooks/useFileManifest/useFileManifestSpreadsheet.js +24 -20
- package/lib/providers/dataDictionary/context.d.ts +2 -0
- package/lib/providers/dataDictionary/context.js +4 -0
- package/lib/providers/dataDictionary/hook.d.ts +6 -0
- package/lib/providers/dataDictionary/hook.js +9 -0
- package/lib/providers/dataDictionary/types.d.ts +3 -0
- package/lib/providers/dataDictionary/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/action.js +12 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.d.ts +6 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/dispatch.js +11 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/types.d.ts +6 -0
- package/lib/providers/dataDictionaryState/actions/clearMeta/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/action.js +14 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/types.d.ts +12 -0
- package/lib/providers/dataDictionaryState/actions/stateToUrl/types.js +5 -0
- package/lib/providers/dataDictionaryState/actions/types.d.ts +13 -0
- package/lib/providers/dataDictionaryState/actions/types.js +8 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/action.js +18 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.d.ts +10 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.d.ts +11 -0
- package/lib/providers/dataDictionaryState/actions/updateColumnFilters/utils.js +27 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/action.js +19 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.d.ts +10 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/types.js +1 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.d.ts +17 -0
- package/lib/providers/dataDictionaryState/actions/updateGlobalFilter/utils.js +36 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/action.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/action.js +20 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.d.ts +7 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/dispatch.js +12 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/types.d.ts +9 -0
- package/lib/providers/dataDictionaryState/actions/urlToState/types.js +1 -0
- package/lib/providers/dataDictionaryState/context.d.ts +2 -0
- package/lib/providers/dataDictionaryState/context.js +6 -0
- package/lib/providers/dataDictionaryState/dictionaries/constants.d.ts +4 -0
- package/lib/providers/dataDictionaryState/dictionaries/constants.js +4 -0
- package/lib/providers/dataDictionaryState/dictionaries/state.d.ts +11 -0
- package/lib/providers/dataDictionaryState/dictionaries/state.js +29 -0
- package/lib/providers/dataDictionaryState/dictionaries/types.d.ts +9 -0
- package/lib/providers/dataDictionaryState/dictionaries/types.js +1 -0
- package/lib/providers/dataDictionaryState/dictionaries/utils.d.ts +14 -0
- package/lib/providers/dataDictionaryState/dictionaries/utils.js +20 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.d.ts +2 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.js +6 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.d.ts +4 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.js +1 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.d.ts +2 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.js +9 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.d.ts +6 -0
- package/lib/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.js +9 -0
- package/lib/providers/dataDictionaryState/initializer/constants.d.ts +2 -0
- package/lib/providers/dataDictionaryState/initializer/constants.js +4 -0
- package/lib/providers/dataDictionaryState/initializer/initializer.d.ts +9 -0
- package/lib/providers/dataDictionaryState/initializer/initializer.js +17 -0
- package/lib/providers/dataDictionaryState/initializer/utils.d.ts +8 -0
- package/lib/providers/dataDictionaryState/initializer/utils.js +29 -0
- package/lib/providers/dataDictionaryState/provider.d.ts +4 -0
- package/lib/providers/dataDictionaryState/provider.js +7 -0
- package/lib/providers/dataDictionaryState/reducer.d.ts +9 -0
- package/lib/providers/dataDictionaryState/reducer.js +34 -0
- package/lib/providers/dataDictionaryState/types.d.ts +15 -0
- package/lib/providers/dataDictionaryState/types.js +1 -0
- package/lib/styles/common/mui/iconButton.d.ts +11 -0
- package/lib/styles/common/mui/iconButton.js +29 -0
- package/lib/styles/common/mui/inputAdornment.d.ts +9 -0
- package/lib/styles/common/mui/inputAdornment.js +13 -0
- package/lib/styles/common/mui/outlinedInput.d.ts +7 -0
- package/lib/styles/common/mui/outlinedInput.js +7 -0
- package/lib/theme/common/components.js +122 -16
- package/lib/theme/components/muiButtonGroup.js +4 -0
- package/lib/theme/components/muiTableCell.js +6 -0
- package/lib/utils/parseJsonQueryParam.d.ts +14 -0
- package/lib/utils/parseJsonQueryParam.js +25 -0
- package/lib/utils/stateToUrlQuery.d.ts +15 -0
- package/lib/utils/stateToUrlQuery.js +35 -0
- package/lib/views/DataDictionaryView/dataDictionaryView.d.ts +2 -2
- package/lib/views/DataDictionaryView/dataDictionaryView.js +16 -2
- package/lib/views/DataDictionaryView/types.d.ts +4 -0
- package/lib/views/DataDictionaryView/types.js +1 -0
- package/lib/views/DataDictionaryView/utils.d.ts +12 -0
- package/lib/views/DataDictionaryView/utils.js +17 -0
- package/lib/views/ExploreView/utils.d.ts +1 -1
- package/lib/views/ExploreView/utils.js +1 -1
- package/package.json +2 -1
- package/src/common/entities.ts +2 -3
- package/src/components/DataDictionary/components/Entities/constants.ts +9 -3
- package/src/components/DataDictionary/components/Entities/entities.styles.ts +6 -0
- package/src/components/DataDictionary/components/Entities/entities.tsx +7 -2
- package/src/components/DataDictionary/components/Entity/entity.styles.ts +1 -10
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.styles.ts +8 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/columnFilterTags.tsx +33 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/constants.ts +8 -0
- package/src/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.ts +8 -0
- package/src/components/DataDictionary/components/Filters/filters.styles.ts +3 -3
- package/src/components/DataDictionary/components/Filters/filters.tsx +2 -0
- package/src/components/DataDictionary/components/Filters/stories/constants.ts +18 -0
- package/src/components/DataDictionary/components/Filters/stories/filters.stories.tsx +15 -3
- package/src/components/DataDictionary/components/Filters/stories/hook.ts +8 -0
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.styles.ts +1 -5
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.tsx +13 -7
- package/src/components/DataDictionary/components/Layout/components/EntitiesLayout/types.ts +4 -2
- package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.styles.ts +4 -1
- package/src/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.tsx +13 -7
- package/src/components/DataDictionary/components/Table/hook.ts +10 -6
- package/src/components/DataDictionary/components/Table/options/columnFilters/constants.ts +2 -1
- package/src/components/DataDictionary/components/Table/options/columnFilters/hook.ts +13 -12
- package/src/components/DataDictionary/components/Table/options/globalFilter/constants.ts +14 -0
- package/src/components/DataDictionary/components/Table/options/globalFilter/hook.ts +28 -0
- package/src/components/DataDictionary/components/Table/options/hook.ts +9 -11
- package/src/components/DataDictionary/components/Table/options/pagination/constants.ts +6 -0
- package/src/components/DataDictionary/dataDictionary.tsx +45 -16
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/hook.ts +38 -0
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/types.ts +8 -0
- package/src/components/DataDictionary/hooks/UseDataDictionaryConfig/utils.ts +8 -0
- package/src/components/DataDictionary/hooks/UseMeasureFilters/hook.ts +27 -0
- package/src/components/DataDictionary/hooks/UseMeasureFilters/types.ts +6 -0
- package/src/components/DataDictionary/types.ts +1 -0
- package/src/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestDownload/fileManifestDownload.tsx +43 -71
- package/src/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/components/FileManifestSpreadsheet/fileManifestSpreadsheet.tsx +52 -74
- package/src/components/Export/components/ManifestDownload/components/ManifestDownloadEntity/constants.ts +24 -0
- package/src/components/Filter/components/FilterCountChip/filterCountChip.styles.ts +19 -0
- package/src/components/Filter/components/FilterCountChip/filterCountChip.tsx +21 -0
- package/src/components/Filter/components/FilterCountChip/stories/filterCountChip.stories.tsx +12 -0
- package/src/components/Filter/components/FilterCountChip/types.ts +6 -0
- package/src/components/Table/columnDef/globalFilter/constants.ts +5 -0
- package/src/components/Table/columnDef/globalFilter/filterFn.ts +34 -0
- package/src/components/Table/columnDef/globalFilter/types.ts +5 -0
- package/src/components/Table/columnDef/globalFilter/utils.ts +74 -0
- package/src/components/Table/components/TableCell/components/CodeCell/codeCell.styles.ts +16 -0
- package/src/components/Table/components/TableCell/components/CodeCell/codeCell.tsx +21 -0
- package/src/components/Table/components/TableCell/components/RankedCell/rankedCell.tsx +50 -0
- package/src/components/Table/components/TableCell/components/RankedCell/utils.ts +85 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.styles.ts +26 -1
- package/src/components/Table/components/TableFeatures/ColumnFilter/columnFilter.tsx +11 -5
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.styles.ts +25 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag.tsx +31 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/constants.ts +13 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/stories/columFilterTag.stories.tsx +26 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/types.ts +9 -0
- package/src/components/Table/components/TableFeatures/ColumnFilter/constants.ts +8 -1
- package/src/components/Table/components/TableFeatures/ColumnFilter/types.ts +3 -2
- package/src/components/Table/components/TableFeatures/GlobalFilter/constants.ts +8 -0
- package/src/components/Table/components/TableFeatures/GlobalFilter/globalFilter.tsx +33 -0
- package/src/components/Table/components/TableFeatures/GlobalFilter/types.ts +9 -0
- package/src/components/Table/coreOptions/state/pagination/constants.ts +8 -0
- package/src/components/Table/coreOptions/state/pagination/utils.ts +21 -0
- package/src/components/common/AnchorLink/anchorLink.styles.ts +1 -1
- package/src/components/common/AnchorLink/anchorLink.tsx +9 -3
- package/src/components/common/CustomIcon/components/SearchIcon/searchIcon.tsx +2 -3
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.styles.ts +12 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/clearInputAdornment.tsx +21 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/constants.ts +13 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/ClearInputAdornment/types.ts +4 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/constants.ts +7 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/SearchInputAdornment/searchInputAdornment.tsx +13 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/components/constants.ts +7 -0
- package/src/components/common/OutlinedInput/components/InputAdornment/inputAdornment.styles.ts +6 -0
- package/src/components/common/OutlinedInput/outlinedInput.styles.ts +24 -0
- package/src/hooks/stateSyncManager/hooks/UseMetaCommands/hook.ts +2 -2
- package/src/hooks/stateSyncManager/hooks/UseStateSync/hook.ts +3 -3
- package/src/hooks/stateSyncManager/types.ts +1 -1
- package/src/hooks/useFileManifest/useFileManifestDownload.ts +9 -16
- package/src/hooks/useFileManifest/useFileManifestSpreadsheet.ts +41 -26
- package/src/providers/dataDictionary/context.ts +6 -0
- package/src/providers/dataDictionary/hook.ts +11 -0
- package/src/providers/dataDictionary/types.ts +6 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/action.ts +18 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/dispatch.ts +13 -0
- package/src/providers/dataDictionaryState/actions/clearMeta/types.ts +8 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/action.ts +20 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/dispatch.ts +14 -0
- package/src/providers/dataDictionaryState/actions/stateToUrl/types.ts +15 -0
- package/src/providers/dataDictionaryState/actions/types.ts +20 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/action.ts +24 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/dispatch.ts +16 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/types.ts +12 -0
- package/src/providers/dataDictionaryState/actions/updateColumnFilters/utils.ts +41 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/action.ts +25 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/dispatch.ts +16 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/types.ts +12 -0
- package/src/providers/dataDictionaryState/actions/updateGlobalFilter/utils.ts +50 -0
- package/src/providers/dataDictionaryState/actions/urlToState/action.ts +28 -0
- package/src/providers/dataDictionaryState/actions/urlToState/dispatch.ts +14 -0
- package/src/providers/dataDictionaryState/actions/urlToState/types.ts +11 -0
- package/src/providers/dataDictionaryState/context.ts +9 -0
- package/src/providers/dataDictionaryState/dictionaries/constants.ts +4 -0
- package/src/providers/dataDictionaryState/dictionaries/state.ts +45 -0
- package/src/providers/dataDictionaryState/dictionaries/types.ts +11 -0
- package/src/providers/dataDictionaryState/dictionaries/utils.ts +25 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/hook.ts +14 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryInitialArgs/types.ts +5 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryReducer/hook.ts +17 -0
- package/src/providers/dataDictionaryState/hooks/UseDataDictionaryState/hook.ts +11 -0
- package/src/providers/dataDictionaryState/initializer/constants.ts +6 -0
- package/src/providers/dataDictionaryState/initializer/initializer.ts +22 -0
- package/src/providers/dataDictionaryState/initializer/utils.ts +39 -0
- package/src/providers/dataDictionaryState/provider.tsx +16 -0
- package/src/providers/dataDictionaryState/reducer.ts +42 -0
- package/src/providers/dataDictionaryState/types.ts +18 -0
- package/src/styles/common/mui/iconButton.ts +40 -0
- package/src/styles/common/mui/inputAdornment.ts +22 -0
- package/src/styles/common/mui/outlinedInput.ts +14 -0
- package/src/theme/common/components.ts +122 -16
- package/src/theme/components/muiButtonGroup.ts +4 -0
- package/src/theme/components/muiTableCell.ts +6 -0
- package/src/utils/parseJsonQueryParam.ts +27 -0
- package/src/utils/stateToUrlQuery.ts +40 -0
- package/src/views/DataDictionaryView/dataDictionaryView.tsx +29 -3
- package/src/views/DataDictionaryView/types.ts +5 -0
- package/src/views/DataDictionaryView/utils.ts +23 -0
- package/src/views/ExploreView/utils.ts +1 -1
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.d.ts +0 -4
- package/lib/components/DataDictionary/hooks/UseDataDictionary/hook.js +0 -36
- package/lib/components/DataDictionary/hooks/UseDataDictionary/types.d.ts +0 -8
- package/src/components/DataDictionary/hooks/UseDataDictionary/hook.ts +0 -51
- package/src/components/DataDictionary/hooks/UseDataDictionary/types.ts +0 -9
- /package/lib/components/DataDictionary/{hooks/UseDataDictionary → components/Filters/components/ColumnFilterTags}/types.js +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [36.0.0](https://github.com/DataBiosphere/findable-ui/compare/v35.2.0...v36.0.0) (2025-06-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### ⚠ BREAKING CHANGES
|
|
7
|
+
|
|
8
|
+
* add global search to data dictionary ([#528](https://github.com/DataBiosphere/findable-ui/issues/528)) (#535)
|
|
9
|
+
* add provider with reducer for data dictionary state ([#505](https://github.com/DataBiosphere/findable-ui/issues/505)) (#526)
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* add filter tags to data dictionary ([#529](https://github.com/DataBiosphere/findable-ui/issues/529)) ([#536](https://github.com/DataBiosphere/findable-ui/issues/536)) ([30c368d](https://github.com/DataBiosphere/findable-ui/commit/30c368d97f9dfee89f82d108e0a4622a058da53e))
|
|
14
|
+
* add global search to data dictionary ([#528](https://github.com/DataBiosphere/findable-ui/issues/528)) ([#535](https://github.com/DataBiosphere/findable-ui/issues/535)) ([d189f5f](https://github.com/DataBiosphere/findable-ui/commit/d189f5fe632f6949d76ac52c631ad0ea93070d56))
|
|
15
|
+
* add provider with reducer for data dictionary state ([#505](https://github.com/DataBiosphere/findable-ui/issues/505)) ([#526](https://github.com/DataBiosphere/findable-ui/issues/526)) ([b17f412](https://github.com/DataBiosphere/findable-ui/commit/b17f412ab0358a43fd0e5faf5d009d253bd3c5a6))
|
|
16
|
+
* highlight global search text in table results ([#533](https://github.com/DataBiosphere/findable-ui/issues/533)) ([#537](https://github.com/DataBiosphere/findable-ui/issues/537)) ([f9b8d24](https://github.com/DataBiosphere/findable-ui/commit/f9b8d2444ab34ad0a9aa5d4806eb0a88c7bc6d17))
|
|
17
|
+
|
|
18
|
+
## [35.2.0](https://github.com/DataBiosphere/findable-ui/compare/v35.1.0...v35.2.0) (2025-06-16)
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### Features
|
|
22
|
+
|
|
23
|
+
* add table <code> element ([#525](https://github.com/DataBiosphere/findable-ui/issues/525)) ([#527](https://github.com/DataBiosphere/findable-ui/issues/527)) ([02cb3b6](https://github.com/DataBiosphere/findable-ui/commit/02cb3b698b25a4295fc5ea2048541869301b918f))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
### Bug Fixes
|
|
27
|
+
|
|
28
|
+
* make user request project metadata by clicking the request link button ([#530](https://github.com/DataBiosphere/findable-ui/issues/530)) ([#531](https://github.com/DataBiosphere/findable-ui/issues/531)) ([b645e0f](https://github.com/DataBiosphere/findable-ui/commit/b645e0fe5604dfc7fc195f91747d4a7985b39e4d))
|
|
29
|
+
|
|
3
30
|
## [35.1.0](https://github.com/DataBiosphere/findable-ui/compare/v35.0.3...v35.1.0) (2025-06-05)
|
|
4
31
|
|
|
5
32
|
|
package/lib/common/entities.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RowData, TableOptions } from "@tanstack/react-table";
|
|
2
2
|
/**
|
|
3
3
|
* Model of a value of a metadata class.
|
|
4
4
|
*/
|
|
@@ -63,10 +63,9 @@ export interface DataDictionary<T extends RowData = Attribute> {
|
|
|
63
63
|
* dictionary) as well as column def for displaying the data dictionary.
|
|
64
64
|
*/
|
|
65
65
|
export interface DataDictionaryConfig<T extends RowData = Attribute> {
|
|
66
|
-
columnDefs: ColumnDef<T, T[keyof T]>[];
|
|
67
66
|
dataDictionary: DataDictionary<T>;
|
|
68
67
|
path: string;
|
|
69
|
-
tableOptions
|
|
68
|
+
tableOptions: Omit<TableOptions<T>, "data" | "getCoreRowModel">;
|
|
70
69
|
}
|
|
71
70
|
/**
|
|
72
71
|
* Label and description values from a data dictionary that are added to a site
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { GridProps } from "@mui/material";
|
|
2
|
-
|
|
2
|
+
import { ComponentProps } from "react";
|
|
3
|
+
import { NoResults } from "../../../NoResults/noResults";
|
|
3
4
|
export declare const GRID_PROPS: GridProps;
|
|
5
|
+
export declare const NO_RESULTS_PROPS: ComponentProps<typeof NoResults>;
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
import { StyledRoundedPaper } from "./entities.styles";
|
|
2
2
|
export const GRID_PROPS = {
|
|
3
3
|
container: true,
|
|
4
4
|
direction: "column",
|
|
5
5
|
flexWrap: "nowrap",
|
|
6
|
-
rowGap:
|
|
6
|
+
rowGap: 8,
|
|
7
|
+
};
|
|
8
|
+
export const NO_RESULTS_PROPS = {
|
|
9
|
+
Paper: StyledRoundedPaper,
|
|
10
|
+
title: "No results found",
|
|
7
11
|
};
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { Grid } from "@mui/material";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { NoResults } from "../../../NoResults/noResults";
|
|
3
4
|
import { Entity } from "../Entity/entity";
|
|
4
|
-
import { GRID_PROPS } from "./constants";
|
|
5
|
+
import { GRID_PROPS, NO_RESULTS_PROPS } from "./constants";
|
|
5
6
|
export const Entities = ({ spacing, table, }) => {
|
|
6
7
|
const { getGroupedRowModel } = table;
|
|
7
|
-
|
|
8
|
+
const { rows } = getGroupedRowModel();
|
|
9
|
+
if (rows.length === 0)
|
|
10
|
+
return React.createElement(NoResults, { ...NO_RESULTS_PROPS });
|
|
11
|
+
return (React.createElement(Grid, { ...GRID_PROPS }, rows.map((row) => (React.createElement(Entity, { key: row.id, row: row, spacing: spacing, table: table })))));
|
|
8
12
|
};
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import styled from "@emotion/styled";
|
|
2
2
|
import { Typography } from "@mui/material";
|
|
3
|
-
import { ENTITIES_ROW_GAP } from "../Entities/constants";
|
|
4
|
-
import { LAYOUT_SPACING } from "../Layout/constants";
|
|
5
|
-
const TOP = ENTITIES_ROW_GAP +
|
|
6
|
-
LAYOUT_SPACING.TITLE_HEIGHT +
|
|
7
|
-
LAYOUT_SPACING.FILTERS_HEIGHT +
|
|
8
|
-
LAYOUT_SPACING.FILTERS_PADDING_TOP +
|
|
9
|
-
LAYOUT_SPACING.CONTENT_PADDING_TOP;
|
|
10
3
|
export const StyledTypography = styled(Typography) `
|
|
11
|
-
scroll-margin-top: ${({ top = 0 }) => top
|
|
4
|
+
scroll-margin-top: ${({ top = 0 }) => top}px;
|
|
12
5
|
|
|
13
6
|
&:hover a {
|
|
14
7
|
opacity: 1;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { RowData } from "@tanstack/react-table";
|
|
2
|
+
import { Attribute } from "../../../../../../common/entities";
|
|
3
|
+
import { ColumnFilterTagsProps } from "./types";
|
|
4
|
+
export declare const ColumnFilterTags: <T extends RowData = Attribute>({ className, table, }: ColumnFilterTagsProps<T>) => JSX.Element | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Button } from "@mui/material";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { BUTTON_PROPS } from "../../../../../../styles/common/mui/button";
|
|
4
|
+
import { ColumnFilterTag } from "../../../../../Table/components/TableFeatures/ColumnFilter/components/ColumnFilterTag/columnFilterTag";
|
|
5
|
+
import { StyledGrid } from "./columnFilterTags.styles";
|
|
6
|
+
import { GRID_PROPS } from "./constants";
|
|
7
|
+
export const ColumnFilterTags = ({ className, table, }) => {
|
|
8
|
+
const { getAllColumns, resetColumnFilters } = table;
|
|
9
|
+
const columns = getAllColumns().filter((column) => column.getIsFiltered());
|
|
10
|
+
if (columns.length === 0)
|
|
11
|
+
return null;
|
|
12
|
+
return (React.createElement(StyledGrid, { className: className, ...GRID_PROPS },
|
|
13
|
+
columns.map((column) => (React.createElement(ColumnFilterTag, { key: column.id, column: column }))),
|
|
14
|
+
React.createElement(Button, { onClick: () => resetColumnFilters(true), variant: BUTTON_PROPS.VARIANT.TEXT }, "Clear all")));
|
|
15
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const StyledGrid: import("@emotion/styled").StyledComponent<import("@mui/material").GridBaseProps & {
|
|
2
|
+
sx?: import("@mui/material").SxProps<import("@mui/material").Theme>;
|
|
3
|
+
} & import("@mui/system").SystemProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
4
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
5
|
+
}, ("p" | "fontSize" | "fontWeight" | "lineHeight" | "letterSpacing" | "textTransform" | "color" | "border" | "borderTop" | "borderRight" | "borderBottom" | "borderLeft" | "borderColor" | "borderRadius" | "display" | "displayPrint" | "overflow" | "textOverflow" | "visibility" | "whiteSpace" | "flexBasis" | "flexDirection" | "flexWrap" | "justifyContent" | "alignItems" | "alignContent" | "order" | "flex" | "flexGrow" | "flexShrink" | "alignSelf" | "justifyItems" | "justifySelf" | "gap" | "columnGap" | "rowGap" | "gridColumn" | "gridRow" | "gridAutoFlow" | "gridAutoColumns" | "gridAutoRows" | "gridTemplateColumns" | "gridTemplateRows" | "gridTemplateAreas" | "gridArea" | "bgcolor" | "zIndex" | "position" | "top" | "right" | "bottom" | "left" | "boxShadow" | "width" | "maxWidth" | "minWidth" | "height" | "maxHeight" | "minHeight" | "boxSizing" | "m" | "mt" | "mr" | "mb" | "ml" | "mx" | "my" | "pt" | "pr" | "pb" | "pl" | "px" | "py" | "margin" | "marginTop" | "marginRight" | "marginBottom" | "marginLeft" | "marginX" | "marginY" | "marginInline" | "marginInlineStart" | "marginInlineEnd" | "marginBlock" | "marginBlockStart" | "marginBlockEnd" | "padding" | "paddingTop" | "paddingRight" | "paddingBottom" | "paddingLeft" | "paddingX" | "paddingY" | "paddingInline" | "paddingInlineStart" | "paddingInlineEnd" | "paddingBlock" | "paddingBlockStart" | "paddingBlockEnd" | "typography" | "fontFamily" | "fontStyle" | "textAlign") | "sx" | keyof import("@mui/material").GridBaseProps> & {
|
|
6
|
+
theme?: import("@emotion/react").Theme;
|
|
7
|
+
}, {}, {}>;
|
package/lib/components/DataDictionary/components/Filters/components/ColumnFilterTags/types.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { RowData, Table } from "@tanstack/react-table";
|
|
2
|
+
import { Attribute } from "../../../../../../common/entities";
|
|
3
|
+
import { BaseComponentProps } from "../../../../../types";
|
|
4
|
+
export interface ColumnFilterTagsProps<T extends RowData = Attribute> extends BaseComponentProps {
|
|
5
|
+
table: Table<T>;
|
|
6
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
import { GlobalFilter } from "../../../Table/components/TableFeatures/GlobalFilter/globalFilter";
|
|
2
3
|
import { ColumnFilters } from "./components/ColumnFilters/columnFilters";
|
|
3
4
|
import { StyledGrid } from "./filters.styles";
|
|
4
5
|
export const Filters = ({ table, }) => {
|
|
5
6
|
return (React.createElement(StyledGrid, null,
|
|
7
|
+
React.createElement(GlobalFilter, { placeholder: "Search all attributes...", table: table }),
|
|
6
8
|
React.createElement(ColumnFilters, { table: table })));
|
|
7
9
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import styled from "@emotion/styled";
|
|
2
2
|
import { Grid } from "@mui/material";
|
|
3
|
-
import {
|
|
3
|
+
import { mediaTabletDown } from "../../../../styles/common/mixins/breakpoints";
|
|
4
4
|
export const StyledGrid = styled(Grid) `
|
|
5
5
|
align-items: center;
|
|
6
6
|
display: grid;
|
|
7
7
|
gap: 16px;
|
|
8
8
|
grid-template-columns: 1fr auto;
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
grid-
|
|
10
|
+
${mediaTabletDown} {
|
|
11
|
+
grid-template-columns: 1fr;
|
|
12
12
|
}
|
|
13
13
|
`;
|
|
@@ -1,22 +1,38 @@
|
|
|
1
|
+
import { fn } from "@storybook/test";
|
|
1
2
|
export const BIONETWORK = {
|
|
2
3
|
columnDef: { header: "BioNetwork" },
|
|
3
4
|
getCanFilter: () => true,
|
|
5
|
+
getCanGlobalFilter: () => false,
|
|
4
6
|
getFacetedUniqueValues: () => new Map([
|
|
5
7
|
["Nervous System", 3],
|
|
6
8
|
["Brain", 2],
|
|
7
9
|
["Lung", 1],
|
|
8
10
|
]),
|
|
11
|
+
getFilterValue: () => ["Nervous System", "Brain"],
|
|
9
12
|
id: "bioNetwork",
|
|
13
|
+
setFilterValue: fn(),
|
|
14
|
+
};
|
|
15
|
+
export const DESCRIPTION = {
|
|
16
|
+
columnDef: { header: "Description" },
|
|
17
|
+
getCanFilter: () => false,
|
|
18
|
+
getCanGlobalFilter: () => true,
|
|
19
|
+
getFacetedUniqueValues: () => new Map([
|
|
20
|
+
["Platform used for single cell library construction.", 1],
|
|
21
|
+
["Platform used for sequencing.", 1],
|
|
22
|
+
]),
|
|
23
|
+
id: "description",
|
|
10
24
|
};
|
|
11
25
|
export const EXAMPLE = {
|
|
12
26
|
columnDef: { header: "Example" },
|
|
13
27
|
getCanFilter: () => false,
|
|
28
|
+
getCanGlobalFilter: () => false,
|
|
14
29
|
getFacetedUniqueValues: () => new Map([["EFO:0008563", 1]]),
|
|
15
30
|
id: "example",
|
|
16
31
|
};
|
|
17
32
|
export const REQUIRED = {
|
|
18
33
|
columnDef: { header: "Required" },
|
|
19
34
|
getCanFilter: () => true,
|
|
35
|
+
getCanGlobalFilter: () => false,
|
|
20
36
|
getFacetedUniqueValues: () => new Map([
|
|
21
37
|
["Required", 16],
|
|
22
38
|
["Not Required", 30],
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
import { Box } from "@mui/material";
|
|
1
2
|
import { action } from "@storybook/addon-actions";
|
|
2
3
|
import { functionalUpdate } from "@tanstack/react-table";
|
|
3
4
|
import React from "react";
|
|
4
5
|
import { Filters } from "../filters";
|
|
5
|
-
import { BIONETWORK, EXAMPLE, REQUIRED } from "./constants";
|
|
6
|
-
import { useFilterStore } from "./hook";
|
|
6
|
+
import { BIONETWORK, DESCRIPTION, EXAMPLE, REQUIRED } from "./constants";
|
|
7
|
+
import { useFilterStore, useGlobalFilterStore } from "./hook";
|
|
7
8
|
const meta = {
|
|
8
9
|
component: Filters,
|
|
10
|
+
decorators: [
|
|
11
|
+
(Story) => (React.createElement(Box, { sx: { width: 600 } },
|
|
12
|
+
React.createElement(Story, null))),
|
|
13
|
+
],
|
|
9
14
|
};
|
|
10
15
|
export default meta;
|
|
11
16
|
const DefaultStory = () => {
|
|
12
17
|
const { filterStore, setFilterStore } = useFilterStore();
|
|
18
|
+
const { globalFilter, setGlobalFilter } = useGlobalFilterStore();
|
|
13
19
|
const makeColumn = (column) => ({
|
|
14
20
|
...column,
|
|
15
21
|
getFilterValue: () => filterStore[column.id],
|
|
@@ -22,7 +28,9 @@ const DefaultStory = () => {
|
|
|
22
28
|
},
|
|
23
29
|
});
|
|
24
30
|
const table = {
|
|
25
|
-
getAllColumns: () => [REQUIRED, BIONETWORK, EXAMPLE].map(makeColumn),
|
|
31
|
+
getAllColumns: () => [DESCRIPTION, REQUIRED, BIONETWORK, EXAMPLE].map(makeColumn),
|
|
32
|
+
getState: () => ({ globalFilter }),
|
|
33
|
+
setGlobalFilter,
|
|
26
34
|
};
|
|
27
35
|
return React.createElement(Filters, { table: table });
|
|
28
36
|
};
|
|
@@ -3,3 +3,7 @@ export declare function useFilterStore(): {
|
|
|
3
3
|
filterStore: Record<string, unknown>;
|
|
4
4
|
setFilterStore: Dispatch<SetStateAction<Record<string, unknown>>>;
|
|
5
5
|
};
|
|
6
|
+
export declare function useGlobalFilterStore(): {
|
|
7
|
+
globalFilter: string | undefined;
|
|
8
|
+
setGlobalFilter: Dispatch<SetStateAction<string | undefined>>;
|
|
9
|
+
};
|
|
@@ -3,3 +3,7 @@ export function useFilterStore() {
|
|
|
3
3
|
const [filterStore, setFilterStore] = useState({});
|
|
4
4
|
return { filterStore, setFilterStore };
|
|
5
5
|
}
|
|
6
|
+
export function useGlobalFilterStore() {
|
|
7
|
+
const [globalFilter, setGlobalFilter] = useState();
|
|
8
|
+
return { globalFilter, setGlobalFilter };
|
|
9
|
+
}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { EntitiesLayoutProps } from "./types";
|
|
2
|
-
export declare const EntitiesLayout:
|
|
3
|
+
export declare const EntitiesLayout: React.ForwardRefExoticComponent<EntitiesLayoutProps & React.RefAttributes<HTMLDivElement>>;
|
package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/entitiesLayout.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
2
|
import { Layout } from "./entitiesLayout.styles";
|
|
3
|
-
export const EntitiesLayout = ({ children, ...props })
|
|
4
|
-
return React.createElement(Layout, { ...props }, children);
|
|
5
|
-
};
|
|
3
|
+
export const EntitiesLayout = forwardRef(function EntitiesLayout({ children, spacing, ...props }, ref) {
|
|
4
|
+
return (React.createElement(Layout, { ref: ref, ...spacing, ...props }, children));
|
|
5
|
+
});
|
|
@@ -3,14 +3,11 @@ import { mediaTabletDown } from "../../../../../../styles/common/mixins/breakpoi
|
|
|
3
3
|
import { LAYOUT_SPACING } from "../../constants";
|
|
4
4
|
const PB = LAYOUT_SPACING.CONTENT_PADDING_BOTTOM; /* bottom padding */
|
|
5
5
|
const PT = LAYOUT_SPACING.CONTENT_PADDING_TOP; /* top padding */
|
|
6
|
-
const FILTERS_HEIGHT = LAYOUT_SPACING.FILTERS_HEIGHT +
|
|
7
|
-
LAYOUT_SPACING.FILTERS_PADDING_TOP; /* filters height */
|
|
8
|
-
const TITLE_HEIGHT = LAYOUT_SPACING.TITLE_HEIGHT; /* title height */
|
|
9
6
|
export const Layout = styled("div") `
|
|
10
7
|
grid-column: 2;
|
|
11
8
|
grid-row: 1;
|
|
12
9
|
padding-bottom: ${PB}px;
|
|
13
|
-
padding-top: ${({ top }) => top
|
|
10
|
+
padding-top: ${({ top }) => top}px;
|
|
14
11
|
z-index: 1; /* not required, but helpful in that the entities are always on top */
|
|
15
12
|
|
|
16
13
|
${mediaTabletDown} {
|
package/lib/components/DataDictionary/components/Layout/components/EntitiesLayout/types.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import { ReactNode } from "react";
|
|
1
|
+
import { CSSProperties, ReactNode } from "react";
|
|
2
2
|
import { LayoutSpacing } from "../../../../hooks/UseLayoutSpacing/types";
|
|
3
|
-
export interface EntitiesLayoutProps
|
|
3
|
+
export interface EntitiesLayoutProps {
|
|
4
4
|
children: ReactNode;
|
|
5
|
+
spacing: LayoutSpacing;
|
|
6
|
+
style?: CSSProperties;
|
|
5
7
|
}
|
package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.d.ts
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
|
+
import React from "react";
|
|
1
2
|
import { FiltersLayoutProps } from "./types";
|
|
2
|
-
export declare const FiltersLayout:
|
|
3
|
+
export declare const FiltersLayout: React.ForwardRefExoticComponent<FiltersLayoutProps & React.RefAttributes<HTMLDivElement>>;
|
package/lib/components/DataDictionary/components/Layout/components/FiltersLayout/filtersLayout.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import React from "react";
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
2
|
import { Layout } from "./filtersLayout.styles";
|
|
3
|
-
export const FiltersLayout = ({ children, ...props })
|
|
4
|
-
return React.createElement(Layout, { ...props }, children);
|
|
5
|
-
};
|
|
3
|
+
export const FiltersLayout = forwardRef(function FiltersLayout({ children, ...props }, ref) {
|
|
4
|
+
return (React.createElement(Layout, { ref: ref, ...props }, children));
|
|
5
|
+
});
|
|
@@ -8,9 +8,11 @@ const TITLE_HEIGHT = LAYOUT_SPACING.TITLE_HEIGHT; /* title height */
|
|
|
8
8
|
export const Layout = styled("div") `
|
|
9
9
|
align-self: flex-start;
|
|
10
10
|
background-color: ${PALETTE.BACKGROUND_DEFAULT};
|
|
11
|
+
display: grid;
|
|
12
|
+
gap: 12px;
|
|
11
13
|
grid-column: 2;
|
|
12
14
|
grid-row: 1;
|
|
13
|
-
|
|
15
|
+
padding-bottom: ${PB}px;
|
|
14
16
|
padding-top: ${({ top }) => top + TITLE_HEIGHT + PT}px;
|
|
15
17
|
position: sticky;
|
|
16
18
|
top: 0;
|
|
@@ -20,5 +22,6 @@ export const Layout = styled("div") `
|
|
|
20
22
|
grid-column: 1;
|
|
21
23
|
grid-row: auto;
|
|
22
24
|
padding-top: ${PT}px;
|
|
25
|
+
position: relative;
|
|
23
26
|
}
|
|
24
27
|
`;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { RowData, Table, TableOptions } from "@tanstack/react-table";
|
|
2
2
|
import { Attribute, Class } from "../../../../common/entities";
|
|
3
|
-
export declare const useTable: <T extends RowData = Attribute>(
|
|
3
|
+
export declare const useTable: <T extends RowData = Attribute>(dictionary: string, classes: Class<T>[], tableOptions: Omit<TableOptions<T>, "data" | "getCoreRowModel">) => Table<T>;
|
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
import { useReactTable, } from "@tanstack/react-table";
|
|
2
2
|
import { useMemo } from "react";
|
|
3
|
+
import { useDataDictionaryState } from "../../../../providers/dataDictionaryState/hooks/UseDataDictionaryState/hook";
|
|
3
4
|
import { useTableOptions } from "./options/hook";
|
|
4
5
|
import { buildClassMeta, buildTableData } from "./utils";
|
|
5
|
-
export const useTable = (
|
|
6
|
-
//
|
|
6
|
+
export const useTable = (dictionary, classes, tableOptions) => {
|
|
7
|
+
// Table data.
|
|
7
8
|
const data = useMemo(() => buildTableData(classes), [classes]);
|
|
8
9
|
// Default table options.
|
|
9
10
|
const defaultTableOptions = useTableOptions();
|
|
10
11
|
// Build class meta.
|
|
11
12
|
const classMeta = useMemo(() => buildClassMeta(classes), [classes]);
|
|
13
|
+
// Table state.
|
|
14
|
+
const { dataDictionaryState } = useDataDictionaryState();
|
|
15
|
+
const { dictionaries } = dataDictionaryState;
|
|
16
|
+
const { state = {} } = dictionaries?.[dictionary] || {};
|
|
12
17
|
// Table instance.
|
|
13
18
|
return useReactTable({
|
|
14
19
|
...defaultTableOptions,
|
|
15
20
|
...tableOptions,
|
|
16
|
-
columns: columnDefs,
|
|
17
21
|
data,
|
|
18
|
-
manualPagination: true,
|
|
19
22
|
meta: { classMeta },
|
|
23
|
+
state,
|
|
20
24
|
});
|
|
21
25
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { getFilteredRowModel, } from "@tanstack/react-table";
|
|
2
2
|
import { arrIncludesSome } from "../../../../../Table/columnDef/columnFilters/filterFn";
|
|
3
|
+
import { fuzzy } from "../../../../../Table/columnDef/globalFilter/filterFn";
|
|
3
4
|
export const COLUMN_FILTERS_OPTIONS = {
|
|
4
5
|
enableColumnFilters: true,
|
|
5
6
|
enableFilters: true,
|
|
6
|
-
filterFns: { arrIncludesSome },
|
|
7
|
+
filterFns: { arrIncludesSome, fuzzy },
|
|
7
8
|
getFilteredRowModel: getFilteredRowModel(),
|
|
8
9
|
};
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { ColumnFiltersOptions,
|
|
2
|
-
import { Dispatch, SetStateAction } from "react";
|
|
1
|
+
import { ColumnFiltersOptions, RowData } from "@tanstack/react-table";
|
|
3
2
|
import { Attribute } from "../../../../../../common/entities";
|
|
4
|
-
export declare const useColumnFiltersOptions: <T extends RowData = Attribute>(
|
|
5
|
-
setColumnFilters: Dispatch<SetStateAction<ColumnFiltersState>>;
|
|
6
|
-
}) => ColumnFiltersOptions<T>;
|
|
3
|
+
export declare const useColumnFiltersOptions: <T extends RowData = Attribute>() => ColumnFiltersOptions<T>;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { useDataDictionary } from "../../../../../../providers/dataDictionary/hook";
|
|
3
|
+
import { updateColumnFilters } from "../../../../../../providers/dataDictionaryState/actions/updateColumnFilters/dispatch";
|
|
4
|
+
import { useDataDictionaryState } from "../../../../../../providers/dataDictionaryState/hooks/UseDataDictionaryState/hook";
|
|
3
5
|
import { COLUMN_FILTERS_OPTIONS } from "./constants";
|
|
4
|
-
export const useColumnFiltersOptions = (
|
|
5
|
-
|
|
6
|
-
|
|
6
|
+
export const useColumnFiltersOptions = () => {
|
|
7
|
+
const { dictionary } = useDataDictionary();
|
|
8
|
+
const { dataDictionaryDispatch } = useDataDictionaryState();
|
|
7
9
|
const onColumnFiltersChange = useCallback((updaterOrValue) => {
|
|
8
|
-
|
|
9
|
-
}, [
|
|
10
|
+
dataDictionaryDispatch?.(updateColumnFilters({ dictionary, updaterOrValue }));
|
|
11
|
+
}, [dataDictionaryDispatch, dictionary]);
|
|
10
12
|
return {
|
|
11
13
|
...COLUMN_FILTERS_OPTIONS,
|
|
12
14
|
onColumnFiltersChange,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useDataDictionary } from "../../../../../../providers/dataDictionary/hook";
|
|
3
|
+
import { updateGlobalFilter } from "../../../../../../providers/dataDictionaryState/actions/updateGlobalFilter/dispatch";
|
|
4
|
+
import { useDataDictionaryState } from "../../../../../../providers/dataDictionaryState/hooks/UseDataDictionaryState/hook";
|
|
5
|
+
import { GLOBAL_FILTER_OPTIONS } from "./constants";
|
|
6
|
+
export const useGlobalFilterOptions = () => {
|
|
7
|
+
const { dictionary } = useDataDictionary();
|
|
8
|
+
const { dataDictionaryDispatch } = useDataDictionaryState();
|
|
9
|
+
const onGlobalFilterChange = useCallback((updaterOrValue) => {
|
|
10
|
+
dataDictionaryDispatch?.(updateGlobalFilter({ dictionary, updaterOrValue }));
|
|
11
|
+
}, [dataDictionaryDispatch, dictionary]);
|
|
12
|
+
return {
|
|
13
|
+
...GLOBAL_FILTER_OPTIONS,
|
|
14
|
+
onGlobalFilterChange,
|
|
15
|
+
};
|
|
16
|
+
};
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import { useState } from "react";
|
|
2
1
|
import { useColumnFiltersOptions } from "./columnFilters/hook";
|
|
3
2
|
import { CORE_OPTIONS } from "./core/constants";
|
|
4
3
|
import { EXPANDED_OPTIONS } from "./expanded/constants";
|
|
5
4
|
import { FACETED_OPTIONS } from "./faceted/constants";
|
|
5
|
+
import { useGlobalFilterOptions } from "./globalFilter/hook";
|
|
6
6
|
import { GROUPING_OPTIONS } from "./grouping/constants";
|
|
7
|
+
import { PAGINATION_OPTIONS } from "./pagination/constants";
|
|
7
8
|
import { SORTING_OPTIONS } from "./sorting/constants";
|
|
8
9
|
import { VISIBILITY_OPTIONS } from "./visibility/constants";
|
|
9
10
|
export const useTableOptions = () => {
|
|
10
|
-
// Column filters state - to be moved to a provider with a reducer.
|
|
11
|
-
const [columnFilters, setColumnFilters] = useState([]);
|
|
12
11
|
// Column filters options.
|
|
13
|
-
const columnFiltersOptions = useColumnFiltersOptions(
|
|
12
|
+
const columnFiltersOptions = useColumnFiltersOptions();
|
|
13
|
+
// Global filter options.
|
|
14
|
+
const globalFilterOptions = useGlobalFilterOptions();
|
|
14
15
|
// Table options.
|
|
15
16
|
return {
|
|
16
17
|
...columnFiltersOptions,
|
|
17
18
|
...CORE_OPTIONS,
|
|
18
19
|
...EXPANDED_OPTIONS,
|
|
19
20
|
...FACETED_OPTIONS,
|
|
21
|
+
...globalFilterOptions,
|
|
20
22
|
...GROUPING_OPTIONS,
|
|
23
|
+
...PAGINATION_OPTIONS,
|
|
21
24
|
...SORTING_OPTIONS,
|
|
22
25
|
...VISIBILITY_OPTIONS,
|
|
23
|
-
state: { columnFilters },
|
|
24
26
|
};
|
|
25
27
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { RowData } from "@tanstack/react-table";
|
|
2
2
|
import { Attribute } from "../../common/entities";
|
|
3
3
|
import { DataDictionaryProps } from "./types";
|
|
4
|
-
export declare const DataDictionary: <T extends RowData = Attribute>({ className, EntitiesLayout, FiltersLayout, Outline, OutlineLayout, Title, TitleLayout, }: DataDictionaryProps) => JSX.Element;
|
|
4
|
+
export declare const DataDictionary: <T extends RowData = Attribute>({ className, dictionary, EntitiesLayout, FiltersLayout, Outline, OutlineLayout, Title, TitleLayout, }: DataDictionaryProps) => JSX.Element;
|