@bigbinary/neeto-molecules 4.0.53 → 4.0.54

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 CHANGED
@@ -44,7 +44,7 @@ import '@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect';
44
44
  import '@bigbinary/neeto-icons/Search';
45
45
  import '@bigbinary/neetoui/Input';
46
46
  import '@bigbinary/neeto-icons/Column';
47
- import './Columns-BxXOO_ps.js';
47
+ import './Columns-nz-M_1bb.js';
48
48
  import '@babel/runtime/helpers/toConsumableArray';
49
49
  import '@dnd-kit/core';
50
50
  import '@dnd-kit/sortable';
@@ -24,7 +24,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
24
24
  import 'classnames';
25
25
  import '@bigbinary/neeto-commons-frontend/react-utils';
26
26
  import '@bigbinary/neeto-icons/Column';
27
- import './Columns-BxXOO_ps.js';
27
+ import './Columns-nz-M_1bb.js';
28
28
  import '@babel/runtime/helpers/toConsumableArray';
29
29
  import '@dnd-kit/core';
30
30
  import '@dnd-kit/sortable';
@@ -83,7 +83,8 @@ var Item = function Item(_ref) {
83
83
  var column = _ref.column,
84
84
  hiddenColumns = _ref.hiddenColumns,
85
85
  checkboxProps = _ref.checkboxProps,
86
- onToggle = _ref.onToggle;
86
+ onToggle = _ref.onToggle,
87
+ isTableConfigurationFetching = _ref.isTableConfigurationFetching;
87
88
  var key = column.key,
88
89
  title = column.title;
89
90
  var _useSortable = useSortable({
@@ -116,6 +117,7 @@ var Item = function Item(_ref) {
116
117
  })), /*#__PURE__*/jsx(Checkbox, _objectSpread$3({
117
118
  checked: !hiddenColumns.includes(key),
118
119
  "data-cy": "neeto-ui-columns-checkbox",
120
+ disabled: isTableConfigurationFetching,
119
121
  id: key,
120
122
  label: title,
121
123
  name: key,
@@ -192,7 +194,8 @@ var useTableConfigurations = function useTableConfigurations(tableKey, columnDat
192
194
  tableKey: tableKey
193
195
  }),
194
196
  tableConfiguration = _useFetchTableConfigu.data,
195
- isLoading = _useFetchTableConfigu.isLoading;
197
+ isLoading = _useFetchTableConfigu.isLoading,
198
+ isFetching = _useFetchTableConfigu.isFetching;
196
199
  var _useUpdateTableConfig = useUpdateTableConfiguration(tableKey, {
197
200
  onSuccess: onMutationSuccess
198
201
  }),
@@ -293,6 +296,7 @@ var useTableConfigurations = function useTableConfigurations(tableKey, columnDat
293
296
  allProcessedColumns: allProcessedColumns,
294
297
  // All columns (for displaying the columns in the Subheader)
295
298
  isTableConfigurationLoading: isLoading,
299
+ isTableConfigurationFetching: isFetching,
296
300
  existingColumnConfiguration: existingColumnConfiguration,
297
301
  hideColumn: hideColumn,
298
302
  showColumn: showColumn,
@@ -352,7 +356,8 @@ var Columns = function Columns(_ref) {
352
356
  hideColumn = _useTableConfiguratio.hideColumn,
353
357
  showColumn = _useTableConfiguratio.showColumn,
354
358
  updateColumns = _useTableConfiguratio.updateColumns,
355
- destroyConfiguration = _useTableConfiguratio.destroyConfiguration;
359
+ destroyConfiguration = _useTableConfiguratio.destroyConfiguration,
360
+ isTableConfigurationFetching = _useTableConfiguratio.isTableConfigurationFetching;
356
361
  var hiddenColumns = pluck("key", existingColumnConfiguration.filter(function (column) {
357
362
  return !column.isShown;
358
363
  }));
@@ -427,6 +432,7 @@ var Columns = function Columns(_ref) {
427
432
  checkboxProps: checkboxProps,
428
433
  column: column,
429
434
  hiddenColumns: hiddenColumns,
435
+ isTableConfigurationFetching: isTableConfigurationFetching,
430
436
  key: column.key,
431
437
  onToggle: handleChange
432
438
  });
@@ -474,4 +480,4 @@ var Columns = function Columns(_ref) {
474
480
  Columns.displayName = "Columns";
475
481
 
476
482
  export { Columns as C, HIDDEN_COLUMNS_STORAGE_KEY as H, TABLE_CONFIGURATION_QUERY_KEY as T, COLUMNS_ORDER_STORAGE_KEY as a, useTableConfigurations as u };
477
- //# sourceMappingURL=Columns-BxXOO_ps.js.map
483
+ //# sourceMappingURL=Columns-nz-M_1bb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Columns-nz-M_1bb.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"],"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 { Reorder } from \"neetoicons\";\nimport { Checkbox, Label } from \"neetoui\";\n\nconst Item = ({\n column,\n hiddenColumns,\n checkboxProps,\n onToggle,\n isTableConfigurationFetching,\n}) => {\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 <Reorder className=\"neeto-ui-text-gray-800\" size={18} />\n </div>\n <Checkbox\n checked={!hiddenColumns.includes(key)}\n data-cy=\"neeto-ui-columns-checkbox\"\n disabled={isTableConfigurationFetching}\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, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nconst useDestroyTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty, noop } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (\n tableKey,\n columnData,\n onMutationSuccess = noop,\n allowConfigurationResetOnUpdate = true,\n defaultHiddenColumns = []\n) => {\n const {\n data: tableConfiguration,\n isLoading,\n isFetching,\n } = useFetchTableConfiguration({ tableKey });\n\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const { mutate: destroyConfiguration } = useDestroyTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\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 (\n hasAdditionalColumns &&\n tableConfiguration &&\n allowConfigurationResetOnUpdate\n ) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey, allowConfigurationResetOnUpdate]);\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 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 => ({\n key: column.key,\n isShown: !defaultHiddenColumns.includes(column.key),\n }));\n }, [\n shouldApplyTableConfiguration,\n columnData,\n tableConfiguration?.columns,\n defaultHiddenColumns,\n ]);\n\n const customizedColumns = useMemo(() => {\n const visibleColumnsConfig = existingColumnConfiguration.filter(\n prop(\"isShown\")\n );\n const visibleColumnKeys = pluck(\"key\", visibleColumnsConfig);\n\n return allProcessedColumns.filter(column =>\n visibleColumnKeys.includes(column.key)\n );\n }, [allProcessedColumns, existingColumnConfiguration]);\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 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 isTableConfigurationFetching: isFetching,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n updateColumns,\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, noop } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assoc, isEmpty, pluck, includes } 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 allowConfigurationResetOnUpdate = true,\n onMutationSuccess = noop,\n defaultHiddenColumns = [],\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 updateColumns,\n destroyConfiguration,\n isTableConfigurationFetching,\n } = useTableConfigurations(\n tableKey,\n columnData,\n onMutationSuccess,\n allowConfigurationResetOnUpdate,\n defaultHiddenColumns\n );\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 updateColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleHideAllColumns = () => {\n const columnsToHideKeys = pluck(\"key\", columns);\n\n updateColumns(\n existingColumnConfiguration.map(column =>\n includes(column.key, columnsToHideKeys)\n ? assoc(\"isShown\", false, column)\n : column\n )\n );\n };\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\n className=\"neeto-molecules-columns__container\"\n data-cy=\"customize-columns-dropdown-container\"\n >\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 {...{\n checkboxProps,\n column,\n hiddenColumns,\n isTableConfigurationFetching,\n }}\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 gap-2 p-1 pr-3\">\n <Button\n data-cy=\"column-visibility-hide-all-button\"\n label={t(\"neetoMolecules.columns.hideAll\")}\n style=\"tertiary\"\n onClick={handleHideAllColumns}\n />\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 * Controls whether the table configuration should be reset on adding custom fields (optional).\n */\n allowConfigurationResetOnUpdate: PropTypes.bool,\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 * The function will be called when the mutation is successful (optional).\n */\n onMutationSuccess: PropTypes.func,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\n"],"names":["Item","_ref","column","hiddenColumns","checkboxProps","onToggle","isTableConfigurationFetching","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","Reorder","size","Checkbox","checked","includes","disabled","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","arguments","length","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","onMutationSuccess","noop","allowConfigurationResetOnUpdate","defaultHiddenColumns","_useFetchTableConfigu","data","isLoading","isFetching","_useUpdateTableConfig","onSuccess","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","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","isShown","customizedColumns","visibleColumnsConfig","visibleColumnKeys","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","isTableConfigurationLoading","getHidableColumns","removeBy","isHidable","filterBySearchTerm","searchTerm","trim","toLower","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","_ref$allowConfigurati","_ref$onMutationSucces","_ref$defaultHiddenCol","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","active","over","oldIndex","findIndexBy","newIndex","newOrder","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleHideAllColumns","columnsToHideKeys","assoc","handleChange","_ref2","_ref2$target","target","dataIndex","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"],"mappings":"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","x_google_ignoreList":[0]}
package/dist/Columns.js CHANGED
@@ -1,4 +1,4 @@
1
- export { a as COLUMNS_ORDER_STORAGE_KEY, H as HIDDEN_COLUMNS_STORAGE_KEY, T as TABLE_CONFIGURATION_QUERY_KEY, C as default, u as useTableConfigurations } from './Columns-BxXOO_ps.js';
1
+ export { a as COLUMNS_ORDER_STORAGE_KEY, H as HIDDEN_COLUMNS_STORAGE_KEY, T as TABLE_CONFIGURATION_QUERY_KEY, C as default, u as useTableConfigurations } from './Columns-nz-M_1bb.js';
2
2
  import '@babel/runtime/helpers/defineProperty';
3
3
  import '@babel/runtime/helpers/toConsumableArray';
4
4
  import '@babel/runtime/helpers/slicedToArray';
package/dist/SubHeader.js CHANGED
@@ -6,7 +6,7 @@ import { omit, not } from 'ramda';
6
6
  import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
7
7
  import { withT } from '@bigbinary/neeto-commons-frontend/react-utils';
8
8
  import Column from '@bigbinary/neeto-icons/Column';
9
- import { C as Columns$1 } from './Columns-BxXOO_ps.js';
9
+ import { C as Columns$1 } from './Columns-nz-M_1bb.js';
10
10
  import '@babel/runtime/helpers/toConsumableArray';
11
11
  import '@tanstack/react-query';
12
12
  import '@bigbinary/neeto-commons-frontend/react-utils/useMutationWithInvalidation';
package/dist/Taxonomy.js CHANGED
@@ -51,7 +51,7 @@ import '@bigbinary/neeto-icons/MenuVertical';
51
51
  import '@bigbinary/neetoui/Tooltip';
52
52
  import '@bigbinary/neeto-commons-frontend/react-utils';
53
53
  import '@bigbinary/neeto-icons/Column';
54
- import './Columns-BxXOO_ps.js';
54
+ import './Columns-nz-M_1bb.js';
55
55
  import '@dnd-kit/core';
56
56
  import '@dnd-kit/sortable';
57
57
  import '@bigbinary/neetoui/Checkbox';
@@ -46,7 +46,7 @@ require('@bigbinary/neeto-commons-frontend/react-utils/useUpdateEffect');
46
46
  require('@bigbinary/neeto-icons/Search');
47
47
  require('@bigbinary/neetoui/Input');
48
48
  require('@bigbinary/neeto-icons/Column');
49
- require('./Columns-COPN5vtC.js');
49
+ require('./Columns-B5HcheVn.js');
50
50
  require('@babel/runtime/helpers/toConsumableArray');
51
51
  require('@dnd-kit/core');
52
52
  require('@dnd-kit/sortable');
@@ -26,7 +26,7 @@ var jsxRuntime = require('react/jsx-runtime');
26
26
  require('classnames');
27
27
  require('@bigbinary/neeto-commons-frontend/react-utils');
28
28
  require('@bigbinary/neeto-icons/Column');
29
- require('./Columns-COPN5vtC.js');
29
+ require('./Columns-B5HcheVn.js');
30
30
  require('@babel/runtime/helpers/toConsumableArray');
31
31
  require('@dnd-kit/core');
32
32
  require('@dnd-kit/sortable');
@@ -85,7 +85,8 @@ var Item = function Item(_ref) {
85
85
  var column = _ref.column,
86
86
  hiddenColumns = _ref.hiddenColumns,
87
87
  checkboxProps = _ref.checkboxProps,
88
- onToggle = _ref.onToggle;
88
+ onToggle = _ref.onToggle,
89
+ isTableConfigurationFetching = _ref.isTableConfigurationFetching;
89
90
  var key = column.key,
90
91
  title = column.title;
91
92
  var _useSortable = sortable.useSortable({
@@ -118,6 +119,7 @@ var Item = function Item(_ref) {
118
119
  })), /*#__PURE__*/jsxRuntime.jsx(Checkbox, _objectSpread$3({
119
120
  checked: !hiddenColumns.includes(key),
120
121
  "data-cy": "neeto-ui-columns-checkbox",
122
+ disabled: isTableConfigurationFetching,
121
123
  id: key,
122
124
  label: title,
123
125
  name: key,
@@ -194,7 +196,8 @@ var useTableConfigurations = function useTableConfigurations(tableKey, columnDat
194
196
  tableKey: tableKey
195
197
  }),
196
198
  tableConfiguration = _useFetchTableConfigu.data,
197
- isLoading = _useFetchTableConfigu.isLoading;
199
+ isLoading = _useFetchTableConfigu.isLoading,
200
+ isFetching = _useFetchTableConfigu.isFetching;
198
201
  var _useUpdateTableConfig = useUpdateTableConfiguration(tableKey, {
199
202
  onSuccess: onMutationSuccess
200
203
  }),
@@ -295,6 +298,7 @@ var useTableConfigurations = function useTableConfigurations(tableKey, columnDat
295
298
  allProcessedColumns: allProcessedColumns,
296
299
  // All columns (for displaying the columns in the Subheader)
297
300
  isTableConfigurationLoading: isLoading,
301
+ isTableConfigurationFetching: isFetching,
298
302
  existingColumnConfiguration: existingColumnConfiguration,
299
303
  hideColumn: hideColumn,
300
304
  showColumn: showColumn,
@@ -354,7 +358,8 @@ var Columns = function Columns(_ref) {
354
358
  hideColumn = _useTableConfiguratio.hideColumn,
355
359
  showColumn = _useTableConfiguratio.showColumn,
356
360
  updateColumns = _useTableConfiguratio.updateColumns,
357
- destroyConfiguration = _useTableConfiguratio.destroyConfiguration;
361
+ destroyConfiguration = _useTableConfiguratio.destroyConfiguration,
362
+ isTableConfigurationFetching = _useTableConfiguratio.isTableConfigurationFetching;
358
363
  var hiddenColumns = ramda.pluck("key", existingColumnConfiguration.filter(function (column) {
359
364
  return !column.isShown;
360
365
  }));
@@ -429,6 +434,7 @@ var Columns = function Columns(_ref) {
429
434
  checkboxProps: checkboxProps,
430
435
  column: column,
431
436
  hiddenColumns: hiddenColumns,
437
+ isTableConfigurationFetching: isTableConfigurationFetching,
432
438
  key: column.key,
433
439
  onToggle: handleChange
434
440
  });
@@ -480,4 +486,4 @@ exports.Columns = Columns;
480
486
  exports.HIDDEN_COLUMNS_STORAGE_KEY = HIDDEN_COLUMNS_STORAGE_KEY;
481
487
  exports.TABLE_CONFIGURATION_QUERY_KEY = TABLE_CONFIGURATION_QUERY_KEY;
482
488
  exports.useTableConfigurations = useTableConfigurations;
483
- //# sourceMappingURL=Columns-COPN5vtC.js.map
489
+ //# sourceMappingURL=Columns-B5HcheVn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Columns-B5HcheVn.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"],"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 { Reorder } from \"neetoicons\";\nimport { Checkbox, Label } from \"neetoui\";\n\nconst Item = ({\n column,\n hiddenColumns,\n checkboxProps,\n onToggle,\n isTableConfigurationFetching,\n}) => {\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 <Reorder className=\"neeto-ui-text-gray-800\" size={18} />\n </div>\n <Checkbox\n checked={!hiddenColumns.includes(key)}\n data-cy=\"neeto-ui-columns-checkbox\"\n disabled={isTableConfigurationFetching}\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, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nconst useDestroyTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty, noop } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (\n tableKey,\n columnData,\n onMutationSuccess = noop,\n allowConfigurationResetOnUpdate = true,\n defaultHiddenColumns = []\n) => {\n const {\n data: tableConfiguration,\n isLoading,\n isFetching,\n } = useFetchTableConfiguration({ tableKey });\n\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const { mutate: destroyConfiguration } = useDestroyTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\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 (\n hasAdditionalColumns &&\n tableConfiguration &&\n allowConfigurationResetOnUpdate\n ) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey, allowConfigurationResetOnUpdate]);\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 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 => ({\n key: column.key,\n isShown: !defaultHiddenColumns.includes(column.key),\n }));\n }, [\n shouldApplyTableConfiguration,\n columnData,\n tableConfiguration?.columns,\n defaultHiddenColumns,\n ]);\n\n const customizedColumns = useMemo(() => {\n const visibleColumnsConfig = existingColumnConfiguration.filter(\n prop(\"isShown\")\n );\n const visibleColumnKeys = pluck(\"key\", visibleColumnsConfig);\n\n return allProcessedColumns.filter(column =>\n visibleColumnKeys.includes(column.key)\n );\n }, [allProcessedColumns, existingColumnConfiguration]);\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 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 isTableConfigurationFetching: isFetching,\n existingColumnConfiguration,\n hideColumn,\n showColumn,\n updateColumns,\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, noop } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assoc, isEmpty, pluck, includes } 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 allowConfigurationResetOnUpdate = true,\n onMutationSuccess = noop,\n defaultHiddenColumns = [],\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 updateColumns,\n destroyConfiguration,\n isTableConfigurationFetching,\n } = useTableConfigurations(\n tableKey,\n columnData,\n onMutationSuccess,\n allowConfigurationResetOnUpdate,\n defaultHiddenColumns\n );\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 updateColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleHideAllColumns = () => {\n const columnsToHideKeys = pluck(\"key\", columns);\n\n updateColumns(\n existingColumnConfiguration.map(column =>\n includes(column.key, columnsToHideKeys)\n ? assoc(\"isShown\", false, column)\n : column\n )\n );\n };\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\n className=\"neeto-molecules-columns__container\"\n data-cy=\"customize-columns-dropdown-container\"\n >\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 {...{\n checkboxProps,\n column,\n hiddenColumns,\n isTableConfigurationFetching,\n }}\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 gap-2 p-1 pr-3\">\n <Button\n data-cy=\"column-visibility-hide-all-button\"\n label={t(\"neetoMolecules.columns.hideAll\")}\n style=\"tertiary\"\n onClick={handleHideAllColumns}\n />\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 * Controls whether the table configuration should be reset on adding custom fields (optional).\n */\n allowConfigurationResetOnUpdate: PropTypes.bool,\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 * The function will be called when the mutation is successful (optional).\n */\n onMutationSuccess: PropTypes.func,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\n"],"names":["Item","_ref","column","hiddenColumns","checkboxProps","onToggle","isTableConfigurationFetching","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","Reorder","size","Checkbox","checked","includes","disabled","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","arguments","length","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","onMutationSuccess","noop","allowConfigurationResetOnUpdate","defaultHiddenColumns","_useFetchTableConfigu","data","isLoading","isFetching","_useUpdateTableConfig","onSuccess","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","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","isShown","customizedColumns","visibleColumnsConfig","visibleColumnKeys","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","isTableConfigurationLoading","getHidableColumns","removeBy","isHidable","filterBySearchTerm","searchTerm","trim","toLower","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","_ref$allowConfigurati","_ref$onMutationSucces","_ref$defaultHiddenCol","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","active","over","oldIndex","findIndexBy","newIndex","newOrder","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleHideAllColumns","columnsToHideKeys","assoc","handleChange","_ref2","_ref2$target","target","dataIndex","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"],"mappings":"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","x_google_ignoreList":[0]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var Columns = require('./Columns-COPN5vtC.js');
5
+ var Columns = require('./Columns-B5HcheVn.js');
6
6
  require('@babel/runtime/helpers/defineProperty');
7
7
  require('@babel/runtime/helpers/toConsumableArray');
8
8
  require('@babel/runtime/helpers/slicedToArray');
@@ -8,7 +8,7 @@ var ramda = require('ramda');
8
8
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
9
9
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
10
  var Column = require('@bigbinary/neeto-icons/Column');
11
- var Columns$1 = require('./Columns-COPN5vtC.js');
11
+ var Columns$1 = require('./Columns-B5HcheVn.js');
12
12
  require('@babel/runtime/helpers/toConsumableArray');
13
13
  require('@tanstack/react-query');
14
14
  require('@bigbinary/neeto-commons-frontend/react-utils/useMutationWithInvalidation');
@@ -53,7 +53,7 @@ require('@bigbinary/neeto-icons/MenuVertical');
53
53
  require('@bigbinary/neetoui/Tooltip');
54
54
  require('@bigbinary/neeto-commons-frontend/react-utils');
55
55
  require('@bigbinary/neeto-icons/Column');
56
- require('./Columns-COPN5vtC.js');
56
+ require('./Columns-B5HcheVn.js');
57
57
  require('@dnd-kit/core');
58
58
  require('@dnd-kit/sortable');
59
59
  require('@bigbinary/neetoui/Checkbox');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-molecules",
3
- "version": "4.0.53",
3
+ "version": "4.0.54",
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>",
@@ -1 +0,0 @@
1
- {"version":3,"file":"Columns-BxXOO_ps.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"],"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 { Reorder } 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 <Reorder className=\"neeto-ui-text-gray-800\" size={18} />\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, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nconst useDestroyTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty, noop } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (\n tableKey,\n columnData,\n onMutationSuccess = noop,\n allowConfigurationResetOnUpdate = true,\n defaultHiddenColumns = []\n) => {\n const { data: tableConfiguration, isLoading } = useFetchTableConfiguration({\n tableKey,\n });\n\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const { mutate: destroyConfiguration } = useDestroyTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\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 (\n hasAdditionalColumns &&\n tableConfiguration &&\n allowConfigurationResetOnUpdate\n ) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey, allowConfigurationResetOnUpdate]);\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 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 => ({\n key: column.key,\n isShown: !defaultHiddenColumns.includes(column.key),\n }));\n }, [\n shouldApplyTableConfiguration,\n columnData,\n tableConfiguration?.columns,\n defaultHiddenColumns,\n ]);\n\n const customizedColumns = useMemo(() => {\n const visibleColumnsConfig = existingColumnConfiguration.filter(\n prop(\"isShown\")\n );\n const visibleColumnKeys = pluck(\"key\", visibleColumnsConfig);\n\n return allProcessedColumns.filter(column =>\n visibleColumnKeys.includes(column.key)\n );\n }, [allProcessedColumns, existingColumnConfiguration]);\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 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 updateColumns,\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, noop } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assoc, isEmpty, pluck, includes } 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 allowConfigurationResetOnUpdate = true,\n onMutationSuccess = noop,\n defaultHiddenColumns = [],\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 updateColumns,\n destroyConfiguration,\n } = useTableConfigurations(\n tableKey,\n columnData,\n onMutationSuccess,\n allowConfigurationResetOnUpdate,\n defaultHiddenColumns\n );\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 updateColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleHideAllColumns = () => {\n const columnsToHideKeys = pluck(\"key\", columns);\n\n updateColumns(\n existingColumnConfiguration.map(column =>\n includes(column.key, columnsToHideKeys)\n ? assoc(\"isShown\", false, column)\n : column\n )\n );\n };\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\n className=\"neeto-molecules-columns__container\"\n data-cy=\"customize-columns-dropdown-container\"\n >\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 gap-2 p-1 pr-3\">\n <Button\n data-cy=\"column-visibility-hide-all-button\"\n label={t(\"neetoMolecules.columns.hideAll\")}\n style=\"tertiary\"\n onClick={handleHideAllColumns}\n />\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 * Controls whether the table configuration should be reset on adding custom fields (optional).\n */\n allowConfigurationResetOnUpdate: PropTypes.bool,\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 * The function will be called when the mutation is successful (optional).\n */\n onMutationSuccess: PropTypes.func,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\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","Reorder","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","arguments","length","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","onMutationSuccess","noop","allowConfigurationResetOnUpdate","defaultHiddenColumns","_useFetchTableConfigu","data","isLoading","_useUpdateTableConfig","onSuccess","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","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","isShown","customizedColumns","visibleColumnsConfig","visibleColumnKeys","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","isTableConfigurationLoading","getHidableColumns","removeBy","isHidable","filterBySearchTerm","searchTerm","trim","toLower","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","_ref$allowConfigurati","_ref$onMutationSucces","_ref$defaultHiddenCol","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","active","over","oldIndex","findIndexBy","newIndex","newOrder","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleHideAllColumns","columnsToHideKeys","assoc","handleChange","_ref2","_ref2$target","target","dataIndex","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"],"mappings":"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","x_google_ignoreList":[0]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Columns-COPN5vtC.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"],"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 { Reorder } 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 <Reorder className=\"neeto-ui-text-gray-800\" size={18} />\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, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.update, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nconst useDestroyTableConfiguration = (tableKey, options = {}) =>\n useMutationWithInvalidation(tableConfigurationApi.destroy, {\n keysToInvalidate: [[TABLE_CONFIGURATION_QUERY_KEY, tableKey]],\n ...options,\n });\n\nexport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n};\n","import { useEffect, useMemo, useCallback } from \"react\";\n\nimport { isNotEqualDeep, isNotEmpty, noop } from \"neetocist\";\nimport { isEmpty, pluck, prop } from \"ramda\";\n\nimport {\n useFetchTableConfiguration,\n useUpdateTableConfiguration,\n useDestroyTableConfiguration,\n} from \"./useTableConfigurationsApi.js\";\n\nconst useTableConfigurations = (\n tableKey,\n columnData,\n onMutationSuccess = noop,\n allowConfigurationResetOnUpdate = true,\n defaultHiddenColumns = []\n) => {\n const { data: tableConfiguration, isLoading } = useFetchTableConfiguration({\n tableKey,\n });\n\n const { mutate: updateConfiguration } = useUpdateTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\n\n const { mutate: destroyConfiguration } = useDestroyTableConfiguration(\n tableKey,\n { onSuccess: onMutationSuccess }\n );\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 (\n hasAdditionalColumns &&\n tableConfiguration &&\n allowConfigurationResetOnUpdate\n ) {\n destroyConfiguration(tableKey);\n }\n }, [hasAdditionalColumns, tableKey, allowConfigurationResetOnUpdate]);\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 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 => ({\n key: column.key,\n isShown: !defaultHiddenColumns.includes(column.key),\n }));\n }, [\n shouldApplyTableConfiguration,\n columnData,\n tableConfiguration?.columns,\n defaultHiddenColumns,\n ]);\n\n const customizedColumns = useMemo(() => {\n const visibleColumnsConfig = existingColumnConfiguration.filter(\n prop(\"isShown\")\n );\n const visibleColumnKeys = pluck(\"key\", visibleColumnsConfig);\n\n return allProcessedColumns.filter(column =>\n visibleColumnKeys.includes(column.key)\n );\n }, [allProcessedColumns, existingColumnConfiguration]);\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 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 updateColumns,\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, noop } from \"neetocist\";\nimport { Search } from \"neetoicons\";\nimport { Checkbox, Dropdown, Input, Label, Button } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { assoc, isEmpty, pluck, includes } 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 allowConfigurationResetOnUpdate = true,\n onMutationSuccess = noop,\n defaultHiddenColumns = [],\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 updateColumns,\n destroyConfiguration,\n } = useTableConfigurations(\n tableKey,\n columnData,\n onMutationSuccess,\n allowConfigurationResetOnUpdate,\n defaultHiddenColumns\n );\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 updateColumns(newOrder);\n };\n\n const columns = getHidableColumns(allProcessedColumns);\n const filteredColumns = filterBySearchTerm(searchTerm, columns);\n\n const handleHideAllColumns = () => {\n const columnsToHideKeys = pluck(\"key\", columns);\n\n updateColumns(\n existingColumnConfiguration.map(column =>\n includes(column.key, columnsToHideKeys)\n ? assoc(\"isShown\", false, column)\n : column\n )\n );\n };\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\n className=\"neeto-molecules-columns__container\"\n data-cy=\"customize-columns-dropdown-container\"\n >\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 gap-2 p-1 pr-3\">\n <Button\n data-cy=\"column-visibility-hide-all-button\"\n label={t(\"neetoMolecules.columns.hideAll\")}\n style=\"tertiary\"\n onClick={handleHideAllColumns}\n />\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 * Controls whether the table configuration should be reset on adding custom fields (optional).\n */\n allowConfigurationResetOnUpdate: PropTypes.bool,\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 * The function will be called when the mutation is successful (optional).\n */\n onMutationSuccess: PropTypes.func,\n};\n\nColumns.displayName = \"Columns\";\nexport default Columns;\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","Reorder","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","arguments","length","useMutationWithInvalidation","keysToInvalidate","useDestroyTableConfiguration","useTableConfigurations","columnData","onMutationSuccess","noop","allowConfigurationResetOnUpdate","defaultHiddenColumns","_useFetchTableConfigu","data","isLoading","_useUpdateTableConfig","onSuccess","updateConfiguration","mutate","_useDestroyTableConfi","destroyConfiguration","processColumnsWithConfiguration","useCallback","originalColumns","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","isShown","customizedColumns","visibleColumnsConfig","visibleColumnKeys","updateColumns","updatedColumns","table_key","hideColumn","columnKey","showColumn","isTableConfigurationLoading","getHidableColumns","removeBy","isHidable","filterBySearchTerm","searchTerm","trim","toLower","Columns","actionBlock","_ref$checkboxProps","_ref$columnData","_ref$isSearchable","isSearchable","_ref$tableKey","_ref$noColumnMessage","noColumnMessage","i18next","t","_ref$searchProps","searchProps","_ref$allowConfigurati","_ref$onMutationSucces","_ref$defaultHiddenCol","dropdownProps","_objectWithoutProperties","_excluded","Divider","Dropdown","Menu","MenuItem","_useState","useState","_useState2","_slicedToArray","setSearchTerm","_useTranslation","useTranslation","_useTableConfiguratio","handleDragEnd","event","active","over","oldIndex","findIndexBy","newIndex","newOrder","_newOrder$splice","splice","_newOrder$splice2","movedItem","filteredColumns","handleHideAllColumns","columnsToHideKeys","assoc","handleChange","_ref2","_ref2$target","target","dataIndex","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"],"mappings":"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","x_google_ignoreList":[0]}