@deephaven/iris-grid 0.32.1-demo.2 → 0.32.1-table-plugins.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +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","RadioItem","RadioGroup","Button","AggregationOperation","AggregationUtils","log","module","SELECTABLE_OPTIONS","SUM","ABS_SUM","MIN","MAX","VAR","AVG","STD","FIRST","LAST","COUNT_DISTINCT","DISTINCT","COUNT","UNIQUE","Aggregations","isRollup","settings","onChange","onEdit","aggregations","showOnTop","options","filter","option","some","aggregation","operation","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","length","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","event","target","value","setDefaultOperation","includes","renderAggregation","item","isClone","selectedCount","text","badgeText","undefined","className","isEditable","renderBadge","renderHandle","isOptionsShown","isAggregationsShown","map"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { DragDropContext } 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 RadioItem,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { ModelIndex } from '@deephaven/grid';\nimport AggregationOperation from './AggregationOperation';\nimport AggregationUtils 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 settings: AggregationSettings;\n onChange: (settings: AggregationSettings) => void;\n onEdit: (aggregation: Aggregation) => void;\n};\n\nexport const SELECTABLE_OPTIONS = [\n AggregationOperation.SUM,\n AggregationOperation.ABS_SUM,\n AggregationOperation.MIN,\n AggregationOperation.MAX,\n AggregationOperation.VAR,\n AggregationOperation.AVG,\n AggregationOperation.STD,\n AggregationOperation.FIRST,\n AggregationOperation.LAST,\n AggregationOperation.COUNT_DISTINCT,\n AggregationOperation.DISTINCT,\n AggregationOperation.COUNT,\n AggregationOperation.UNIQUE,\n];\n\nfunction Aggregations({\n isRollup,\n settings,\n onChange,\n onEdit,\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 [aggregations]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const changeSettings = useCallback(\n changedSettings => {\n onChange({ ...settings, ...changedSettings });\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n newAggregations => {\n changeSettings({ aggregations: newAggregations });\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n newShowOnTop => {\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 }) => {\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 => {\n setSelectedOperation(operation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations([\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ]);\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n changeAggregations(\n aggregations.filter((aggregation, index) => index !== itemIndex)\n );\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n newSelectedRanges => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n itemIndex => {\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 (event: ChangeEvent<HTMLInputElement>) => {\n changeShowOnTop(event.target.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 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 </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 className=\"form-inline\">\n <label>Placement:&nbsp;</label>\n <RadioGroup\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <RadioItem value=\"true\">Top</RadioItem>\n <RadioItem value=\"false\">Bottom</RadioItem>\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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"}
1
+ {"version":3,"file":"Aggregations.js","names":["React","useCallback","useEffect","useMemo","useState","DragDropContext","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsTrash","vsEdit","dhWarningFilled","Log","DraggableItemList","DragUtils","Option","Select","RadioItem","RadioGroup","Button","AggregationUtils","SELECTABLE_OPTIONS","log","module","Aggregations","isRollup","settings","onChange","onEdit","aggregations","showOnTop","options","filter","option","some","aggregation","operation","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","length","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","event","target","value","setDefaultOperation","includes","renderAggregation","item","isClone","selectedCount","text","badgeText","undefined","className","isEditable","renderBadge","renderHandle","isOptionsShown","isAggregationsShown","map"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { DragDropContext } 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 RadioItem,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { ModelIndex } from '@deephaven/grid';\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 settings: AggregationSettings;\n onChange: (settings: AggregationSettings) => void;\n onEdit: (aggregation: Aggregation) => void;\n};\n\nfunction Aggregations({\n isRollup,\n settings,\n onChange,\n onEdit,\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 [aggregations]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const changeSettings = useCallback(\n changedSettings => {\n onChange({ ...settings, ...changedSettings });\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n newAggregations => {\n changeSettings({ aggregations: newAggregations });\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n newShowOnTop => {\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 }) => {\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 => {\n setSelectedOperation(operation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations([\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ]);\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n changeAggregations(\n aggregations.filter((aggregation, index) => index !== itemIndex)\n );\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n newSelectedRanges => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n itemIndex => {\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 (event: ChangeEvent<HTMLInputElement>) => {\n changeShowOnTop(event.target.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 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 </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 className=\"form-inline\">\n <label>Placement:&nbsp;</label>\n <RadioGroup\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <RadioItem value=\"true\">Top</RadioItem>\n <RadioItem value=\"false\">Bottom</RadioItem>\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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.32.1-demo.2+372f4aa",
3
+ "version": "0.32.1-table-plugins.9+29cd4d8",
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.32.1-demo.2+372f4aa",
27
- "@deephaven/console": "^0.32.1-demo.2+372f4aa",
28
- "@deephaven/filters": "^0.32.1-demo.2+372f4aa",
29
- "@deephaven/grid": "^0.32.1-demo.2+372f4aa",
30
- "@deephaven/icons": "^0.32.1-demo.2+372f4aa",
31
- "@deephaven/jsapi-shim": "^0.32.1-demo.2+372f4aa",
32
- "@deephaven/jsapi-utils": "^0.32.1-demo.2+372f4aa",
33
- "@deephaven/log": "^0.32.1-demo.2+372f4aa",
34
- "@deephaven/react-hooks": "^0.32.1-demo.2+372f4aa",
35
- "@deephaven/storage": "^0.32.1-demo.2+372f4aa",
36
- "@deephaven/utils": "^0.32.1-demo.2+372f4aa",
26
+ "@deephaven/components": "^0.32.1-table-plugins.9+29cd4d8",
27
+ "@deephaven/console": "^0.32.1-table-plugins.9+29cd4d8",
28
+ "@deephaven/filters": "^0.32.1-table-plugins.9+29cd4d8",
29
+ "@deephaven/grid": "^0.32.1-table-plugins.9+29cd4d8",
30
+ "@deephaven/icons": "^0.32.1-table-plugins.9+29cd4d8",
31
+ "@deephaven/jsapi-shim": "^0.32.1-table-plugins.9+29cd4d8",
32
+ "@deephaven/jsapi-utils": "^0.32.1-table-plugins.9+29cd4d8",
33
+ "@deephaven/log": "^0.32.1-table-plugins.9+29cd4d8",
34
+ "@deephaven/react-hooks": "^0.32.1-table-plugins.9+29cd4d8",
35
+ "@deephaven/storage": "^0.32.1-table-plugins.9+29cd4d8",
36
+ "@deephaven/utils": "^0.32.1-table-plugins.9+29cd4d8",
37
37
  "@dnd-kit/core": "^6.0.5",
38
38
  "@dnd-kit/sortable": "^7.0.0",
39
39
  "@dnd-kit/utilities": "^3.2.0",
@@ -57,8 +57,8 @@
57
57
  "react-dom": "^17.x"
58
58
  },
59
59
  "devDependencies": {
60
- "@deephaven/mocks": "^0.32.1-demo.2+372f4aa",
61
- "@deephaven/tsconfig": "^0.32.1-demo.2+372f4aa"
60
+ "@deephaven/mocks": "^0.32.1-table-plugins.9+29cd4d8",
61
+ "@deephaven/tsconfig": "^0.32.1-table-plugins.9+29cd4d8"
62
62
  },
63
63
  "files": [
64
64
  "dist"
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "372f4aa01105f3e2829665f14a989a3f5b88c69d"
72
+ "gitHead": "29cd4d83572be60355a22e372fe11f70ad5ea75a"
73
73
  }