@bigbinary/neeto-molecules 3.16.102 → 4.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/dist/AuditLogs.js +6 -1
- package/dist/AuditLogs.js.map +1 -1
- package/dist/CalendarView.js +9 -2
- package/dist/CalendarView.js.map +1 -1
- package/dist/Columns.js +9 -2
- package/dist/Columns.js.map +1 -1
- package/dist/SubHeader.js +22 -47
- package/dist/SubHeader.js.map +1 -1
- package/dist/Taxonomy.js +6 -2
- package/dist/Taxonomy.js.map +1 -1
- package/dist/cjs/AuditLogs.js +6 -1
- package/dist/cjs/AuditLogs.js.map +1 -1
- package/dist/cjs/CalendarView.js +9 -2
- package/dist/cjs/CalendarView.js.map +1 -1
- package/dist/cjs/Columns.js +11 -2
- package/dist/cjs/Columns.js.map +1 -1
- package/dist/cjs/SubHeader.js +20 -45
- package/dist/cjs/SubHeader.js.map +1 -1
- package/dist/cjs/Taxonomy.js +6 -2
- package/dist/cjs/Taxonomy.js.map +1 -1
- package/dist/cjs/useColumns-XlhUVahw.js +578 -0
- package/dist/cjs/useColumns-XlhUVahw.js.map +1 -0
- package/dist/useColumns-ZmJggX3n.js +568 -0
- package/dist/useColumns-ZmJggX3n.js.map +1 -0
- package/package.json +3 -1
- package/src/translations/en.json +3 -2
- package/types/Columns.d.ts +53 -5
- package/types/SubHeader.d.ts +1 -3
- package/dist/cjs/useColumns-BP8c4PV-.js +0 -282
- package/dist/cjs/useColumns-BP8c4PV-.js.map +0 -1
- package/dist/useColumns-Db5uic1-.js +0 -274
- package/dist/useColumns-Db5uic1-.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useColumns-ZmJggX3n.js","sources":["../node_modules/@dnd-kit/utilities/dist/utilities.esm.js","../src/components/Columns/Item.jsx","../src/components/Columns/api.js","../src/components/Columns/constants.js","../src/components/Columns/useTableConfigurationsApi.js","../src/components/Columns/useTableConfigurations.js","../src/components/Columns/utils.js","../src/components/Columns/Columns.jsx","../src/components/Columns/useHiddenColumns.js","../src/components/Columns/useColumns.js"],"sourcesContent":["import { useMemo, useLayoutEffect, useEffect, useRef, useCallback } from 'react';\n\nfunction useCombinedRefs() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n return useMemo(() => node => {\n refs.forEach(ref => ref(node));\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n refs);\n}\n\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nconst canUseDOM = typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined';\n\nfunction isWindow(element) {\n const elementString = Object.prototype.toString.call(element);\n return elementString === '[object Window]' || // In Electron context the Window object serializes to [object global]\n elementString === '[object global]';\n}\n\nfunction isNode(node) {\n return 'nodeType' in node;\n}\n\nfunction getWindow(target) {\n var _target$ownerDocument, _target$ownerDocument2;\n\n if (!target) {\n return window;\n }\n\n if (isWindow(target)) {\n return target;\n }\n\n if (!isNode(target)) {\n return window;\n }\n\n return (_target$ownerDocument = (_target$ownerDocument2 = target.ownerDocument) == null ? void 0 : _target$ownerDocument2.defaultView) != null ? _target$ownerDocument : window;\n}\n\nfunction isDocument(node) {\n const {\n Document\n } = getWindow(node);\n return node instanceof Document;\n}\n\nfunction isHTMLElement(node) {\n if (isWindow(node)) {\n return false;\n }\n\n return node instanceof getWindow(node).HTMLElement;\n}\n\nfunction isSVGElement(node) {\n return node instanceof getWindow(node).SVGElement;\n}\n\nfunction getOwnerDocument(target) {\n if (!target) {\n return document;\n }\n\n if (isWindow(target)) {\n return target.document;\n }\n\n if (!isNode(target)) {\n return document;\n }\n\n if (isDocument(target)) {\n return target;\n }\n\n if (isHTMLElement(target) || isSVGElement(target)) {\n return target.ownerDocument;\n }\n\n return document;\n}\n\n/**\r\n * A hook that resolves to useEffect on the server and useLayoutEffect on the client\r\n * @param callback {function} Callback function that is invoked when the dependencies of the hook change\r\n */\n\nconst useIsomorphicLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\n\nfunction useEvent(handler) {\n const handlerRef = useRef(handler);\n useIsomorphicLayoutEffect(() => {\n handlerRef.current = handler;\n });\n return useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return handlerRef.current == null ? void 0 : handlerRef.current(...args);\n }, []);\n}\n\nfunction useInterval() {\n const intervalRef = useRef(null);\n const set = useCallback((listener, duration) => {\n intervalRef.current = setInterval(listener, duration);\n }, []);\n const clear = useCallback(() => {\n if (intervalRef.current !== null) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n }, []);\n return [set, clear];\n}\n\nfunction useLatestValue(value, dependencies) {\n if (dependencies === void 0) {\n dependencies = [value];\n }\n\n const valueRef = useRef(value);\n useIsomorphicLayoutEffect(() => {\n if (valueRef.current !== value) {\n valueRef.current = value;\n }\n }, dependencies);\n return valueRef;\n}\n\nfunction useLazyMemo(callback, dependencies) {\n const valueRef = useRef();\n return useMemo(() => {\n const newValue = callback(valueRef.current);\n valueRef.current = newValue;\n return newValue;\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [...dependencies]);\n}\n\nfunction useNodeRef(onChange) {\n const onChangeHandler = useEvent(onChange);\n const node = useRef(null);\n const setNodeRef = useCallback(element => {\n if (element !== node.current) {\n onChangeHandler == null ? void 0 : onChangeHandler(element, node.current);\n }\n\n node.current = element;\n }, //eslint-disable-next-line\n []);\n return [node, setNodeRef];\n}\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nlet ids = {};\nfunction useUniqueId(prefix, value) {\n return useMemo(() => {\n if (value) {\n return value;\n }\n\n const id = ids[prefix] == null ? 0 : ids[prefix] + 1;\n ids[prefix] = id;\n return prefix + \"-\" + id;\n }, [prefix, value]);\n}\n\nfunction createAdjustmentFn(modifier) {\n return function (object) {\n for (var _len = arguments.length, adjustments = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n adjustments[_key - 1] = arguments[_key];\n }\n\n return adjustments.reduce((accumulator, adjustment) => {\n const entries = Object.entries(adjustment);\n\n for (const [key, valueAdjustment] of entries) {\n const value = accumulator[key];\n\n if (value != null) {\n accumulator[key] = value + modifier * valueAdjustment;\n }\n }\n\n return accumulator;\n }, { ...object\n });\n };\n}\n\nconst add = /*#__PURE__*/createAdjustmentFn(1);\nconst subtract = /*#__PURE__*/createAdjustmentFn(-1);\n\nfunction hasViewportRelativeCoordinates(event) {\n return 'clientX' in event && 'clientY' in event;\n}\n\nfunction isKeyboardEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n KeyboardEvent\n } = getWindow(event.target);\n return KeyboardEvent && event instanceof KeyboardEvent;\n}\n\nfunction isTouchEvent(event) {\n if (!event) {\n return false;\n }\n\n const {\n TouchEvent\n } = getWindow(event.target);\n return TouchEvent && event instanceof TouchEvent;\n}\n\n/**\r\n * Returns the normalized x and y coordinates for mouse and touch events.\r\n */\n\nfunction getEventCoordinates(event) {\n if (isTouchEvent(event)) {\n if (event.touches && event.touches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.touches[0];\n return {\n x,\n y\n };\n } else if (event.changedTouches && event.changedTouches.length) {\n const {\n clientX: x,\n clientY: y\n } = event.changedTouches[0];\n return {\n x,\n y\n };\n }\n }\n\n if (hasViewportRelativeCoordinates(event)) {\n return {\n x: event.clientX,\n y: event.clientY\n };\n }\n\n return null;\n}\n\nconst CSS = /*#__PURE__*/Object.freeze({\n Translate: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n x,\n y\n } = transform;\n return \"translate3d(\" + (x ? Math.round(x) : 0) + \"px, \" + (y ? Math.round(y) : 0) + \"px, 0)\";\n }\n\n },\n Scale: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n const {\n scaleX,\n scaleY\n } = transform;\n return \"scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\";\n }\n\n },\n Transform: {\n toString(transform) {\n if (!transform) {\n return;\n }\n\n return [CSS.Translate.toString(transform), CSS.Scale.toString(transform)].join(' ');\n }\n\n },\n Transition: {\n toString(_ref) {\n let {\n property,\n duration,\n easing\n } = _ref;\n return property + \" \" + duration + \"ms \" + easing;\n }\n\n }\n});\n\nconst SELECTOR = 'a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]';\nfunction findFirstFocusableNode(element) {\n if (element.matches(SELECTOR)) {\n return element;\n }\n\n return element.querySelector(SELECTOR);\n}\n\nexport { CSS, add, canUseDOM, findFirstFocusableNode, getEventCoordinates, getOwnerDocument, getWindow, hasViewportRelativeCoordinates, isDocument, isHTMLElement, isKeyboardEvent, isNode, isSVGElement, isTouchEvent, isWindow, subtract, useCombinedRefs, useEvent, useInterval, useIsomorphicLayoutEffect, useLatestValue, useLazyMemo, useNodeRef, usePrevious, useUniqueId };\n//# sourceMappingURL=utilities.esm.js.map\n","import { useSortable } from \"@dnd-kit/sortable\";\nimport { CSS } from \"@dnd-kit/utilities\";\nimport { Drag } from \"neetoicons\";\nimport { Checkbox, Label } from \"neetoui\";\n\nconst Item = ({ column, hiddenColumns, checkboxProps, onToggle }) => {\n const { key, title } = column;\n const {\n attributes,\n listeners,\n setNodeRef,\n transform,\n transition,\n isDragging,\n } = useSortable({ id: key });\n\n const dragStyle = {\n transform: isDragging ? CSS.Transform.toString(transform) : undefined,\n transition,\n opacity: isDragging ? 0.5 : 1,\n };\n\n return (\n <div\n className=\"neeto-molecules-columns__sortable-item\"\n ref={setNodeRef}\n style={dragStyle}\n >\n <Label\n className=\"neeto-ui-flex neeto-ui-w-full hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer neeto-ui-items-center px-4 py-2\"\n htmlFor={key}\n >\n <div\n {...attributes}\n {...listeners}\n className=\"neeto-ui-mr-2 neeto-ui-cursor-grab neeto-ui-flex neeto-ui-items-center\"\n >\n <Drag className=\"neeto-ui-text-gray-400\" size={16} />\n </div>\n <Checkbox\n checked={!hiddenColumns.includes(key)}\n data-cy=\"neeto-ui-columns-checkbox\"\n id={key}\n label={title}\n name={key}\n onChange={onToggle}\n {...checkboxProps}\n />\n </Label>\n </div>\n );\n};\n\nexport default Item;\n","import axios from \"axios\";\n\nconst baseUrl = \"api/v1/table_configurations\";\n\nconst fetch = tableKey => axios.get(`${baseUrl}/${tableKey}`);\n\nconst create = payload => axios.post(baseUrl, { tableConfiguration: payload });\n\nconst update = ({ tableKey, payload }) =>\n axios.patch(`${baseUrl}/${tableKey}`, { tableConfiguration: payload });\n\nconst destroy = tableKey => axios.delete(`${baseUrl}/${tableKey}`);\n\nconst tableConfigurationApi = { fetch, create, update, destroy };\n\nexport default tableConfigurationApi;\n","export const HIDDEN_COLUMNS_STORAGE_KEY = \"neeto-molecules-hidden-columns\";\nexport const COLUMNS_ORDER_STORAGE_KEY = \"neeto-molecules-columns-order\";\nexport const TABLE_CONFIGURATION_QUERY_KEY = \"table-configuration\";\n","import { useQuery } from \"@tanstack/react-query\";\nimport useMutationWithInvalidation from \"neetocommons/react-utils/useMutationWithInvalidation\";\n\nimport tableConfigurationApi from \"./api\";\nimport { TABLE_CONFIGURATION_QUERY_KEY } from \"./constants.js\";\n\nconst useFetchTableConfiguration = ({ tableKey, options = {} }) =>\n useQuery({\n queryKey: [TABLE_CONFIGURATION_QUERY_KEY, tableKey],\n enabled: !!tableKey,\n queryFn: () => tableConfigurationApi.fetch(tableKey),\n ...options,\n });\n\nconst useUpdateTableConfiguration = tableKey =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n });\n\nconst useDestroyTableConfiguration = tableKey =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (tableKey, columnData) => {\n const { data: tableConfiguration, isLoading } = useFetchTableConfiguration({\n tableKey,\n });\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(tableKey);\n const { mutate: destroyConfiguration } =\n useDestroyTableConfiguration(tableKey);\n\n const processColumnsWithConfiguration = useCallback(\n (originalColumns = [], existingColumnConfiguration = []) => {\n if (isEmpty(existingColumnConfiguration)) {\n return originalColumns;\n }\n\n const originalColumnsByKey = new Map(\n originalColumns?.filter(prop(\"key\")).map(column => [column.key, column])\n );\n\n const configurationByKey = new Map(\n existingColumnConfiguration.map(config => [config.key, config])\n );\n\n const orderedConfiguredColumns = existingColumnConfiguration\n .map(config => originalColumnsByKey.get(config.key))\n .filter(Boolean);\n\n const unconfiguredOriginalColumns = originalColumns.filter(\n column => column.key && !configurationByKey.has(column.key)\n );\n\n return [...orderedConfiguredColumns, ...unconfiguredOriginalColumns];\n },\n []\n );\n\n const hasAdditionalColumns = useMemo(() => {\n if (!tableConfiguration?.columns || !columnData) {\n return false;\n }\n\n const configurationKeys = pluck(\"key\", tableConfiguration.columns).sort();\n const dataKeys = pluck(\"key\", columnData).sort();\n\n return isNotEqualDeep(configurationKeys, dataKeys);\n }, [tableConfiguration, columnData]);\n\n const shouldApplyTableConfiguration = useMemo(\n () =>\n !isLoading &&\n tableConfiguration?.columns &&\n isNotEmpty(tableConfiguration?.columns) &&\n !hasAdditionalColumns,\n [tableConfiguration, isLoading, hasAdditionalColumns]\n );\n\n useEffect(() => {\n if (hasAdditionalColumns && tableConfiguration) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey]);\n\n const allProcessedColumns = useMemo(() => {\n if (\n !isLoading &&\n isNotEmpty(tableConfiguration?.columns) &&\n !hasAdditionalColumns\n ) {\n return processColumnsWithConfiguration(\n columnData,\n tableConfiguration?.columns\n );\n }\n\n return columnData || [];\n }, [\n isLoading,\n tableConfiguration?.columns,\n hasAdditionalColumns,\n columnData,\n processColumnsWithConfiguration,\n ]);\n\n const customizedColumns = useMemo(() => {\n if (shouldApplyTableConfiguration) {\n const visibleColumnKeys = pluck(\n \"key\",\n tableConfiguration.columns.filter(prop(\"isShown\"))\n );\n\n return allProcessedColumns.filter(column =>\n visibleColumnKeys.includes(column.key)\n );\n }\n\n return columnData || [];\n }, [\n allProcessedColumns,\n columnData,\n tableConfiguration?.columns,\n shouldApplyTableConfiguration,\n ]);\n\n const existingColumnConfiguration = useMemo(() => {\n if (shouldApplyTableConfiguration) {\n return tableConfiguration.columns;\n }\n\n if (!columnData || isEmpty(columnData)) {\n return [];\n }\n\n return columnData.map(column => ({ key: column.key, isShown: true }));\n }, [shouldApplyTableConfiguration, columnData, tableConfiguration?.columns]);\n\n const updateColumns = updatedColumns => {\n updateConfiguration({\n tableKey,\n payload: { table_key: tableKey, columns: updatedColumns },\n });\n };\n\n const hideColumn = columnKey => {\n updateColumns(\n existingColumnConfiguration.map(column =>\n column.key === columnKey ? { ...column, isShown: false } : column\n )\n );\n };\n\n const showColumn = columnKey => {\n updateColumns(\n existingColumnConfiguration.map(column =>\n column.key === columnKey ? { ...column, isShown: true } : column\n )\n );\n };\n\n const reorderColumns = newOrder => {\n updateColumns(newOrder);\n };\n\n return {\n customizedColumns, // Only visible columns (for displaying the columns in the table)\n allProcessedColumns, // All columns (for displaying the columns in the Subheader)\n isTableConfigurationLoading: isLoading,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n reorderColumns,\n destroyConfiguration,\n };\n};\n\nexport default useTableConfigurations;\n","import { existsBy, removeBy } from \"neetocist\";\nimport { filter, includes, toLower, trim } from \"ramda\";\n\nexport const getHidableColumns = columnData =>\n removeBy({ isHidable: false }, columnData);\n\nexport const filterBySearchTerm = (searchTerm, columns) =>\n filter(\n ({ title }) => includes(trim(toLower(searchTerm)), trim(toLower(title))),\n columns\n );\n\nexport const removeDeletedColumns = (hiddenColumns, columnData) =>\n hiddenColumns.filter(hiddenColumn =>\n existsBy({ dataIndex: hiddenColumn }, columnData)\n );\n","import { useState } from \"react\";\n\nimport { DndContext } from \"@dnd-kit/core\";\nimport { SortableContext } from \"@dnd-kit/sortable\";\nimport i18next from \"i18next\";\nimport { isNotEmpty, findIndexBy } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { isEmpty, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./columns.scss\";\nimport Item from \"./Item\";\nimport useTableConfigurations from \"./useTableConfigurations.js\";\nimport { filterBySearchTerm, getHidableColumns } from \"./utils.js\";\n\nconst Columns = ({\n actionBlock,\n checkboxProps = {},\n columnData = [],\n isSearchable = false,\n tableKey = \"\",\n noColumnMessage = i18next.t(\"neetoMolecules.columns.noColumns\"),\n searchProps = {},\n ...dropdownProps\n}) => {\n const { Divider, Menu, MenuItem } = Dropdown;\n const [searchTerm, setSearchTerm] = useState(\"\");\n const { t } = useTranslation();\n\n const {\n allProcessedColumns,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n reorderColumns,\n destroyConfiguration,\n } = useTableConfigurations(tableKey, columnData);\n\n const hiddenColumns = pluck(\n \"key\",\n existingColumnConfiguration.filter(column => !column.isShown)\n );\n\n const handleDragEnd = event => {\n const { active, over } = event;\n if (!over || active.id === over.id) return;\n\n const oldIndex = findIndexBy(\n { key: active.id },\n existingColumnConfiguration\n );\n\n const newIndex = findIndexBy({ key: over.id }, existingColumnConfiguration);\n\n if (oldIndex === -1 || newIndex === -1) return;\n\n const newOrder = [...existingColumnConfiguration];\n const [movedItem] = newOrder.splice(oldIndex, 1);\n newOrder.splice(newIndex, 0, movedItem);\n reorderColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleChange = ({ target: { name: dataIndex, checked } }) => {\n if (checked) showColumn(dataIndex);\n else hideColumn(dataIndex);\n };\n\n const handleSearch = ({ target: { value } }) => setSearchTerm(value);\n\n return (\n <Dropdown\n appendTo={document.body}\n buttonSize=\"medium\"\n buttonStyle=\"text\"\n closeOnSelect={false}\n position=\"bottom-end\"\n onClose={() => setSearchTerm(\"\")}\n {...dropdownProps}\n >\n <Menu>\n <div className=\"neeto-molecules-columns__container\">\n {isSearchable && (\n <Input\n className=\"px-4 py-2\"\n data-cy=\"neeto-ui-columns-search\"\n data-testid=\"neeto-ui-columns-search\"\n placeholder={t(\"neetoMolecules.columns.search\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={handleSearch}\n {...searchProps}\n />\n )}\n {isEmpty(filteredColumns) && (\n <span className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-p-2\">\n {noColumnMessage}\n </span>\n )}\n {isNotEmpty(filteredColumns) && !searchTerm && (\n <DndContext onDragEnd={handleDragEnd}>\n <SortableContext items={pluck(\"key\", filteredColumns)}>\n {filteredColumns.map(column => (\n <Item\n {...{ checkboxProps, column, hiddenColumns }}\n key={column.key}\n onToggle={handleChange}\n />\n ))}\n </SortableContext>\n </DndContext>\n )}\n {isNotEmpty(filteredColumns) &&\n searchTerm &&\n filteredColumns.map(({ key, title }) => (\n <MenuItem key={key}>\n <Label\n className=\"neeto-ui-flex neeto-ui-w-full hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer px-4 py-2\"\n htmlFor={key}\n >\n <Checkbox\n checked={!hiddenColumns.includes(key)}\n data-cy=\"neeto-ui-columns-checkbox\"\n id={key}\n label={title}\n name={key}\n onChange={handleChange}\n {...checkboxProps}\n />\n </Label>\n </MenuItem>\n ))}\n <Divider />\n {!!actionBlock && (\n <>\n {actionBlock}\n <Divider />\n </>\n )}\n <div className=\"flex justify-end p-1 pr-3\">\n <Button\n data-cy=\"column-visibility-reset-button\"\n label={t(\"neetoMolecules.columns.reset\")}\n style=\"secondary\"\n onClick={() => destroyConfiguration(tableKey)}\n />\n </div>\n </div>\n </Menu>\n </Dropdown>\n );\n};\n\nColumns.propTypes = {\n /**\n * Extra action items that can be added at the end of the dropdown (optional).\n */\n actionBlock: PropTypes.element,\n /**\n * Additional props for the checkboxes in the dropdown (optional).\n */\n checkboxProps: PropTypes.object,\n /**\n * The list of columns from which the dropdown options are built (required).\n */\n columnData: PropTypes.array,\n /**\n * Controls whether the dropdown options should be searchable (optional).\n */\n isSearchable: PropTypes.bool,\n /**\n * The table key used to identify table configuration in the API (required).\n */\n tableKey: PropTypes.string,\n /**\n * The message to be shown when there are no columns to be displayed in the dropdown (optional).\n */\n noColumnMessage: PropTypes.string,\n /**\n * Props to be passed to the search input in the column dropdown. Only works when `isSearchable` is set to `true` (optional).\n */\n searchProps: PropTypes.object,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\n","import { useEffect } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport {\n getFromLocalStorage,\n removeFromLocalStorage,\n} from \"neetocommons/utils/general\";\nimport { __, without, includes, isEmpty, equals, union } from \"ramda\";\nimport { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\nimport { HIDDEN_COLUMNS_STORAGE_KEY } from \"./constants\";\nimport { removeDeletedColumns } from \"./utils\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useHiddenColumnStore = create(\n persist(() => ({}), { name: HIDDEN_COLUMNS_STORAGE_KEY })\n);\n\nconst useHiddenColumns = (localStorageKey, initialValue = []) => {\n const hiddenColumns = useHiddenColumnStore(state => state[localStorageKey]);\n const setHiddenColumns = columns =>\n useHiddenColumnStore.setState({ [localStorageKey]: columns });\n\n // Migrates values from old location to new zustand location.\n useEffect(() => {\n const oldValue = getFromLocalStorage(localStorageKey);\n if (oldValue) {\n setHiddenColumns(oldValue);\n removeFromLocalStorage(localStorageKey);\n } else if (!hiddenColumns) {\n setHiddenColumns(initialValue);\n }\n }, [localStorageKey]);\n\n const hideColumn = columns =>\n setHiddenColumns(\n union(hiddenColumns, Array.isArray(columns) ? columns : [columns])\n );\n\n const showColumn = columns =>\n setHiddenColumns(\n without(Array.isArray(columns) ? columns : [columns], hiddenColumns)\n );\n\n const getVisibleColumnData = columnData =>\n removeBy({ dataIndex: includes(__, hiddenColumns || []) }, columnData);\n\n const onColumnDataChange = columnData => {\n if (isEmpty(columnData) || !hiddenColumns) return;\n const newHiddenColumns = removeDeletedColumns(hiddenColumns, columnData);\n if (!equals(newHiddenColumns, hiddenColumns)) {\n setHiddenColumns(newHiddenColumns);\n }\n };\n\n return {\n hiddenColumns,\n hideColumn,\n showColumn,\n getVisibleColumnData,\n onColumnDataChange,\n };\n};\n\nexport { useHiddenColumns, useHiddenColumnStore };\n","import { identity, isEmpty, pipe } from \"ramda\";\nimport { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\nimport { COLUMNS_ORDER_STORAGE_KEY } from \"./constants\";\nimport { useHiddenColumns } from \"./useHiddenColumns\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useColumnOrderStore = create(\n persist(() => ({}), { name: COLUMNS_ORDER_STORAGE_KEY })\n);\n\nconst useColumns = ({\n localStorageKey,\n initialHiddenColumns,\n initialOrder = [],\n}) => {\n const columnOrder =\n useColumnOrderStore(state => state[localStorageKey]) || initialOrder;\n\n const setColumnOrder = columns =>\n useColumnOrderStore.setState({ [localStorageKey]: columns });\n\n const { hiddenColumns, getVisibleColumnData, ...hiddenColumnHelpers } =\n useHiddenColumns(localStorageKey, initialHiddenColumns);\n\n const orderColumns = columnData => {\n if (isEmpty(columnOrder)) return columnData;\n\n return columnData.sort((a, b) => {\n if (\n !columnOrder.includes(a.dataIndex) ||\n !columnOrder.includes(b.dataIndex)\n ) {\n return 0;\n }\n\n return (\n columnOrder.indexOf(a.dataIndex) - columnOrder.indexOf(b.dataIndex)\n );\n });\n };\n\n const getColumnData = ({\n columnData,\n isHidable = true,\n isReOrderable = false,\n }) =>\n pipe(\n isHidable ? getVisibleColumnData : identity,\n isReOrderable ? orderColumns : identity\n )(columnData);\n\n return {\n ...hiddenColumnHelpers,\n hiddenColumns,\n columnOrder,\n getVisibleColumnData,\n setColumnOrder,\n getColumnData,\n };\n};\n\nexport { useColumns, useColumnOrderStore };\n"],"names":["Item","_ref","column","hiddenColumns","checkboxProps","onToggle","key","title","_useSortable","useSortable","id","attributes","listeners","setNodeRef","transform","transition","isDragging","dragStyle","CSS","Transform","toString","undefined","opacity","_jsx","className","ref","style","children","_jsxs","Label","htmlFor","_objectSpread","Drag","size","Checkbox","checked","includes","label","name","onChange","baseUrl","fetch","tableKey","axios","get","concat","create","payload","post","tableConfiguration","update","patch","destroy","tableConfigurationApi","HIDDEN_COLUMNS_STORAGE_KEY","COLUMNS_ORDER_STORAGE_KEY","TABLE_CONFIGURATION_QUERY_KEY","useFetchTableConfiguration","_ref$options","options","useQuery","queryKey","enabled","queryFn","useUpdateTableConfiguration","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","_useFetchTableConfigu","data","isLoading","_useUpdateTableConfig","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","arguments","length","existingColumnConfiguration","isEmpty","originalColumnsByKey","Map","filter","prop","map","configurationByKey","config","orderedConfiguredColumns","Boolean","unconfiguredOriginalColumns","has","_toConsumableArray","hasAdditionalColumns","useMemo","columns","configurationKeys","pluck","sort","dataKeys","isNotEqualDeep","shouldApplyTableConfiguration","isNotEmpty","useEffect","allProcessedColumns","customizedColumns","visibleColumnKeys","isShown","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","reorderColumns","newOrder","isTableConfigurationLoading","getHidableColumns","removeBy","isHidable","filterBySearchTerm","searchTerm","trim","toLower","removeDeletedColumns","hiddenColumn","existsBy","dataIndex","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","active","over","oldIndex","findIndexBy","newIndex","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleChange","_ref2","_ref2$target","target","handleSearch","_ref3","value","appendTo","document","body","buttonSize","buttonStyle","closeOnSelect","position","onClose","Input","placeholder","prefix","Search","type","DndContext","onDragEnd","SortableContext","items","_createElement","_ref4","_Fragment","Button","onClick","displayName","useHiddenColumnStore","persist","useHiddenColumns","localStorageKey","initialValue","state","setHiddenColumns","setState","_defineProperty","oldValue","getFromLocalStorage","removeFromLocalStorage","union","Array","isArray","without","getVisibleColumnData","__","onColumnDataChange","newHiddenColumns","equals","useColumnOrderStore","useColumns","initialHiddenColumns","_ref$initialOrder","initialOrder","columnOrder","setColumnOrder","_useHiddenColumns","hiddenColumnHelpers","orderColumns","a","b","indexOf","getColumnData","_ref2$isHidable","_ref2$isReOrderable","isReOrderable","pipe","identity"],"mappings":"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","x_google_ignoreList":[0]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-molecules",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "A package of reusable molecular components for neeto products.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-molecules.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"@bigbinary/neeto-time-zones": "0.5.5",
|
|
67
67
|
"@bigbinary/neetoui": "8.2.13",
|
|
68
68
|
"@dnd-kit/core": "^6.2.0",
|
|
69
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
69
70
|
"@faker-js/faker": "8.2.0",
|
|
70
71
|
"@fullcalendar/core": "^6.1.8",
|
|
71
72
|
"@fullcalendar/daygrid": "^6.1.8",
|
|
@@ -223,6 +224,7 @@
|
|
|
223
224
|
"@bigbinary/neeto-time-zones": "0.5.5",
|
|
224
225
|
"@bigbinary/neetoui": "8.2.13",
|
|
225
226
|
"@dnd-kit/core": "^6.2.0",
|
|
227
|
+
"@dnd-kit/sortable": "^10.0.0",
|
|
226
228
|
"@fullcalendar/core": "^6.1.8",
|
|
227
229
|
"@fullcalendar/daygrid": "^6.1.8",
|
|
228
230
|
"@fullcalendar/interaction": "^6.1.8",
|
package/src/translations/en.json
CHANGED
|
@@ -67,11 +67,12 @@
|
|
|
67
67
|
"enter": "Enter {{what}}"
|
|
68
68
|
},
|
|
69
69
|
"columns": {
|
|
70
|
-
"columns": "
|
|
70
|
+
"columns": "Customize columns",
|
|
71
71
|
"noColumns": "No columns found!",
|
|
72
72
|
"search": "Search columns",
|
|
73
73
|
"hideAll": "Hide all",
|
|
74
|
-
"showAll": "Show all"
|
|
74
|
+
"showAll": "Show all",
|
|
75
|
+
"reset": "Reset"
|
|
75
76
|
},
|
|
76
77
|
"engagements": {
|
|
77
78
|
"namesReacted": "{{ names, anyCase }} reacted"
|
package/types/Columns.d.ts
CHANGED
|
@@ -19,12 +19,62 @@ type useColumnsType = {
|
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
*
|
|
22
|
-
* It is a helper component that can be used along with the table component to
|
|
22
|
+
* It is a helper component that can be used along with the table component to
|
|
23
23
|
*
|
|
24
|
-
*
|
|
24
|
+
* hide, show, and reorder columns. The component now uses server-side
|
|
25
|
+
*
|
|
26
|
+
* configuration storage through the useTableConfigurations hook.
|
|
25
27
|
*
|
|
26
28
|
* 
|
|
27
29
|
*
|
|
30
|
+
* This hook is for managing table column configurations. It provides column
|
|
31
|
+
*
|
|
32
|
+
* customization including visibility, ordering, and server-side persistence.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
*
|
|
36
|
+
* import { useState } from "react";
|
|
37
|
+
*
|
|
38
|
+
* import { Table } from "@bigbinary/neetoui";
|
|
39
|
+
* import Columns, {
|
|
40
|
+
* useTableConfigurations,
|
|
41
|
+
* } from "@bigbinary/neeto-molecules/Columns";
|
|
42
|
+
*
|
|
43
|
+
* import { DEFAULT_ROW_DATA } from "./constants";
|
|
44
|
+
*
|
|
45
|
+
* const App = () => {
|
|
46
|
+
* const tableKey = "users-table";
|
|
47
|
+
* const DEFAULT_COLUMNS_DATA = [
|
|
48
|
+
* { title: "Id", dataIndex: "id", key: "id", isHidable: false },
|
|
49
|
+
* { title: "Name", dataIndex: "name", key: "name", isHidable: false },
|
|
50
|
+
* { title: "Email", dataIndex: "email", key: "email" },
|
|
51
|
+
* { title: "Status", dataIndex: "status", key: "status" },
|
|
52
|
+
* ];
|
|
53
|
+
*
|
|
54
|
+
* const {
|
|
55
|
+
* customizedColumns,
|
|
56
|
+
* allProcessedColumns,
|
|
57
|
+
* isTableConfigurationLoading,
|
|
58
|
+
* hideColumn,
|
|
59
|
+
* showColumn,
|
|
60
|
+
* } = useTableConfigurations(tableKey, DEFAULT_COLUMNS_DATA);
|
|
61
|
+
*
|
|
62
|
+
* if (isTableConfigurationLoading) {
|
|
63
|
+
* return <div>Loading...</div>;
|
|
64
|
+
* }
|
|
65
|
+
*
|
|
66
|
+
* return (
|
|
67
|
+
* <div>
|
|
68
|
+
* <Columns
|
|
69
|
+
* columnData={allProcessedColumns}
|
|
70
|
+
* tableKey={tableKey}
|
|
71
|
+
* isSearchable
|
|
72
|
+
* />
|
|
73
|
+
* <Table rowData={DEFAULT_ROW_DATA} columnData={customizedColumns} />
|
|
74
|
+
* </div>
|
|
75
|
+
* );
|
|
76
|
+
* };
|
|
77
|
+
* @endexample
|
|
28
78
|
* It's a helper hook used alongside Columns component. It allows you to to
|
|
29
79
|
*
|
|
30
80
|
* interact with the underlying zustand store to hide and show columns.
|
|
@@ -130,13 +180,11 @@ type useColumnsType = {
|
|
|
130
180
|
* @endexample
|
|
131
181
|
*/
|
|
132
182
|
declare const Columns: React.FC<{
|
|
133
|
-
actionBlock?: React.ReactNode;
|
|
134
183
|
checkboxProps?: CheckboxProps;
|
|
184
|
+
tableKey: string;
|
|
135
185
|
columnData: Column[];
|
|
136
186
|
isSearchable?: boolean;
|
|
137
|
-
localStorageKey: string;
|
|
138
187
|
noColumnMessage?: string;
|
|
139
|
-
onChange: (columns: Column[], hiddenColumns: string[]) => any[];
|
|
140
188
|
searchProps?: InputProps;
|
|
141
189
|
} & DropdownProps>;
|
|
142
190
|
declare function useHiddenColumns(localStorageKey: string, initialValue?: string[]): {
|
package/types/SubHeader.d.ts
CHANGED
|
@@ -16,13 +16,11 @@ type DataProps = {
|
|
|
16
16
|
totalCount?: number;
|
|
17
17
|
};
|
|
18
18
|
type ColumnsButtonProps = {
|
|
19
|
-
onChange: (columns: ColumnData[], hiddenColumns: string[]) => void;
|
|
20
19
|
actionBlock?: React.ReactNode;
|
|
21
20
|
checkboxProps?: Partial<CheckboxProps>;
|
|
22
21
|
columnData?: ColumnData[];
|
|
23
22
|
isSearchable?: boolean;
|
|
24
|
-
|
|
25
|
-
initialValue?: string[];
|
|
23
|
+
tableKey?: string;
|
|
26
24
|
noColumnMessage?: string;
|
|
27
25
|
searchProps?: Partial<InputProps>;
|
|
28
26
|
};
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
-
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
5
|
-
var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
var i18next = require('i18next');
|
|
8
|
-
var neetoCist = require('@bigbinary/neeto-cist');
|
|
9
|
-
var Search = require('@bigbinary/neeto-icons/Search');
|
|
10
|
-
var Checkbox = require('@bigbinary/neetoui/Checkbox');
|
|
11
|
-
var Dropdown = require('@bigbinary/neetoui/Dropdown');
|
|
12
|
-
var Input = require('@bigbinary/neetoui/Input');
|
|
13
|
-
var Label = require('@bigbinary/neetoui/Label');
|
|
14
|
-
var Typography = require('@bigbinary/neetoui/Typography');
|
|
15
|
-
var ramda = require('ramda');
|
|
16
|
-
var reactI18next = require('react-i18next');
|
|
17
|
-
var injectCss = require('./inject-css-vQvjPR2x.js');
|
|
18
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
19
|
-
var zustand = require('zustand');
|
|
20
|
-
var middleware = require('zustand/middleware');
|
|
21
|
-
var general = require('@bigbinary/neeto-commons-frontend/utils/general');
|
|
22
|
-
|
|
23
|
-
var css = ":root{--neeto-molecules-columns-menu-max-width:31.25rem}.neeto-molecules-columns__container{max-width:31.25rem;max-width:var(--neeto-molecules-columns-menu-max-width)}";
|
|
24
|
-
injectCss.n(css,{});
|
|
25
|
-
|
|
26
|
-
var HIDDEN_COLUMNS_STORAGE_KEY = "neeto-molecules-hidden-columns";
|
|
27
|
-
var COLUMNS_ORDER_STORAGE_KEY = "neeto-molecules-columns-order";
|
|
28
|
-
|
|
29
|
-
var getHidableColumns = function getHidableColumns(columnData) {
|
|
30
|
-
return neetoCist.removeBy({
|
|
31
|
-
isHidable: false
|
|
32
|
-
}, columnData);
|
|
33
|
-
};
|
|
34
|
-
var filterBySearchTerm = function filterBySearchTerm(searchTerm, columns) {
|
|
35
|
-
return ramda.filter(function (_ref) {
|
|
36
|
-
var title = _ref.title;
|
|
37
|
-
return ramda.includes(ramda.trim(ramda.toLower(searchTerm)), ramda.trim(ramda.toLower(title)));
|
|
38
|
-
}, columns);
|
|
39
|
-
};
|
|
40
|
-
var removeDeletedColumns = function removeDeletedColumns(hiddenColumns, columnData) {
|
|
41
|
-
return hiddenColumns.filter(function (hiddenColumn) {
|
|
42
|
-
return neetoCist.existsBy({
|
|
43
|
-
dataIndex: hiddenColumn
|
|
44
|
-
}, columnData);
|
|
45
|
-
});
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
49
|
-
var useHiddenColumnStore = zustand.create(middleware.persist(function () {
|
|
50
|
-
return {};
|
|
51
|
-
}, {
|
|
52
|
-
name: HIDDEN_COLUMNS_STORAGE_KEY
|
|
53
|
-
}));
|
|
54
|
-
var useHiddenColumns = function useHiddenColumns(localStorageKey) {
|
|
55
|
-
var initialValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
56
|
-
var hiddenColumns = useHiddenColumnStore(function (state) {
|
|
57
|
-
return state[localStorageKey];
|
|
58
|
-
});
|
|
59
|
-
var setHiddenColumns = function setHiddenColumns(columns) {
|
|
60
|
-
return useHiddenColumnStore.setState(_defineProperty({}, localStorageKey, columns));
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// Migrates values from old location to new zustand location.
|
|
64
|
-
React.useEffect(function () {
|
|
65
|
-
var oldValue = general.getFromLocalStorage(localStorageKey);
|
|
66
|
-
if (oldValue) {
|
|
67
|
-
setHiddenColumns(oldValue);
|
|
68
|
-
general.removeFromLocalStorage(localStorageKey);
|
|
69
|
-
} else if (!hiddenColumns) {
|
|
70
|
-
setHiddenColumns(initialValue);
|
|
71
|
-
}
|
|
72
|
-
}, [localStorageKey]);
|
|
73
|
-
var hideColumn = function hideColumn(columns) {
|
|
74
|
-
return setHiddenColumns(ramda.union(hiddenColumns, Array.isArray(columns) ? columns : [columns]));
|
|
75
|
-
};
|
|
76
|
-
var showColumn = function showColumn(columns) {
|
|
77
|
-
return setHiddenColumns(ramda.without(Array.isArray(columns) ? columns : [columns], hiddenColumns));
|
|
78
|
-
};
|
|
79
|
-
var getVisibleColumnData = function getVisibleColumnData(columnData) {
|
|
80
|
-
return neetoCist.removeBy({
|
|
81
|
-
dataIndex: ramda.includes(ramda.__, hiddenColumns || [])
|
|
82
|
-
}, columnData);
|
|
83
|
-
};
|
|
84
|
-
var onColumnDataChange = function onColumnDataChange(columnData) {
|
|
85
|
-
if (ramda.isEmpty(columnData) || !hiddenColumns) return;
|
|
86
|
-
var newHiddenColumns = removeDeletedColumns(hiddenColumns, columnData);
|
|
87
|
-
if (!ramda.equals(newHiddenColumns, hiddenColumns)) {
|
|
88
|
-
setHiddenColumns(newHiddenColumns);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
return {
|
|
92
|
-
hiddenColumns: hiddenColumns,
|
|
93
|
-
hideColumn: hideColumn,
|
|
94
|
-
showColumn: showColumn,
|
|
95
|
-
getVisibleColumnData: getVisibleColumnData,
|
|
96
|
-
onColumnDataChange: onColumnDataChange
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
var _excluded$1 = ["actionBlock", "checkboxProps", "columnData", "isSearchable", "localStorageKey", "initialValue", "noColumnMessage", "onChange", "searchProps"];
|
|
101
|
-
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
102
|
-
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
103
|
-
var Columns = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
104
|
-
var actionBlock = _ref.actionBlock,
|
|
105
|
-
_ref$checkboxProps = _ref.checkboxProps,
|
|
106
|
-
checkboxProps = _ref$checkboxProps === void 0 ? {} : _ref$checkboxProps,
|
|
107
|
-
_ref$columnData = _ref.columnData,
|
|
108
|
-
columnData = _ref$columnData === void 0 ? [] : _ref$columnData,
|
|
109
|
-
_ref$isSearchable = _ref.isSearchable,
|
|
110
|
-
isSearchable = _ref$isSearchable === void 0 ? false : _ref$isSearchable,
|
|
111
|
-
_ref$localStorageKey = _ref.localStorageKey,
|
|
112
|
-
localStorageKey = _ref$localStorageKey === void 0 ? "" : _ref$localStorageKey,
|
|
113
|
-
_ref$initialValue = _ref.initialValue,
|
|
114
|
-
initialValue = _ref$initialValue === void 0 ? [] : _ref$initialValue,
|
|
115
|
-
_ref$noColumnMessage = _ref.noColumnMessage,
|
|
116
|
-
noColumnMessage = _ref$noColumnMessage === void 0 ? i18next.t("neetoMolecules.columns.noColumns") : _ref$noColumnMessage,
|
|
117
|
-
_ref$onChange = _ref.onChange,
|
|
118
|
-
onChange = _ref$onChange === void 0 ? ramda.identity : _ref$onChange,
|
|
119
|
-
_ref$searchProps = _ref.searchProps,
|
|
120
|
-
searchProps = _ref$searchProps === void 0 ? {} : _ref$searchProps,
|
|
121
|
-
dropdownProps = _objectWithoutProperties(_ref, _excluded$1);
|
|
122
|
-
var Divider = Dropdown.Divider,
|
|
123
|
-
Menu = Dropdown.Menu,
|
|
124
|
-
MenuItem = Dropdown.MenuItem;
|
|
125
|
-
var _useState = React.useState(""),
|
|
126
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
127
|
-
searchTerm = _useState2[0],
|
|
128
|
-
setSearchTerm = _useState2[1];
|
|
129
|
-
var _useTranslation = reactI18next.useTranslation(),
|
|
130
|
-
t = _useTranslation.t;
|
|
131
|
-
var _useHiddenColumns = useHiddenColumns(localStorageKey, initialValue),
|
|
132
|
-
_useHiddenColumns$hid = _useHiddenColumns.hiddenColumns,
|
|
133
|
-
hiddenColumns = _useHiddenColumns$hid === void 0 ? [] : _useHiddenColumns$hid,
|
|
134
|
-
hideColumn = _useHiddenColumns.hideColumn,
|
|
135
|
-
showColumn = _useHiddenColumns.showColumn,
|
|
136
|
-
getVisibleColumnData = _useHiddenColumns.getVisibleColumnData,
|
|
137
|
-
onColumnDataChange = _useHiddenColumns.onColumnDataChange;
|
|
138
|
-
React.useEffect(function () {
|
|
139
|
-
onChange(getVisibleColumnData(columnData), hiddenColumns);
|
|
140
|
-
}, [hiddenColumns]);
|
|
141
|
-
React.useEffect(function () {
|
|
142
|
-
onColumnDataChange(columnData);
|
|
143
|
-
}, [columnData]);
|
|
144
|
-
|
|
145
|
-
/**
|
|
146
|
-
* @deprecated Use showColumn|hideColumn from useHiddenColumns
|
|
147
|
-
*/
|
|
148
|
-
React.useImperativeHandle(ref, function () {
|
|
149
|
-
return {
|
|
150
|
-
hideColumn: hideColumn,
|
|
151
|
-
showColumn: showColumn
|
|
152
|
-
};
|
|
153
|
-
}, []);
|
|
154
|
-
var handleChange = function handleChange(_ref2) {
|
|
155
|
-
var _ref2$target = _ref2.target,
|
|
156
|
-
dataIndex = _ref2$target.name,
|
|
157
|
-
checked = _ref2$target.checked;
|
|
158
|
-
if (checked) showColumn(dataIndex);else hideColumn(dataIndex);
|
|
159
|
-
};
|
|
160
|
-
var handleSearch = function handleSearch(_ref3) {
|
|
161
|
-
var value = _ref3.target.value;
|
|
162
|
-
return setSearchTerm(value);
|
|
163
|
-
};
|
|
164
|
-
var columns = getHidableColumns(columnData);
|
|
165
|
-
var filteredColumns = filterBySearchTerm(searchTerm, columns);
|
|
166
|
-
return /*#__PURE__*/jsxRuntime.jsx(Dropdown, _objectSpread$1(_objectSpread$1({
|
|
167
|
-
appendTo: document.body,
|
|
168
|
-
buttonSize: "medium",
|
|
169
|
-
buttonStyle: "text",
|
|
170
|
-
closeOnSelect: false,
|
|
171
|
-
label: t("neetoMolecules.columns.columns"),
|
|
172
|
-
position: "bottom-end",
|
|
173
|
-
onClose: function onClose() {
|
|
174
|
-
return setSearchTerm("");
|
|
175
|
-
}
|
|
176
|
-
}, dropdownProps), {}, {
|
|
177
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Menu, {
|
|
178
|
-
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
179
|
-
className: "neeto-molecules-columns__container",
|
|
180
|
-
children: [isSearchable && /*#__PURE__*/jsxRuntime.jsx(Input, _objectSpread$1({
|
|
181
|
-
className: "px-4 py-2",
|
|
182
|
-
"data-cy": "neeto-ui-columns-search",
|
|
183
|
-
"data-testid": "neeto-ui-columns-search",
|
|
184
|
-
placeholder: t("neetoMolecules.columns.search"),
|
|
185
|
-
prefix: /*#__PURE__*/jsxRuntime.jsx(Search, {}),
|
|
186
|
-
type: "search",
|
|
187
|
-
value: searchTerm,
|
|
188
|
-
onChange: handleSearch
|
|
189
|
-
}, searchProps)), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
190
|
-
className: "neeto-ui-text-gray-600 px-4 py-2",
|
|
191
|
-
style: "body2",
|
|
192
|
-
weight: "semibold",
|
|
193
|
-
children: t("neetoMolecules.columns.columns")
|
|
194
|
-
}), neetoCist.isNotEmpty(filteredColumns) ? filteredColumns.map(function (_ref4) {
|
|
195
|
-
var dataIndex = _ref4.dataIndex,
|
|
196
|
-
key = _ref4.key,
|
|
197
|
-
title = _ref4.title;
|
|
198
|
-
return /*#__PURE__*/jsxRuntime.jsx(MenuItem, {
|
|
199
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
200
|
-
className: "neeto-ui-flex neeto-ui-w-full hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer px-4 py-2",
|
|
201
|
-
htmlFor: dataIndex,
|
|
202
|
-
children: /*#__PURE__*/jsxRuntime.jsx(Checkbox, _objectSpread$1({
|
|
203
|
-
checked: !hiddenColumns.includes(dataIndex),
|
|
204
|
-
"data-cy": "neeto-ui-columns-checkbox",
|
|
205
|
-
id: dataIndex,
|
|
206
|
-
label: title,
|
|
207
|
-
name: dataIndex,
|
|
208
|
-
onChange: handleChange
|
|
209
|
-
}, checkboxProps))
|
|
210
|
-
})
|
|
211
|
-
}, key);
|
|
212
|
-
}) : /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
213
|
-
className: "neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-p-2",
|
|
214
|
-
children: noColumnMessage
|
|
215
|
-
}), !!actionBlock && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
216
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Divider, {}), actionBlock]
|
|
217
|
-
})]
|
|
218
|
-
})
|
|
219
|
-
})
|
|
220
|
-
}));
|
|
221
|
-
});
|
|
222
|
-
Columns.displayName = "Columns";
|
|
223
|
-
|
|
224
|
-
var _excluded = ["hiddenColumns", "getVisibleColumnData"];
|
|
225
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
226
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
227
|
-
|
|
228
|
-
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
229
|
-
var useColumnOrderStore = zustand.create(middleware.persist(function () {
|
|
230
|
-
return {};
|
|
231
|
-
}, {
|
|
232
|
-
name: COLUMNS_ORDER_STORAGE_KEY
|
|
233
|
-
}));
|
|
234
|
-
var useColumns = function useColumns(_ref) {
|
|
235
|
-
var localStorageKey = _ref.localStorageKey,
|
|
236
|
-
initialHiddenColumns = _ref.initialHiddenColumns,
|
|
237
|
-
_ref$initialOrder = _ref.initialOrder,
|
|
238
|
-
initialOrder = _ref$initialOrder === void 0 ? [] : _ref$initialOrder;
|
|
239
|
-
var columnOrder = useColumnOrderStore(function (state) {
|
|
240
|
-
return state[localStorageKey];
|
|
241
|
-
}) || initialOrder;
|
|
242
|
-
var setColumnOrder = function setColumnOrder(columns) {
|
|
243
|
-
return useColumnOrderStore.setState(_defineProperty({}, localStorageKey, columns));
|
|
244
|
-
};
|
|
245
|
-
var _useHiddenColumns = useHiddenColumns(localStorageKey, initialHiddenColumns),
|
|
246
|
-
hiddenColumns = _useHiddenColumns.hiddenColumns,
|
|
247
|
-
getVisibleColumnData = _useHiddenColumns.getVisibleColumnData,
|
|
248
|
-
hiddenColumnHelpers = _objectWithoutProperties(_useHiddenColumns, _excluded);
|
|
249
|
-
var orderColumns = function orderColumns(columnData) {
|
|
250
|
-
if (ramda.isEmpty(columnOrder)) return columnData;
|
|
251
|
-
return columnData.sort(function (a, b) {
|
|
252
|
-
if (!columnOrder.includes(a.dataIndex) || !columnOrder.includes(b.dataIndex)) {
|
|
253
|
-
return 0;
|
|
254
|
-
}
|
|
255
|
-
return columnOrder.indexOf(a.dataIndex) - columnOrder.indexOf(b.dataIndex);
|
|
256
|
-
});
|
|
257
|
-
};
|
|
258
|
-
var getColumnData = function getColumnData(_ref2) {
|
|
259
|
-
var columnData = _ref2.columnData,
|
|
260
|
-
_ref2$isHidable = _ref2.isHidable,
|
|
261
|
-
isHidable = _ref2$isHidable === void 0 ? true : _ref2$isHidable,
|
|
262
|
-
_ref2$isReOrderable = _ref2.isReOrderable,
|
|
263
|
-
isReOrderable = _ref2$isReOrderable === void 0 ? false : _ref2$isReOrderable;
|
|
264
|
-
return ramda.pipe(isHidable ? getVisibleColumnData : ramda.identity, isReOrderable ? orderColumns : ramda.identity)(columnData);
|
|
265
|
-
};
|
|
266
|
-
return _objectSpread(_objectSpread({}, hiddenColumnHelpers), {}, {
|
|
267
|
-
hiddenColumns: hiddenColumns,
|
|
268
|
-
columnOrder: columnOrder,
|
|
269
|
-
getVisibleColumnData: getVisibleColumnData,
|
|
270
|
-
setColumnOrder: setColumnOrder,
|
|
271
|
-
getColumnData: getColumnData
|
|
272
|
-
});
|
|
273
|
-
};
|
|
274
|
-
|
|
275
|
-
exports.COLUMNS_ORDER_STORAGE_KEY = COLUMNS_ORDER_STORAGE_KEY;
|
|
276
|
-
exports.Columns = Columns;
|
|
277
|
-
exports.HIDDEN_COLUMNS_STORAGE_KEY = HIDDEN_COLUMNS_STORAGE_KEY;
|
|
278
|
-
exports.useColumnOrderStore = useColumnOrderStore;
|
|
279
|
-
exports.useColumns = useColumns;
|
|
280
|
-
exports.useHiddenColumnStore = useHiddenColumnStore;
|
|
281
|
-
exports.useHiddenColumns = useHiddenColumns;
|
|
282
|
-
//# sourceMappingURL=useColumns-BP8c4PV-.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useColumns-BP8c4PV-.js","sources":["../../src/components/Columns/constants.js","../../src/components/Columns/utils.js","../../src/components/Columns/useHiddenColumns.js","../../src/components/Columns/Columns.jsx","../../src/components/Columns/useColumns.js"],"sourcesContent":["export const HIDDEN_COLUMNS_STORAGE_KEY = \"neeto-molecules-hidden-columns\";\nexport const COLUMNS_ORDER_STORAGE_KEY = \"neeto-molecules-columns-order\";\n","import { existsBy, removeBy } from \"neetocist\";\nimport { filter, includes, toLower, trim } from \"ramda\";\n\nexport const getHidableColumns = columnData =>\n removeBy({ isHidable: false }, columnData);\n\nexport const filterBySearchTerm = (searchTerm, columns) =>\n filter(\n ({ title }) => includes(trim(toLower(searchTerm)), trim(toLower(title))),\n columns\n );\n\nexport const removeDeletedColumns = (hiddenColumns, columnData) =>\n hiddenColumns.filter(hiddenColumn =>\n existsBy({ dataIndex: hiddenColumn }, columnData)\n );\n","import { useEffect } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport {\n getFromLocalStorage,\n removeFromLocalStorage,\n} from \"neetocommons/utils/general\";\nimport { __, without, includes, isEmpty, equals, union } from \"ramda\";\nimport { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\nimport { HIDDEN_COLUMNS_STORAGE_KEY } from \"./constants\";\nimport { removeDeletedColumns } from \"./utils\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useHiddenColumnStore = create(\n persist(() => ({}), { name: HIDDEN_COLUMNS_STORAGE_KEY })\n);\n\nconst useHiddenColumns = (localStorageKey, initialValue = []) => {\n const hiddenColumns = useHiddenColumnStore(state => state[localStorageKey]);\n const setHiddenColumns = columns =>\n useHiddenColumnStore.setState({ [localStorageKey]: columns });\n\n // Migrates values from old location to new zustand location.\n useEffect(() => {\n const oldValue = getFromLocalStorage(localStorageKey);\n if (oldValue) {\n setHiddenColumns(oldValue);\n removeFromLocalStorage(localStorageKey);\n } else if (!hiddenColumns) {\n setHiddenColumns(initialValue);\n }\n }, [localStorageKey]);\n\n const hideColumn = columns =>\n setHiddenColumns(\n union(hiddenColumns, Array.isArray(columns) ? columns : [columns])\n );\n\n const showColumn = columns =>\n setHiddenColumns(\n without(Array.isArray(columns) ? columns : [columns], hiddenColumns)\n );\n\n const getVisibleColumnData = columnData =>\n removeBy({ dataIndex: includes(__, hiddenColumns || []) }, columnData);\n\n const onColumnDataChange = columnData => {\n if (isEmpty(columnData) || !hiddenColumns) return;\n const newHiddenColumns = removeDeletedColumns(hiddenColumns, columnData);\n if (!equals(newHiddenColumns, hiddenColumns)) {\n setHiddenColumns(newHiddenColumns);\n }\n };\n\n return {\n hiddenColumns,\n hideColumn,\n showColumn,\n getVisibleColumnData,\n onColumnDataChange,\n };\n};\n\nexport { useHiddenColumns, useHiddenColumnStore };\n","import { useState, useImperativeHandle, forwardRef, useEffect } from \"react\";\n\nimport i18next from \"i18next\";\nimport { isNotEmpty } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Typography } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { identity } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport \"./columns.scss\";\nimport { useHiddenColumns } from \"./useHiddenColumns\";\nimport { filterBySearchTerm, getHidableColumns } from \"./utils\";\n\nconst Columns = forwardRef(\n (\n {\n actionBlock,\n checkboxProps = {},\n columnData = [],\n isSearchable = false,\n localStorageKey = \"\",\n initialValue = [],\n noColumnMessage = i18next.t(\"neetoMolecules.columns.noColumns\"),\n onChange = identity,\n searchProps = {},\n ...dropdownProps\n },\n ref\n ) => {\n const { Divider, Menu, MenuItem } = Dropdown;\n const [searchTerm, setSearchTerm] = useState(\"\");\n const { t } = useTranslation();\n\n const {\n hiddenColumns = [],\n hideColumn,\n showColumn,\n getVisibleColumnData,\n onColumnDataChange,\n } = useHiddenColumns(localStorageKey, initialValue);\n\n useEffect(() => {\n onChange(getVisibleColumnData(columnData), hiddenColumns);\n }, [hiddenColumns]);\n\n useEffect(() => {\n onColumnDataChange(columnData);\n }, [columnData]);\n\n /**\n * @deprecated Use showColumn|hideColumn from useHiddenColumns\n */\n useImperativeHandle(ref, () => ({ hideColumn, showColumn }), []);\n\n const handleChange = ({ target: { name: dataIndex, checked } }) => {\n if (checked) showColumn(dataIndex);\n else hideColumn(dataIndex);\n };\n const handleSearch = ({ target: { value } }) => setSearchTerm(value);\n\n const columns = getHidableColumns(columnData);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n return (\n <Dropdown\n appendTo={document.body}\n buttonSize=\"medium\"\n buttonStyle=\"text\"\n closeOnSelect={false}\n label={t(\"neetoMolecules.columns.columns\")}\n position=\"bottom-end\"\n onClose={() => setSearchTerm(\"\")}\n {...dropdownProps}\n >\n <Menu>\n <div className=\"neeto-molecules-columns__container\">\n {isSearchable && (\n <Input\n className=\"px-4 py-2\"\n data-cy=\"neeto-ui-columns-search\"\n data-testid=\"neeto-ui-columns-search\"\n placeholder={t(\"neetoMolecules.columns.search\")}\n prefix={<Search />}\n type=\"search\"\n value={searchTerm}\n onChange={handleSearch}\n {...searchProps}\n />\n )}\n <Typography\n className=\"neeto-ui-text-gray-600 px-4 py-2\"\n style=\"body2\"\n weight=\"semibold\"\n >\n {t(\"neetoMolecules.columns.columns\")}\n </Typography>\n {isNotEmpty(filteredColumns) ? (\n filteredColumns.map(({ dataIndex, key, title }) => (\n <MenuItem key={key}>\n <Label\n className=\"neeto-ui-flex neeto-ui-w-full hover:neeto-ui-bg-gray-200 neeto-ui-cursor-pointer px-4 py-2\"\n htmlFor={dataIndex}\n >\n <Checkbox\n checked={!hiddenColumns.includes(dataIndex)}\n data-cy=\"neeto-ui-columns-checkbox\"\n id={dataIndex}\n label={title}\n name={dataIndex}\n onChange={handleChange}\n {...checkboxProps}\n />\n </Label>\n </MenuItem>\n ))\n ) : (\n <span className=\"neeto-ui-flex neeto-ui-flex-col neeto-ui-items-center neeto-ui-p-2\">\n {noColumnMessage}\n </span>\n )}\n {!!actionBlock && (\n <>\n <Divider />\n {actionBlock}\n </>\n )}\n </div>\n </Menu>\n </Dropdown>\n );\n }\n);\n\nColumns.propTypes = {\n /**\n * Extra action items that can be added at the end of the dropdown (optional).\n */\n actionBlock: PropTypes.element,\n /**\n * Additional props for the checkboxes in the dropdown (optional).\n */\n checkboxProps: PropTypes.object,\n /**\n * The list of columns from which the dropdown options are built (required).\n */\n columnData: PropTypes.array,\n /**\n * Controls whether the dropdown options should be searchable (optional).\n */\n isSearchable: PropTypes.bool,\n /**\n * The key used to store data in local storage (required).\n */\n localStorageKey: PropTypes.string,\n /**\n * The list of columns that are hidden on initial render. This is the `dataIndex` attribute from columnData (optional).\n */\n initialValue: PropTypes.array,\n /**\n * The message to be shown when there are no columns to be displayed in the dropdown (optional).\n */\n noColumnMessage: PropTypes.string,\n /**\n * Handler function that is called when a checkbox is selected or unselected.\n */\n onChange: PropTypes.func,\n /**\n * Props to be passed to the search input in the column dropdown. Only works when `isSearchable` is set to `true` (optional).\n */\n searchProps: PropTypes.object,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\n","import { identity, isEmpty, pipe } from \"ramda\";\nimport { create } from \"zustand\";\nimport { persist } from \"zustand/middleware\";\n\nimport { COLUMNS_ORDER_STORAGE_KEY } from \"./constants\";\nimport { useHiddenColumns } from \"./useHiddenColumns\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useColumnOrderStore = create(\n persist(() => ({}), { name: COLUMNS_ORDER_STORAGE_KEY })\n);\n\nconst useColumns = ({\n localStorageKey,\n initialHiddenColumns,\n initialOrder = [],\n}) => {\n const columnOrder =\n useColumnOrderStore(state => state[localStorageKey]) || initialOrder;\n\n const setColumnOrder = columns =>\n useColumnOrderStore.setState({ [localStorageKey]: columns });\n\n const { hiddenColumns, getVisibleColumnData, ...hiddenColumnHelpers } =\n useHiddenColumns(localStorageKey, initialHiddenColumns);\n\n const orderColumns = columnData => {\n if (isEmpty(columnOrder)) return columnData;\n\n return columnData.sort((a, b) => {\n if (\n !columnOrder.includes(a.dataIndex) ||\n !columnOrder.includes(b.dataIndex)\n ) {\n return 0;\n }\n\n return (\n columnOrder.indexOf(a.dataIndex) - columnOrder.indexOf(b.dataIndex)\n );\n });\n };\n\n const getColumnData = ({\n columnData,\n isHidable = true,\n isReOrderable = false,\n }) =>\n pipe(\n isHidable ? getVisibleColumnData : identity,\n isReOrderable ? orderColumns : identity\n )(columnData);\n\n return {\n ...hiddenColumnHelpers,\n hiddenColumns,\n columnOrder,\n getVisibleColumnData,\n setColumnOrder,\n getColumnData,\n };\n};\n\nexport { useColumns, useColumnOrderStore };\n"],"names":["HIDDEN_COLUMNS_STORAGE_KEY","COLUMNS_ORDER_STORAGE_KEY","getHidableColumns","columnData","removeBy","isHidable","filterBySearchTerm","searchTerm","columns","filter","_ref","title","includes","trim","toLower","removeDeletedColumns","hiddenColumns","hiddenColumn","existsBy","dataIndex","useHiddenColumnStore","create","persist","name","useHiddenColumns","localStorageKey","initialValue","arguments","length","undefined","state","setHiddenColumns","setState","_defineProperty","useEffect","oldValue","getFromLocalStorage","removeFromLocalStorage","hideColumn","union","Array","isArray","showColumn","without","getVisibleColumnData","__","onColumnDataChange","isEmpty","newHiddenColumns","equals","Columns","forwardRef","ref","actionBlock","_ref$checkboxProps","checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$localStorageKey","_ref$initialValue","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$onChange","onChange","identity","_ref$searchProps","searchProps","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useHiddenColumns","_useHiddenColumns$hid","useImperativeHandle","handleChange","_ref2","_ref2$target","target","checked","handleSearch","_ref3","value","filteredColumns","_jsx","_objectSpread","appendTo","document","body","buttonSize","buttonStyle","closeOnSelect","label","position","onClose","children","_jsxs","className","Input","placeholder","prefix","Search","type","Typography","style","weight","isNotEmpty","map","_ref4","key","Label","htmlFor","Checkbox","id","_Fragment","displayName","useColumnOrderStore","useColumns","initialHiddenColumns","_ref$initialOrder","initialOrder","columnOrder","setColumnOrder","hiddenColumnHelpers","orderColumns","sort","a","b","indexOf","getColumnData","_ref2$isHidable","_ref2$isReOrderable","isReOrderable","pipe"],"mappings":"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"}
|