@deephaven/iris-grid 0.85.28-alpha.0 → 0.85.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IrisGrid.d.ts +8 -28
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +20 -19
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridCacheUtils.d.ts +28 -0
- package/dist/IrisGridCacheUtils.d.ts.map +1 -0
- package/dist/IrisGridCacheUtils.js +85 -0
- package/dist/IrisGridCacheUtils.js.map +1 -0
- package/dist/IrisGridMetricCalculator.d.ts +1 -1
- package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
- package/dist/IrisGridMetricCalculator.js +2 -3
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +4 -4
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +3 -4
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridRenderer.d.ts +1 -2
- package/dist/IrisGridRenderer.d.ts.map +1 -1
- package/dist/IrisGridRenderer.js +4 -7
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +23 -27
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +18 -14
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/LazyIrisGrid.d.ts +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +2 -7
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +5 -10
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/package.json +15 -15
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type IrisGridModel from './IrisGridModel';
|
|
2
|
+
import { type DehydratedGridState, type DehydratedIrisGridState, type HydratedGridState, type HydratedIrisGridState } from './IrisGridUtils';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a dehydrator function for grid state that is memoized on the last call.
|
|
5
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
6
|
+
* @returns A dehydrator function memoized on the last call
|
|
7
|
+
*/
|
|
8
|
+
declare function makeMemoizedGridStateDehydrator(): (model: IrisGridModel, gridState: HydratedGridState) => DehydratedGridState;
|
|
9
|
+
/**
|
|
10
|
+
* Creates a dehydrator function for iris grid state that is memoized on the last call.
|
|
11
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
12
|
+
* @returns A dehydrator function memoized on the last call
|
|
13
|
+
*/
|
|
14
|
+
declare function makeMemoizedIrisGridStateDehydrator(): (model: IrisGridModel, irisGridState: HydratedIrisGridState) => DehydratedIrisGridState;
|
|
15
|
+
/**
|
|
16
|
+
* Creates a dehydrator function for grid and iris grid state that is memoized on the last call.
|
|
17
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
18
|
+
* Combines the dehydrated grid and iris grid states into a single object.
|
|
19
|
+
* @returns A dehydrator function memoized on the last call
|
|
20
|
+
*/
|
|
21
|
+
declare function makeMemoizedCombinedGridStateDehydrator(): (model: IrisGridModel, irisGridState: HydratedIrisGridState, gridState: HydratedGridState) => DehydratedIrisGridState & DehydratedGridState;
|
|
22
|
+
export declare const IrisGridCacheUtils: {
|
|
23
|
+
makeMemoizedGridStateDehydrator: typeof makeMemoizedGridStateDehydrator;
|
|
24
|
+
makeMemoizedIrisGridStateDehydrator: typeof makeMemoizedIrisGridStateDehydrator;
|
|
25
|
+
makeMemoizedCombinedGridStateDehydrator: typeof makeMemoizedCombinedGridStateDehydrator;
|
|
26
|
+
};
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=IrisGridCacheUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IrisGridCacheUtils.d.ts","sourceRoot":"","sources":["../src/IrisGridCacheUtils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAsB,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC3B,MAAM,iBAAiB,CAAC;AAyEzB;;;;GAIG;AACH,iBAAS,+BAA+B,IAAI,CAC1C,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,iBAAiB,KACzB,mBAAmB,CAOvB;AAED;;;;GAIG;AACH,iBAAS,mCAAmC,IAAI,CAC9C,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,KACjC,uBAAuB,CAU3B;AAED;;;;;GAKG;AACH,iBAAS,uCAAuC,IAAI,CAClD,KAAK,EAAE,aAAa,EACpB,aAAa,EAAE,qBAAqB,EACpC,SAAS,EAAE,iBAAiB,KACzB,uBAAuB,GAAG,mBAAmB,CAqBjD;AAED,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
3
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
+
/* eslint-disable import/prefer-default-export */
|
|
7
|
+
|
|
8
|
+
import memoizeOne from 'memoize-one';
|
|
9
|
+
import IrisGridUtils from "./IrisGridUtils.js";
|
|
10
|
+
/**
|
|
11
|
+
* Checks if 2 grid states are equivalent.
|
|
12
|
+
* Checks values and does not require referential equality of the entire state, just the values we care about.
|
|
13
|
+
* @param gridStateA First grid state
|
|
14
|
+
* @param gridStateB Second grid state
|
|
15
|
+
* @returns True if the states are equivalent
|
|
16
|
+
*/
|
|
17
|
+
function areGridStatesEqual(gridStateA, gridStateB) {
|
|
18
|
+
var compareKeys = ['isStuckToBottom', 'isStuckToRight', 'movedColumns', 'movedRows'];
|
|
19
|
+
return gridStateA === gridStateB || compareKeys.every(key => gridStateA[key] === gridStateB[key]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Checks if 2 iris grid states are equivalent.
|
|
24
|
+
* Checks values and does not require referential equality of the entire state, just the values we care about.
|
|
25
|
+
* @param irisGridStateA First iris grid state
|
|
26
|
+
* @param irisGridStateB Second iris grid state
|
|
27
|
+
* @returns True if the states are equivalent
|
|
28
|
+
*/
|
|
29
|
+
function areIrisGridStatesEqual(irisGridStateA, irisGridStateB) {
|
|
30
|
+
// Top level keys we want to check for referential equality
|
|
31
|
+
var compareStateKeys = ['advancedFilters', 'aggregationSettings', 'customColumnFormatMap', 'isFilterBarShown', 'quickFilters', 'customColumns', 'reverse', 'rollupConfig', 'showSearchBar', 'searchValue', 'selectDistinctColumns', 'selectedSearchColumns', 'sorts', 'invertSearchColumns', 'pendingDataMap', 'frozenColumns', 'conditionalFormats', 'columnHeaderGroups', 'partitionConfig'];
|
|
32
|
+
return irisGridStateA === irisGridStateB || irisGridStateA.metrics != null && irisGridStateB.metrics != null && irisGridStateA.metrics.userColumnWidths === irisGridStateB.metrics.userColumnWidths && irisGridStateA.metrics.userRowHeights === irisGridStateB.metrics.userRowHeights && compareStateKeys.every(key => irisGridStateA[key] === irisGridStateB[key]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Creates a dehydrator function for grid state that is memoized on the last call.
|
|
37
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
38
|
+
* @returns A dehydrator function memoized on the last call
|
|
39
|
+
*/
|
|
40
|
+
function makeMemoizedGridStateDehydrator() {
|
|
41
|
+
return memoizeOne((model, gridState) => IrisGridUtils.dehydrateGridState(model, gridState), (_ref, _ref2) => {
|
|
42
|
+
var [modelA, gridStateA] = _ref;
|
|
43
|
+
var [modelB, gridStateB] = _ref2;
|
|
44
|
+
return modelA === modelB && areGridStatesEqual(gridStateA, gridStateB);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Creates a dehydrator function for iris grid state that is memoized on the last call.
|
|
50
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
51
|
+
* @returns A dehydrator function memoized on the last call
|
|
52
|
+
*/
|
|
53
|
+
function makeMemoizedIrisGridStateDehydrator() {
|
|
54
|
+
return memoizeOne((model, irisGridState) => {
|
|
55
|
+
var irisGridUtils = new IrisGridUtils(model.dh);
|
|
56
|
+
return irisGridUtils.dehydrateIrisGridState(model, irisGridState);
|
|
57
|
+
}, (_ref3, _ref4) => {
|
|
58
|
+
var [modelA, irisGridStateA] = _ref3;
|
|
59
|
+
var [modelB, irisGridStateB] = _ref4;
|
|
60
|
+
return modelA === modelB && areIrisGridStatesEqual(irisGridStateA, irisGridStateB);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Creates a dehydrator function for grid and iris grid state that is memoized on the last call.
|
|
66
|
+
* Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.
|
|
67
|
+
* Combines the dehydrated grid and iris grid states into a single object.
|
|
68
|
+
* @returns A dehydrator function memoized on the last call
|
|
69
|
+
*/
|
|
70
|
+
function makeMemoizedCombinedGridStateDehydrator() {
|
|
71
|
+
return memoizeOne((model, irisGridState, gridState) => {
|
|
72
|
+
var irisGridUtils = new IrisGridUtils(model.dh);
|
|
73
|
+
return _objectSpread(_objectSpread({}, irisGridUtils.dehydrateIrisGridState(model, irisGridState)), IrisGridUtils.dehydrateGridState(model, gridState));
|
|
74
|
+
}, (_ref5, _ref6) => {
|
|
75
|
+
var [modelA, irisGridStateA, gridStateA] = _ref5;
|
|
76
|
+
var [modelB, irisGridStateB, gridStateB] = _ref6;
|
|
77
|
+
return modelA === modelB && areIrisGridStatesEqual(irisGridStateA, irisGridStateB) && areGridStatesEqual(gridStateA, gridStateB);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
export var IrisGridCacheUtils = {
|
|
81
|
+
makeMemoizedGridStateDehydrator,
|
|
82
|
+
makeMemoizedIrisGridStateDehydrator,
|
|
83
|
+
makeMemoizedCombinedGridStateDehydrator
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=IrisGridCacheUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IrisGridCacheUtils.js","names":["memoizeOne","IrisGridUtils","areGridStatesEqual","gridStateA","gridStateB","compareKeys","every","key","areIrisGridStatesEqual","irisGridStateA","irisGridStateB","compareStateKeys","metrics","userColumnWidths","userRowHeights","makeMemoizedGridStateDehydrator","model","gridState","dehydrateGridState","_ref","_ref2","modelA","modelB","makeMemoizedIrisGridStateDehydrator","irisGridState","irisGridUtils","dh","dehydrateIrisGridState","_ref3","_ref4","makeMemoizedCombinedGridStateDehydrator","_objectSpread","_ref5","_ref6","IrisGridCacheUtils"],"sources":["../src/IrisGridCacheUtils.ts"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { type GridState } from '@deephaven/grid';\nimport memoizeOne from 'memoize-one';\nimport type IrisGridModel from './IrisGridModel';\nimport IrisGridUtils, {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n type HydratedGridState,\n type HydratedIrisGridState,\n} from './IrisGridUtils';\n\n/**\n * Checks if 2 grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param gridStateA First grid state\n * @param gridStateB Second grid state\n * @returns True if the states are equivalent\n */\nfunction areGridStatesEqual(\n gridStateA: HydratedGridState,\n gridStateB: HydratedGridState\n): boolean {\n const compareKeys = [\n 'isStuckToBottom',\n 'isStuckToRight',\n 'movedColumns',\n 'movedRows',\n ] satisfies Array<keyof GridState>;\n return (\n gridStateA === gridStateB ||\n compareKeys.every(key => gridStateA[key] === gridStateB[key])\n );\n}\n\n/**\n * Checks if 2 iris grid states are equivalent.\n * Checks values and does not require referential equality of the entire state, just the values we care about.\n * @param irisGridStateA First iris grid state\n * @param irisGridStateB Second iris grid state\n * @returns True if the states are equivalent\n */\nfunction areIrisGridStatesEqual(\n irisGridStateA: HydratedIrisGridState,\n irisGridStateB: HydratedIrisGridState\n): boolean {\n // Top level keys we want to check for referential equality\n const compareStateKeys = [\n 'advancedFilters',\n 'aggregationSettings',\n 'customColumnFormatMap',\n 'isFilterBarShown',\n 'quickFilters',\n 'customColumns',\n 'reverse',\n 'rollupConfig',\n 'showSearchBar',\n 'searchValue',\n 'selectDistinctColumns',\n 'selectedSearchColumns',\n 'sorts',\n 'invertSearchColumns',\n 'pendingDataMap',\n 'frozenColumns',\n 'conditionalFormats',\n 'columnHeaderGroups',\n 'partitionConfig',\n ] satisfies Array<keyof HydratedIrisGridState>;\n\n return (\n irisGridStateA === irisGridStateB ||\n (irisGridStateA.metrics != null &&\n irisGridStateB.metrics != null &&\n irisGridStateA.metrics.userColumnWidths ===\n irisGridStateB.metrics.userColumnWidths &&\n irisGridStateA.metrics.userRowHeights ===\n irisGridStateB.metrics.userRowHeights &&\n compareStateKeys.every(\n key => irisGridStateA[key] === irisGridStateB[key]\n ))\n );\n}\n\n/**\n * Creates a dehydrator function for grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedGridStateDehydrator(): (\n model: IrisGridModel,\n gridState: HydratedGridState\n) => DehydratedGridState {\n return memoizeOne(\n (model: IrisGridModel, gridState: HydratedGridState) =>\n IrisGridUtils.dehydrateGridState(model, gridState),\n ([modelA, gridStateA], [modelB, gridStateB]) =>\n modelA === modelB && areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedIrisGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState\n) => DehydratedIrisGridState {\n return memoizeOne(\n (model: IrisGridModel, irisGridState: HydratedIrisGridState) => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return irisGridUtils.dehydrateIrisGridState(model, irisGridState);\n },\n ([modelA, irisGridStateA], [modelB, irisGridStateB]) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB)\n );\n}\n\n/**\n * Creates a dehydrator function for grid and iris grid state that is memoized on the last call.\n * Only tracks 1 state at a time. If the model and input states are equal, returns the same dehydrated state object reference.\n * Combines the dehydrated grid and iris grid states into a single object.\n * @returns A dehydrator function memoized on the last call\n */\nfunction makeMemoizedCombinedGridStateDehydrator(): (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n) => DehydratedIrisGridState & DehydratedGridState {\n return memoizeOne(\n (\n model: IrisGridModel,\n irisGridState: HydratedIrisGridState,\n gridState: HydratedGridState\n ): DehydratedIrisGridState & DehydratedGridState => {\n const irisGridUtils = new IrisGridUtils(model.dh);\n return {\n ...irisGridUtils.dehydrateIrisGridState(model, irisGridState),\n ...IrisGridUtils.dehydrateGridState(model, gridState),\n };\n },\n (\n [modelA, irisGridStateA, gridStateA],\n [modelB, irisGridStateB, gridStateB]\n ) =>\n modelA === modelB &&\n areIrisGridStatesEqual(irisGridStateA, irisGridStateB) &&\n areGridStatesEqual(gridStateA, gridStateB)\n );\n}\n\nexport const IrisGridCacheUtils = {\n makeMemoizedGridStateDehydrator,\n makeMemoizedIrisGridStateDehydrator,\n makeMemoizedCombinedGridStateDehydrator,\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridMetricCalculator.d.ts","sourceRoot":"","sources":["../src/IrisGridMetricCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridMetricCalculator.d.ts","sourceRoot":"","sources":["../src/IrisGridMetricCalculator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,KAAK,aAAa,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,mBAAoB,SAAQ,eAAe;IAC1D,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,GAAG,CAClB,MAAM,EACN;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAA;KAAE,CACxD,CAAC;IACF,YAAY,EAAE,GAAG,CACf,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,EAAE,CAAC,eAAe,GAAG,IAAI,CAAA;KAAE,CACpD,CAAC;IACF,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,oBAAoB;IAChE,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM;IAyB5C,mBAAmB,IAAI,YAAY;CAGpC;AAED,eAAe,wBAAwB,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { GridMetricCalculator } from '@deephaven/grid';
|
|
2
|
-
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
3
2
|
/**
|
|
4
3
|
* Class to calculate all the metrics for a grid.
|
|
5
4
|
* Call getMetrics() with the state to get metrics
|
|
@@ -13,14 +12,14 @@ export class IrisGridMetricCalculator extends GridMetricCalculator {
|
|
|
13
12
|
advancedFilters,
|
|
14
13
|
quickFilters,
|
|
15
14
|
sorts,
|
|
16
|
-
|
|
15
|
+
reverse
|
|
17
16
|
} = state;
|
|
18
17
|
if (isFilterBarShown) {
|
|
19
18
|
gridY += theme.filterBarHeight;
|
|
20
19
|
} else if (quickFilters != null && quickFilters.size > 0 || advancedFilters != null && advancedFilters.size > 0) {
|
|
21
20
|
gridY += theme.filterBarCollapsedHeight;
|
|
22
21
|
}
|
|
23
|
-
if (
|
|
22
|
+
if (reverse && sorts != null && sorts.length > 0) {
|
|
24
23
|
gridY += theme.reverseHeaderBarHeight;
|
|
25
24
|
}
|
|
26
25
|
return gridY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridMetricCalculator.js","names":["GridMetricCalculator","
|
|
1
|
+
{"version":3,"file":"IrisGridMetricCalculator.js","names":["GridMetricCalculator","IrisGridMetricCalculator","getGridY","state","gridY","isFilterBarShown","theme","advancedFilters","quickFilters","sorts","reverse","filterBarHeight","size","filterBarCollapsedHeight","length","reverseHeaderBarHeight","getUserColumnWidths","userColumnWidths"],"sources":["../src/IrisGridMetricCalculator.ts"],"sourcesContent":["import { GridMetricCalculator, ModelSizeMap } from '@deephaven/grid';\nimport type { GridMetricState } from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport type IrisGridModel from './IrisGridModel';\nimport { IrisGridThemeType } from './IrisGridTheme';\n\nexport interface IrisGridMetricState extends GridMetricState {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n isFilterBarShown: boolean;\n advancedFilters: Map<\n string,\n { options: unknown; filter: dh.FilterCondition | null }\n >;\n quickFilters: Map<\n string,\n { text: string; filter: dh.FilterCondition | null }\n >;\n sorts: dh.Sort[];\n reverse: boolean;\n}\n\n/**\n * Class to calculate all the metrics for a grid.\n * Call getMetrics() with the state to get metrics\n */\nexport class IrisGridMetricCalculator extends GridMetricCalculator {\n getGridY(state: IrisGridMetricState): number {\n let gridY = super.getGridY(state);\n const {\n isFilterBarShown,\n theme,\n advancedFilters,\n quickFilters,\n sorts,\n reverse,\n } = state;\n if (isFilterBarShown) {\n gridY += theme.filterBarHeight;\n } else if (\n (quickFilters != null && quickFilters.size > 0) ||\n (advancedFilters != null && advancedFilters.size > 0)\n ) {\n gridY += theme.filterBarCollapsedHeight;\n }\n if (reverse && sorts != null && sorts.length > 0) {\n gridY += theme.reverseHeaderBarHeight;\n }\n\n return gridY;\n }\n\n getUserColumnWidths(): ModelSizeMap {\n return this.userColumnWidths;\n }\n}\n\nexport default IrisGridMetricCalculator;\n"],"mappings":"AAAA,SAASA,oBAAoB,QAAsB,iBAAiB;AAsBpE;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,SAASD,oBAAoB,CAAC;EACjEE,QAAQA,CAACC,KAA0B,EAAU;IAC3C,IAAIC,KAAK,GAAG,KAAK,CAACF,QAAQ,CAACC,KAAK,CAAC;IACjC,IAAM;MACJE,gBAAgB;MAChBC,KAAK;MACLC,eAAe;MACfC,YAAY;MACZC,KAAK;MACLC;IACF,CAAC,GAAGP,KAAK;IACT,IAAIE,gBAAgB,EAAE;MACpBD,KAAK,IAAIE,KAAK,CAACK,eAAe;IAChC,CAAC,MAAM,IACJH,YAAY,IAAI,IAAI,IAAIA,YAAY,CAACI,IAAI,GAAG,CAAC,IAC7CL,eAAe,IAAI,IAAI,IAAIA,eAAe,CAACK,IAAI,GAAG,CAAE,EACrD;MACAR,KAAK,IAAIE,KAAK,CAACO,wBAAwB;IACzC;IACA,IAAIH,OAAO,IAAID,KAAK,IAAI,IAAI,IAAIA,KAAK,CAACK,MAAM,GAAG,CAAC,EAAE;MAChDV,KAAK,IAAIE,KAAK,CAACS,sBAAsB;IACvC;IAEA,OAAOX,KAAK;EACd;EAEAY,mBAAmBA,CAAA,EAAiB;IAClC,OAAO,IAAI,CAACC,gBAAgB;EAC9B;AACF;AAEA,eAAehB,wBAAwB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { dh } from '@deephaven/jsapi-types';
|
|
3
|
-
import { ModelIndex, MoveOperation } from '@deephaven/grid';
|
|
4
|
-
import { Formatter
|
|
3
|
+
import { type ModelIndex, type MoveOperation } from '@deephaven/grid';
|
|
4
|
+
import { type Formatter } from '@deephaven/jsapi-utils';
|
|
5
5
|
import { ColumnName, UITotalsTableConfig, PendingDataMap } from './CommonTypes';
|
|
6
6
|
import IrisGridModel from './IrisGridModel';
|
|
7
7
|
import type ColumnHeaderGroup from './ColumnHeaderGroup';
|
|
@@ -15,7 +15,7 @@ interface IrisGridModelUpdaterProps {
|
|
|
15
15
|
right: number | null;
|
|
16
16
|
filter: readonly dh.FilterCondition[];
|
|
17
17
|
sorts: readonly dh.Sort[];
|
|
18
|
-
|
|
18
|
+
reverse?: boolean;
|
|
19
19
|
customColumns: readonly ColumnName[];
|
|
20
20
|
movedColumns: readonly MoveOperation[];
|
|
21
21
|
hiddenColumns: readonly ModelIndex[];
|
|
@@ -34,6 +34,6 @@ interface IrisGridModelUpdaterProps {
|
|
|
34
34
|
/**
|
|
35
35
|
* React component to keep IrisGridModel in sync
|
|
36
36
|
*/
|
|
37
|
-
declare const IrisGridModelUpdater: React.MemoExoticComponent<({ model, modelColumns, top, bottom, left, right, filter, formatter,
|
|
37
|
+
declare const IrisGridModelUpdater: React.MemoExoticComponent<({ model, modelColumns, top, bottom, left, right, filter, formatter, reverse, sorts, customColumns, movedColumns, hiddenColumns, alwaysFetchColumns, rollupConfig, totalsConfig, selectDistinctColumns, pendingRowCount, pendingDataMap, frozenColumns, formatColumns, columnHeaderGroups, partitionConfig, }: IrisGridModelUpdaterProps) => null>;
|
|
38
38
|
export default IrisGridModelUpdater;
|
|
39
39
|
//# sourceMappingURL=IrisGridModelUpdater.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridModelUpdater.d.ts","sourceRoot":"","sources":["../src/IrisGridModelUpdater.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridModelUpdater.d.ts","sourceRoot":"","sources":["../src/IrisGridModelUpdater.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,iBAAiB,MAAM,qBAAqB,CAAC;AACzD,OAAO,EACL,eAAe,EAEhB,MAAM,wBAAwB,CAAC;AAIhC,UAAU,yBAAyB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,SAAS,EAAE,CAAC,MAAM,EAAE,CAAC;IACnC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC,eAAe,EAAE,CAAC;IACtC,KAAK,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,YAAY,EAAE,SAAS,aAAa,EAAE,CAAC;IACvC,aAAa,EAAE,SAAS,UAAU,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,kBAAkB,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,aAAa,EAAE,SAAS,EAAE,CAAC,YAAY,EAAE,CAAC;IAC1C,kBAAkB,EAAE,SAAS,UAAU,EAAE,CAAC;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C,qBAAqB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IAC9C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC;AAED;;GAEG;AACH,QAAA,MAAM,oBAAoB,2UAyBrB,yBAAyB,UA+H7B,CAAC;AAIF,eAAe,oBAAoB,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/* eslint-disable react/require-default-props */
|
|
2
2
|
/* eslint-disable no-param-reassign */
|
|
3
3
|
import React, { useEffect, useMemo } from 'react';
|
|
4
|
-
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
5
4
|
import { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';
|
|
6
5
|
import IrisGridUtils from "./IrisGridUtils.js";
|
|
7
6
|
import { isPartitionedGridModel } from "./PartitionedGridModel.js";
|
|
@@ -19,7 +18,7 @@ var IrisGridModelUpdater = /*#__PURE__*/React.memo(_ref => {
|
|
|
19
18
|
right,
|
|
20
19
|
filter,
|
|
21
20
|
formatter,
|
|
22
|
-
|
|
21
|
+
reverse = false,
|
|
23
22
|
sorts,
|
|
24
23
|
customColumns,
|
|
25
24
|
movedColumns,
|
|
@@ -41,11 +40,11 @@ var IrisGridModelUpdater = /*#__PURE__*/React.memo(_ref => {
|
|
|
41
40
|
}, [model, filter]);
|
|
42
41
|
useEffect(function updateSorts() {
|
|
43
42
|
var sortsForModel = [...sorts];
|
|
44
|
-
if (
|
|
43
|
+
if (reverse) {
|
|
45
44
|
sortsForModel.push(model.dh.Table.reverse());
|
|
46
45
|
}
|
|
47
46
|
model.sort = sortsForModel;
|
|
48
|
-
}, [model, sorts,
|
|
47
|
+
}, [model, sorts, reverse]);
|
|
49
48
|
useEffect(function updateFormatter() {
|
|
50
49
|
model.formatter = formatter;
|
|
51
50
|
}, [model, formatter]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridModelUpdater.js","names":["React","useEffect","useMemo","TableUtils","EMPTY_ARRAY","EMPTY_MAP","IrisGridUtils","isPartitionedGridModel","COLUMN_BUFFER_PAGES","IrisGridModelUpdater","memo","_ref","model","modelColumns","top","bottom","left","right","filter","formatter","reverseType","REVERSE_TYPE","NONE","sorts","customColumns","movedColumns","hiddenColumns","alwaysFetchColumns","rollupConfig","totalsConfig","selectDistinctColumns","pendingRowCount","pendingDataMap","frozenColumns","formatColumns","columnHeaderGroups","partitionConfig","columns","getModelViewportColumns","updateFilter","updateSorts","sortsForModel","push","dh","Table","reverse","sort","updateFormatter","updateCustomColumns","isCustomColumnsAvailable","updateFormatColumns","isFormatColumnsAvailable","updateViewport","setViewport","updateRollupCOnfig","isRollupAvailable","updateSelectDistinctColumns","isSelectDistinctAvailable","updateTotalsConfig","isTotalsAvailable","updatePendingRowCount","updatePendingDataMap","updateFrozenColumns","updateColumnHeaderGroups","updatePartitionConfig","displayName"],"sources":["../src/IrisGridModelUpdater.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\n/* eslint-disable no-param-reassign */\nimport React, { useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { ModelIndex, MoveOperation } from '@deephaven/grid';\nimport { Formatter, ReverseType, TableUtils } from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport IrisGridUtils from './IrisGridUtils';\nimport { ColumnName, UITotalsTableConfig, PendingDataMap } from './CommonTypes';\nimport IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n PartitionConfig,\n isPartitionedGridModel,\n} from './PartitionedGridModel';\n\nconst COLUMN_BUFFER_PAGES = 1;\n\ninterface IrisGridModelUpdaterProps {\n model: IrisGridModel;\n modelColumns: readonly dh.Column[];\n top: number;\n bottom: number;\n left: number | null;\n right: number | null;\n filter: readonly dh.FilterCondition[];\n sorts: readonly dh.Sort[];\n reverseType?: ReverseType;\n customColumns: readonly ColumnName[];\n movedColumns: readonly MoveOperation[];\n hiddenColumns: readonly ModelIndex[];\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups: readonly ColumnHeaderGroup[];\n formatColumns: readonly dh.CustomColumn[];\n alwaysFetchColumns: readonly ColumnName[];\n formatter: Formatter;\n rollupConfig?: dh.RollupConfig | null;\n totalsConfig?: UITotalsTableConfig | null;\n selectDistinctColumns?: readonly ColumnName[];\n pendingRowCount?: number;\n pendingDataMap?: PendingDataMap;\n partitionConfig?: PartitionConfig;\n}\n\n/**\n * React component to keep IrisGridModel in sync\n */\nconst IrisGridModelUpdater = React.memo(\n ({\n model,\n modelColumns,\n top,\n bottom,\n left,\n right,\n filter,\n formatter,\n reverseType = TableUtils.REVERSE_TYPE.NONE,\n sorts,\n customColumns,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n rollupConfig = null,\n totalsConfig = null,\n selectDistinctColumns = EMPTY_ARRAY,\n pendingRowCount = 0,\n pendingDataMap = EMPTY_MAP,\n frozenColumns,\n formatColumns,\n columnHeaderGroups,\n partitionConfig,\n }: IrisGridModelUpdaterProps) => {\n const columns = useMemo(\n () =>\n IrisGridUtils.getModelViewportColumns(\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n COLUMN_BUFFER_PAGES\n ),\n [\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n ]\n );\n\n useEffect(\n function updateFilter() {\n model.filter = filter;\n },\n [model, filter]\n );\n useEffect(\n function updateSorts() {\n const sortsForModel = [...sorts];\n if (reverseType !== TableUtils.REVERSE_TYPE.NONE) {\n sortsForModel.push(model.dh.Table.reverse());\n }\n model.sort = sortsForModel;\n },\n [model, sorts, reverseType]\n );\n useEffect(\n function updateFormatter() {\n model.formatter = formatter;\n },\n [model, formatter]\n );\n useEffect(\n function updateCustomColumns() {\n if (model.isCustomColumnsAvailable) {\n model.customColumns = customColumns;\n }\n },\n [model, customColumns]\n );\n useEffect(\n function updateFormatColumns() {\n if (model.isFormatColumnsAvailable) {\n model.formatColumns = formatColumns;\n }\n },\n [model, formatColumns]\n );\n useEffect(\n function updateViewport() {\n model.setViewport(top, bottom, columns);\n },\n [model, top, bottom, columns]\n );\n useEffect(\n function updateRollupCOnfig() {\n if (model.isRollupAvailable) {\n model.rollupConfig = rollupConfig;\n }\n },\n [model, model.isRollupAvailable, rollupConfig]\n );\n useEffect(\n function updateSelectDistinctColumns() {\n if (model.isSelectDistinctAvailable) {\n model.selectDistinctColumns = selectDistinctColumns;\n }\n },\n [model, selectDistinctColumns]\n );\n useEffect(\n function updateTotalsConfig() {\n if (model.isTotalsAvailable) {\n model.totalsConfig = totalsConfig;\n }\n },\n [model, model.isTotalsAvailable, totalsConfig]\n );\n useEffect(\n function updatePendingRowCount() {\n model.pendingRowCount = pendingRowCount;\n },\n [model, pendingRowCount]\n );\n useEffect(\n function updatePendingDataMap() {\n model.pendingDataMap = pendingDataMap;\n },\n [model, pendingDataMap]\n );\n useEffect(\n function updateFrozenColumns() {\n if (frozenColumns) {\n model.updateFrozenColumns(frozenColumns);\n }\n },\n [model, frozenColumns]\n );\n useEffect(\n function updateColumnHeaderGroups() {\n model.columnHeaderGroups = columnHeaderGroups;\n },\n [model, columnHeaderGroups]\n );\n useEffect(\n function updatePartitionConfig() {\n if (partitionConfig && isPartitionedGridModel(model)) {\n model.partitionConfig = partitionConfig;\n }\n },\n [model, partitionConfig]\n );\n\n return null;\n }\n);\n\nIrisGridModelUpdater.displayName = 'IrisGridModelUpdater';\n\nexport default IrisGridModelUpdater;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridModelUpdater.js","names":["React","useEffect","useMemo","EMPTY_ARRAY","EMPTY_MAP","IrisGridUtils","isPartitionedGridModel","COLUMN_BUFFER_PAGES","IrisGridModelUpdater","memo","_ref","model","modelColumns","top","bottom","left","right","filter","formatter","reverse","sorts","customColumns","movedColumns","hiddenColumns","alwaysFetchColumns","rollupConfig","totalsConfig","selectDistinctColumns","pendingRowCount","pendingDataMap","frozenColumns","formatColumns","columnHeaderGroups","partitionConfig","columns","getModelViewportColumns","updateFilter","updateSorts","sortsForModel","push","dh","Table","sort","updateFormatter","updateCustomColumns","isCustomColumnsAvailable","updateFormatColumns","isFormatColumnsAvailable","updateViewport","setViewport","updateRollupCOnfig","isRollupAvailable","updateSelectDistinctColumns","isSelectDistinctAvailable","updateTotalsConfig","isTotalsAvailable","updatePendingRowCount","updatePendingDataMap","updateFrozenColumns","updateColumnHeaderGroups","updatePartitionConfig","displayName"],"sources":["../src/IrisGridModelUpdater.tsx"],"sourcesContent":["/* eslint-disable react/require-default-props */\n/* eslint-disable no-param-reassign */\nimport React, { useEffect, useMemo } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type ModelIndex, type MoveOperation } from '@deephaven/grid';\nimport { type Formatter } from '@deephaven/jsapi-utils';\nimport { EMPTY_ARRAY, EMPTY_MAP } from '@deephaven/utils';\nimport IrisGridUtils from './IrisGridUtils';\nimport { ColumnName, UITotalsTableConfig, PendingDataMap } from './CommonTypes';\nimport IrisGridModel from './IrisGridModel';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n PartitionConfig,\n isPartitionedGridModel,\n} from './PartitionedGridModel';\n\nconst COLUMN_BUFFER_PAGES = 1;\n\ninterface IrisGridModelUpdaterProps {\n model: IrisGridModel;\n modelColumns: readonly dh.Column[];\n top: number;\n bottom: number;\n left: number | null;\n right: number | null;\n filter: readonly dh.FilterCondition[];\n sorts: readonly dh.Sort[];\n reverse?: boolean;\n customColumns: readonly ColumnName[];\n movedColumns: readonly MoveOperation[];\n hiddenColumns: readonly ModelIndex[];\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups: readonly ColumnHeaderGroup[];\n formatColumns: readonly dh.CustomColumn[];\n alwaysFetchColumns: readonly ColumnName[];\n formatter: Formatter;\n rollupConfig?: dh.RollupConfig | null;\n totalsConfig?: UITotalsTableConfig | null;\n selectDistinctColumns?: readonly ColumnName[];\n pendingRowCount?: number;\n pendingDataMap?: PendingDataMap;\n partitionConfig?: PartitionConfig;\n}\n\n/**\n * React component to keep IrisGridModel in sync\n */\nconst IrisGridModelUpdater = React.memo(\n ({\n model,\n modelColumns,\n top,\n bottom,\n left,\n right,\n filter,\n formatter,\n reverse = false,\n sorts,\n customColumns,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n rollupConfig = null,\n totalsConfig = null,\n selectDistinctColumns = EMPTY_ARRAY,\n pendingRowCount = 0,\n pendingDataMap = EMPTY_MAP,\n frozenColumns,\n formatColumns,\n columnHeaderGroups,\n partitionConfig,\n }: IrisGridModelUpdaterProps) => {\n const columns = useMemo(\n () =>\n IrisGridUtils.getModelViewportColumns(\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n COLUMN_BUFFER_PAGES\n ),\n [\n modelColumns,\n left,\n right,\n movedColumns,\n hiddenColumns,\n alwaysFetchColumns,\n ]\n );\n\n useEffect(\n function updateFilter() {\n model.filter = filter;\n },\n [model, filter]\n );\n useEffect(\n function updateSorts() {\n const sortsForModel = [...sorts];\n if (reverse) {\n sortsForModel.push(model.dh.Table.reverse());\n }\n model.sort = sortsForModel;\n },\n [model, sorts, reverse]\n );\n useEffect(\n function updateFormatter() {\n model.formatter = formatter;\n },\n [model, formatter]\n );\n useEffect(\n function updateCustomColumns() {\n if (model.isCustomColumnsAvailable) {\n model.customColumns = customColumns;\n }\n },\n [model, customColumns]\n );\n useEffect(\n function updateFormatColumns() {\n if (model.isFormatColumnsAvailable) {\n model.formatColumns = formatColumns;\n }\n },\n [model, formatColumns]\n );\n useEffect(\n function updateViewport() {\n model.setViewport(top, bottom, columns);\n },\n [model, top, bottom, columns]\n );\n useEffect(\n function updateRollupCOnfig() {\n if (model.isRollupAvailable) {\n model.rollupConfig = rollupConfig;\n }\n },\n [model, model.isRollupAvailable, rollupConfig]\n );\n useEffect(\n function updateSelectDistinctColumns() {\n if (model.isSelectDistinctAvailable) {\n model.selectDistinctColumns = selectDistinctColumns;\n }\n },\n [model, selectDistinctColumns]\n );\n useEffect(\n function updateTotalsConfig() {\n if (model.isTotalsAvailable) {\n model.totalsConfig = totalsConfig;\n }\n },\n [model, model.isTotalsAvailable, totalsConfig]\n );\n useEffect(\n function updatePendingRowCount() {\n model.pendingRowCount = pendingRowCount;\n },\n [model, pendingRowCount]\n );\n useEffect(\n function updatePendingDataMap() {\n model.pendingDataMap = pendingDataMap;\n },\n [model, pendingDataMap]\n );\n useEffect(\n function updateFrozenColumns() {\n if (frozenColumns) {\n model.updateFrozenColumns(frozenColumns);\n }\n },\n [model, frozenColumns]\n );\n useEffect(\n function updateColumnHeaderGroups() {\n model.columnHeaderGroups = columnHeaderGroups;\n },\n [model, columnHeaderGroups]\n );\n useEffect(\n function updatePartitionConfig() {\n if (partitionConfig && isPartitionedGridModel(model)) {\n model.partitionConfig = partitionConfig;\n }\n },\n [model, partitionConfig]\n );\n\n return null;\n }\n);\n\nIrisGridModelUpdater.displayName = 'IrisGridModelUpdater';\n\nexport default IrisGridModelUpdater;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { BoundedAxisRange, Coordinate, GridMetrics, GridRangeIndex, GridRenderer, GridRenderState, GridThemeType, VisibleIndex } from '@deephaven/grid';
|
|
2
2
|
import type { dh } from '@deephaven/jsapi-types';
|
|
3
|
-
import { ReverseType } from '@deephaven/jsapi-utils';
|
|
4
3
|
import { ReadonlyAdvancedFilterMap, ReadonlyQuickFilterMap, AdvancedFilter, QuickFilter } from './CommonTypes';
|
|
5
4
|
import { IrisGridThemeType } from './IrisGridTheme';
|
|
6
5
|
import IrisGridModel from './IrisGridModel';
|
|
@@ -12,7 +11,7 @@ export type IrisGridRenderState = GridRenderState & {
|
|
|
12
11
|
hoverSelectColumn: GridRangeIndex;
|
|
13
12
|
isSelectingColumn: boolean;
|
|
14
13
|
loadingScrimProgress: number;
|
|
15
|
-
|
|
14
|
+
reverse: boolean;
|
|
16
15
|
isFilterBarShown: boolean;
|
|
17
16
|
advancedFilters: ReadonlyAdvancedFilterMap;
|
|
18
17
|
quickFilters: ReadonlyQuickFilterMap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EAEb,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"IrisGridRenderer.d.ts","sourceRoot":"","sources":["../src/IrisGridRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,UAAU,EAEV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,eAAe,EACf,aAAa,EAEb,YAAY,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAGjD,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,cAAc,EACd,WAAW,EACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,2BAA2B,MAAM,+BAA+B,CAAC;AAaxE,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG;IAClD,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,EAAE,iBAAiB,CAAC;IACzB,iBAAiB,EAAE,cAAc,CAAC;IAClC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,yBAAyB,CAAC;IAC3C,YAAY,EAAE,sBAAsB,CAAC;IACrC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AACF;;KAEK;AACL,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,MAAM,CAAC,aAAa,CAClB,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,EACjD,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,IAAI,GAC1C,OAAO;IAQV,SAAS,CAAC,gBAAgB,2BAAkC;IAE5D,SAAS,CAAC,mBAAmB,8BAAqC;IAElE,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAa9D,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAM5C,QAAQ,CACN,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAKP,aAAa,CACX,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAQP,eAAe,CACb,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,GAAG,EAAE,YAAY,GAChB,IAAI;IAcP,6BAA6B,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;QACD,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;QACjC,KAAK,EAAE,iBAAiB,CAAC;KAC1B,GAAG;QACF,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;IASD,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO;IAI/D,sBAAsB,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAkDxD,qBAAqB,CACnB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAmCP,kBAAkB,CAChB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IA4BP,oBAAoB,CAClB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAkBP,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAOP,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IA4C3C,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAgDP,aAAa,CACX,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,EAC9C,SAAS,EAAE,MAAM,EACjB,QAAQ,UAAO,GACd,IAAI;IA2BP,wBAAwB,CACtB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAC1C,KAAK,EAAE,MAAM,GACZ,IAAI;IAeP,uBAAuB,CACrB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GACrC,IAAI;IAuEP,iBAAiB,CACf,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAaP,yBAAyB,CACvB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAwEP,wBAAwB,CACtB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IA0FP,0BAA0B,CACxB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAgCP,yBAAyB,CACvB,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,EAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,UAAU,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IAgDP,cAAc,CACZ,OAAO,EAAE,wBAAwB,EACjC,KAAK,EAAE,mBAAmB,GACzB,IAAI;IAsGP,uBAAuB,CACrB,EACE,MAAM,EACN,MAAM,EACN,OAAO,EACP,KAAK,GACN,EAAE;QACD,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;QAC1B,OAAO,EAAE,WAAW,GAAG,SAAS,CAAC;QACjC,KAAK,EAAE,aAAa,CAAC;KACtB,EACD,KAAK,EAAE,MAAM,GAAG,IAAI,GACnB;QACD,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;QACxB,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB;CA4BF;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/IrisGridRenderer.js
CHANGED
|
@@ -268,7 +268,7 @@ export class IrisGridRenderer extends GridRenderer {
|
|
|
268
268
|
theme,
|
|
269
269
|
metrics,
|
|
270
270
|
model,
|
|
271
|
-
|
|
271
|
+
reverse
|
|
272
272
|
} = state;
|
|
273
273
|
var {
|
|
274
274
|
columnHeaderHeight
|
|
@@ -282,20 +282,17 @@ export class IrisGridRenderer extends GridRenderer {
|
|
|
282
282
|
} = model;
|
|
283
283
|
// if there is only one sort bar, it is interior to the header to save space
|
|
284
284
|
if (sort.length === 1) {
|
|
285
|
-
var hasReverse = reverseType !== TableUtils.REVERSE_TYPE.NONE;
|
|
286
285
|
var color;
|
|
287
|
-
if (
|
|
286
|
+
if (reverse) {
|
|
288
287
|
color = theme.headerReverseBarColor;
|
|
289
288
|
} else {
|
|
290
289
|
color = theme.headerSortBarColor;
|
|
291
290
|
}
|
|
292
|
-
this.drawHeaderBar(context, state, color,
|
|
291
|
+
this.drawHeaderBar(context, state, color, reverse ? theme.reverseHeaderBarHeight : theme.sortHeaderBarHeight);
|
|
293
292
|
} else if (sort.length > 1) {
|
|
294
293
|
// if there's multiple bars, the sort is interior to header
|
|
295
294
|
// and the reverse claims space in the table
|
|
296
|
-
if (
|
|
297
|
-
// has table reverse
|
|
298
|
-
reverseType !== TableUtils.REVERSE_TYPE.NONE) {
|
|
295
|
+
if (reverse) {
|
|
299
296
|
this.drawHeaderBar(context, state, theme.headerReverseBarColor, theme.reverseHeaderBarHeight, false);
|
|
300
297
|
}
|
|
301
298
|
this.drawHeaderBar(context, state, theme.headerSortBarColor, theme.sortHeaderBarHeight);
|