@vuu-ui/vuu-table-extras 0.13.5 → 0.13.7

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.
@@ -1,13 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var react$1 = require('@dnd-kit/react');
5
- var sortable = require('@dnd-kit/react/sortable');
4
+ var vuuUtils = require('@vuu-ui/vuu-utils');
6
5
  var core = require('@salt-ds/core');
7
6
  var styles = require('@salt-ds/styles');
8
7
  var window = require('@salt-ds/window');
9
8
  var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
10
- var vuuUtils = require('@vuu-ui/vuu-utils');
11
9
  var cx = require('clsx');
12
10
  var react = require('react');
13
11
  var ColumnList$1 = require('./ColumnList.css.js');
@@ -15,7 +13,7 @@ var ColumnList$1 = require('./ColumnList.css.js');
15
13
  const classBase = "vuuColumnList";
16
14
  const classBaseListItem = "vuuColumnListItem";
17
15
  const useSorting = (id, index, allowSort = true) => {
18
- const { handleRef: sortableHandleRef, ref: sortableRef } = sortable.useSortable({
16
+ const { handleRef: sortableHandleRef, ref: sortableRef } = vuuUtils.useSortable({
19
17
  id,
20
18
  index
21
19
  });
@@ -140,7 +138,7 @@ const ColumnList = ({
140
138
  }
141
139
  }, 300);
142
140
  }, [columnItems, onReorderColumnItems]);
