@deephaven/iris-grid 1.7.2-react-18-alpha.3 → 1.8.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/ColumnHeaderGroup.d.ts +6 -0
  2. package/dist/ColumnHeaderGroup.d.ts.map +1 -1
  3. package/dist/ColumnHeaderGroup.js +9 -0
  4. package/dist/ColumnHeaderGroup.js.map +1 -1
  5. package/dist/IrisGrid.d.ts +8 -0
  6. package/dist/IrisGrid.d.ts.map +1 -1
  7. package/dist/IrisGrid.js +30 -2
  8. package/dist/IrisGrid.js.map +1 -1
  9. package/dist/IrisGridBottomBar.d.ts.map +1 -1
  10. package/dist/IrisGridBottomBar.js +4 -1
  11. package/dist/IrisGridBottomBar.js.map +1 -1
  12. package/dist/sidebar/CustomColumnBuilder.d.ts +1 -1
  13. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  14. package/dist/sidebar/CustomColumnBuilder.js +1 -1
  15. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  16. package/dist/sidebar/CustomColumnInput.js +1 -1
  17. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  18. package/dist/sidebar/RollupRows.d.ts +1 -1
  19. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  20. package/dist/sidebar/RollupRows.js +2 -2
  21. package/dist/sidebar/RollupRows.js.map +1 -1
  22. package/dist/sidebar/aggregations/Aggregations.js +1 -1
  23. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  24. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +1 -1
  25. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  26. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts +30 -12
  27. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.d.ts.map +1 -1
  28. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +283 -48
  29. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  30. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts +1 -1
  31. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.d.ts.map +1 -1
  32. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +2 -2
  33. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  34. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.d.ts.map +1 -1
  35. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +4 -11
  36. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  37. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.d.ts.map +1 -1
  38. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +2 -1
  39. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  40. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts +1 -1
  41. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.d.ts.map +1 -1
  42. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +10 -6
  43. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  44. package/package.json +17 -17
