@deephaven/iris-grid 0.22.1-beta.0 → 0.22.1-dhe-vite.3
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/IrisGrid.d.ts +3 -3
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +11 -8
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +14 -9
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +9 -4
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
- package/dist/TreeTableViewportUpdater.js +0 -1
- package/dist/TreeTableViewportUpdater.js.map +1 -1
- package/dist/sidebar/RollupRows.d.ts.map +1 -1
- package/dist/sidebar/RollupRows.js +1 -3
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/package.json +15 -15
|
@@ -98,11 +98,10 @@ class RollupRows extends Component {
|
|
|
98
98
|
}
|
|
99
99
|
}, DEBOUNCE_SEARCH));
|
|
100
100
|
|
|
101
|
-
_defineProperty(this, "getCachedUngroupedColumns", memoize((columns, groupedColumns) => columns.filter(column => RollupRows.isGroupable(column) && groupedColumns.find(name => name === column.name)
|
|
101
|
+
_defineProperty(this, "getCachedUngroupedColumns", memoize((columns, groupedColumns) => columns.filter(column => RollupRows.isGroupable(column) && groupedColumns.find(name => name === column.name) == null)));
|
|
102
102
|
|
|
103
103
|
_defineProperty(this, "getCachedSortedColumns", memoize((columns, sort) => sort == null ? [...columns] : TableUtils.sortColumns(columns, sort === RollupRows.SORT.ASCENDING)));
|
|
104
104
|
|
|
105
|
-
this.search = this.search.bind(this);
|
|
106
105
|
this.handleDeleteClicked = this.handleDeleteClicked.bind(this);
|
|
107
106
|
this.handleSearchChange = this.handleSearchChange.bind(this);
|
|
108
107
|
this.handleUngroupedSelect = this.handleUngroupedSelect.bind(this);
|
|
@@ -475,7 +474,6 @@ class RollupRows extends Component {
|
|
|
475
474
|
}, /*#__PURE__*/React.createElement("div", {
|
|
476
475
|
className: "section-title"
|
|
477
476
|
}, "Group By"), columns.length === 0 && /*#__PURE__*/React.createElement(Droppable, {
|
|
478
|
-
isDropDisabled: true,
|
|
479
477
|
droppableId: "placeholder"
|
|
480
478
|
}, (provided, snapshot) => /*#__PURE__*/React.createElement("div", _extends({
|
|
481
479
|
className: classNames('placeholder', 'text-muted', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RollupRows.js","names":["React","Component","classNames","FontAwesomeIcon","DragDropContext","Droppable","Checkbox","DraggableItemList","DragUtils","SearchInput","Tooltip","Button","vsTrash","dhSortAlphaDown","dhSortAlphaUp","TableUtils","memoize","debounce","Log","assertNotNull","log","module","DEBOUNCE_SEARCH","GROUPED_LIST_ID","UNGROUPED_LIST_ID","RollupRows","renderColumn","item","isClone","selectedCount","text","name","badgeText","undefined","className","renderTextItem","addGroupings","currentGroupings","newGroupings","index","length","insertIndex","groupings","filter","grouping","i","includes","splice","isGroupable","column","isDecimalType","type","constructor","props","searchFilter","columns","getSortedUngroupedColumns","selectedRanges","focusIndex","toLowerCase","push","setState","ungroupedSelectedRanges","ungroupedList","current","scrollToItem","groupedColumns","find","sort","sortColumns","SORT","ASCENDING","search","bind","handleDeleteClicked","handleSearchChange","handleUngroupedSelect","handleUngroupedSelectionChange","handleDragStart","handleDragEnd","handleGroupedSelectionChange","handleShowConstituentsChange","handleShowNonAggregatedColumnsChange","handleSortAscending","handleSortDescending","renderGroupedItem","createRef","groupedList","config","showConstituents","showNonAggregatedColumns","state","groupedSelectedRanges","dragSource","componentDidUpdate","prevProps","prevState","updateFromConfig","sendChange","componentWillUnmount","cancel","event","target","value","resetSelection","DESCENDING","e","debug","document","documentElement","classList","add","source","remove","destination","droppableId","newColumns","reorder","isSameList","destinationIndex","sourceItems","map","c","sourceRanges","draggedItems","adjustDestinationIndex","newSelectedRanges","itemIndex","debug2","stateUngroupedSelectedRanges","stateGroupedSelectedRanges","slice","onChange","getUngroupedColumns","model","originalColumns","getCachedUngroupedColumns","getCachedSortedColumns","indent","repeat","render","ungroupedColumns","groupListHeight","DEFAULT_ROW_HEIGHT","ungroupMaxListHeight","ungroupMinListHeight","Math","min","provided","snapshot","draggingFromThisWith","isDraggingOver","draggingOverWith","innerRef","droppableProps","height","active","maxHeight","minHeight","Object","freeze"],"sources":["../../src/sidebar/RollupRows.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n DragDropContext,\n DraggableLocation,\n DragStart,\n Droppable,\n DropResult,\n} from 'react-beautiful-dnd';\nimport {\n Checkbox,\n DraggableItemList,\n DragUtils,\n SearchInput,\n Tooltip,\n Range,\n RenderItemProps,\n Button,\n} from '@deephaven/components';\nimport { vsTrash, dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport { TableUtils, SortDirection } from '@deephaven/jsapi-utils';\nimport memoize from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport './RollupRows.scss';\nimport { Column } from '@deephaven/jsapi-shim';\nimport IrisGridModel from '../IrisGridModel';\nimport { ColumnName } from '../CommonTypes';\n\nconst log = Log.module('RollupRows');\nconst DEBOUNCE_SEARCH = 150;\nconst GROUPED_LIST_ID = 'grouped-rollup-rows';\nconst UNGROUPED_LIST_ID = 'ungrouped-rollup-rows';\n\nexport interface UIRollupConfig {\n columns: ColumnName[];\n showConstituents: boolean;\n showNonAggregatedColumns: boolean;\n includeDescriptions: true;\n}\n\ninterface RollupRowsProps {\n model: IrisGridModel;\n onChange: (rollupConfig: UIRollupConfig) => void;\n config: UIRollupConfig | null;\n}\n\ninterface RollupRowsState {\n ungroupedSelectedRanges: Range[];\n columns: ColumnName[];\n groupedSelectedRanges: Range[];\n searchFilter: string;\n showConstituents: boolean;\n showNonAggregatedColumns: boolean;\n dragSource: DraggableLocation | null;\n sort: SortDirection;\n}\n\nclass RollupRows extends Component<RollupRowsProps, RollupRowsState> {\n static SORT = Object.freeze({\n ASCENDING: 'ASC',\n DESCENDING: 'DESC',\n });\n\n static defaultProps = {\n config: null,\n onChange: (): void => undefined,\n };\n\n static renderColumn({\n item,\n isClone,\n selectedCount,\n }: RenderItemProps<Column> & {\n isClone?: boolean;\n selectedCount?: number;\n }): ReactElement {\n const text = item?.name;\n const badgeText =\n isClone !== undefined && isClone ? `${selectedCount}` : undefined;\n const className =\n isClone !== undefined && isClone ? 'item-list-item-clone' : '';\n return DraggableItemList.renderTextItem({ text, badgeText, className });\n }\n\n static addGroupings(\n currentGroupings: string[],\n newGroupings: string[],\n index: number = currentGroupings.length\n ): string[] {\n if (newGroupings == null || newGroupings.length === 0) {\n return currentGroupings;\n }\n\n let insertIndex = index;\n const groupings = currentGroupings.filter((grouping, i) => {\n if (newGroupings.includes(grouping)) {\n if (i < insertIndex) {\n insertIndex -= 1;\n }\n return false;\n }\n return true;\n });\n groupings.splice(insertIndex, 0, ...newGroupings);\n return groupings;\n }\n\n static isGroupable(column: Column): boolean {\n return !TableUtils.isDecimalType(column.type);\n }\n\n constructor(props: RollupRowsProps) {\n super(props);\n\n this.search = this.search.bind(this);\n\n this.handleDeleteClicked = this.handleDeleteClicked.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUngroupedSelect = this.handleUngroupedSelect.bind(this);\n this.handleUngroupedSelectionChange = this.handleUngroupedSelectionChange.bind(\n this\n );\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.handleGroupedSelectionChange = this.handleGroupedSelectionChange.bind(\n this\n );\n this.handleShowConstituentsChange = this.handleShowConstituentsChange.bind(\n this\n );\n this.handleShowNonAggregatedColumnsChange = this.handleShowNonAggregatedColumnsChange.bind(\n this\n );\n this.handleSortAscending = this.handleSortAscending.bind(this);\n this.handleSortDescending = this.handleSortDescending.bind(this);\n this.renderGroupedItem = this.renderGroupedItem.bind(this);\n\n this.ungroupedList = React.createRef();\n this.groupedList = React.createRef();\n\n const { config } = props;\n const {\n columns = [],\n showConstituents = true,\n showNonAggregatedColumns = true,\n } = config ?? {};\n\n this.state = {\n ungroupedSelectedRanges: [],\n columns,\n groupedSelectedRanges: [],\n searchFilter: '',\n showConstituents,\n showNonAggregatedColumns,\n dragSource: null,\n sort: null,\n };\n }\n\n componentDidUpdate(\n prevProps: RollupRowsProps,\n prevState: RollupRowsState\n ): void {\n const { config } = this.props;\n const { columns, showConstituents, showNonAggregatedColumns } = this.state;\n if (config !== prevProps.config) {\n this.updateFromConfig();\n } else if (\n columns !== prevState.columns ||\n showConstituents !== prevState.showConstituents ||\n showNonAggregatedColumns !== prevState.showNonAggregatedColumns\n ) {\n if (\n config == null ||\n columns !== config.columns ||\n showConstituents !== config.showConstituents ||\n showNonAggregatedColumns !== config.showNonAggregatedColumns\n ) {\n this.sendChange();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.search.cancel();\n }\n\n ungroupedList: RefObject<DraggableItemList<Column>>;\n\n groupedList: RefObject<DraggableItemList<string>>;\n\n handleSearchChange(event: ChangeEvent<HTMLInputElement>): void {\n const searchFilter = event.target.value;\n this.setState({ searchFilter });\n if (!searchFilter) {\n this.search.cancel();\n this.resetSelection();\n return;\n }\n this.search(searchFilter);\n }\n\n handleSortAscending(): void {\n this.setState(({ sort }) => ({\n sort:\n sort === RollupRows.SORT.ASCENDING\n ? null\n : (RollupRows.SORT.ASCENDING as SortDirection),\n }));\n }\n\n handleSortDescending(): void {\n this.setState(({ sort }) => ({\n sort:\n sort === RollupRows.SORT.DESCENDING\n ? null\n : (RollupRows.SORT.DESCENDING as SortDirection),\n }));\n }\n\n resetSelection(): void {\n this.setState({ ungroupedSelectedRanges: [], groupedSelectedRanges: [] });\n }\n\n search = debounce((searchFilter: string) => {\n const columns = this.getSortedUngroupedColumns();\n const selectedRanges = [] as Range[];\n let focusIndex = null;\n for (let i = 0; i < columns.length; i += 1) {\n const column = columns[i];\n if (column.name.toLowerCase().includes(searchFilter.toLowerCase())) {\n if (focusIndex == null) {\n focusIndex = i;\n }\n selectedRanges.push([i, i]);\n }\n }\n assertNotNull(focusIndex);\n this.setState({ ungroupedSelectedRanges: selectedRanges });\n\n if (selectedRanges.length > 0 && this.ungroupedList.current) {\n this.ungroupedList.current.scrollToItem(focusIndex);\n }\n }, DEBOUNCE_SEARCH);\n\n handleDragStart(e: DragStart): void {\n log.debug('handleDragStart', e);\n\n document.documentElement.classList.add('drag-pointer-events-none');\n\n this.setState({ dragSource: e.source });\n }\n\n handleDragEnd(e: DropResult): void {\n log.debug('handleDragEnd', e);\n\n document.documentElement.classList.remove('drag-pointer-events-none');\n\n this.setState({ dragSource: null });\n\n const { destination, source } = e;\n if (destination == null || source == null) {\n return;\n }\n\n // We don't allow dragging within the ungrouped list, so if we're dragging into the ungrouped list,\n // it must have came from the grouped list. Remove those grouped columns.\n if (destination.droppableId === UNGROUPED_LIST_ID) {\n this.setState(({ groupedSelectedRanges, columns }) => {\n const newColumns = [...columns];\n DragUtils.reorder(newColumns, groupedSelectedRanges, [], 0);\n return {\n columns: newColumns,\n ungroupedSelectedRanges: [],\n groupedSelectedRanges: [],\n };\n });\n return;\n }\n\n // Otherwise, it must be dropping into the grouped list, so we just need to check the source\n const isSameList = source.droppableId === GROUPED_LIST_ID;\n let destinationIndex = destination.index;\n if (isSameList && source.index < destination.index) {\n // react-beautiful-dnd adjusts the index when dragging within a list already, however that only supports single selection\n // We need to change it back to the index we actually want it to drop at before adjusting for the removed source index, as\n // we adjust the index based on all the selected ranges, not just the source.index.\n destinationIndex += 1;\n }\n this.setState(\n ({ columns, ungroupedSelectedRanges, groupedSelectedRanges }) => {\n const newColumns = [...columns];\n const sourceItems = isSameList\n ? newColumns\n : this.getSortedUngroupedColumns().map(c => c.name);\n const sourceRanges = isSameList\n ? groupedSelectedRanges\n : ungroupedSelectedRanges;\n const draggedItems = DragUtils.reorder(\n sourceItems,\n sourceRanges,\n newColumns,\n destinationIndex\n );\n\n // Select the newly dropped items\n const insertIndex = isSameList\n ? DragUtils.adjustDestinationIndex(\n destinationIndex,\n groupedSelectedRanges\n )\n : destinationIndex;\n const newSelectedRanges = [\n [insertIndex, insertIndex + draggedItems.length - 1] as Range,\n ];\n return {\n columns: newColumns,\n ungroupedSelectedRanges: [] as Range[],\n groupedSelectedRanges: newSelectedRanges,\n };\n }\n );\n this.resetSelection();\n }\n\n handleUngroupedSelect(itemIndex: number): void {\n log.debug('handleUngroupedSelect');\n\n this.setState(({ columns }) => ({\n columns: RollupRows.addGroupings(columns, [\n this.getSortedUngroupedColumns()[itemIndex].name,\n ]),\n ungroupedSelectedRanges: [],\n groupedSelectedRanges: [],\n }));\n }\n\n handleUngroupedSelectionChange(ungroupedSelectedRanges: Range[]): void {\n log.debug2('handleUngroupedSelectionChange', ungroupedSelectedRanges);\n this.setState(\n ({ ungroupedSelectedRanges: stateUngroupedSelectedRanges }) => {\n if (ungroupedSelectedRanges === stateUngroupedSelectedRanges) {\n return null;\n }\n\n return { ungroupedSelectedRanges, groupedSelectedRanges: [] };\n }\n );\n }\n\n handleGroupedSelectionChange(groupedSelectedRanges: Range[]): void {\n log.debug2('handleGroupedSelectedRanges', groupedSelectedRanges);\n this.setState(({ groupedSelectedRanges: stateGroupedSelectedRanges }) => {\n if (groupedSelectedRanges === stateGroupedSelectedRanges) {\n return null;\n }\n\n return { groupedSelectedRanges, ungroupedSelectedRanges: [] };\n });\n }\n\n handleDeleteClicked(index: number): void {\n this.setState(({ columns }) => {\n const newColumns = columns.slice();\n newColumns.splice(index, 1);\n return { columns: newColumns };\n });\n }\n\n handleShowConstituentsChange(): void {\n this.setState(({ showConstituents }) => ({\n showConstituents: !showConstituents,\n }));\n }\n\n handleShowNonAggregatedColumnsChange(): void {\n this.setState(({ showNonAggregatedColumns }) => ({\n showNonAggregatedColumns: !showNonAggregatedColumns,\n }));\n }\n\n updateFromConfig(): void {\n const { config } = this.props;\n const {\n columns = [],\n showConstituents = true,\n showNonAggregatedColumns = true,\n } = config ?? {};\n this.setState({ columns, showConstituents, showNonAggregatedColumns });\n }\n\n sendChange(): void {\n const { onChange } = this.props;\n const { columns, showConstituents, showNonAggregatedColumns } = this.state;\n onChange({\n columns,\n showConstituents,\n showNonAggregatedColumns,\n } as UIRollupConfig);\n }\n\n getCachedUngroupedColumns = memoize(\n (columns: Column[], groupedColumns: ColumnName[]): Column[] =>\n columns.filter(\n column =>\n RollupRows.isGroupable(column) &&\n groupedColumns.find(name => name === column.name) != null\n )\n );\n\n getCachedSortedColumns = memoize(\n (columns: Column[], sort?: SortDirection): Column[] =>\n sort == null\n ? [...columns]\n : TableUtils.sortColumns(columns, sort === RollupRows.SORT.ASCENDING)\n );\n\n getUngroupedColumns(): Column[] {\n const { model } = this.props;\n const { columns } = this.state;\n const { originalColumns } = model;\n\n return this.getCachedUngroupedColumns(originalColumns, columns);\n }\n\n getSortedUngroupedColumns(): Column[] {\n const { sort } = this.state;\n const columns = this.getUngroupedColumns();\n return this.getCachedSortedColumns(columns, sort);\n }\n\n renderGroupedItem({\n item,\n itemIndex,\n isClone,\n selectedCount,\n }: RenderItemProps<string> & {\n isClone?: boolean;\n selectedCount?: number;\n }): ReactElement {\n const indent =\n isClone !== undefined && isClone ? '' : '\\u00A0\\u00A0'.repeat(itemIndex);\n const text = `${indent}${item}`;\n const badgeText =\n isClone !== undefined && isClone ? `${selectedCount}` : undefined;\n const className =\n isClone !== undefined && isClone ? 'item-list-item-clone' : '';\n return (\n <>\n {DraggableItemList.renderTextItem({ text, badgeText, className })}\n {(isClone === undefined || !isClone) && (\n <Button\n kind=\"ghost\"\n className=\"btn btn-link btn-link-icon btn-delete-grouping float-right\"\n onClick={() => this.handleDeleteClicked(itemIndex)}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </Button>\n )}\n </>\n );\n }\n\n render(): ReactElement {\n const {\n columns,\n dragSource,\n searchFilter,\n groupedSelectedRanges,\n ungroupedSelectedRanges,\n showConstituents,\n showNonAggregatedColumns,\n sort,\n } = this.state;\n\n const ungroupedColumns = this.getSortedUngroupedColumns();\n let groupListHeight = columns.length * DraggableItemList.DEFAULT_ROW_HEIGHT;\n if (dragSource?.droppableId === UNGROUPED_LIST_ID) {\n groupListHeight += DraggableItemList.DEFAULT_ROW_HEIGHT;\n }\n const ungroupMaxListHeight =\n ungroupedColumns.length * DraggableItemList.DEFAULT_ROW_HEIGHT + 10;\n const ungroupMinListHeight = Math.min(\n 3 * DraggableItemList.DEFAULT_ROW_HEIGHT,\n ungroupMaxListHeight\n );\n\n return (\n <div\n role=\"menu\"\n className={classNames('rollup-rows', {\n 'is-dragging': dragSource != null,\n })}\n tabIndex={0}\n >\n <DragDropContext\n onDragEnd={this.handleDragEnd}\n onDragStart={this.handleDragStart}\n >\n <div className=\"rollup-rows-group-by\">\n <div className=\"section-title\">Group By</div>\n {columns.length === 0 && (\n <Droppable isDropDisabled droppableId=\"placeholder\">\n {(provided, snapshot) => (\n <div\n className={classNames('placeholder', 'text-muted', {\n 'is-dragging-from-this': snapshot.draggingFromThisWith,\n 'is-dragging-over': snapshot.isDraggingOver,\n 'is-dropping': snapshot.draggingOverWith,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n >\n Create rollup by dragging columns here, from the available\n columns list below.\n </div>\n )}\n </Droppable>\n )}\n {columns.length > 0 && (\n <DraggableItemList\n draggingItemClassName=\"rollup-rows-dragging-grouped-item\"\n draggablePrefix={GROUPED_LIST_ID}\n droppableId={GROUPED_LIST_ID}\n itemCount={columns.length}\n items={columns}\n offset={0}\n onSelectionChange={this.handleGroupedSelectionChange}\n ref={this.groupedList}\n renderItem={this.renderGroupedItem}\n selectedRanges={groupedSelectedRanges}\n style={{ height: groupListHeight }}\n isMultiSelect\n />\n )}\n </div>\n <div className=\"rollup-rows-available-columns\">\n <div className=\"section-title\">Available Grouping Columns</div>\n <div className=\"top-menu\">\n <SearchInput\n className=\"w-100\"\n value={searchFilter}\n matchCount={\n searchFilter ? ungroupedSelectedRanges.length : undefined\n }\n placeholder=\"Find column...\"\n onChange={this.handleSearchChange}\n />\n <Button\n kind=\"ghost\"\n className={classNames('btn-link btn-link-icon', {\n active: sort === RollupRows.SORT.ASCENDING,\n })}\n onClick={this.handleSortAscending}\n >\n <FontAwesomeIcon icon={dhSortAlphaDown} />\n <Tooltip>Sort ascending</Tooltip>\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('btn-link btn-link-icon', {\n active: sort === RollupRows.SORT.DESCENDING,\n })}\n onClick={this.handleSortDescending}\n >\n <FontAwesomeIcon icon={dhSortAlphaUp} />\n <Tooltip>Sort descending</Tooltip>\n </Button>\n </div>\n <DraggableItemList\n className=\"rollup-available-grouping-columns\"\n draggablePrefix={UNGROUPED_LIST_ID}\n droppableId={UNGROUPED_LIST_ID}\n itemCount={ungroupedColumns.length}\n items={ungroupedColumns}\n renderItem={RollupRows.renderColumn}\n offset={0}\n onSelect={this.handleUngroupedSelect}\n onSelectionChange={this.handleUngroupedSelectionChange}\n ref={this.ungroupedList}\n selectedRanges={ungroupedSelectedRanges}\n style={{\n maxHeight: ungroupMaxListHeight,\n minHeight: ungroupMinListHeight,\n }}\n isDropDisabled={dragSource?.droppableId !== GROUPED_LIST_ID}\n isMultiSelect\n />\n <div className=\"bottom-menu\">\n <div className=\"label\">Show:</div>\n <Checkbox\n checked={showConstituents}\n onChange={this.handleShowConstituentsChange}\n >\n Constituents\n </Checkbox>\n <Checkbox\n checked={showNonAggregatedColumns}\n onChange={this.handleShowNonAggregatedColumnsChange}\n >\n Non-Aggregated Columns\n </Checkbox>\n </div>\n </div>\n </DragDropContext>\n </div>\n );\n }\n}\n\nexport default RollupRows;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RollupRows.js","names":["React","Component","classNames","FontAwesomeIcon","DragDropContext","Droppable","Checkbox","DraggableItemList","DragUtils","SearchInput","Tooltip","Button","vsTrash","dhSortAlphaDown","dhSortAlphaUp","TableUtils","memoize","debounce","Log","assertNotNull","log","module","DEBOUNCE_SEARCH","GROUPED_LIST_ID","UNGROUPED_LIST_ID","RollupRows","renderColumn","item","isClone","selectedCount","text","name","badgeText","undefined","className","renderTextItem","addGroupings","currentGroupings","newGroupings","index","length","insertIndex","groupings","filter","grouping","i","includes","splice","isGroupable","column","isDecimalType","type","constructor","props","searchFilter","columns","getSortedUngroupedColumns","selectedRanges","focusIndex","toLowerCase","push","setState","ungroupedSelectedRanges","ungroupedList","current","scrollToItem","groupedColumns","find","sort","sortColumns","SORT","ASCENDING","handleDeleteClicked","bind","handleSearchChange","handleUngroupedSelect","handleUngroupedSelectionChange","handleDragStart","handleDragEnd","handleGroupedSelectionChange","handleShowConstituentsChange","handleShowNonAggregatedColumnsChange","handleSortAscending","handleSortDescending","renderGroupedItem","createRef","groupedList","config","showConstituents","showNonAggregatedColumns","state","groupedSelectedRanges","dragSource","componentDidUpdate","prevProps","prevState","updateFromConfig","sendChange","componentWillUnmount","search","cancel","event","target","value","resetSelection","DESCENDING","e","debug","document","documentElement","classList","add","source","remove","destination","droppableId","newColumns","reorder","isSameList","destinationIndex","sourceItems","map","c","sourceRanges","draggedItems","adjustDestinationIndex","newSelectedRanges","itemIndex","debug2","stateUngroupedSelectedRanges","stateGroupedSelectedRanges","slice","onChange","getUngroupedColumns","model","originalColumns","getCachedUngroupedColumns","getCachedSortedColumns","indent","repeat","render","ungroupedColumns","groupListHeight","DEFAULT_ROW_HEIGHT","ungroupMaxListHeight","ungroupMinListHeight","Math","min","provided","snapshot","draggingFromThisWith","isDraggingOver","draggingOverWith","innerRef","droppableProps","height","active","maxHeight","minHeight","Object","freeze"],"sources":["../../src/sidebar/RollupRows.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport React, { ChangeEvent, Component, ReactElement, RefObject } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n DragDropContext,\n DraggableLocation,\n DragStart,\n Droppable,\n DropResult,\n} from 'react-beautiful-dnd';\nimport {\n Checkbox,\n DraggableItemList,\n DragUtils,\n SearchInput,\n Tooltip,\n Range,\n RenderItemProps,\n Button,\n} from '@deephaven/components';\nimport { vsTrash, dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport { TableUtils, SortDirection } from '@deephaven/jsapi-utils';\nimport memoize from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport './RollupRows.scss';\nimport { Column } from '@deephaven/jsapi-shim';\nimport IrisGridModel from '../IrisGridModel';\nimport { ColumnName } from '../CommonTypes';\n\nconst log = Log.module('RollupRows');\nconst DEBOUNCE_SEARCH = 150;\nconst GROUPED_LIST_ID = 'grouped-rollup-rows';\nconst UNGROUPED_LIST_ID = 'ungrouped-rollup-rows';\n\nexport interface UIRollupConfig {\n columns: ColumnName[];\n showConstituents: boolean;\n showNonAggregatedColumns: boolean;\n includeDescriptions: true;\n}\n\ninterface RollupRowsProps {\n model: IrisGridModel;\n onChange: (rollupConfig: UIRollupConfig) => void;\n config: UIRollupConfig | null;\n}\n\ninterface RollupRowsState {\n ungroupedSelectedRanges: Range[];\n columns: ColumnName[];\n groupedSelectedRanges: Range[];\n searchFilter: string;\n showConstituents: boolean;\n showNonAggregatedColumns: boolean;\n dragSource: DraggableLocation | null;\n sort: SortDirection;\n}\n\nclass RollupRows extends Component<RollupRowsProps, RollupRowsState> {\n static SORT = Object.freeze({\n ASCENDING: 'ASC',\n DESCENDING: 'DESC',\n });\n\n static defaultProps = {\n config: null,\n onChange: (): void => undefined,\n };\n\n static renderColumn({\n item,\n isClone,\n selectedCount,\n }: RenderItemProps<Column> & {\n isClone?: boolean;\n selectedCount?: number;\n }): ReactElement {\n const text = item?.name;\n const badgeText =\n isClone !== undefined && isClone ? `${selectedCount}` : undefined;\n const className =\n isClone !== undefined && isClone ? 'item-list-item-clone' : '';\n return DraggableItemList.renderTextItem({ text, badgeText, className });\n }\n\n static addGroupings(\n currentGroupings: string[],\n newGroupings: string[],\n index: number = currentGroupings.length\n ): string[] {\n if (newGroupings == null || newGroupings.length === 0) {\n return currentGroupings;\n }\n\n let insertIndex = index;\n const groupings = currentGroupings.filter((grouping, i) => {\n if (newGroupings.includes(grouping)) {\n if (i < insertIndex) {\n insertIndex -= 1;\n }\n return false;\n }\n return true;\n });\n groupings.splice(insertIndex, 0, ...newGroupings);\n return groupings;\n }\n\n static isGroupable(column: Column): boolean {\n return !TableUtils.isDecimalType(column.type);\n }\n\n constructor(props: RollupRowsProps) {\n super(props);\n\n this.handleDeleteClicked = this.handleDeleteClicked.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUngroupedSelect = this.handleUngroupedSelect.bind(this);\n this.handleUngroupedSelectionChange = this.handleUngroupedSelectionChange.bind(\n this\n );\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.handleGroupedSelectionChange = this.handleGroupedSelectionChange.bind(\n this\n );\n this.handleShowConstituentsChange = this.handleShowConstituentsChange.bind(\n this\n );\n this.handleShowNonAggregatedColumnsChange = this.handleShowNonAggregatedColumnsChange.bind(\n this\n );\n this.handleSortAscending = this.handleSortAscending.bind(this);\n this.handleSortDescending = this.handleSortDescending.bind(this);\n this.renderGroupedItem = this.renderGroupedItem.bind(this);\n\n this.ungroupedList = React.createRef();\n this.groupedList = React.createRef();\n\n const { config } = props;\n const {\n columns = [],\n showConstituents = true,\n showNonAggregatedColumns = true,\n } = config ?? {};\n\n this.state = {\n ungroupedSelectedRanges: [],\n columns,\n groupedSelectedRanges: [],\n searchFilter: '',\n showConstituents,\n showNonAggregatedColumns,\n dragSource: null,\n sort: null,\n };\n }\n\n componentDidUpdate(\n prevProps: RollupRowsProps,\n prevState: RollupRowsState\n ): void {\n const { config } = this.props;\n const { columns, showConstituents, showNonAggregatedColumns } = this.state;\n if (config !== prevProps.config) {\n this.updateFromConfig();\n } else if (\n columns !== prevState.columns ||\n showConstituents !== prevState.showConstituents ||\n showNonAggregatedColumns !== prevState.showNonAggregatedColumns\n ) {\n if (\n config == null ||\n columns !== config.columns ||\n showConstituents !== config.showConstituents ||\n showNonAggregatedColumns !== config.showNonAggregatedColumns\n ) {\n this.sendChange();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.search.cancel();\n }\n\n ungroupedList: RefObject<DraggableItemList<Column>>;\n\n groupedList: RefObject<DraggableItemList<string>>;\n\n handleSearchChange(event: ChangeEvent<HTMLInputElement>): void {\n const searchFilter = event.target.value;\n this.setState({ searchFilter });\n if (!searchFilter) {\n this.search.cancel();\n this.resetSelection();\n return;\n }\n this.search(searchFilter);\n }\n\n handleSortAscending(): void {\n this.setState(({ sort }) => ({\n sort:\n sort === RollupRows.SORT.ASCENDING\n ? null\n : (RollupRows.SORT.ASCENDING as SortDirection),\n }));\n }\n\n handleSortDescending(): void {\n this.setState(({ sort }) => ({\n sort:\n sort === RollupRows.SORT.DESCENDING\n ? null\n : (RollupRows.SORT.DESCENDING as SortDirection),\n }));\n }\n\n resetSelection(): void {\n this.setState({ ungroupedSelectedRanges: [], groupedSelectedRanges: [] });\n }\n\n search = debounce((searchFilter: string) => {\n const columns = this.getSortedUngroupedColumns();\n const selectedRanges = [] as Range[];\n let focusIndex = null;\n for (let i = 0; i < columns.length; i += 1) {\n const column = columns[i];\n if (column.name.toLowerCase().includes(searchFilter.toLowerCase())) {\n if (focusIndex == null) {\n focusIndex = i;\n }\n selectedRanges.push([i, i]);\n }\n }\n assertNotNull(focusIndex);\n this.setState({ ungroupedSelectedRanges: selectedRanges });\n\n if (selectedRanges.length > 0 && this.ungroupedList.current) {\n this.ungroupedList.current.scrollToItem(focusIndex);\n }\n }, DEBOUNCE_SEARCH);\n\n handleDragStart(e: DragStart): void {\n log.debug('handleDragStart', e);\n\n document.documentElement.classList.add('drag-pointer-events-none');\n\n this.setState({ dragSource: e.source });\n }\n\n handleDragEnd(e: DropResult): void {\n log.debug('handleDragEnd', e);\n\n document.documentElement.classList.remove('drag-pointer-events-none');\n\n this.setState({ dragSource: null });\n\n const { destination, source } = e;\n if (destination == null || source == null) {\n return;\n }\n\n // We don't allow dragging within the ungrouped list, so if we're dragging into the ungrouped list,\n // it must have came from the grouped list. Remove those grouped columns.\n if (destination.droppableId === UNGROUPED_LIST_ID) {\n this.setState(({ groupedSelectedRanges, columns }) => {\n const newColumns = [...columns];\n DragUtils.reorder(newColumns, groupedSelectedRanges, [], 0);\n return {\n columns: newColumns,\n ungroupedSelectedRanges: [],\n groupedSelectedRanges: [],\n };\n });\n return;\n }\n\n // Otherwise, it must be dropping into the grouped list, so we just need to check the source\n const isSameList = source.droppableId === GROUPED_LIST_ID;\n let destinationIndex = destination.index;\n if (isSameList && source.index < destination.index) {\n // react-beautiful-dnd adjusts the index when dragging within a list already, however that only supports single selection\n // We need to change it back to the index we actually want it to drop at before adjusting for the removed source index, as\n // we adjust the index based on all the selected ranges, not just the source.index.\n destinationIndex += 1;\n }\n this.setState(\n ({ columns, ungroupedSelectedRanges, groupedSelectedRanges }) => {\n const newColumns = [...columns];\n const sourceItems = isSameList\n ? newColumns\n : this.getSortedUngroupedColumns().map(c => c.name);\n const sourceRanges = isSameList\n ? groupedSelectedRanges\n : ungroupedSelectedRanges;\n const draggedItems = DragUtils.reorder(\n sourceItems,\n sourceRanges,\n newColumns,\n destinationIndex\n );\n\n // Select the newly dropped items\n const insertIndex = isSameList\n ? DragUtils.adjustDestinationIndex(\n destinationIndex,\n groupedSelectedRanges\n )\n : destinationIndex;\n const newSelectedRanges = [\n [insertIndex, insertIndex + draggedItems.length - 1] as Range,\n ];\n return {\n columns: newColumns,\n ungroupedSelectedRanges: [] as Range[],\n groupedSelectedRanges: newSelectedRanges,\n };\n }\n );\n this.resetSelection();\n }\n\n handleUngroupedSelect(itemIndex: number): void {\n log.debug('handleUngroupedSelect');\n\n this.setState(({ columns }) => ({\n columns: RollupRows.addGroupings(columns, [\n this.getSortedUngroupedColumns()[itemIndex].name,\n ]),\n ungroupedSelectedRanges: [],\n groupedSelectedRanges: [],\n }));\n }\n\n handleUngroupedSelectionChange(ungroupedSelectedRanges: Range[]): void {\n log.debug2('handleUngroupedSelectionChange', ungroupedSelectedRanges);\n this.setState(\n ({ ungroupedSelectedRanges: stateUngroupedSelectedRanges }) => {\n if (ungroupedSelectedRanges === stateUngroupedSelectedRanges) {\n return null;\n }\n\n return { ungroupedSelectedRanges, groupedSelectedRanges: [] };\n }\n );\n }\n\n handleGroupedSelectionChange(groupedSelectedRanges: Range[]): void {\n log.debug2('handleGroupedSelectedRanges', groupedSelectedRanges);\n this.setState(({ groupedSelectedRanges: stateGroupedSelectedRanges }) => {\n if (groupedSelectedRanges === stateGroupedSelectedRanges) {\n return null;\n }\n\n return { groupedSelectedRanges, ungroupedSelectedRanges: [] };\n });\n }\n\n handleDeleteClicked(index: number): void {\n this.setState(({ columns }) => {\n const newColumns = columns.slice();\n newColumns.splice(index, 1);\n return { columns: newColumns };\n });\n }\n\n handleShowConstituentsChange(): void {\n this.setState(({ showConstituents }) => ({\n showConstituents: !showConstituents,\n }));\n }\n\n handleShowNonAggregatedColumnsChange(): void {\n this.setState(({ showNonAggregatedColumns }) => ({\n showNonAggregatedColumns: !showNonAggregatedColumns,\n }));\n }\n\n updateFromConfig(): void {\n const { config } = this.props;\n const {\n columns = [],\n showConstituents = true,\n showNonAggregatedColumns = true,\n } = config ?? {};\n this.setState({ columns, showConstituents, showNonAggregatedColumns });\n }\n\n sendChange(): void {\n const { onChange } = this.props;\n const { columns, showConstituents, showNonAggregatedColumns } = this.state;\n onChange({\n columns,\n showConstituents,\n showNonAggregatedColumns,\n } as UIRollupConfig);\n }\n\n getCachedUngroupedColumns = memoize(\n (columns: Column[], groupedColumns: ColumnName[]): Column[] =>\n columns.filter(\n column =>\n RollupRows.isGroupable(column) &&\n groupedColumns.find(name => name === column.name) == null\n )\n );\n\n getCachedSortedColumns = memoize(\n (columns: Column[], sort?: SortDirection): Column[] =>\n sort == null\n ? [...columns]\n : TableUtils.sortColumns(columns, sort === RollupRows.SORT.ASCENDING)\n );\n\n getUngroupedColumns(): Column[] {\n const { model } = this.props;\n const { columns } = this.state;\n const { originalColumns } = model;\n\n return this.getCachedUngroupedColumns(originalColumns, columns);\n }\n\n getSortedUngroupedColumns(): Column[] {\n const { sort } = this.state;\n const columns = this.getUngroupedColumns();\n return this.getCachedSortedColumns(columns, sort);\n }\n\n renderGroupedItem({\n item,\n itemIndex,\n isClone,\n selectedCount,\n }: RenderItemProps<string> & {\n isClone?: boolean;\n selectedCount?: number;\n }): ReactElement {\n const indent =\n isClone !== undefined && isClone ? '' : '\\u00A0\\u00A0'.repeat(itemIndex);\n const text = `${indent}${item}`;\n const badgeText =\n isClone !== undefined && isClone ? `${selectedCount}` : undefined;\n const className =\n isClone !== undefined && isClone ? 'item-list-item-clone' : '';\n return (\n <>\n {DraggableItemList.renderTextItem({ text, badgeText, className })}\n {(isClone === undefined || !isClone) && (\n <Button\n kind=\"ghost\"\n className=\"btn btn-link btn-link-icon btn-delete-grouping float-right\"\n onClick={() => this.handleDeleteClicked(itemIndex)}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </Button>\n )}\n </>\n );\n }\n\n render(): ReactElement {\n const {\n columns,\n dragSource,\n searchFilter,\n groupedSelectedRanges,\n ungroupedSelectedRanges,\n showConstituents,\n showNonAggregatedColumns,\n sort,\n } = this.state;\n\n const ungroupedColumns = this.getSortedUngroupedColumns();\n let groupListHeight = columns.length * DraggableItemList.DEFAULT_ROW_HEIGHT;\n if (dragSource?.droppableId === UNGROUPED_LIST_ID) {\n groupListHeight += DraggableItemList.DEFAULT_ROW_HEIGHT;\n }\n const ungroupMaxListHeight =\n ungroupedColumns.length * DraggableItemList.DEFAULT_ROW_HEIGHT + 10;\n const ungroupMinListHeight = Math.min(\n 3 * DraggableItemList.DEFAULT_ROW_HEIGHT,\n ungroupMaxListHeight\n );\n\n return (\n <div\n role=\"menu\"\n className={classNames('rollup-rows', {\n 'is-dragging': dragSource != null,\n })}\n tabIndex={0}\n >\n <DragDropContext\n onDragEnd={this.handleDragEnd}\n onDragStart={this.handleDragStart}\n >\n <div className=\"rollup-rows-group-by\">\n <div className=\"section-title\">Group By</div>\n {columns.length === 0 && (\n <Droppable droppableId=\"placeholder\">\n {(provided, snapshot) => (\n <div\n className={classNames('placeholder', 'text-muted', {\n 'is-dragging-from-this': snapshot.draggingFromThisWith,\n 'is-dragging-over': snapshot.isDraggingOver,\n 'is-dropping': snapshot.draggingOverWith,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n >\n Create rollup by dragging columns here, from the available\n columns list below.\n </div>\n )}\n </Droppable>\n )}\n {columns.length > 0 && (\n <DraggableItemList\n draggingItemClassName=\"rollup-rows-dragging-grouped-item\"\n draggablePrefix={GROUPED_LIST_ID}\n droppableId={GROUPED_LIST_ID}\n itemCount={columns.length}\n items={columns}\n offset={0}\n onSelectionChange={this.handleGroupedSelectionChange}\n ref={this.groupedList}\n renderItem={this.renderGroupedItem}\n selectedRanges={groupedSelectedRanges}\n style={{ height: groupListHeight }}\n isMultiSelect\n />\n )}\n </div>\n <div className=\"rollup-rows-available-columns\">\n <div className=\"section-title\">Available Grouping Columns</div>\n <div className=\"top-menu\">\n <SearchInput\n className=\"w-100\"\n value={searchFilter}\n matchCount={\n searchFilter ? ungroupedSelectedRanges.length : undefined\n }\n placeholder=\"Find column...\"\n onChange={this.handleSearchChange}\n />\n <Button\n kind=\"ghost\"\n className={classNames('btn-link btn-link-icon', {\n active: sort === RollupRows.SORT.ASCENDING,\n })}\n onClick={this.handleSortAscending}\n >\n <FontAwesomeIcon icon={dhSortAlphaDown} />\n <Tooltip>Sort ascending</Tooltip>\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('btn-link btn-link-icon', {\n active: sort === RollupRows.SORT.DESCENDING,\n })}\n onClick={this.handleSortDescending}\n >\n <FontAwesomeIcon icon={dhSortAlphaUp} />\n <Tooltip>Sort descending</Tooltip>\n </Button>\n </div>\n <DraggableItemList\n className=\"rollup-available-grouping-columns\"\n draggablePrefix={UNGROUPED_LIST_ID}\n droppableId={UNGROUPED_LIST_ID}\n itemCount={ungroupedColumns.length}\n items={ungroupedColumns}\n renderItem={RollupRows.renderColumn}\n offset={0}\n onSelect={this.handleUngroupedSelect}\n onSelectionChange={this.handleUngroupedSelectionChange}\n ref={this.ungroupedList}\n selectedRanges={ungroupedSelectedRanges}\n style={{\n maxHeight: ungroupMaxListHeight,\n minHeight: ungroupMinListHeight,\n }}\n isDropDisabled={dragSource?.droppableId !== GROUPED_LIST_ID}\n isMultiSelect\n />\n <div className=\"bottom-menu\">\n <div className=\"label\">Show:</div>\n <Checkbox\n checked={showConstituents}\n onChange={this.handleShowConstituentsChange}\n >\n Constituents\n </Checkbox>\n <Checkbox\n checked={showNonAggregatedColumns}\n onChange={this.handleShowNonAggregatedColumnsChange}\n >\n Non-Aggregated Columns\n </Checkbox>\n </div>\n </div>\n </DragDropContext>\n </div>\n );\n }\n}\n\nexport default RollupRows;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.22.1-
|
|
3
|
+
"version": "0.22.1-dhe-vite.3+d4d7108",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -23,17 +23,17 @@
|
|
|
23
23
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@deephaven/components": "^0.22.1-
|
|
27
|
-
"@deephaven/console": "^0.22.1-
|
|
28
|
-
"@deephaven/filters": "^0.22.1-
|
|
29
|
-
"@deephaven/grid": "^0.22.1-
|
|
30
|
-
"@deephaven/icons": "^0.22.1-
|
|
31
|
-
"@deephaven/jsapi-shim": "^0.22.1-
|
|
32
|
-
"@deephaven/jsapi-utils": "^0.22.1-
|
|
33
|
-
"@deephaven/log": "^0.22.1-
|
|
34
|
-
"@deephaven/react-hooks": "^0.22.1-
|
|
35
|
-
"@deephaven/storage": "^0.22.1-
|
|
36
|
-
"@deephaven/utils": "^0.22.1-
|
|
26
|
+
"@deephaven/components": "^0.22.1-dhe-vite.3+d4d7108",
|
|
27
|
+
"@deephaven/console": "^0.22.1-dhe-vite.3+d4d7108",
|
|
28
|
+
"@deephaven/filters": "^0.22.1-dhe-vite.3+d4d7108",
|
|
29
|
+
"@deephaven/grid": "^0.22.1-dhe-vite.3+d4d7108",
|
|
30
|
+
"@deephaven/icons": "^0.22.1-dhe-vite.3+d4d7108",
|
|
31
|
+
"@deephaven/jsapi-shim": "^0.22.1-dhe-vite.3+d4d7108",
|
|
32
|
+
"@deephaven/jsapi-utils": "^0.22.1-dhe-vite.3+d4d7108",
|
|
33
|
+
"@deephaven/log": "^0.22.1-dhe-vite.3+d4d7108",
|
|
34
|
+
"@deephaven/react-hooks": "^0.22.1-dhe-vite.3+d4d7108",
|
|
35
|
+
"@deephaven/storage": "^0.22.1-dhe-vite.3+d4d7108",
|
|
36
|
+
"@deephaven/utils": "^0.22.1-dhe-vite.3+d4d7108",
|
|
37
37
|
"@fortawesome/react-fontawesome": "^0.1.18",
|
|
38
38
|
"classnames": "^2.3.1",
|
|
39
39
|
"deep-equal": "^2.0.5",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"react": "^17.x"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@deephaven/mocks": "^0.22.1-
|
|
57
|
-
"@deephaven/tsconfig": "^0.22.1-
|
|
56
|
+
"@deephaven/mocks": "^0.22.1-dhe-vite.3+d4d7108",
|
|
57
|
+
"@deephaven/tsconfig": "^0.22.1-dhe-vite.3+d4d7108"
|
|
58
58
|
},
|
|
59
59
|
"files": [
|
|
60
60
|
"dist"
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"publishConfig": {
|
|
66
66
|
"access": "public"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "d4d71081190368137e019efa188191c77e917176"
|
|
69
69
|
}
|