143
- return /* @__PURE__ */ jsxRuntime.jsx(react$1.DragDropProvider, { onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxRuntime.jsxs(
141
+ return /* @__PURE__ */ jsxRuntime.jsx(vuuUtils.DragDropProvider, { onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsxRuntime.jsxs(
144
142
  "div",
145
143
  {
146
144
  ...htmlAttributes,
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider } from \"@dnd-kit/react\";\nimport { useSortable } from \"@dnd-kit/react/sortable\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":["useSortable","useCallback","useMemo","jsxs","Option","jsx","IconButton","Icon","Checkbox","getColumnLabel","Switch","useWindow","useComponentCssInjection","columnList","useRef","queryClosest","reorderColumnItems","DragDropProvider","ListBox"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider, useSortable } from \"@vuu-ui/vuu-utils\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":["useSortable","useCallback","useMemo","jsxs","Option","jsx","IconButton","Icon","Checkbox","getColumnLabel","Switch","useWindow","useComponentCssInjection","columnList","useRef","queryClosest","reorderColumnItems","DragDropProvider","ListBox"],"mappings":"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"}
@@ -186,18 +186,15 @@ function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed =
186
186
  switch (columnGroupStatus) {
187
187
  case "no-groupby":
188
188
  case "single-groupby-other-column":
189
- menuItems.push(
190
- /* @__PURE__ */ jsxRuntime.jsx(
191
- core.MenuItem,
192
- {
193
- "data-menu-action-id": "group-column",
194
- onClick: menuActionClickHandler,
195
- children: `Group by ${label}`
196
- },
197
- "group-column"
198
- )
189
+ return /* @__PURE__ */ jsxRuntime.jsx(
190
+ core.MenuItem,
191
+ {
192
+ "data-menu-action-id": "group-column",
193
+ onClick: menuActionClickHandler,
194
+ children: `Group by ${label}`
195
+ },
196
+ "group-column"
199
197
  );
200
- break;
201
198
  case "single-groupby":
202
199
  menuItems.push(
203
200
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"mappings":"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"}
1
+ {"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n return (\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>\n );\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":["getSortStatus","jsx","MenuItem","logUnhandledMessage","Menu","MenuTrigger","MenuPanel","getGroupStatus","isNumericColumn"],"mappings":";;;;;;AA2DO,MAAM,sBAAyB,GAAA,CACpC,KAEA,KAAA,KAAA,KAAU,KACV,CAAA,IAAA;AAAA,EACE,WAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,mBAAA;AAAA,EACA,iBAAA;AAAA,EACA,kBAAA;AAAA,EACA,qBAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,eAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAAA,CAAE,SAAS,KAAK;AAEL,MAAA,uBAAA,GAA0B,CAAC,MAAsC,KAAA;AAC5E,EAAM,MAAA,EAAE,YAAa,EAAA,GAAK,MAAuB,CAAA,OAAA;AACjD,EAAI,IAAA,sBAAA,CAAuB,YAAY,CAAG,EAAA;AACxC,IAAO,OAAA,YAAA;AAAA,GACF,MAAA;AACL,IAAM,MAAA,KAAA;AAAA,MACJ;AAAA,KACF;AAAA;AAEJ;AAEO,SAAS,aACd,CAAA,MAAA,EACA,UACA,EAAA,sBAAA,EACA,YAAY,IACQ,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA,IAAa,MAAO,CAAA,QAAA,KAAa,KAAO,EAAA;AAC3C,IAAO,OAAA,IAAA;AAAA,GACF,MAAA;AACL,IAAA,MAAM,EAAE,IAAA,EAAM,KAAQ,GAAA,IAAA,EAAS,GAAA,MAAA;AAC/B,IAAA,MAAM,YAA0B,EAAC;AACjC,IAAA,MAAM,gBAAmB,GAAAA,sBAAA,CAAc,MAAO,CAAA,IAAA,EAAM,WAAW,IAAI,CAAA;AAEnE,IAAA,QAAQ,gBAAkB;AAAA,MACxB,KAAK,SAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRC,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAA;AAAA,MACF,KAAK,iBAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA,WAIN;AAAA,0BACAD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,aAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAA;AAAA,MACF,KAAK,kBAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA,WAIN;AAAA,0BACAD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,aAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAA;AAAA,MAEF,KAAK,mBAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,cAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,cAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,UAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAA;AAAA,MAEF,KAAK,gCAAA;AAAA,MACL,KAAK,iCAAA;AACH,QAAA;AAAA,MACF;AACE,QAAAC,4BAAA;AAAA,UACE,gBAAA;AAAA,UACA;AAAA,SACF;AAAA;AAGJ,IAAA,uCACGC,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAH,cAAA,CAACI,oBACC,QAAC,kBAAAJ,cAAA,CAAAC,aAAA,EAAA,EAAU,QAAW,EAAA,CAAA,QAAA,EAAA,KAAK,IAAG,CAChC,EAAA,CAAA;AAAA,sBACAD,cAAA,CAACK,kBAAW,QAAU,EAAA,SAAA,EAAA;AAAA,KAAA,EAAA,EAJd,WAKV,CAAA;AAAA;AAGN;AAEO,SAAS,cACd,CAAA,MAAA,EACA,UACA,EAAA,sBAAA,EACA,YAAY,IACQ,EAAA;AACpB,EAAA,IAAI,CAAC,SAAA,IAAa,MAAO,CAAA,SAAA,KAAc,KAAO,EAAA;AAC5C,IAAO,OAAA,IAAA;AAAA,GACF,MAAA;AACL,IAAA,MAAM,YAA0B,EAAC;AACjC,IAAA,MAAM,iBAAoB,GAAAC,uBAAA,CAAe,MAAO,CAAA,IAAA,EAAM,WAAW,OAAO,CAAA;AACxE,IAAA,MAAM,EAAE,IAAA,EAAM,KAAQ,GAAA,IAAA,EAAS,GAAA,MAAA;AAE/B,IAAA,QAAQ,iBAAmB;AAAA,MACzB,KAAK,YAAA;AAAA,MACL,KAAK,6BAAA;AACH,QACE,uBAAAN,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,qBAAoB,EAAA,cAAA;AAAA,YAEpB,OAAS,EAAA,sBAAA;AAAA,YACT,sBAAY,KAAK,CAAA;AAAA,WAAA;AAAA,UAFb;AAAA,SAEgB;AAAA,MAE1B,KAAK,gBAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,cAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AACA,QAAA;AAAA,MAEF,KAAK,6BAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,cAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AAEA,QAAA;AAAA,MAEF,KAAK,+BAAA;AACH,QAAU,SAAA,CAAA,IAAA;AAAA,0BACRD,cAAA;AAAA,YAACC,aAAA;AAAA,YAAA;AAAA,cACC,qBAAoB,EAAA,mBAAA;AAAA,cAEpB,OAAS,EAAA,sBAAA;AAAA,cACV,QAAA,EAAA;AAAA,aAAA;AAAA,YAFK;AAAA;AAIN,SACF;AAEA,QAAA;AAAA,MAEF;AACE,QAAAC,4BAAA;AAAA,UACE,iBAAA;AAAA,UACA;AAAA,SACF;AAAA;AAGJ,IAAA,uCACGC,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAAH,cAAA,CAACI,gBACC,EAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACC,aAAS,EAAA,EAAA,QAAA,EAAA,YAAA,EAAU,CACtB,EAAA,CAAA;AAAA,sBACAD,cAAA,CAACK,kBAAW,QAAU,EAAA,SAAA,EAAA;AAAA,KAAA,EAAA,EAJd,YAKV,CAAA;AAAA;AAGN;AAEO,MAAM,wBAA2B,GAAA,CACtC,MACA,EAAA,sBAAA,EACA,YAAY,IACY,KAAA;AACxB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,IAAA;AAAA;AAET,EAAA,MAAM,YAA0B,EAAC;AACjC,EAAA,MAAM,EAAE,IAAA,EAAM,KAAQ,GAAA,IAAA,EAAS,GAAA,MAAA;AAC/B,EAAU,SAAA,CAAA,IAAA;AAAA,oBACRL,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,qBAAoB,EAAA,aAAA;AAAA,QAEpB,OAAS,EAAA,sBAAA;AAAA,QAER,kBAAQ,KAAK,CAAA,OAAA;AAAA,OAAA;AAAA,MAHV;AAAA;AAIN,GACF;AACA,EAAU,SAAA,CAAA,IAAA;AAAA,oBACRD,cAAA;AAAA,MAACC,aAAA;AAAA,MAAA;AAAA,QACC,qBAAoB,EAAA,eAAA;AAAA,QAEpB,OAAS,EAAA,sBAAA;AAAA,QAER,oBAAU,KAAK,CAAA,OAAA;AAAA,OAAA;AAAA,MAHZ;AAAA;AAIN,GACF;AAEA,EAAO,OAAA,SAAA;AACT;AAEO,MAAM,iBAAoB,GAAA,CAC/B,MACA,EAAA,sBAAA,EACA,YAAY,IACK,KAAA;AACjB,EAAI,IAAA,CAAC,SAAa,IAAA,MAAA,KAAW,KAAW,CAAA,EAAA;AACtC,IAAA,OAAO,EAAC;AAAA;AAEV,EAAM,MAAA,EAAE,KAAQ,GAAA,MAAA;AAEhB,EAAA,MAAM,YAA0B,EAAC;AAEjC,EAAA,MAAM,OACJ,mBAAAD,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,qBAAoB,EAAA,iBAAA;AAAA,MAEpB,OAAS,EAAA,sBAAA;AAAA,MACV,QAAA,EAAA;AAAA,KAAA;AAAA,IAFK;AAAA,GAIN;AAGF,EAAA,MAAM,WACJ,mBAAAD,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,qBAAoB,EAAA,qBAAA;AAAA,MAEpB,OAAS,EAAA,sBAAA;AAAA,MACV,QAAA,EAAA;AAAA,KAAA;AAAA,IAFK;AAAA,GAIN;AAGF,EAAA,MAAM,QACJ,mBAAAD,cAAA;AAAA,IAACC,aAAA;AAAA,IAAA;AAAA,MACC,qBAAoB,EAAA,kBAAA;AAAA,MAEpB,OAAS,EAAA,sBAAA;AAAA,MACV,QAAA,EAAA;AAAA,KAAA;AAAA,IAFK;AAAA,GAIN;AAGF,EAAA,IAAI,QAAQ,KAAW,CAAA,EAAA;AACrB,IAAU,SAAA,CAAA,IAAA;AAAA,sCACPE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAACI,gBACC,EAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACC,aAAS,EAAA,EAAA,QAAA,EAAA,YAAA,EAAU,CACtB,EAAA,CAAA;AAAA,wCACCI,cACE,EAAA,EAAA,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACA,WAAA;AAAA,UACA;AAAA,SACH,EAAA;AAAA,OAAA,EAAA,EARQ,UASV;AAAA,KACF;AAAA,GACK,MAAA;AACL,IAAU,SAAA,CAAA,IAAA;AAAA,sBACRL,cAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,qBAAoB,EAAA,cAAA;AAAA,UAEpB,OAAS,EAAA,sBAAA;AAAA,UACV,QAAA,EAAA;AAAA,SAAA;AAAA,QAFK;AAAA;AAIN,KACF;AACA,IAAA,IAAI,QAAQ,MAAQ,EAAA;AAClB,MAAU,SAAA,CAAA,IAAA;AAAA,wCACPE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAH,cAAA,CAACI,gBACC,EAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACC,aAAS,EAAA,EAAA,QAAA,EAAA,YAAA,EAAU,CACtB,EAAA,CAAA;AAAA,0CACCI,cACE,EAAA,EAAA,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YACA;AAAA,WACH,EAAA;AAAA,SAAA,EAAA,EAPQ,UAQV;AAAA,OACF;AAAA,KACF,MAAA,IAAW,QAAQ,UAAY,EAAA;AAC7B,MAAU,SAAA,CAAA,IAAA;AAAA,wCACPF,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAH,cAAA,CAACI,gBACC,EAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACC,aAAS,EAAA,EAAA,QAAA,EAAA,YAAA,EAAU,CACtB,EAAA,CAAA;AAAA,0CACCI,cACE,EAAA,EAAA,QAAA,EAAA;AAAA,YAAA,OAAA;AAAA,YACA;AAAA,WACH,EAAA;AAAA,SAAA,EAAA,EAPQ,UAQV;AAAA,OACF;AAAA,KACK,MAAA;AACL,MAAU,SAAA,CAAA,IAAA;AAAA,wCACPF,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAAH,cAAA,CAACI,gBACC,EAAA,EAAA,QAAA,kBAAAJ,cAAA,CAACC,aAAS,EAAA,EAAA,QAAA,EAAA,YAAA,EAAU,CACtB,EAAA,CAAA;AAAA,0CACCI,cACE,EAAA,EAAA,QAAA,EAAA;AAAA,YAAA,WAAA;AAAA,YACA;AAAA,WACH,EAAA;AAAA,SAAA,EAAA,EAPQ,UAQV;AAAA,OACF;AAAA;AACF;AAGF,EAAO,OAAA,SAAA;AACT;AAEO,MAAM,yBAAyB,CACpC,CAAA,EACA,wBACA,mBAAsB,GAAA,IAAA,EACtB,qBAAyD,IACjC,KAAA;AACxB,EAAI,IAAA,CAAC,mBAAuB,IAAA,CAAC,kBAAoB,EAAA;AAC/C,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,YAA0B,EAAC;AAEjC,EAAA,IAAI,mBAAqB,EAAA;AACvB,IAAU,SAAA,CAAA,IAAA;AAAA,sBACRL,cAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,WAAU,EAAA,UAAA;AAAA,UACV,qBAAoB,EAAA,iBAAA;AAAA,UAEpB,OAAS,EAAA,sBAAA;AAAA,UACV,QAAA,EAAA;AAAA,SAAA;AAAA,QAFK;AAAA;AAIN,KACF;AAAA;AAGF,EAAA,IAAI,kBAAoB,EAAA;AACtB,IAAU,SAAA,CAAA,IAAA;AAAA,sBACRD,cAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,WAAU,EAAA,UAAA;AAAA,UACV,qBAAoB,EAAA,gBAAA;AAAA,UAEpB,OAAS,EAAA,sBAAA;AAAA,UACV,QAAA,EAAA;AAAA,SAAA;AAAA,QAFK;AAAA;AAIN,KACF;AAAA;AAGF,EAAO,OAAA,SAAA;AACT;AAEO,SAAS,yBACd,CAAA,MAAA,EACA,UACA,EAAA,sBAAA,EACA,YAAY,IACS,EAAA;AACrB,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,EAAE,IAAA,EAAM,KAAQ,GAAA,IAAA,EAAS,GAAA,MAAA;AAE/B,EAAI,IAAA,UAAA,CAAW,OAAS,EAAA,MAAA,KAAW,CAAG,EAAA;AACpC,IAAA,OAAO,EAAC;AAAA,GACH,MAAA;AACL,IAAA,MAAM,SAA0B,GAAA;AAAA,sBAC9BD,cAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,qBAAoB,EAAA,WAAA;AAAA,UAEpB,OAAS,EAAA,sBAAA;AAAA,UACV,QAAA,EAAA;AAAA,SAAA;AAAA,QAFK;AAAA,OAIN;AAAA,sBACAD,cAAA;AAAA,QAACC,aAAA;AAAA,QAAA;AAAA,UACC,qBAAoB,EAAA,cAAA;AAAA,UAEpB,OAAS,EAAA,sBAAA;AAAA,UACV,QAAA,EAAA;AAAA,SAAA;AAAA,QAFK;AAAA;AAIN,KACF;AAEA,IAAI,IAAAM,wBAAA,CAAgB,MAAM,CAAG,EAAA;AAC3B,MAAU,SAAA,CAAA,IAAA;AAAA,wBACRP,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,qBAAoB,EAAA,SAAA;AAAA,YAEpB,OAAS,EAAA,sBAAA;AAAA,YACV,QAAA,EAAA;AAAA,WAAA;AAAA,UAFK;AAAA,SAIN;AAAA,wBACAD,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,qBAAoB,EAAA,SAAA;AAAA,YAEpB,OAAS,EAAA,sBAAA;AAAA,YACV,QAAA,EAAA;AAAA,WAAA;AAAA,UAFK;AAAA,SAIN;AAAA,wBACAD,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,qBAAoB,EAAA,UAAA;AAAA,YAEpB,OAAS,EAAA,sBAAA;AAAA,YACV,QAAA,EAAA;AAAA,WAAA;AAAA,UAFK;AAAA,SAIN;AAAA,wBACAD,cAAA;AAAA,UAACC,aAAA;AAAA,UAAA;AAAA,YACC,qBAAoB,EAAA,SAAA;AAAA,YAEpB,OAAS,EAAA,sBAAA;AAAA,YACV,QAAA,EAAA;AAAA,WAAA;AAAA,UAFK;AAAA;AAIN,OACF;AAAA;AAGF,IAAO,OAAA;AAAA,sCACJE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,wBAAAH,cAAA,CAACI,oBACC,QAAC,kBAAAJ,cAAA,CAAAC,aAAA,EAAA,EAAU,QAAa,EAAA,CAAA,UAAA,EAAA,KAAK,IAAG,CAClC,EAAA,CAAA;AAAA,wBACAD,cAAA,CAACK,kBAAW,QAAU,EAAA,SAAA,EAAA;AAAA,OAAA,EAAA,EAJd,gBAKV;AAAA,KACF;AAAA;AAEJ;;;;;;;;;;;"}
@@ -1,11 +1,9 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { DragDropProvider } from '@dnd-kit/react';
3
- import { useSortable } from '@dnd-kit/react/sortable';
2
+ import { queryClosest, reorderColumnItems, DragDropProvider, getColumnLabel, useSortable } from '@vuu-ui/vuu-utils';
4
3
  import { ListBox, Option, Checkbox, Switch } from '@salt-ds/core';
5
4
  import { useComponentCssInjection } from '@salt-ds/styles';
6
5
  import { useWindow } from '@salt-ds/window';
7
6
  import { IconButton, Icon } from '@vuu-ui/vuu-ui-controls';
8
- import { queryClosest, reorderColumnItems, getColumnLabel } from '@vuu-ui/vuu-utils';
9
7
  import cx from 'clsx';
10
8
  import { useRef, useCallback, useMemo } from 'react';
11
9
  import columnList from './ColumnList.css.js';
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider } from \"@dnd-kit/react\";\nimport { useSortable } from \"@dnd-kit/react/sortable\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColumnList.js","sources":["../../src/column-list/ColumnList.tsx"],"sourcesContent":["import { DragDropProvider, useSortable } from \"@vuu-ui/vuu-utils\";\nimport { Checkbox, ListBox, Option, OptionProps, Switch } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnListPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { Icon, IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n getColumnLabel,\n queryClosest,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport {\n HTMLAttributes,\n MouseEventHandler,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { ColumnItem } from \"../table-column-settings/useTableSettings\";\n\nimport columnList from \"./ColumnList.css\";\n\nconst classBase = \"vuuColumnList\";\nconst classBaseListItem = \"vuuColumnListItem\";\n\nconst useSorting = (id: string, index: number, allowSort = true) => {\n const { handleRef: sortableHandleRef, ref: sortableRef } = useSortable({\n id,\n index,\n });\n\n const noopRef = useCallback(() => {\n // do nothing\n }, []);\n\n const [handleRef, ref] = useMemo(() => {\n return allowSort ? [sortableHandleRef, sortableRef] : [noopRef, noopRef];\n }, [allowSort, noopRef, sortableHandleRef, sortableRef]);\n\n return {\n handleRef,\n ref,\n };\n};\n\nexport type ColumnChangeHandler = (\n columnName: string,\n propertyName: keyof ColumnDescriptor | \"subscribed\",\n value: string | number | boolean,\n) => void;\n\nexport interface ColumnListProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n columnItems: ColumnItem[];\n onChange: ColumnChangeHandler;\n onNavigateToColumn?: (columnName: string) => void;\n onReorderColumnItems?: (columnItems: ColumnItem[]) => void;\n permissions?: ColumnListPermissions;\n}\n\nconst ColumnListItem = ({\n className: classNameProp,\n index,\n item,\n permissions: { allowHideColumns, allowRemoveColumns, allowReorderColumns },\n ...optionProps\n}: OptionProps & {\n index: number;\n item: ColumnItem;\n permissions: ColumnListPermissions;\n}) => {\n const { handleRef, ref } = useSorting(item.name, index, allowReorderColumns);\n return (\n <Option\n {...optionProps}\n className={cx(classNameProp, classBaseListItem)}\n data-name={item.name}\n id={item.name}\n ref={ref}\n >\n {allowReorderColumns ? (\n <IconButton\n data-embedded\n appearance=\"transparent\"\n icon=\"draggable\"\n ref={handleRef}\n size={16}\n />\n ) : null}\n {item?.isCalculated ? (\n <Icon name=\"function\" />\n ) : (\n <Checkbox\n className={`${classBase}-checkBox`}\n checked={item?.subscribed}\n readOnly={allowRemoveColumns === false}\n />\n )}\n <span className={`${classBase}-text`}>\n {getColumnLabel(item as ColumnDescriptor)}\n </span>\n {allowHideColumns !== false ? (\n <Switch\n className={`${classBase}-switch`}\n checked={item?.hidden !== true}\n disabled={item?.subscribed !== true}\n />\n ) : null}\n </Option>\n );\n};\n\nconst defaultPermissions: ColumnListPermissions = {\n allowHideColumns: true,\n allowRemoveColumns: true,\n allowReorderColumns: true,\n};\n\nexport const ColumnList = ({\n className,\n columnItems,\n onChange,\n onNavigateToColumn,\n onReorderColumnItems,\n permissions = defaultPermissions,\n ...htmlAttributes\n}: ColumnListProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-list\",\n css: columnList,\n window: targetWindow,\n });\n const listRef = useRef<HTMLDivElement>(null);\n\n const handleChange = useCallback(\n ({ target }: SyntheticEvent) => {\n const input = target as HTMLInputElement;\n const listItem = queryClosest(target, `.${classBaseListItem}`);\n if (listItem) {\n const {\n dataset: { name },\n } = listItem;\n if (name) {\n const saltCheckbox = queryClosest(target, `.${classBase}-checkBox`);\n const saltSwitch = queryClosest(target, `.${classBase}-switch`);\n\n if (saltCheckbox) {\n onChange(name, \"subscribed\", input.checked);\n } else if (saltSwitch) {\n onChange(name, \"hidden\", input.checked === false);\n }\n }\n }\n },\n [onChange],\n );\n\n const handleClick = useCallback<MouseEventHandler>(\n (evt) => {\n const targetEl = evt.target as HTMLElement;\n if (targetEl.classList.contains(\"vuuColumnList-text\")) {\n const listItemEl = targetEl.closest(\".vuuListItem\") as HTMLElement;\n if (listItemEl?.dataset.name) {\n onNavigateToColumn?.(listItemEl.dataset.name);\n }\n }\n },\n [onNavigateToColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setTimeout(() => {\n const listItems =\n listRef.current?.querySelectorAll<HTMLDivElement>(\".saltOption\");\n if (listItems) {\n const orderedIds = Array.from(listItems).map(({ id }) => id);\n onReorderColumnItems?.(reorderColumnItems(columnItems, orderedIds));\n }\n }, 300);\n }, [columnItems, onReorderColumnItems]);\n\n return (\n <DragDropProvider onDragEnd={handleDragEnd}>\n <div\n {...htmlAttributes}\n className={cx(classBase, className, {\n [`${classBase}-withColumnNavigation`]:\n typeof onNavigateToColumn === \"function\",\n })}\n >\n <div className={`${classBase}-header`}>\n <span>Column Selection</span>\n </div>\n <div className={`${classBase}-colHeadings`}>\n <span>Column subscription</span>\n <span>Visibility</span>\n </div>\n <ListBox ref={listRef}>\n {columnItems.map((columnItem, index) => (\n <ColumnListItem\n item={columnItem}\n index={index}\n key={columnItem.name}\n onChange={handleChange}\n onClick={handleClick}\n permissions={permissions}\n value={columnItem}\n />\n ))}\n </ListBox>\n </div>\n </DragDropProvider>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;AA2BA,MAAM,SAAY,GAAA,eAAA;AAClB,MAAM,iBAAoB,GAAA,mBAAA;AAE1B,MAAM,UAAa,GAAA,CAAC,EAAY,EAAA,KAAA,EAAe,YAAY,IAAS,KAAA;AAClE,EAAA,MAAM,EAAE,SAAW,EAAA,iBAAA,EAAmB,GAAK,EAAA,WAAA,KAAgB,WAAY,CAAA;AAAA,IACrE,EAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAM,MAAA,OAAA,GAAU,YAAY,MAAM;AAAA,GAElC,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,CAAC,SAAA,EAAW,GAAG,CAAA,GAAI,QAAQ,MAAM;AACrC,IAAA,OAAO,YAAY,CAAC,iBAAA,EAAmB,WAAW,CAAI,GAAA,CAAC,SAAS,OAAO,CAAA;AAAA,KACtE,CAAC,SAAA,EAAW,OAAS,EAAA,iBAAA,EAAmB,WAAW,CAAC,CAAA;AAEvD,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;AAiBA,MAAM,iBAAiB,CAAC;AAAA,EACtB,SAAW,EAAA,aAAA;AAAA,EACX,KAAA;AAAA,EACA,IAAA;AAAA,EACA,WAAa,EAAA,EAAE,gBAAkB,EAAA,kBAAA,EAAoB,mBAAoB,EAAA;AAAA,EACzE,GAAG;AACL,CAIM,KAAA;AACJ,EAAM,MAAA,EAAE,WAAW,GAAI,EAAA,GAAI,WAAW,IAAK,CAAA,IAAA,EAAM,OAAO,mBAAmB,CAAA;AAC3E,EACE,uBAAA,IAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACE,GAAG,WAAA;AAAA,MACJ,SAAA,EAAW,EAAG,CAAA,aAAA,EAAe,iBAAiB,CAAA;AAAA,MAC9C,aAAW,IAAK,CAAA,IAAA;AAAA,MAChB,IAAI,IAAK,CAAA,IAAA;AAAA,MACT,GAAA;AAAA,MAEC,QAAA,EAAA;AAAA,QACC,mBAAA,mBAAA,GAAA;AAAA,UAAC,UAAA;AAAA,UAAA;AAAA,YACC,eAAa,EAAA,IAAA;AAAA,YACb,UAAW,EAAA,aAAA;AAAA,YACX,IAAK,EAAA,WAAA;AAAA,YACL,GAAK,EAAA,SAAA;AAAA,YACL,IAAM,EAAA;AAAA;AAAA,SAEN,GAAA,IAAA;AAAA,QACH,MAAM,YACL,mBAAA,GAAA,CAAC,IAAK,EAAA,EAAA,IAAA,EAAK,YAAW,CAEtB,mBAAA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,SAAS,CAAA,SAAA,CAAA;AAAA,YACvB,SAAS,IAAM,EAAA,UAAA;AAAA,YACf,UAAU,kBAAuB,KAAA;AAAA;AAAA,SACnC;AAAA,wBAEF,GAAA,CAAC,UAAK,SAAW,EAAA,CAAA,EAAG,SAAS,CAC1B,KAAA,CAAA,EAAA,QAAA,EAAA,cAAA,CAAe,IAAwB,CAC1C,EAAA,CAAA;AAAA,QACC,qBAAqB,KACpB,mBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,SAAS,CAAA,OAAA,CAAA;AAAA,YACvB,OAAA,EAAS,MAAM,MAAW,KAAA,IAAA;AAAA,YAC1B,QAAA,EAAU,MAAM,UAAe,KAAA;AAAA;AAAA,SAE/B,GAAA;AAAA;AAAA;AAAA,GACN;AAEJ,CAAA;AAEA,MAAM,kBAA4C,GAAA;AAAA,EAChD,gBAAkB,EAAA,IAAA;AAAA,EAClB,kBAAoB,EAAA,IAAA;AAAA,EACpB,mBAAqB,EAAA;AACvB,CAAA;AAEO,MAAM,aAAa,CAAC;AAAA,EACzB,SAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,oBAAA;AAAA,EACA,WAAc,GAAA,kBAAA;AAAA,EACd,GAAG;AACL,CAAuB,KAAA;AACrB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAA,UAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AACD,EAAM,MAAA,OAAA,GAAU,OAAuB,IAAI,CAAA;AAE3C,EAAA,MAAM,YAAe,GAAA,WAAA;AAAA,IACnB,CAAC,EAAE,MAAA,EAA6B,KAAA;AAC9B,MAAA,MAAM,KAAQ,GAAA,MAAA;AACd,MAAA,MAAM,QAAW,GAAA,YAAA,CAAa,MAAQ,EAAA,CAAA,CAAA,EAAI,iBAAiB,CAAE,CAAA,CAAA;AAC7D,MAAA,IAAI,QAAU,EAAA;AACZ,QAAM,MAAA;AAAA,UACJ,OAAA,EAAS,EAAE,IAAK;AAAA,SACd,GAAA,QAAA;AACJ,QAAA,IAAI,IAAM,EAAA;AACR,UAAA,MAAM,YAAe,GAAA,YAAA,CAAa,MAAQ,EAAA,CAAA,CAAA,EAAI,SAAS,CAAW,SAAA,CAAA,CAAA;AAClE,UAAA,MAAM,UAAa,GAAA,YAAA,CAAa,MAAQ,EAAA,CAAA,CAAA,EAAI,SAAS,CAAS,OAAA,CAAA,CAAA;AAE9D,UAAA,IAAI,YAAc,EAAA;AAChB,YAAS,QAAA,CAAA,IAAA,EAAM,YAAc,EAAA,KAAA,CAAM,OAAO,CAAA;AAAA,qBACjC,UAAY,EAAA;AACrB,YAAA,QAAA,CAAS,IAAM,EAAA,QAAA,EAAU,KAAM,CAAA,OAAA,KAAY,KAAK,CAAA;AAAA;AAClD;AACF;AACF,KACF;AAAA,IACA,CAAC,QAAQ;AAAA,GACX;AAEA,EAAA,MAAM,WAAc,GAAA,WAAA;AAAA,IAClB,CAAC,GAAQ,KAAA;AACP,MAAA,MAAM,WAAW,GAAI,CAAA,MAAA;AACrB,MAAA,IAAI,QAAS,CAAA,SAAA,CAAU,QAAS,CAAA,oBAAoB,CAAG,EAAA;AACrD,QAAM,MAAA,UAAA,GAAa,QAAS,CAAA,OAAA,CAAQ,cAAc,CAAA;AAClD,QAAI,IAAA,UAAA,EAAY,QAAQ,IAAM,EAAA;AAC5B,UAAqB,kBAAA,GAAA,UAAA,CAAW,QAAQ,IAAI,CAAA;AAAA;AAC9C;AACF,KACF;AAAA,IACA,CAAC,kBAAkB;AAAA,GACrB;AAEA,EAAM,MAAA,aAAA,GAAgB,YAAY,MAAM;AACtC,IAAA,UAAA,CAAW,MAAM;AACf,MAAA,MAAM,SACJ,GAAA,OAAA,CAAQ,OAAS,EAAA,gBAAA,CAAiC,aAAa,CAAA;AACjE,MAAA,IAAI,SAAW,EAAA;AACb,QAAM,MAAA,UAAA,GAAa,KAAM,CAAA,IAAA,CAAK,SAAS,CAAA,CAAE,IAAI,CAAC,EAAE,EAAG,EAAA,KAAM,EAAE,CAAA;AAC3D,QAAuB,oBAAA,GAAA,kBAAA,CAAmB,WAAa,EAAA,UAAU,CAAC,CAAA;AAAA;AACpE,OACC,GAAG,CAAA;AAAA,GACL,EAAA,CAAC,WAAa,EAAA,oBAAoB,CAAC,CAAA;AAEtC,EACE,uBAAA,GAAA,CAAC,gBAAiB,EAAA,EAAA,SAAA,EAAW,aAC3B,EAAA,QAAA,kBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,cAAA;AAAA,MACJ,SAAA,EAAW,EAAG,CAAA,SAAA,EAAW,SAAW,EAAA;AAAA,QAClC,CAAC,CAAG,EAAA,SAAS,CAAuB,qBAAA,CAAA,GAClC,OAAO,kBAAuB,KAAA;AAAA,OACjC,CAAA;AAAA,MAED,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,KAAA,EAAA,EAAI,WAAW,CAAG,EAAA,SAAS,WAC1B,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA,EAAK,8BAAgB,CACxB,EAAA,CAAA;AAAA,wBACC,IAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAC1B,YAAA,CAAA,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,UAAK,QAAmB,EAAA,qBAAA,EAAA,CAAA;AAAA,0BACzB,GAAA,CAAC,UAAK,QAAU,EAAA,YAAA,EAAA;AAAA,SAClB,EAAA,CAAA;AAAA,wBACA,GAAA,CAAC,WAAQ,GAAK,EAAA,OAAA,EACX,sBAAY,GAAI,CAAA,CAAC,YAAY,KAC5B,qBAAA,GAAA;AAAA,UAAC,cAAA;AAAA,UAAA;AAAA,YACC,IAAM,EAAA,UAAA;AAAA,YACN,KAAA;AAAA,YAEA,QAAU,EAAA,YAAA;AAAA,YACV,OAAS,EAAA,WAAA;AAAA,YACT,WAAA;AAAA,YACA,KAAO,EAAA;AAAA,WAAA;AAAA,UAJF,UAAW,CAAA;AAAA,SAMnB,CACH,EAAA;AAAA;AAAA;AAAA,GAEJ,EAAA,CAAA;AAEJ;;;;"}
@@ -184,18 +184,15 @@ function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed =
184
184
  switch (columnGroupStatus) {
185
185
  case "no-groupby":
186
186
  case "single-groupby-other-column":
187
- menuItems.push(
188
- /* @__PURE__ */ jsx(
189
- MenuItem,
190
- {
191
- "data-menu-action-id": "group-column",
192
- onClick: menuActionClickHandler,
193
- children: `Group by ${label}`
194
- },
195
- "group-column"
196
- )
187
+ return /* @__PURE__ */ jsx(
188
+ MenuItem,
189
+ {
190
+ "data-menu-action-id": "group-column",
191
+ onClick: menuActionClickHandler,
192
+ children: `Group by ${label}`
193
+ },
194
+ "group-column"
197
195
  );
198
- break;
199
196
  case "single-groupby":
200
197
  menuItems.push(
201
198
  /* @__PURE__ */ jsx(
@@ -1 +1 @@
1
- {"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>,\n );\n break;\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"column-menu-utils.js","sources":["../../src/column-menu/column-menu-utils.tsx"],"sourcesContent":["import {\n Menu,\n MenuItem,\n MenuItemProps,\n MenuPanel,\n MenuProps,\n MenuTrigger,\n} from \"@salt-ds/core\";\nimport { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n getGroupStatus,\n getSortStatus,\n isNumericColumn,\n logUnhandledMessage,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEventHandler, ReactElement } from \"react\";\n\ntype MenuElement = ReactElement<MenuProps, typeof Menu>;\ntype MenuItemElement = ReactElement<MenuItemProps, typeof MenuItem>;\ntype MenuElements = Array<MenuElement | MenuItemElement>;\n\nexport type MenuItemClickHandler = MouseEventHandler<HTMLDivElement>;\n\nexport type DataSourceColumnMenuActionType =\n | \"agg-count\"\n | \"agg-distinct\"\n | \"agg-sum\"\n | \"agg-avg\"\n | \"agg-high\"\n | \"agg-low\"\n | \"sort-asc\"\n | \"sort-dsc\"\n | \"sort-add-asc\"\n | \"sort-add-dsc\"\n | \"remove-sort\"\n | \"group-column\"\n | \"remove-group\"\n | \"add-to-group\"\n | \"remove-from-group\"\n | \"remove-column\";\n\nexport type ColumnDisplayColumnMenuActionType =\n | \"pin-column-left\"\n | \"pin-column-right\"\n | \"pin-column-floating\"\n | \"unpin-column\"\n | \"hide-column\";\n\nexport type TableSettingsActionType = \"column-settings\" | \"table-settings\";\n\nexport type ColumnMenuActionType =\n | DataSourceColumnMenuActionType\n | ColumnDisplayColumnMenuActionType\n | TableSettingsActionType;\n\nexport const isColumnMenuActionType = (\n value?: string,\n): value is ColumnMenuActionType =>\n value !== undefined &&\n [\n \"agg-count\",\n \"agg-distinct\",\n \"agg-sum\",\n \"agg-avg\",\n \"agg-high\",\n \"agg-low\",\n \"sort-asc\",\n \"sort-dsc\",\n \"sort-add-asc\",\n \"sort-add-dsc\",\n \"remove-sort\",\n \"group-column\",\n \"remove-group\",\n \"add-to-group\",\n \"remove-from-group\",\n \"pin-column-left\",\n \"pin-column-right\",\n \"pin-column-floating\",\n \"unpin-column\",\n \"hide-column\",\n \"remove-column\",\n \"column-settings\",\n \"table-settings\",\n ].includes(value);\n\nexport const getColumnMenuActionType = (target: EventTarget | HTMLElement) => {\n const { menuActionId } = (target as HTMLElement).dataset;\n if (isColumnMenuActionType(menuActionId)) {\n return menuActionId;\n } else {\n throw Error(\n \"[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem\",\n );\n }\n};\n\nexport function buildSortMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.sortable === false) {\n return null;\n } else {\n const { name, label = name } = column;\n const menuItems: MenuElements = [];\n const columnSortStatus = getSortStatus(column.name, dataSource.sort);\n\n switch (columnSortStatus) {\n case \"no-sort\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Sort ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Sort descending\n </MenuItem>,\n );\n break;\n case \"single-sort-asc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (DSC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n case \"single-sort-desc\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Reverse Sort (ASC)\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"remove-sort\"\n key=\"remove-sort\"\n onClick={menuActionClickHandler}\n >\n Remove Sort\n </MenuItem>,\n );\n break;\n\n case \"sort-other-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-asc\"\n key=\"sort-add-asc\"\n onClick={menuActionClickHandler}\n >\n Add to sort ASC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-add-dsc\"\n key=\"sort-add-dsc\"\n onClick={menuActionClickHandler}\n >\n Add to sort DSC\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-asc\"\n key=\"sort-asc\"\n onClick={menuActionClickHandler}\n >\n Ascending\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"sort-dsc\"\n key=\"sort-dsc\"\n onClick={menuActionClickHandler}\n >\n Descending\n </MenuItem>,\n );\n break;\n\n case \"multi-sort-includes-column-asc\":\n case \"multi-sort-includes-column-desc\":\n break;\n default:\n logUnhandledMessage(\n columnSortStatus,\n \"[vuu-table-extras] column-menu-utils buildSortMenu\",\n );\n }\n\n return (\n <Menu key=\"sort-menu\">\n <MenuTrigger>\n <MenuItem>{`Sort by ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport function buildGroupMenu(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElement | null {\n if (!isAllowed || column.groupable === false) {\n return null;\n } else {\n const menuItems: MenuElements = [];\n const columnGroupStatus = getGroupStatus(column.name, dataSource.groupBy);\n const { name, label = name } = column;\n\n switch (columnGroupStatus) {\n case \"no-groupby\":\n case \"single-groupby-other-column\":\n return (\n <MenuItem\n data-menu-action-id=\"group-column\"\n key=\"group-column\"\n onClick={menuActionClickHandler}\n >{`Group by ${label}`}</MenuItem>\n );\n case \"single-groupby\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-group\"\n key=\"remove-group\"\n onClick={menuActionClickHandler}\n >\n Remove Grouping\n </MenuItem>,\n );\n break;\n\n case \"multi-groupby-other-columns\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"add-to-group\"\n key=\"add-to-group\"\n onClick={menuActionClickHandler}\n >\n Add to grouping\n </MenuItem>,\n );\n\n break;\n\n case \"multi-groupby-includes-column\":\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-from-group\"\n key=\"remove-from-group\"\n onClick={menuActionClickHandler}\n >\n Remove from grouping\n </MenuItem>,\n );\n\n break;\n\n default:\n logUnhandledMessage(\n columnGroupStatus,\n \"[vuu-table-extras] column-menu-utils buildGroupMenu\",\n );\n }\n\n return (\n <Menu key=\"group-menu\">\n <MenuTrigger>\n <MenuItem>Group data</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>\n );\n }\n}\n\nexport const buildVisibilityMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null => {\n if (!isAllowed) {\n return null;\n }\n const menuItems: MenuElements = [];\n const { name, label = name } = column;\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"hide-column\"\n key=\"hide-column\"\n onClick={menuActionClickHandler}\n >\n {`Hide ${label} column`}\n </MenuItem>,\n );\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"remove-column\"\n key=\"remove-column\"\n onClick={menuActionClickHandler}\n >\n {`Remove ${label} column`}\n </MenuItem>,\n );\n\n return menuItems;\n};\n\nexport const buildPinMenuItems = (\n column: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements => {\n if (!isAllowed || column === undefined) {\n return [];\n }\n const { pin } = column;\n\n const menuItems: MenuElements = [];\n\n const pinLeft = (\n <MenuItem\n data-menu-action-id=\"pin-column-left\"\n key=\"pin-column-left\"\n onClick={menuActionClickHandler}\n >\n Pin left\n </MenuItem>\n );\n\n const pinFloating = (\n <MenuItem\n data-menu-action-id=\"pin-column-floating\"\n key=\"pin-column-floating\"\n onClick={menuActionClickHandler}\n >\n Pin floating\n </MenuItem>\n );\n\n const pinRight = (\n <MenuItem\n data-menu-action-id=\"pin-column-right\"\n key=\"pin-column-right\"\n onClick={menuActionClickHandler}\n >\n Pin right\n </MenuItem>\n );\n\n if (pin === undefined) {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"unpin-column\"\n key=\"unpin-column\"\n onClick={menuActionClickHandler}\n >\n Unpin\n </MenuItem>,\n );\n if (pin === \"left\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else if (pin === \"floating\") {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinLeft}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n } else {\n menuItems.push(\n <Menu key=\"pin-menu\">\n <MenuTrigger>\n <MenuItem>Pin Column</MenuItem>\n </MenuTrigger>\n <MenuPanel>\n {pinFloating}\n {pinRight}\n </MenuPanel>\n </Menu>,\n );\n }\n }\n\n return menuItems;\n};\n\nexport const buildSettingsMenuItems = (\n _: ColumnDescriptor,\n menuActionClickHandler: MenuItemClickHandler,\n allowColumnSettings = true,\n allowTableSettings: boolean | TableSettingsPermissions = true,\n): MenuElements | null => {\n if (!allowColumnSettings && !allowTableSettings) {\n return null;\n }\n\n const menuItems: MenuElements = [];\n\n if (allowColumnSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"column-settings\"\n key=\"column-settings\"\n onClick={menuActionClickHandler}\n >\n Column settings ...\n </MenuItem>,\n );\n }\n\n if (allowTableSettings) {\n menuItems.push(\n <MenuItem\n data-icon=\"settings\"\n data-menu-action-id=\"table-settings\"\n key=\"table-settings\"\n onClick={menuActionClickHandler}\n >\n Table settings ...\n </MenuItem>,\n );\n }\n\n return menuItems;\n};\n\nexport function buildAggregationMenuItems(\n column: ColumnDescriptor,\n dataSource: DataSource,\n menuActionClickHandler: MenuItemClickHandler,\n isAllowed = true,\n): MenuElements | null {\n if (!isAllowed) {\n return null;\n }\n\n const { name, label = name } = column;\n\n if (dataSource.groupBy?.length === 0) {\n return [];\n } else {\n const menuItems: MenuElements = [\n <MenuItem\n data-menu-action-id=\"agg-count\"\n key=\"agg-count\"\n onClick={menuActionClickHandler}\n >\n Count\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-distinct\"\n key=\"agg-distinct\"\n onClick={menuActionClickHandler}\n >\n Distinct\n </MenuItem>,\n ];\n\n if (isNumericColumn(column)) {\n menuItems.push(\n <MenuItem\n data-menu-action-id=\"agg-sum\"\n key=\"agg-sum\"\n onClick={menuActionClickHandler}\n >\n Sum\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-avg\"\n key=\"agg-avg\"\n onClick={menuActionClickHandler}\n >\n Average\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-high\"\n key=\"agg-high\"\n onClick={menuActionClickHandler}\n >\n High\n </MenuItem>,\n <MenuItem\n data-menu-action-id=\"agg-low\"\n key=\"agg-low\"\n onClick={menuActionClickHandler}\n >\n Low\n </MenuItem>,\n );\n }\n\n return [\n <Menu key=\"aggregate-menu\">\n <MenuTrigger>\n <MenuItem>{`Aggregate ${label}`}</MenuItem>\n </MenuTrigger>\n <MenuPanel>{menuItems}</MenuPanel>\n </Menu>,\n ];\n }\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,25 +1,24 @@
1
1
  {
2
- "version": "0.13.5",
2
+ "version": "0.13.7",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
5
  "devDependencies": {
6
- "@vuu-ui/vuu-filter-types": "0.13.5",
7
- "@vuu-ui/vuu-protocol-types": "0.13.5"
6
+ "@vuu-ui/vuu-filter-types": "0.13.7",
7
+ "@vuu-ui/vuu-protocol-types": "0.13.7"
8
8
  },
9
9
  "dependencies": {
10
- "@vuu-ui/vuu-codemirror": "0.13.5",
11
- "@vuu-ui/vuu-data-react": "0.13.5",
12
- "@vuu-ui/vuu-data-types": "0.13.5",
13
- "@vuu-ui/vuu-table-types": "0.13.5",
14
- "@vuu-ui/vuu-popups": "0.13.5",
15
- "@vuu-ui/vuu-table": "0.13.5",
16
- "@vuu-ui/vuu-utils": "0.13.5",
17
- "@vuu-ui/vuu-ui-controls": "0.13.5",
10
+ "@vuu-ui/vuu-codemirror": "0.13.7",
11
+ "@vuu-ui/vuu-data-react": "0.13.7",
12
+ "@vuu-ui/vuu-data-types": "0.13.7",
13
+ "@vuu-ui/vuu-table-types": "0.13.7",
14
+ "@vuu-ui/vuu-popups": "0.13.7",
15
+ "@vuu-ui/vuu-table": "0.13.7",
16
+ "@vuu-ui/vuu-utils": "0.13.7",
17
+ "@vuu-ui/vuu-ui-controls": "0.13.7",
18
18
  "@lezer/lr": "1.4.2",
19
19
  "@salt-ds/core": "1.43.0",
20
20
  "@salt-ds/styles": "0.2.1",
21
- "@salt-ds/window": "0.1.1",
22
- "@dnd-kit/react": "^0.1.19"
21
+ "@salt-ds/window": "0.1.1"
23
22
  },
24
23
  "peerDependencies": {
25
24
  "@floating-ui/react": "^0.26.28",