@@ -1 +1 @@
1
- {"version":3,"file":"Aggregations.js","names":["React","useCallback","useEffect","useMemo","useState","DragDropContext","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsTrash","vsEdit","dhWarningFilled","Log","DraggableItemList","DragUtils","Option","Select","Radio","RadioGroup","Button","AggregationOperation","AggregationUtils","SELECTABLE_OPTIONS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","Aggregations","_ref","isRollup","settings","availablePlacements","onChange","onEdit","dh","aggregations","showOnTop","options","filter","option","some","aggregation","operation","MEDIAN","undefined","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","added","arguments","length","removed","_objectSpread","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","_ref2","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","keep","remove","reduce","_ref3","keepSoFar","removeSoFar","push","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","value","setDefaultOperation","includes","renderAggregation","_ref4","item","isClone","selectedCount","text","badgeText","concat","className","isRollupProhibited","isEditable","children","icon","renderBadge","renderHandle","kind","tooltip","onClick","disabled","isOptionsShown","isAggregationsShown","map","type","id","marginStart","orientation","isDisabled","onDragStart","onDragEnd","itemCount","items","renderItem","offset","onSelectionChange","onSelect","isMultiSelect"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { DragDropContext, type DropResult } from 'react-beautiful-dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhNewCircleLargeFilled,\n vsTrash,\n vsEdit,\n dhWarningFilled,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport {\n DraggableItemList,\n DragUtils,\n Option,\n Select,\n Radio,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { type ModelIndex } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport AggregationOperation from './AggregationOperation';\nimport AggregationUtils, { SELECTABLE_OPTIONS } from './AggregationUtils';\nimport './Aggregations.scss';\n\nconst log = Log.module('Aggregations');\n\nexport type Aggregation = {\n operation: AggregationOperation;\n selected: readonly string[];\n invert: boolean;\n};\n\nexport type AggregationSettings = {\n aggregations: readonly Aggregation[];\n showOnTop: boolean;\n};\n\nexport type AggregationsProps = {\n isRollup: boolean;\n availablePlacements?: ('top' | 'bottom')[];\n settings: AggregationSettings;\n onChange: (\n settings: AggregationSettings,\n added: AggregationOperation[],\n removed: AggregationOperation[]\n ) => void;\n onEdit: (aggregation: Aggregation) => void;\n dh: typeof DhType;\n};\n\nfunction Aggregations({\n isRollup,\n settings,\n availablePlacements = ['top', 'bottom'],\n onChange,\n onEdit,\n dh,\n}: AggregationsProps): JSX.Element {\n const { aggregations, showOnTop } = settings;\n const options = useMemo(\n () =>\n SELECTABLE_OPTIONS.filter(\n option =>\n !aggregations.some(aggregation => aggregation.operation === option) &&\n !(\n option === AggregationOperation.MEDIAN &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - MEDIAN is not defined in older version of Core\n dh.AggregationOperation.MEDIAN === undefined\n )\n ),\n [aggregations, dh]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<readonly Range[]>([]);\n const changeSettings = useCallback(\n (\n changedSettings: Partial<AggregationSettings>,\n added: AggregationOperation[] = [],\n removed: AggregationOperation[] = []\n ) => {\n onChange({ ...settings, ...changedSettings }, added, removed);\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n (\n newAggregations: readonly Aggregation[],\n added: AggregationOperation[] = [],\n removed: AggregationOperation[] = []\n ) => {\n changeSettings({ aggregations: newAggregations }, added, removed);\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n (newShowOnTop: boolean) => {\n changeSettings({ showOnTop: newShowOnTop });\n },\n [changeSettings]\n );\n\n const handleDragStart = useCallback(() => {\n log.debug('handleDragStart');\n\n DragUtils.startDragging();\n }, []);\n\n const handleDragEnd = useCallback(\n ({ destination, source }: DropResult) => {\n log.debug('handleDragEnd', destination, source);\n\n DragUtils.stopDragging();\n\n if (destination == null) {\n return;\n }\n\n let destinationIndex = destination.index;\n if (source.index < destination.index) {\n destinationIndex += 1;\n }\n\n const newAggregations = [...aggregations];\n const draggedItems = DragUtils.reorder(\n newAggregations,\n selectedRanges,\n newAggregations,\n destinationIndex\n );\n const insertIndex = DragUtils.adjustDestinationIndex(\n destinationIndex,\n selectedRanges\n );\n const newSelectedRanges: Range[] = [\n [insertIndex, insertIndex + draggedItems.length - 1],\n ];\n changeAggregations(newAggregations);\n setSelectedRanges(newSelectedRanges);\n },\n [changeAggregations, aggregations, selectedRanges, setSelectedRanges]\n );\n\n const handleOperationChange = useCallback(\n (operation: string) => {\n setSelectedOperation(operation as AggregationOperation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations(\n [\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ],\n [selectedOperation]\n );\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n const [keep, remove] = aggregations.reduce(\n ([keepSoFar, removeSoFar], aggregation, index) => {\n if (index === itemIndex) {\n removeSoFar.push(aggregation.operation);\n } else {\n keepSoFar.push(aggregation);\n }\n return [keepSoFar, removeSoFar];\n },\n [[], []] as [Aggregation[], AggregationOperation[]]\n );\n changeAggregations(keep, [], remove);\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n (newSelectedRanges: readonly Range[]) => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n (itemIndex: number) => {\n const aggregation = aggregations[itemIndex];\n if (!AggregationUtils.isRollupOperation(aggregation.operation)) {\n onEdit(aggregation);\n }\n },\n [aggregations, onEdit]\n );\n\n const handleShowOnTopChange = useCallback(\n (value: string) => {\n changeShowOnTop(value === 'true');\n },\n [changeShowOnTop]\n );\n\n useEffect(\n function setDefaultOperation() {\n if (options.length > 0 && !options.includes(selectedOperation)) {\n setSelectedOperation(options[0]);\n }\n },\n [options, selectedOperation]\n );\n\n const renderAggregation = useCallback(\n ({\n item,\n itemIndex,\n isClone = false,\n selectedCount,\n }: DraggableRenderItemProps<Aggregation>) => {\n const text = item.operation;\n const badgeText = isClone ? `${selectedCount}` : undefined;\n const className = isClone ? 'item-list-item-clone' : undefined;\n const isRollupOperation = AggregationUtils.isRollupOperation(\n item.operation\n );\n const isRollupProhibited = AggregationUtils.isRollupProhibited(\n item.operation\n );\n const isEditable = !isClone && !isRollupOperation;\n return (\n <>\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">\n {text}\n {!isRollup && isRollupOperation && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Requires rollup\n </span>\n )}\n {isRollup && isRollupProhibited && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Not available on\n rollups\n </span>\n )}\n </span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n {!isClone && (\n <>\n <Button\n kind=\"ghost\"\n className=\"btn-edit\"\n icon={vsEdit}\n tooltip=\"Edit Columns\"\n onClick={() => onEdit(item)}\n disabled={!isEditable}\n />\n <Button\n kind=\"ghost\"\n className=\"btn-delete\"\n icon={vsTrash}\n tooltip=\"Delete Aggregation\"\n onClick={() => handleDeleteClicked(itemIndex)}\n />\n </>\n )}\n </>\n );\n },\n [handleDeleteClicked, onEdit, isRollup]\n );\n\n const isOptionsShown = options.length > 0;\n const isAggregationsShown = aggregations.length > 0;\n\n return (\n <div className=\"aggregations\">\n {isOptionsShown && (\n <div className=\"form-inline\">\n <Select onChange={handleOperationChange} value={selectedOperation}>\n {options.map(option => (\n <Option value={option} key={option}>\n {option}\n </Option>\n ))}\n </Select>\n <button\n type=\"button\"\n className=\"btn btn-link btn-add\"\n onClick={handleAdd}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n Add Aggregation\n </button>\n </div>\n )}\n {isOptionsShown && isAggregationsShown && <hr />}\n {isAggregationsShown && (\n <>\n {!isRollup && (\n <div>\n <label id=\"placement-options-label\">Placement:&nbsp;</label>\n <RadioGroup\n aria-labelledby=\"placement-options-label\"\n marginStart=\"size-125\"\n orientation=\"horizontal\"\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <Radio\n value=\"true\"\n isDisabled={!availablePlacements.includes('top')}\n >\n Top\n </Radio>\n <Radio\n value=\"false\"\n isDisabled={!availablePlacements.includes('bottom')}\n >\n Bottom\n </Radio>\n </RadioGroup>\n </div>\n )}\n <DragDropContext\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <DraggableItemList<Aggregation>\n className=\"selected-aggregations\"\n itemCount={aggregations.length}\n items={aggregations}\n renderItem={renderAggregation}\n offset={0}\n onSelectionChange={handleAggregationSelectionChange}\n onSelect={handleAggregationSelect}\n selectedRanges={selectedRanges}\n isMultiSelect\n />\n </DragDropContext>\n </>\n )}\n </div>\n );\n}\n\nexport default Aggregations;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Aggregations.js","names":["React","useCallback","useEffect","useMemo","useState","DragDropContext","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsTrash","vsEdit","dhWarningFilled","Log","DraggableItemList","DragUtils","Option","Select","Radio","RadioGroup","Button","AggregationOperation","AggregationUtils","SELECTABLE_OPTIONS","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","Aggregations","_ref","isRollup","settings","availablePlacements","onChange","onEdit","dh","aggregations","showOnTop","options","filter","option","some","aggregation","operation","MEDIAN","undefined","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","added","arguments","length","removed","_objectSpread","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","_ref2","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","keep","remove","reduce","_ref3","keepSoFar","removeSoFar","push","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","value","setDefaultOperation","includes","renderAggregation","_ref4","item","isClone","selectedCount","text","badgeText","concat","className","isRollupProhibited","isEditable","children","icon","renderBadge","renderHandle","kind","tooltip","onClick","disabled","isOptionsShown","isAggregationsShown","map","type","id","marginStart","orientation","isDisabled","onDragStart","onDragEnd","itemCount","items","renderItem","offset","onSelectionChange","onSelect","isMultiSelect"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { DragDropContext, type DropResult } from '@hello-pangea/dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhNewCircleLargeFilled,\n vsTrash,\n vsEdit,\n dhWarningFilled,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport {\n DraggableItemList,\n DragUtils,\n Option,\n Select,\n Radio,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { type ModelIndex } from '@deephaven/grid';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport AggregationOperation from './AggregationOperation';\nimport AggregationUtils, { SELECTABLE_OPTIONS } from './AggregationUtils';\nimport './Aggregations.scss';\n\nconst log = Log.module('Aggregations');\n\nexport type Aggregation = {\n operation: AggregationOperation;\n selected: readonly string[];\n invert: boolean;\n};\n\nexport type AggregationSettings = {\n aggregations: readonly Aggregation[];\n showOnTop: boolean;\n};\n\nexport type AggregationsProps = {\n isRollup: boolean;\n availablePlacements?: ('top' | 'bottom')[];\n settings: AggregationSettings;\n onChange: (\n settings: AggregationSettings,\n added: AggregationOperation[],\n removed: AggregationOperation[]\n ) => void;\n onEdit: (aggregation: Aggregation) => void;\n dh: typeof DhType;\n};\n\nfunction Aggregations({\n isRollup,\n settings,\n availablePlacements = ['top', 'bottom'],\n onChange,\n onEdit,\n dh,\n}: AggregationsProps): JSX.Element {\n const { aggregations, showOnTop } = settings;\n const options = useMemo(\n () =>\n SELECTABLE_OPTIONS.filter(\n option =>\n !aggregations.some(aggregation => aggregation.operation === option) &&\n !(\n option === AggregationOperation.MEDIAN &&\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore - MEDIAN is not defined in older version of Core\n dh.AggregationOperation.MEDIAN === undefined\n )\n ),\n [aggregations, dh]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<readonly Range[]>([]);\n const changeSettings = useCallback(\n (\n changedSettings: Partial<AggregationSettings>,\n added: AggregationOperation[] = [],\n removed: AggregationOperation[] = []\n ) => {\n onChange({ ...settings, ...changedSettings }, added, removed);\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n (\n newAggregations: readonly Aggregation[],\n added: AggregationOperation[] = [],\n removed: AggregationOperation[] = []\n ) => {\n changeSettings({ aggregations: newAggregations }, added, removed);\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n (newShowOnTop: boolean) => {\n changeSettings({ showOnTop: newShowOnTop });\n },\n [changeSettings]\n );\n\n const handleDragStart = useCallback(() => {\n log.debug('handleDragStart');\n\n DragUtils.startDragging();\n }, []);\n\n const handleDragEnd = useCallback(\n ({ destination, source }: DropResult) => {\n log.debug('handleDragEnd', destination, source);\n\n DragUtils.stopDragging();\n\n if (destination == null) {\n return;\n }\n\n let destinationIndex = destination.index;\n if (source.index < destination.index) {\n destinationIndex += 1;\n }\n\n const newAggregations = [...aggregations];\n const draggedItems = DragUtils.reorder(\n newAggregations,\n selectedRanges,\n newAggregations,\n destinationIndex\n );\n const insertIndex = DragUtils.adjustDestinationIndex(\n destinationIndex,\n selectedRanges\n );\n const newSelectedRanges: Range[] = [\n [insertIndex, insertIndex + draggedItems.length - 1],\n ];\n changeAggregations(newAggregations);\n setSelectedRanges(newSelectedRanges);\n },\n [changeAggregations, aggregations, selectedRanges, setSelectedRanges]\n );\n\n const handleOperationChange = useCallback(\n (operation: string) => {\n setSelectedOperation(operation as AggregationOperation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations(\n [\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ],\n [selectedOperation]\n );\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n const [keep, remove] = aggregations.reduce(\n ([keepSoFar, removeSoFar], aggregation, index) => {\n if (index === itemIndex) {\n removeSoFar.push(aggregation.operation);\n } else {\n keepSoFar.push(aggregation);\n }\n return [keepSoFar, removeSoFar];\n },\n [[], []] as [Aggregation[], AggregationOperation[]]\n );\n changeAggregations(keep, [], remove);\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n (newSelectedRanges: readonly Range[]) => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n (itemIndex: number) => {\n const aggregation = aggregations[itemIndex];\n if (!AggregationUtils.isRollupOperation(aggregation.operation)) {\n onEdit(aggregation);\n }\n },\n [aggregations, onEdit]\n );\n\n const handleShowOnTopChange = useCallback(\n (value: string) => {\n changeShowOnTop(value === 'true');\n },\n [changeShowOnTop]\n );\n\n useEffect(\n function setDefaultOperation() {\n if (options.length > 0 && !options.includes(selectedOperation)) {\n setSelectedOperation(options[0]);\n }\n },\n [options, selectedOperation]\n );\n\n const renderAggregation = useCallback(\n ({\n item,\n itemIndex,\n isClone = false,\n selectedCount,\n }: DraggableRenderItemProps<Aggregation>) => {\n const text = item.operation;\n const badgeText = isClone ? `${selectedCount}` : undefined;\n const className = isClone ? 'item-list-item-clone' : undefined;\n const isRollupOperation = AggregationUtils.isRollupOperation(\n item.operation\n );\n const isRollupProhibited = AggregationUtils.isRollupProhibited(\n item.operation\n );\n const isEditable = !isClone && !isRollupOperation;\n return (\n <>\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">\n {text}\n {!isRollup && isRollupOperation && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Requires rollup\n </span>\n )}\n {isRollup && isRollupProhibited && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Not available on\n rollups\n </span>\n )}\n </span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n {!isClone && (\n <>\n <Button\n kind=\"ghost\"\n className=\"btn-edit\"\n icon={vsEdit}\n tooltip=\"Edit Columns\"\n onClick={() => onEdit(item)}\n disabled={!isEditable}\n />\n <Button\n kind=\"ghost\"\n className=\"btn-delete\"\n icon={vsTrash}\n tooltip=\"Delete Aggregation\"\n onClick={() => handleDeleteClicked(itemIndex)}\n />\n </>\n )}\n </>\n );\n },\n [handleDeleteClicked, onEdit, isRollup]\n );\n\n const isOptionsShown = options.length > 0;\n const isAggregationsShown = aggregations.length > 0;\n\n return (\n <div className=\"aggregations\">\n {isOptionsShown && (\n <div className=\"form-inline\">\n <Select onChange={handleOperationChange} value={selectedOperation}>\n {options.map(option => (\n <Option value={option} key={option}>\n {option}\n </Option>\n ))}\n </Select>\n <button\n type=\"button\"\n className=\"btn btn-link btn-add\"\n onClick={handleAdd}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n Add Aggregation\n </button>\n </div>\n )}\n {isOptionsShown && isAggregationsShown && <hr />}\n {isAggregationsShown && (\n <>\n {!isRollup && (\n <div>\n <label id=\"placement-options-label\">Placement:&nbsp;</label>\n <RadioGroup\n aria-labelledby=\"placement-options-label\"\n marginStart=\"size-125\"\n orientation=\"horizontal\"\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <Radio\n value=\"true\"\n isDisabled={!availablePlacements.includes('top')}\n >\n Top\n </Radio>\n <Radio\n value=\"false\"\n isDisabled={!availablePlacements.includes('bottom')}\n >\n Bottom\n </Radio>\n </RadioGroup>\n </div>\n )}\n <DragDropContext\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <DraggableItemList<Aggregation>\n className=\"selected-aggregations\"\n itemCount={aggregations.length}\n items={aggregations}\n renderItem={renderAggregation}\n offset={0}\n onSelectionChange={handleAggregationSelectionChange}\n onSelect={handleAggregationSelect}\n selectedRanges={selectedRanges}\n isMultiSelect\n />\n </DragDropContext>\n </>\n )}\n </div>\n );\n}\n\nexport default Aggregations;\n"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
4
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
5
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
6
6
  import React, { useCallback } from 'react';
7
- import { DragDropContext, Draggable, Droppable } from 'react-beautiful-dnd';
7
+ import { DragDropContext, Draggable, Droppable } from '@hello-pangea/dnd';
8
8
  import classNames from 'classnames';
9
9
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
10
10
  import { dhNewCircleLargeFilled, vsGripper, vsTrash } from '@deephaven/icons';
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalFormattingMenu.js","names":["React","useCallback","DragDropContext","Draggable","Droppable","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsGripper","vsTrash","Button","DragUtils","Tooltip","TableUtils","Log","FormatterType","getBackgroundForStyleConfig","getColorForStyleConfig","getShortLabelForConditionType","NumberCondition","StringCondition","DateCondition","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_CALLBACK","undefined","getRuleValue","config","column","type","isNumberType","condition","IS_NULL","IS_NOT_NULL","concat","value","isCharType","isStringType","isDateType","isBooleanType","Error","getRuleTitle","IS_BETWEEN","start","name","end","ConditionalFormattingMenu","props","rules","onChange","onCreate","onSelect","handleRuleClick","e","rule","index","stopPropagation","debug","handleDeleteClick","updatedRules","splice","handleDragHandlerClick","handleDragEnd","result","stopDragging","destination","sourceIndex","source","destinationIndex","sourceInput","className","children","onDragStart","startDragging","onDragEnd","droppableId","provided","snapshot","_objectSpread","ref","innerRef","droppableProps","dragging","draggingFromThisWith","length","map","draggableId","disableInteractiveElementBlocking","role","tabIndex","onClick","isDragging","draggableProps","style","backgroundColor","color","ROWS","kind","icon","tooltip","dragHandleProps","placeholder"],"sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingMenu.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n type DropResult,\n} from 'react-beautiful-dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhNewCircleLargeFilled, vsGripper, vsTrash } from '@deephaven/icons';\nimport { Button, DragUtils, Tooltip } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport './ConditionalFormattingMenu.scss';\nimport {\n type BaseFormatConfig,\n type FormattingRule,\n FormatterType,\n getBackgroundForStyleConfig,\n getColorForStyleConfig,\n getShortLabelForConditionType,\n NumberCondition,\n StringCondition,\n DateCondition,\n} from './ConditionalFormattingUtils';\nimport { type ColumnName } from '../../CommonTypes';\n\nconst log = Log.module('ConditionalFormattingMenu');\n\nexport type ChangeCallback = (rules: readonly FormattingRule[]) => void;\n\nexport type SelectCallback = (index: number) => void;\n\nexport type CreateCallback = () => void;\n\nexport type ConditionalFormattingMenuProps = {\n rules: readonly FormattingRule[];\n selectedColumn?: ColumnName;\n onChange?: ChangeCallback;\n onCreate?: CreateCallback;\n onSelect?: SelectCallback;\n};\n\nconst DEFAULT_CALLBACK = (): void => undefined;\n\nfunction getRuleValue(config: BaseFormatConfig): string {\n const {\n column: { type },\n } = config;\n if (TableUtils.isNumberType(type)) {\n return config.condition === NumberCondition.IS_NULL ||\n config.condition === NumberCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isCharType(type)) {\n return config.condition === DateCondition.IS_NULL ||\n config.condition === DateCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isStringType(type)) {\n return config.condition === StringCondition.IS_NULL ||\n config.condition === StringCondition.IS_NOT_NULL\n ? ''\n : `\"${config.value}\"`;\n }\n if (TableUtils.isDateType(type)) {\n return config.condition === DateCondition.IS_NULL ||\n config.condition === DateCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isBooleanType(type)) {\n return '';\n }\n throw new Error(`Invalid column type ${type} in getRuleValue`);\n}\n\nfunction getRuleTitle(config: BaseFormatConfig): string {\n if (\n TableUtils.isNumberType(config.column.type) &&\n config.condition === NumberCondition.IS_BETWEEN\n ) {\n return `${config.start} < ${config.column.name} < ${config.end}`;\n }\n return `${config.column.name} ${getShortLabelForConditionType(\n (config as BaseFormatConfig).column.type,\n (config as BaseFormatConfig).condition\n )} \n ${getRuleValue(config as BaseFormatConfig)}`;\n}\n\nfunction ConditionalFormattingMenu(\n props: ConditionalFormattingMenuProps\n): JSX.Element {\n const {\n rules = [],\n onChange = DEFAULT_CALLBACK,\n onCreate = DEFAULT_CALLBACK,\n onSelect = DEFAULT_CALLBACK,\n } = props;\n\n const handleRuleClick = useCallback(\n (e: React.MouseEvent, rule: FormattingRule, index: number) => {\n e.stopPropagation();\n log.debug('Rule clicked', rule, index);\n onSelect(index);\n },\n [onSelect]\n );\n\n const handleDeleteClick = useCallback(\n (e: React.MouseEvent, rule: FormattingRule, index: number) => {\n e.stopPropagation();\n log.debug('Delete button clicked', rule, index);\n const updatedRules = [...rules];\n updatedRules.splice(index, 1);\n onChange(updatedRules);\n },\n [onChange, rules]\n );\n\n const handleDragHandlerClick = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n const handleDragEnd = useCallback(\n (result: DropResult) => {\n DragUtils.stopDragging();\n\n // if dropped outside the list\n if (result.destination == null) {\n return;\n }\n const sourceIndex = result.source.index;\n const destinationIndex = result.destination.index;\n const updatedRules = [...rules];\n const sourceInput = rules[sourceIndex];\n\n updatedRules.splice(sourceIndex, 1);\n updatedRules.splice(destinationIndex, 0, sourceInput);\n\n onChange(updatedRules);\n },\n [onChange, rules]\n );\n\n // Display list of rules\n return (\n <div className=\"conditional-formatting-rules\">\n <DragDropContext\n onDragStart={DragUtils.startDragging}\n onDragEnd={handleDragEnd}\n >\n <Droppable droppableId=\"droppable-custom-columns\">\n {(provided, snapshot) => (\n <div\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n className={classNames('droppable-container', {\n dragging: snapshot.draggingFromThisWith,\n })}\n >\n {rules.length === 0 && (\n <div className=\"text-muted pl-2\">No formats defined</div>\n )}\n {rules.map((rule, index) => (\n <Draggable\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}-${rule.type}`}\n draggableId={`${index}-${rule.type}`}\n index={index}\n disableInteractiveElementBlocking\n >\n {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n (provided, snapshot) => (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={e => handleRuleClick(e, rule, index)}\n className={classNames('draggable-container', {\n dragging: snapshot.isDragging,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n >\n <div className=\"conditional-formatting-list-item\">\n <div className=\"formatting-item\">\n <div className=\"rule-icon\">\n <span\n className=\"rule-icon-bg\"\n style={{\n backgroundColor: getBackgroundForStyleConfig(\n (rule.config as BaseFormatConfig).style\n ),\n color: getColorForStyleConfig(\n (rule.config as BaseFormatConfig).style\n ),\n }}\n >\n {rule.type === FormatterType.ROWS\n ? 'row'\n : 'col'}\n </span>\n </div>\n <div className=\"rule-title\">\n {getRuleTitle(rule.config as BaseFormatConfig)}\n </div>\n <Button\n kind=\"ghost\"\n className=\"ml-1 px-2\"\n onClick={e => handleDeleteClick(e, rule, index)}\n icon={vsTrash}\n tooltip=\"Delete rule\"\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2 btn-drag-handle\"\n onClick={handleDragHandlerClick}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </button>\n </div>\n </div>\n </div>\n )\n }\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n <hr />\n <Button kind=\"ghost\" onClick={onCreate} icon={dhNewCircleLargeFilled}>\n Add New Rule\n </Button>\n </div>\n );\n}\n\nexport default ConditionalFormattingMenu;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ConditionalFormattingMenu.js","names":["React","useCallback","DragDropContext","Draggable","Droppable","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsGripper","vsTrash","Button","DragUtils","Tooltip","TableUtils","Log","FormatterType","getBackgroundForStyleConfig","getColorForStyleConfig","getShortLabelForConditionType","NumberCondition","StringCondition","DateCondition","jsx","_jsx","jsxs","_jsxs","log","module","DEFAULT_CALLBACK","undefined","getRuleValue","config","column","type","isNumberType","condition","IS_NULL","IS_NOT_NULL","concat","value","isCharType","isStringType","isDateType","isBooleanType","Error","getRuleTitle","IS_BETWEEN","start","name","end","ConditionalFormattingMenu","props","rules","onChange","onCreate","onSelect","handleRuleClick","e","rule","index","stopPropagation","debug","handleDeleteClick","updatedRules","splice","handleDragHandlerClick","handleDragEnd","result","stopDragging","destination","sourceIndex","source","destinationIndex","sourceInput","className","children","onDragStart","startDragging","onDragEnd","droppableId","provided","snapshot","_objectSpread","ref","innerRef","droppableProps","dragging","draggingFromThisWith","length","map","draggableId","disableInteractiveElementBlocking","role","tabIndex","onClick","isDragging","draggableProps","style","backgroundColor","color","ROWS","kind","icon","tooltip","dragHandleProps","placeholder"],"sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingMenu.tsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n type DropResult,\n} from '@hello-pangea/dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dhNewCircleLargeFilled, vsGripper, vsTrash } from '@deephaven/icons';\nimport { Button, DragUtils, Tooltip } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport './ConditionalFormattingMenu.scss';\nimport {\n type BaseFormatConfig,\n type FormattingRule,\n FormatterType,\n getBackgroundForStyleConfig,\n getColorForStyleConfig,\n getShortLabelForConditionType,\n NumberCondition,\n StringCondition,\n DateCondition,\n} from './ConditionalFormattingUtils';\nimport { type ColumnName } from '../../CommonTypes';\n\nconst log = Log.module('ConditionalFormattingMenu');\n\nexport type ChangeCallback = (rules: readonly FormattingRule[]) => void;\n\nexport type SelectCallback = (index: number) => void;\n\nexport type CreateCallback = () => void;\n\nexport type ConditionalFormattingMenuProps = {\n rules: readonly FormattingRule[];\n selectedColumn?: ColumnName;\n onChange?: ChangeCallback;\n onCreate?: CreateCallback;\n onSelect?: SelectCallback;\n};\n\nconst DEFAULT_CALLBACK = (): void => undefined;\n\nfunction getRuleValue(config: BaseFormatConfig): string {\n const {\n column: { type },\n } = config;\n if (TableUtils.isNumberType(type)) {\n return config.condition === NumberCondition.IS_NULL ||\n config.condition === NumberCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isCharType(type)) {\n return config.condition === DateCondition.IS_NULL ||\n config.condition === DateCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isStringType(type)) {\n return config.condition === StringCondition.IS_NULL ||\n config.condition === StringCondition.IS_NOT_NULL\n ? ''\n : `\"${config.value}\"`;\n }\n if (TableUtils.isDateType(type)) {\n return config.condition === DateCondition.IS_NULL ||\n config.condition === DateCondition.IS_NOT_NULL\n ? ''\n : `${config.value}`;\n }\n if (TableUtils.isBooleanType(type)) {\n return '';\n }\n throw new Error(`Invalid column type ${type} in getRuleValue`);\n}\n\nfunction getRuleTitle(config: BaseFormatConfig): string {\n if (\n TableUtils.isNumberType(config.column.type) &&\n config.condition === NumberCondition.IS_BETWEEN\n ) {\n return `${config.start} < ${config.column.name} < ${config.end}`;\n }\n return `${config.column.name} ${getShortLabelForConditionType(\n (config as BaseFormatConfig).column.type,\n (config as BaseFormatConfig).condition\n )} \n ${getRuleValue(config as BaseFormatConfig)}`;\n}\n\nfunction ConditionalFormattingMenu(\n props: ConditionalFormattingMenuProps\n): JSX.Element {\n const {\n rules = [],\n onChange = DEFAULT_CALLBACK,\n onCreate = DEFAULT_CALLBACK,\n onSelect = DEFAULT_CALLBACK,\n } = props;\n\n const handleRuleClick = useCallback(\n (e: React.MouseEvent, rule: FormattingRule, index: number) => {\n e.stopPropagation();\n log.debug('Rule clicked', rule, index);\n onSelect(index);\n },\n [onSelect]\n );\n\n const handleDeleteClick = useCallback(\n (e: React.MouseEvent, rule: FormattingRule, index: number) => {\n e.stopPropagation();\n log.debug('Delete button clicked', rule, index);\n const updatedRules = [...rules];\n updatedRules.splice(index, 1);\n onChange(updatedRules);\n },\n [onChange, rules]\n );\n\n const handleDragHandlerClick = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n }, []);\n\n const handleDragEnd = useCallback(\n (result: DropResult) => {\n DragUtils.stopDragging();\n\n // if dropped outside the list\n if (result.destination == null) {\n return;\n }\n const sourceIndex = result.source.index;\n const destinationIndex = result.destination.index;\n const updatedRules = [...rules];\n const sourceInput = rules[sourceIndex];\n\n updatedRules.splice(sourceIndex, 1);\n updatedRules.splice(destinationIndex, 0, sourceInput);\n\n onChange(updatedRules);\n },\n [onChange, rules]\n );\n\n // Display list of rules\n return (\n <div className=\"conditional-formatting-rules\">\n <DragDropContext\n onDragStart={DragUtils.startDragging}\n onDragEnd={handleDragEnd}\n >\n <Droppable droppableId=\"droppable-custom-columns\">\n {(provided, snapshot) => (\n <div\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.droppableProps}\n className={classNames('droppable-container', {\n dragging: snapshot.draggingFromThisWith,\n })}\n >\n {rules.length === 0 && (\n <div className=\"text-muted pl-2\">No formats defined</div>\n )}\n {rules.map((rule, index) => (\n <Draggable\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}-${rule.type}`}\n draggableId={`${index}-${rule.type}`}\n index={index}\n disableInteractiveElementBlocking\n >\n {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n (provided, snapshot) => (\n <div\n role=\"menuitem\"\n tabIndex={0}\n onClick={e => handleRuleClick(e, rule, index)}\n className={classNames('draggable-container', {\n dragging: snapshot.isDragging,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n >\n <div className=\"conditional-formatting-list-item\">\n <div className=\"formatting-item\">\n <div className=\"rule-icon\">\n <span\n className=\"rule-icon-bg\"\n style={{\n backgroundColor: getBackgroundForStyleConfig(\n (rule.config as BaseFormatConfig).style\n ),\n color: getColorForStyleConfig(\n (rule.config as BaseFormatConfig).style\n ),\n }}\n >\n {rule.type === FormatterType.ROWS\n ? 'row'\n : 'col'}\n </span>\n </div>\n <div className=\"rule-title\">\n {getRuleTitle(rule.config as BaseFormatConfig)}\n </div>\n <Button\n kind=\"ghost\"\n className=\"ml-1 px-2\"\n onClick={e => handleDeleteClick(e, rule, index)}\n icon={vsTrash}\n tooltip=\"Delete rule\"\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2 btn-drag-handle\"\n onClick={handleDragHandlerClick}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n <Tooltip>Drag to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </button>\n </div>\n </div>\n </div>\n )\n }\n </Draggable>\n ))}\n {provided.placeholder}\n </div>\n )}\n </Droppable>\n </DragDropContext>\n <hr />\n <Button kind=\"ghost\" onClick={onCreate} icon={dhNewCircleLargeFilled}>\n Add New Rule\n </Button>\n </div>\n );\n}\n\nexport default ConditionalFormattingMenu;\n"],"mappings":"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","ignoreList":[]}
@@ -2,6 +2,7 @@ import React, { type ChangeEvent, PureComponent, type ReactElement } from 'react
2
2
  import { type ModelIndex, type MoveOperation, type VisibleIndex } from '@deephaven/grid';
3
3
  import type { dh } from '@deephaven/jsapi-types';
4
4
  import memoize from 'memoizee';
5
+ import type { Key } from '@react-types/shared';
5
6
  import './VisibilityOrderingBuilder.scss';
6
7
  import { type DisplayColumn } from '../../IrisGridModel';
7
8
  import type IrisGridModel from '../../IrisGridModel';
@@ -13,7 +14,7 @@ interface IndexRange {
13
14
  prevIndex: number;
14
15
  nextIndex: number;
15
16
  }
16
- interface VisibilityOrderingBuilderProps {
17
+ export interface VisibilityOrderingBuilderProps {
17
18
  model: IrisGridModel;
18
19
  movedColumns: readonly MoveOperation[];
19
20
  hiddenColumns: readonly ModelIndex[];
@@ -21,17 +22,28 @@ interface VisibilityOrderingBuilderProps {
21
22
  onColumnVisibilityChanged: (columns: readonly VisibleIndex[], isVisible: boolean) => void;
22
23
  onReset: () => void;
23
24
  onMovedColumnsChanged: (operations: readonly MoveOperation[], cb?: () => void) => void;
24
- onColumnHeaderGroupChanged: (groups: readonly (dh.ColumnGroup | ColumnHeaderGroup)[]) => void;
25
+ onColumnHeaderGroupChanged: (groups: readonly ColumnHeaderGroup[]) => void;
26
+ onFrozenColumnsChanged: (columns: readonly ColumnName[]) => void;
27
+ __testRef?: React.Ref<VisibilityOrderingBuilderInner>;
25
28
  }
26
- interface VisibilityOrderingBuilderState {
29
+ interface VisibilityOrderingBuilderInnerProps extends Omit<VisibilityOrderingBuilderProps, 'onFrozenColumnsChanged' | '__testRef'> {
30
+ undo: () => void;
31
+ redo: () => void;
32
+ canUndo: boolean;
33
+ canRedo: boolean;
34
+ startUndoGroup: () => void;
35
+ endUndoGroup: () => void;
36
+ }
37
+ interface VisibilityOrderingBuilderInnerState {
27
38
  selectedColumns: Set<string>;
28
39
  queriedColumnIndex: number | undefined;
29
40
  queriedColumnRange: IndexRange | undefined;
30
41
  prevQueriedColumns: Record<number, string> | undefined;
31
42
  lastSelectedColumn: string;
32
43
  searchFilter: string;
44
+ showHiddenColumns: boolean;
33
45
  }
34
- declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrderingBuilderProps, VisibilityOrderingBuilderState> {
46
+ declare class VisibilityOrderingBuilderInner extends PureComponent<VisibilityOrderingBuilderInnerProps, VisibilityOrderingBuilderInnerState> {
35
47
  static SORTING_OPTIONS: {
36
48
  readonly DSC: "DSC";
37
49
  readonly ASC: "ASC";
@@ -43,9 +55,12 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
43
55
  readonly DOWN: "DOWN";
44
56
  };
45
57
  static shouldRenderColumn(column: DisplayColumn): boolean;
46
- constructor(props: VisibilityOrderingBuilderProps);
47
- componentDidUpdate(prevProps: VisibilityOrderingBuilderProps): void;
58
+ constructor(props: VisibilityOrderingBuilderInnerProps);
59
+ componentDidMount(): void;
60
+ componentDidUpdate(prevProps: VisibilityOrderingBuilderInnerProps): void;
48
61
  componentWillUnmount(): void;
62
+ wrapperRef: React.RefObject<HTMLDivElement>;
63
+ lastFocusedItemIndex: number | null;
49
64
  list: HTMLDivElement | null;
50
65
  debouncedSearchColumns: import("lodash").DebouncedFunc<(searchFilter: string, updateQuery?: boolean) => void>;
51
66
  resetVisibilityOrdering(): void;
@@ -99,7 +114,7 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
99
114
  * @returns A new copy of the movedColumns including moves required to perform the operation.
100
115
  *
101
116
  */
102
- moveSelectedColumns(option: keyof typeof VisibilityOrderingBuilder.MOVE_OPTIONS): {
117
+ moveSelectedColumns(option: keyof typeof VisibilityOrderingBuilderInner.MOVE_OPTIONS): {
103
118
  newMoves: MoveOperation[];
104
119
  groups: readonly ColumnHeaderGroup[];
105
120
  };
@@ -109,7 +124,7 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
109
124
  *
110
125
  * @param option The move operation
111
126
  */
112
- handleMoveColumns(option: keyof typeof VisibilityOrderingBuilder.MOVE_OPTIONS): void;
127
+ handleMoveColumns(option: keyof typeof VisibilityOrderingBuilderInner.MOVE_OPTIONS): void;
113
128
  /**
114
129
  * Get the move operations required to recursively sort the grid
115
130
  * Column header groups are sorted using their name
@@ -122,8 +137,8 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
122
137
  * Also used to recursively sort header groups
123
138
  * @returns The moves required to sort the grid. Includes the starting movedColumns in the array
124
139
  */
125
- getSortMoves(itemsParam: readonly IrisGridTreeItem[], option: keyof typeof VisibilityOrderingBuilder.SORTING_OPTIONS, movedColumns: readonly MoveOperation[]): MoveOperation[];
126
- handleSortColumns(option: keyof typeof VisibilityOrderingBuilder.SORTING_OPTIONS): void;
140
+ getSortMoves(itemsParam: readonly IrisGridTreeItem[], option: keyof typeof VisibilityOrderingBuilderInner.SORTING_OPTIONS, movedColumns: readonly MoveOperation[]): MoveOperation[];
141
+ handleSortColumns(option: keyof typeof VisibilityOrderingBuilderInner.SORTING_OPTIONS): void;
127
142
  handleItemClick(name: string, event: React.MouseEvent<HTMLElement, MouseEvent>): void;
128
143
  /**
129
144
  * Adds columns or groups to the selected column set
@@ -167,7 +182,7 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
167
182
  * Gets the last movable visible index
168
183
  */
169
184
  getLastMovableIndex(): number | null;
170
- memoizedGetTreeItems: ((columns: readonly dh.Column[], movedColumns: readonly MoveOperation[], columnHeaderGroups: readonly ColumnHeaderGroup[], hiddenColumns: readonly ModelIndex[], selectedColumns: ReadonlySet<string>) => readonly IrisGridTreeItem[]) & memoize.Memoized<(columns: readonly dh.Column[], movedColumns: readonly MoveOperation[], columnHeaderGroups: readonly ColumnHeaderGroup[], hiddenColumns: readonly ModelIndex[], selectedColumns: ReadonlySet<string>) => readonly IrisGridTreeItem[]>;
185
+ memoizedGetTreeItems: ((columns: readonly dh.Column[], movedColumns: readonly MoveOperation[], columnHeaderGroups: readonly ColumnHeaderGroup[], hiddenColumns: readonly ModelIndex[], selectedColumns: ReadonlySet<string>, showHiddenColumns: boolean) => readonly IrisGridTreeItem[]) & memoize.Memoized<(columns: readonly dh.Column[], movedColumns: readonly MoveOperation[], columnHeaderGroups: readonly ColumnHeaderGroup[], hiddenColumns: readonly ModelIndex[], selectedColumns: ReadonlySet<string>, showHiddenColumns: boolean) => readonly IrisGridTreeItem[]>;
171
186
  /**
172
187
  * Gets the tree of movable items in order. Memoized for efficiency
173
188
  * Use flattenItems(this.getTreeItems()) if a flat list is needed
@@ -181,9 +196,12 @@ declare class VisibilityOrderingBuilder extends PureComponent<VisibilityOrdering
181
196
  * @returns The array of items whose parents are not selected
182
197
  */
183
198
  getSelectedParentItems(): FlattenedIrisGridTreeItem[];
184
- makeVisibilityOrderingList: ((columns: readonly DisplayColumn[], treeItems: readonly IrisGridTreeItem[]) => import("react/jsx-runtime").JSX.Element[]) & memoize.Memoized<(columns: readonly DisplayColumn[], treeItems: readonly IrisGridTreeItem[]) => import("react/jsx-runtime").JSX.Element[]>;
199
+ makeVisibilityOrderingList: ((columns: readonly DisplayColumn[], treeItems: readonly IrisGridTreeItem[], showHiddenColumns: boolean) => import("react/jsx-runtime").JSX.Element[]) & memoize.Memoized<(columns: readonly DisplayColumn[], treeItems: readonly IrisGridTreeItem[], showHiddenColumns: boolean) => import("react/jsx-runtime").JSX.Element[]>;
185
200
  renderImmovableItem: ((columnName: ColumnName) => ReactElement) & memoize.Memoized<(columnName: ColumnName) => ReactElement>;
201
+ handleOverflowAction(key: Key): void;
202
+ handleKeyboardShortcut(event: React.KeyboardEvent): void;
186
203
  render(): ReactElement;
187
204
  }
205
+ declare const VisibilityOrderingBuilder: React.MemoExoticComponent<(props: VisibilityOrderingBuilderProps) => import("react/jsx-runtime").JSX.Element>;
188
206
  export default VisibilityOrderingBuilder;
189
207
  //# sourceMappingURL=VisibilityOrderingBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VisibilityOrderingBuilder.d.ts","sourceRoot":"","sources":["../../../src/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VisibilityOrderingBuilder.d.ts","sourceRoot":"","sources":["../../../src/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.tsx"],"names":[],"mappings":"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"}