@deephaven/iris-grid 0.8.2-beta.5 → 0.9.1-alpha.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.
- package/dist/AdvancedFilterCreator.d.ts +2 -2
- package/dist/AdvancedFilterCreator.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.d.ts +30 -31
- package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +21 -28
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.d.ts +1 -1
- package/dist/CrossColumnSearch.d.ts +1 -1
- package/dist/CrossColumnSearch.d.ts.map +1 -1
- package/dist/DateUtils.d.ts +46 -44
- package/dist/DateUtils.d.ts.map +1 -1
- package/dist/DateUtils.js +37 -32
- package/dist/DateUtils.js.map +1 -1
- package/dist/Formatter.d.ts +37 -35
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +57 -37
- package/dist/Formatter.js.map +1 -1
- package/dist/FormatterUtils.d.ts +12 -8
- package/dist/FormatterUtils.d.ts.map +1 -1
- package/dist/FormatterUtils.js.map +1 -1
- package/dist/IrisGrid.d.ts +15 -12
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +24 -13
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridMetricCalculator.d.ts +16 -2
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js +4 -3
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.d.ts +23 -23
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModelFactory.d.ts +1 -1
- package/dist/IrisGridModelFactory.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +2 -2
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.d.ts +5 -5
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTestUtils.d.ts +1 -1
- package/dist/IrisGridTestUtils.d.ts.map +1 -1
- package/dist/IrisGridTheme.d.ts +5 -75
- package/dist/IrisGridTheme.d.ts.map +1 -1
- package/dist/IrisGridTheme.js +2 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +28 -28
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/TableUtils.d.ts +127 -114
- package/dist/TableUtils.d.ts.map +1 -1
- package/dist/TableUtils.js +76 -69
- package/dist/TableUtils.js.map +1 -1
- package/dist/declaration.d.js +2 -0
- package/dist/declaration.d.js.map +1 -0
- package/dist/filters/FilterOperator.d.ts +5 -5
- package/dist/filters/FilterOperator.d.ts.map +1 -1
- package/dist/filters/FilterOperator.js +1 -3
- package/dist/filters/FilterOperator.js.map +1 -1
- package/dist/filters/FilterType.d.ts +23 -23
- package/dist/filters/FilterType.d.ts.map +1 -1
- package/dist/filters/FilterType.js +1 -3
- package/dist/filters/FilterType.js.map +1 -1
- package/dist/filters/index.d.ts +2 -2
- package/dist/filters/index.d.ts.map +1 -1
- package/dist/filters/index.js +2 -2
- package/dist/filters/index.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.d.ts +27 -39
- package/dist/format-context-menus/CustomFormatAction.d.ts.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +24 -23
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts +8 -5
- package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.js +3 -3
- package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.d.ts +7 -5
- package/dist/format-context-menus/DecimalFormatContextMenu.d.ts.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.js +3 -3
- package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.d.ts +28 -27
- package/dist/format-context-menus/FormatContextMenuUtils.d.ts.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.js +12 -10
- package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.d.ts +7 -5
- package/dist/format-context-menus/IntegerFormatContextMenu.d.ts.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.js +3 -3
- package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/index.d.ts +3 -3
- package/dist/format-context-menus/index.d.ts.map +1 -1
- package/dist/format-context-menus/index.js.map +1 -1
- package/dist/formatters/BooleanColumnFormatter.d.ts +4 -4
- package/dist/formatters/BooleanColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/BooleanColumnFormatter.js.map +1 -1
- package/dist/formatters/CharColumnFormatter.d.ts +4 -4
- package/dist/formatters/CharColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/CharColumnFormatter.js.map +1 -1
- package/dist/formatters/DateTimeColumnFormatter.d.ts +6 -5
- package/dist/formatters/DateTimeColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/DateTimeColumnFormatter.js.map +1 -1
- package/dist/formatters/DecimalColumnFormatter.d.ts +2 -2
- package/dist/formatters/DecimalColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/DecimalColumnFormatter.js.map +1 -1
- package/dist/formatters/DefaultColumnFormatter.d.ts +4 -4
- package/dist/formatters/DefaultColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/DefaultColumnFormatter.js.map +1 -1
- package/dist/formatters/IntegerColumnFormatter.d.ts +2 -2
- package/dist/formatters/IntegerColumnFormatter.d.ts.map +1 -1
- package/dist/formatters/IntegerColumnFormatter.js.map +1 -1
- package/dist/formatters/index.d.ts +1 -0
- package/dist/formatters/index.d.ts.map +1 -1
- package/dist/formatters/index.js +1 -0
- package/dist/formatters/index.js.map +1 -1
- package/dist/index.d.ts +14 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +17 -8
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/sidebar/ChartBuilder.d.ts +1 -1
- package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
- package/dist/sidebar/TableCsvExporter.d.ts +1 -1
- package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.d.ts +2 -4
- package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.d.ts +1 -4
- package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/package.json +12 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sidebar/aggregations/AggregationEdit.tsx"],"names":["React","useCallback","useMemo","useRef","useState","classNames","CSSTransition","Button","Checkbox","ItemList","ThemeExport","dhSortAlphaDown","dhSortAlphaUp","filterValidColumns","TableUtils","SortType","DEFAULT_ROW_HEIGHT","AggregationEdit","aggregation","columns","onChange","top","setTop","bottom","setBottom","sort","setSort","NONE","invert","selected","list","isSelected","name","includes","validColumns","filteredColumns","operation","sortColumns","ASCENDING","items","slice","map","c","value","displayValue","handleSelect","itemIndex","selectedIndex","indexOf","newSelected","newInvert","splice","push","length","handleReset","handleViewportChange","newTop","newBottom","toggleAll","checked","isModified","transitionSlowMs","active","DESCENDING","item"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button, Checkbox, ItemList, ThemeExport } from '@deephaven/components';\nimport { dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport { Aggregation } from './Aggregations';\nimport { filterValidColumns } from './AggregationUtils';\nimport './AggregationEdit.scss';\nimport TableUtils from '../../TableUtils';\n\ninterface AggregationEditItem {\n value: string;\n displayValue: string;\n}\n\nexport type AggregationEditProps = {\n aggregation: Aggregation;\n columns: { name: string; type: string }[];\n onChange: (aggregation: Aggregation) => void;\n};\n\nenum SortType {\n NONE,\n ASCENDING,\n DESCENDING,\n}\n\nconst DEFAULT_ROW_HEIGHT = 30;\n\nconst AggregationEdit = ({\n aggregation,\n columns,\n onChange,\n}: AggregationEditProps): JSX.Element => {\n const [top, setTop] = useState(-1);\n const [bottom, setBottom] = useState(-1);\n const [sort, setSort] = useState(SortType.NONE);\n const { invert, selected } = aggregation;\n const list = useRef<ItemList<AggregationEditItem>>(null);\n\n const isSelected = useCallback(\n name => (selected.includes(name) ? !invert : invert),\n [invert, selected]\n );\n\n const validColumns = useMemo(() => {\n let filteredColumns = filterValidColumns(columns, aggregation.operation);\n if (sort !== SortType.NONE) {\n filteredColumns = TableUtils.sortColumns(\n filteredColumns,\n sort === SortType.ASCENDING\n );\n }\n return filteredColumns;\n }, [columns, aggregation.operation, sort]);\n\n const items = useMemo(\n () =>\n top >= 0\n ? validColumns.slice(top, bottom + 1).map(c => ({\n value: c.name,\n displayValue: c.name,\n isSelected: isSelected(c.name),\n }))\n : [],\n [validColumns, isSelected, bottom, top]\n );\n\n const handleSelect = useCallback(\n itemIndex => {\n const { name } = validColumns[itemIndex];\n const selectedIndex = selected.indexOf(name);\n let newSelected = [...selected];\n let newInvert = invert;\n if (selectedIndex >= 0) {\n newSelected.splice(selectedIndex, 1);\n } else {\n newSelected.push(name);\n if (newSelected.length === validColumns.length) {\n // Every item is either selected or deselected, flip the inversion bit\n newSelected = [];\n newInvert = !invert;\n }\n }\n\n onChange({ ...aggregation, selected: newSelected, invert: newInvert });\n },\n [aggregation, invert, validColumns, selected, onChange]\n );\n\n const handleReset = useCallback(() => {\n setSort(SortType.NONE);\n onChange({ ...aggregation, selected: [], invert: true });\n }, [aggregation, onChange]);\n\n const handleViewportChange = useCallback(\n (newTop, newBottom) => {\n setTop(newTop);\n setBottom(newBottom);\n },\n [setTop, setBottom]\n );\n\n const toggleAll = useCallback(() => {\n if (selected.length === 0) {\n onChange({ ...aggregation, invert: !invert });\n } else {\n onChange({ ...aggregation, selected: [], invert: true });\n }\n }, [aggregation, invert, onChange, selected]);\n\n const checked = selected.length === 0 ? invert : null;\n const isModified = selected.length !== 0 || !invert || sort !== SortType.NONE;\n\n return (\n <div role=\"menu\" className=\"aggregation-edit\">\n <div className=\"top-menu\">\n <div className=\"form-inline\">\n <Checkbox checked={checked} onChange={toggleAll}>\n Toggle All\n </Checkbox>\n <div className=\"spacer\" />\n <CSSTransition\n in={isModified}\n timeout={ThemeExport.transitionSlowMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <Button kind=\"ghost\" className=\"btn-reset\" onClick={handleReset}>\n Reset\n </Button>\n </CSSTransition>\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.ASCENDING,\n })}\n icon={dhSortAlphaDown}\n tooltip=\"Sort ascending\"\n onClick={() => setSort(SortType.ASCENDING)}\n />\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.DESCENDING,\n })}\n icon={dhSortAlphaUp}\n tooltip=\"Sort descending\"\n onClick={() => setSort(SortType.DESCENDING)}\n />\n </div>\n </div>\n <div className=\"aggregation-edit-item-list\">\n <ItemList\n itemCount={validColumns.length}\n items={items}\n offset={top}\n renderItem={({ item }) => (\n <Checkbox checked={isSelected(item.value)}>\n {item.displayValue}\n </Checkbox>\n )}\n onSelect={handleSelect}\n onViewportChange={handleViewportChange}\n rowHeight={DEFAULT_ROW_HEIGHT}\n focusSelector=\"input\"\n ref={list}\n />\n </div>\n </div>\n );\n};\n\nexport default AggregationEdit;\n"],"file":"AggregationEdit.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/sidebar/aggregations/AggregationEdit.tsx"],"names":["React","useCallback","useMemo","useRef","useState","classNames","CSSTransition","Button","Checkbox","ItemList","ThemeExport","dhSortAlphaDown","dhSortAlphaUp","filterValidColumns","TableUtils","SortType","DEFAULT_ROW_HEIGHT","AggregationEdit","aggregation","columns","onChange","top","setTop","bottom","setBottom","sort","setSort","NONE","invert","selected","list","isSelected","name","includes","validColumns","filteredColumns","operation","sortColumns","ASCENDING","items","slice","map","c","value","displayValue","handleSelect","itemIndex","selectedIndex","indexOf","newSelected","newInvert","splice","push","length","handleReset","handleViewportChange","newTop","newBottom","toggleAll","checked","isModified","transitionSlowMs","active","DESCENDING","item"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { Button, Checkbox, ItemList, ThemeExport } from '@deephaven/components';\nimport { dhSortAlphaDown, dhSortAlphaUp } from '@deephaven/icons';\nimport type { Column } from '@deephaven/jsapi-shim';\nimport { Aggregation } from './Aggregations';\nimport { filterValidColumns } from './AggregationUtils';\nimport './AggregationEdit.scss';\nimport TableUtils from '../../TableUtils';\n\ninterface AggregationEditItem {\n value: string;\n displayValue: string;\n}\n\nexport type AggregationEditProps = {\n aggregation: Aggregation;\n columns: Column[];\n onChange: (aggregation: Aggregation) => void;\n};\n\nenum SortType {\n NONE,\n ASCENDING,\n DESCENDING,\n}\n\nconst DEFAULT_ROW_HEIGHT = 30;\n\nconst AggregationEdit = ({\n aggregation,\n columns,\n onChange,\n}: AggregationEditProps): JSX.Element => {\n const [top, setTop] = useState(-1);\n const [bottom, setBottom] = useState(-1);\n const [sort, setSort] = useState(SortType.NONE);\n const { invert, selected } = aggregation;\n const list = useRef<ItemList<AggregationEditItem>>(null);\n\n const isSelected = useCallback(\n name => (selected.includes(name) ? !invert : invert),\n [invert, selected]\n );\n\n const validColumns = useMemo(() => {\n let filteredColumns = filterValidColumns(columns, aggregation.operation);\n if (sort !== SortType.NONE) {\n filteredColumns = TableUtils.sortColumns(\n filteredColumns,\n sort === SortType.ASCENDING\n );\n }\n return filteredColumns;\n }, [columns, aggregation.operation, sort]);\n\n const items = useMemo(\n () =>\n top >= 0\n ? validColumns.slice(top, bottom + 1).map(c => ({\n value: c.name,\n displayValue: c.name,\n isSelected: isSelected(c.name),\n }))\n : [],\n [validColumns, isSelected, bottom, top]\n );\n\n const handleSelect = useCallback(\n itemIndex => {\n const { name } = validColumns[itemIndex];\n const selectedIndex = selected.indexOf(name);\n let newSelected = [...selected];\n let newInvert = invert;\n if (selectedIndex >= 0) {\n newSelected.splice(selectedIndex, 1);\n } else {\n newSelected.push(name);\n if (newSelected.length === validColumns.length) {\n // Every item is either selected or deselected, flip the inversion bit\n newSelected = [];\n newInvert = !invert;\n }\n }\n\n onChange({ ...aggregation, selected: newSelected, invert: newInvert });\n },\n [aggregation, invert, validColumns, selected, onChange]\n );\n\n const handleReset = useCallback(() => {\n setSort(SortType.NONE);\n onChange({ ...aggregation, selected: [], invert: true });\n }, [aggregation, onChange]);\n\n const handleViewportChange = useCallback(\n (newTop, newBottom) => {\n setTop(newTop);\n setBottom(newBottom);\n },\n [setTop, setBottom]\n );\n\n const toggleAll = useCallback(() => {\n if (selected.length === 0) {\n onChange({ ...aggregation, invert: !invert });\n } else {\n onChange({ ...aggregation, selected: [], invert: true });\n }\n }, [aggregation, invert, onChange, selected]);\n\n const checked = selected.length === 0 ? invert : null;\n const isModified = selected.length !== 0 || !invert || sort !== SortType.NONE;\n\n return (\n <div role=\"menu\" className=\"aggregation-edit\">\n <div className=\"top-menu\">\n <div className=\"form-inline\">\n <Checkbox checked={checked} onChange={toggleAll}>\n Toggle All\n </Checkbox>\n <div className=\"spacer\" />\n <CSSTransition\n in={isModified}\n timeout={ThemeExport.transitionSlowMs}\n classNames=\"fade\"\n mountOnEnter\n unmountOnExit\n >\n <Button kind=\"ghost\" className=\"btn-reset\" onClick={handleReset}>\n Reset\n </Button>\n </CSSTransition>\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.ASCENDING,\n })}\n icon={dhSortAlphaDown}\n tooltip=\"Sort ascending\"\n onClick={() => setSort(SortType.ASCENDING)}\n />\n <Button\n kind=\"ghost\"\n className={classNames({\n active: sort === SortType.DESCENDING,\n })}\n icon={dhSortAlphaUp}\n tooltip=\"Sort descending\"\n onClick={() => setSort(SortType.DESCENDING)}\n />\n </div>\n </div>\n <div className=\"aggregation-edit-item-list\">\n <ItemList\n itemCount={validColumns.length}\n items={items}\n offset={top}\n renderItem={({ item }) => (\n <Checkbox checked={isSelected(item.value)}>\n {item.displayValue}\n </Checkbox>\n )}\n onSelect={handleSelect}\n onViewportChange={handleViewportChange}\n rowHeight={DEFAULT_ROW_HEIGHT}\n focusSelector=\"input\"\n ref={list}\n />\n </div>\n </div>\n );\n};\n\nexport default AggregationEdit;\n"],"file":"AggregationEdit.js"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Column } from '@deephaven/jsapi-shim';
|
|
1
2
|
import AggregationOperation from './AggregationOperation';
|
|
2
3
|
/**
|
|
3
4
|
* Check if an operation requires a rollup/table grouping
|
|
@@ -11,10 +12,6 @@ export declare const isRollupOperation: (type: AggregationOperation) => boolean;
|
|
|
11
12
|
* @param columnType The column type to check against
|
|
12
13
|
*/
|
|
13
14
|
export declare const isValidOperation: (operationType: AggregationOperation, columnType: string) => boolean;
|
|
14
|
-
declare type Column = {
|
|
15
|
-
type: string;
|
|
16
|
-
name: string;
|
|
17
|
-
};
|
|
18
15
|
export declare const filterValidColumns: (columns: Column[], operationType: AggregationOperation) => Column[];
|
|
19
16
|
export declare const getOperationColumnNames: (columns: Column[], operationType: AggregationOperation, selected: string[], invert: boolean) => string[];
|
|
20
17
|
declare const _default: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AggregationUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AggregationUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAU,oBAAoB,KAAG,OAM9D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,kBACZ,oBAAoB,cACvB,MAAM,KACjB,OA0BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,YACpB,MAAM,EAAE,iBACF,oBAAoB,KAClC,MAAM,EAAkE,CAAC;AAE5E,eAAO,MAAM,uBAAuB,YACzB,MAAM,EAAE,iBACF,oBAAoB,YACzB,MAAM,EAAE,UACV,OAAO,KACd,MAAM,EAGwD,CAAC;;;;;;AAElE,wBAIE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":["TableUtils","AggregationOperation","isRollupOperation","type","isValidOperation","operationType","columnType","COUNT","FIRST","LAST","COUNT_DISTINCT","DISTINCT","UNIQUE","MIN","MAX","isNumberType","isDateType","isTextType","SUM","ABS_SUM","VAR","AVG","STD","SKIP","filterValidColumns","columns","filter","c","getOperationColumnNames","selected","invert","map","name","includes"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/sidebar/aggregations/AggregationUtils.ts"],"names":["TableUtils","AggregationOperation","isRollupOperation","type","isValidOperation","operationType","columnType","COUNT","FIRST","LAST","COUNT_DISTINCT","DISTINCT","UNIQUE","MIN","MAX","isNumberType","isDateType","isTextType","SUM","ABS_SUM","VAR","AVG","STD","SKIP","filterValidColumns","columns","filter","c","getOperationColumnNames","selected","invert","map","name","includes"],"mappings":"OACOA,U;OACAC,oB;AAEP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,iBAAiB,GAAIC,IAAD,IAAyC;AACxE,UAAQA,IAAR;AACE;AACA;AACE,aAAO,KAAP;AAHJ;AAKD,CANM;AAQP;AACA;AACA;AACA;AACA;;AACA,OAAO,IAAMC,gBAAgB,GAAG,CAC9BC,aAD8B,EAE9BC,UAF8B,KAGlB;AACZ,UAAQD,aAAR;AACE,SAAKJ,oBAAoB,CAACM,KAA1B;AACA,SAAKN,oBAAoB,CAACO,KAA1B;AACA,SAAKP,oBAAoB,CAACQ,IAA1B;AACA,SAAKR,oBAAoB,CAACS,cAA1B;AACA,SAAKT,oBAAoB,CAACU,QAA1B;AACA,SAAKV,oBAAoB,CAACW,MAA1B;AACE,aAAO,IAAP;;AACF,SAAKX,oBAAoB,CAACY,GAA1B;AACA,SAAKZ,oBAAoB,CAACa,GAA1B;AACE,aACEd,UAAU,CAACe,YAAX,CAAwBT,UAAxB,KACAN,UAAU,CAACgB,UAAX,CAAsBV,UAAtB,CADA,IAEAN,UAAU,CAACiB,UAAX,CAAsBX,UAAtB,CAHF;;AAKF,SAAKL,oBAAoB,CAACiB,GAA1B;AACA,SAAKjB,oBAAoB,CAACkB,OAA1B;AACA,SAAKlB,oBAAoB,CAACmB,GAA1B;AACA,SAAKnB,oBAAoB,CAACoB,GAA1B;AACA,SAAKpB,oBAAoB,CAACqB,GAA1B;AACE,aAAOtB,UAAU,CAACe,YAAX,CAAwBT,UAAxB,CAAP;;AACF,SAAKL,oBAAoB,CAACsB,IAA1B;AACE,aAAO,KAAP;AACF;AAvBF;AAyBD,CA7BM;AA+BP,OAAO,IAAMC,kBAAkB,GAAG,CAChCC,OADgC,EAEhCpB,aAFgC,KAGnBoB,OAAO,CAACC,MAAR,CAAeC,CAAC,IAAIvB,gBAAgB,CAACC,aAAD,EAAgBsB,CAAC,CAACxB,IAAlB,CAApC,CAHR;AAKP,OAAO,IAAMyB,uBAAuB,GAAG,CACrCH,OADqC,EAErCpB,aAFqC,EAGrCwB,QAHqC,EAIrCC,MAJqC,KAMrCN,kBAAkB,CAACC,OAAD,EAAUpB,aAAV,CAAlB,CACG0B,GADH,CACO;AAAA,MAAC;AAAEC,IAAAA;AAAF,GAAD;AAAA,SAAcA,IAAd;AAAA,CADP,EAEGN,MAFH,CAEUM,IAAI,IAAKH,QAAQ,CAACI,QAAT,CAAkBD,IAAlB,IAA0B,CAACF,MAA3B,GAAoCA,MAFvD,CANK;AAUP,eAAe;AACb5B,EAAAA,iBADa;AAEbsB,EAAAA,kBAFa;AAGbI,EAAAA;AAHa,CAAf","sourcesContent":["import type { Column } from '@deephaven/jsapi-shim';\nimport TableUtils from '../../TableUtils';\nimport AggregationOperation from './AggregationOperation';\n\n/**\n * Check if an operation requires a rollup/table grouping\n * @param type The operation to check\n * @returns True if this operation applies to the whole table, false if applies to columns\n */\nexport const isRollupOperation = (type: AggregationOperation): boolean => {\n switch (type) {\n // currently no rollup only operations, but there has been in the past\n default:\n return false;\n }\n};\n\n/**\n * Check if an operation is valid against the given column type\n * @param operationType The operation to check\n * @param columnType The column type to check against\n */\nexport const isValidOperation = (\n operationType: AggregationOperation,\n columnType: string\n): boolean => {\n switch (operationType) {\n case AggregationOperation.COUNT:\n case AggregationOperation.FIRST:\n case AggregationOperation.LAST:\n case AggregationOperation.COUNT_DISTINCT:\n case AggregationOperation.DISTINCT:\n case AggregationOperation.UNIQUE:\n return true;\n case AggregationOperation.MIN:\n case AggregationOperation.MAX:\n return (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isDateType(columnType) ||\n TableUtils.isTextType(columnType)\n );\n case AggregationOperation.SUM:\n case AggregationOperation.ABS_SUM:\n case AggregationOperation.VAR:\n case AggregationOperation.AVG:\n case AggregationOperation.STD:\n return TableUtils.isNumberType(columnType);\n case AggregationOperation.SKIP:\n return false;\n // No default case - if AggregationOperation is added, we'll get a compile time error\n }\n};\n\nexport const filterValidColumns = (\n columns: Column[],\n operationType: AggregationOperation\n): Column[] => columns.filter(c => isValidOperation(operationType, c.type));\n\nexport const getOperationColumnNames = (\n columns: Column[],\n operationType: AggregationOperation,\n selected: string[],\n invert: boolean\n): string[] =>\n filterValidColumns(columns, operationType)\n .map(({ name }) => name)\n .filter(name => (selected.includes(name) ? !invert : invert));\n\nexport default {\n isRollupOperation,\n filterValidColumns,\n getOperationColumnNames,\n};\n"],"file":"AggregationUtils.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1-alpha.9+a5369f1",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -34,11 +34,11 @@
|
|
|
34
34
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@deephaven/grid": "^0.
|
|
38
|
-
"@deephaven/icons": "^0.
|
|
39
|
-
"@deephaven/jsapi-shim": "^0.
|
|
40
|
-
"@deephaven/react-hooks": "^0.
|
|
41
|
-
"@deephaven/utils": "^0.
|
|
37
|
+
"@deephaven/grid": "^0.9.1-alpha.9+a5369f1",
|
|
38
|
+
"@deephaven/icons": "^0.9.1-alpha.9+a5369f1",
|
|
39
|
+
"@deephaven/jsapi-shim": "^0.9.1-alpha.9+a5369f1",
|
|
40
|
+
"@deephaven/react-hooks": "^0.9.1-alpha.9+a5369f1",
|
|
41
|
+
"@deephaven/utils": "^0.9.1-alpha.9+a5369f1",
|
|
42
42
|
"@fortawesome/react-fontawesome": "^0.1.12",
|
|
43
43
|
"classnames": "^2.3.1",
|
|
44
44
|
"deep-equal": "^2.0.4",
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@babel/cli": "^7.16.0",
|
|
64
|
-
"@deephaven/components": "^0.
|
|
65
|
-
"@deephaven/log": "^0.
|
|
66
|
-
"@deephaven/mocks": "^0.
|
|
67
|
-
"@deephaven/tsconfig": "^0.
|
|
64
|
+
"@deephaven/components": "^0.9.1-alpha.9+a5369f1",
|
|
65
|
+
"@deephaven/log": "^0.9.1-alpha.9+a5369f1",
|
|
66
|
+
"@deephaven/mocks": "^0.9.1-alpha.9+a5369f1",
|
|
67
|
+
"@deephaven/tsconfig": "^0.9.1-alpha.9+a5369f1",
|
|
68
68
|
"@svgr/cli": "^5.5.0",
|
|
69
69
|
"@types/react": "^16.14.8",
|
|
70
70
|
"@types/react-dom": "^16.9.13",
|
|
@@ -74,8 +74,7 @@
|
|
|
74
74
|
"npm-run-all": "^4.1.5",
|
|
75
75
|
"react": "^16.14.0",
|
|
76
76
|
"rimraf": "^3.0.2",
|
|
77
|
-
"sass": "1.32.13"
|
|
78
|
-
"typescript": "~4.3.2"
|
|
77
|
+
"sass": "1.32.13"
|
|
79
78
|
},
|
|
80
79
|
"files": [
|
|
81
80
|
"dist"
|
|
@@ -86,5 +85,5 @@
|
|
|
86
85
|
"publishConfig": {
|
|
87
86
|
"access": "public"
|
|
88
87
|
},
|
|
89
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "a5369f13b4b006c63889c4228ac17bd3566eace2"
|
|
90
89
|
}
|