@deephaven/js-plugin-ag-grid 0.1.5-ag-grid-key.909 → 0.1.5-ag-grid-pivot.943
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/AgGridDhTheme.d.ts.map +1 -1
- package/dist/AgGridDhTheme.js +3 -0
- package/dist/AgGridDhTheme.js.map +1 -1
- package/dist/AgGridPlugin.js +3 -2
- package/dist/AgGridPlugin.js.map +1 -1
- package/dist/AgGridTableType.d.ts +5 -0
- package/dist/AgGridTableType.d.ts.map +1 -0
- package/dist/AgGridTableType.js +2 -0
- package/dist/AgGridTableType.js.map +1 -0
- package/dist/AgGridView.d.ts +2 -2
- package/dist/AgGridView.d.ts.map +1 -1
- package/dist/AgGridView.js +50 -40
- package/dist/AgGridView.js.map +1 -1
- package/dist/AgGridWidget.d.ts.map +1 -1
- package/dist/AgGridWidget.js +5 -49
- package/dist/AgGridWidget.js.map +1 -1
- package/dist/bundle/index.js +30201 -14165
- package/dist/datasources/DeephavenViewportDatasource.d.ts +9 -1
- package/dist/datasources/DeephavenViewportDatasource.d.ts.map +1 -1
- package/dist/datasources/DeephavenViewportDatasource.js +119 -8
- package/dist/datasources/DeephavenViewportDatasource.js.map +1 -1
- package/dist/hooks/useWidgetFetch.d.ts +6 -0
- package/dist/hooks/useWidgetFetch.d.ts.map +1 -0
- package/dist/hooks/useWidgetFetch.js +54 -0
- package/dist/hooks/useWidgetFetch.js.map +1 -0
- package/dist/renderers/TreeCellRenderer.d.ts.map +1 -1
- package/dist/renderers/TreeCellRenderer.js +10 -13
- package/dist/renderers/TreeCellRenderer.js.map +1 -1
- package/dist/utils/AgGridPivotUtils.d.ts +57 -0
- package/dist/utils/AgGridPivotUtils.d.ts.map +1 -0
- package/dist/utils/AgGridPivotUtils.js +246 -0
- package/dist/utils/AgGridPivotUtils.js.map +1 -0
- package/dist/utils/AgGridRenderUtils.d.ts +8 -0
- package/dist/utils/AgGridRenderUtils.d.ts.map +1 -0
- package/dist/utils/AgGridRenderUtils.js +16 -0
- package/dist/utils/AgGridRenderUtils.js.map +1 -0
- package/dist/utils/AgGridTableUtils.d.ts +21 -5
- package/dist/utils/AgGridTableUtils.d.ts.map +1 -1
- package/dist/utils/AgGridTableUtils.js +85 -19
- package/dist/utils/AgGridTableUtils.js.map +1 -1
- package/dist/utils/AgGridUtils.d.ts +3 -0
- package/dist/utils/AgGridUtils.d.ts.map +1 -0
- package/dist/utils/AgGridUtils.js +38 -0
- package/dist/utils/AgGridUtils.js.map +1 -0
- package/dist/utils/CorePlusUtils.d.ts +4 -0
- package/dist/utils/CorePlusUtils.d.ts.map +1 -0
- package/dist/utils/CorePlusUtils.js +5 -0
- package/dist/utils/CorePlusUtils.js.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +13 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridDhTheme.d.ts","sourceRoot":"","sources":["../src/AgGridDhTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gEAAgE,CAAC;AAGjG,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,cAAc,CACnB,WAAW,GAAE,WAAuB,GACnC,OAAO,CACR,UAAU,GAAG,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,CACrE;IAqCD,OAAO,CAAC,MAAM,CAAC,yBAAyB;
|
|
1
|
+
{"version":3,"file":"AgGridDhTheme.d.ts","sourceRoot":"","sources":["../src/AgGridDhTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gEAAgE,CAAC;AAGjG,KAAK,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,cAAc,CACnB,WAAW,GAAE,WAAuB,GACnC,OAAO,CACR,UAAU,GAAG,mBAAmB,GAAG,cAAc,GAAG,gBAAgB,CACrE;IAqCD,OAAO,CAAC,MAAM,CAAC,yBAAyB;CA6BzC"}
|
package/dist/AgGridDhTheme.js
CHANGED
|
@@ -22,18 +22,21 @@ export default class AgGridDhTheme {
|
|
|
22
22
|
rowHeight: 16,
|
|
23
23
|
spacing: 5,
|
|
24
24
|
dataFontSize: 11,
|
|
25
|
+
rowGroupIndentSize: 4,
|
|
25
26
|
};
|
|
26
27
|
case 'regular':
|
|
27
28
|
return {
|
|
28
29
|
rowHeight: 19,
|
|
29
30
|
spacing: 5,
|
|
30
31
|
dataFontSize: 12,
|
|
32
|
+
rowGroupIndentSize: 6,
|
|
31
33
|
};
|
|
32
34
|
case 'spacious':
|
|
33
35
|
return {
|
|
34
36
|
rowHeight: 28,
|
|
35
37
|
spacing: 7,
|
|
36
38
|
dataFontSize: 12,
|
|
39
|
+
rowGroupIndentSize: 8,
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
42
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridDhTheme.js","sourceRoot":"","sources":["../src/AgGridDhTheme.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,cAAc,CACnB,cAA2B,SAAS;QAIpC;YACE,YAAY;YACZ,qBAAqB,EAAE,iBAAiB,CAAC,qBAAqB,EAC9D,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAClD,6BAA6B,EAC3B,iBAAiB,CAAC,6BAA6B,EACjD,gBAAgB,EAAE,+BAA+B,EACjD,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,GAAG,EACrB,YAAY,EAAE,EAAE;YAEhB,SAAS;YACT,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAClD,qBAAqB,EAAE,iBAAiB,CAAC,qBAAqB,EAC9D,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAC9C,SAAS,EAAE,KAAK;YAEhB,eAAe;YACf,0BAA0B,EAAE,iBAAiB,CAAC,0BAA0B;YAExE,UAAU;YACV,SAAS,EAAE,iBAAiB,CAAC,SAAS,EACtC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,EAAE;YAEZ,UAAU;YACV,mBAAmB,EAAE,iBAAiB,CAAC,mBAAmB,EAC1D,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAE9C,UAAU;YACV,WAAW,EAAE,iBAAiB,CAAC,WAAW,IAEvC,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAC9C;IACJ,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACtC,WAAwB;QAIxB,QAAQ,WAAW,EAAE;YACnB,KAAK,SAAS;gBACZ,OAAO;oBACL,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"AgGridDhTheme.js","sourceRoot":"","sources":["../src/AgGridDhTheme.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,cAAc,CACnB,cAA2B,SAAS;QAIpC;YACE,YAAY;YACZ,qBAAqB,EAAE,iBAAiB,CAAC,qBAAqB,EAC9D,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAClD,6BAA6B,EAC3B,iBAAiB,CAAC,6BAA6B,EACjD,gBAAgB,EAAE,+BAA+B,EACjD,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,GAAG,EACrB,YAAY,EAAE,EAAE;YAEhB,SAAS;YACT,eAAe,EAAE,iBAAiB,CAAC,eAAe,EAClD,qBAAqB,EAAE,iBAAiB,CAAC,qBAAqB,EAC9D,aAAa,EAAE,iBAAiB,CAAC,aAAa,EAC9C,SAAS,EAAE,KAAK;YAEhB,eAAe;YACf,0BAA0B,EAAE,iBAAiB,CAAC,0BAA0B;YAExE,UAAU;YACV,SAAS,EAAE,iBAAiB,CAAC,SAAS,EACtC,UAAU,EAAE,+BAA+B,EAC3C,QAAQ,EAAE,EAAE;YAEZ,UAAU;YACV,mBAAmB,EAAE,iBAAiB,CAAC,mBAAmB,EAC1D,aAAa,EAAE,iBAAiB,CAAC,aAAa;YAE9C,UAAU;YACV,WAAW,EAAE,iBAAiB,CAAC,WAAW,IAEvC,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,EAC9C;IACJ,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACtC,WAAwB;QAIxB,QAAQ,WAAW,EAAE;YACnB,KAAK,SAAS;gBACZ,OAAO;oBACL,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,EAAE;oBAChB,kBAAkB,EAAE,CAAC;iBACtB,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO;oBACL,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,EAAE;oBAChB,kBAAkB,EAAE,CAAC;iBACtB,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO;oBACL,SAAS,EAAE,EAAE;oBACb,OAAO,EAAE,CAAC;oBACV,YAAY,EAAE,EAAE;oBAChB,kBAAkB,EAAE,CAAC;iBACtB,CAAC;SACL;IACH,CAAC;CACF"}
|
package/dist/AgGridPlugin.js
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
var _a, _b;
|
|
1
2
|
import { PluginType } from '@deephaven/plugin';
|
|
2
3
|
import { vsTable } from '@deephaven/icons';
|
|
3
4
|
import { LicenseManager } from '@ag-grid-enterprise/core';
|
|
4
5
|
import { AgGridWidget } from './AgGridWidget';
|
|
5
|
-
const key =
|
|
6
|
+
const key = (_b = (_a = import.meta.env) === null || _a === void 0 ? void 0 : _a.VITE_AG_GRID_LICENSE_KEY) !== null && _b !== void 0 ? _b : '';
|
|
6
7
|
if (key != null && key !== '') {
|
|
7
8
|
LicenseManager.setLicenseKey(key);
|
|
8
9
|
}
|
|
9
10
|
export const AgGridPlugin = {
|
|
10
11
|
name: '@deephaven/js-plugin-ag-grid',
|
|
11
12
|
type: PluginType.WIDGET_PLUGIN,
|
|
12
|
-
supportedTypes: 'deephaven.ag_grid.AgGrid',
|
|
13
|
+
supportedTypes: ['deephaven.ag_grid.AgGrid', 'PivotTable'],
|
|
13
14
|
component: AgGridWidget,
|
|
14
15
|
icon: vsTable,
|
|
15
16
|
title: 'AG Grid',
|
package/dist/AgGridPlugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridPlugin.js","sourceRoot":"","sources":["../src/AgGridPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"AgGridPlugin.js","sourceRoot":"","sources":["../src/AgGridPlugin.ts"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,GAAG,GAAG,MAAA,MAAA,MAAM,CAAC,IAAI,CAAC,GAAG,0CAAE,wBAAwB,mCAAI,EAAE,CAAC;AAC5D,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,KAAK,EAAE,EAAE;IAC7B,cAAc,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,MAAM,CAAC,MAAM,YAAY,GAA4B;IACnD,IAAI,EAAE,8BAA8B;IACpC,IAAI,EAAE,UAAU,CAAC,aAAa;IAC9B,cAAc,EAAE,CAAC,0BAA0B,EAAE,YAAY,CAAC;IAC1D,SAAS,EAAE,YAAY;IACvB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
2
|
+
import type { dh as CorePlusDhType } from '@deephaven-enterprise/jsapi-coreplus-types';
|
|
3
|
+
export type AgGridTableType = DhType.Table | DhType.TreeTable | CorePlusDhType.coreplus.pivot.PivotTable;
|
|
4
|
+
export default AgGridTableType;
|
|
5
|
+
//# sourceMappingURL=AgGridTableType.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgGridTableType.d.ts","sourceRoot":"","sources":["../src/AgGridTableType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAEvF,MAAM,MAAM,eAAe,GACvB,MAAM,CAAC,KAAK,GACZ,MAAM,CAAC,SAAS,GAChB,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC;AAE7C,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgGridTableType.js","sourceRoot":"","sources":["../src/AgGridTableType.ts"],"names":[],"mappings":""}
|
package/dist/AgGridView.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
3
2
|
import { WorkspaceSettings } from '@deephaven/redux';
|
|
4
3
|
import { AgGridReactProps } from '@ag-grid-community/react';
|
|
4
|
+
import AgGridTableType from './AgGridTableType';
|
|
5
5
|
type AgGridViewProps = {
|
|
6
|
-
table:
|
|
6
|
+
table: AgGridTableType;
|
|
7
7
|
settings?: WorkspaceSettings;
|
|
8
8
|
agGridProps?: AgGridReactProps;
|
|
9
9
|
};
|
package/dist/AgGridView.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridView.d.ts","sourceRoot":"","sources":["../src/AgGridView.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"AgGridView.d.ts","sourceRoot":"","sources":["../src/AgGridView.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAUrD,OAAO,EAAe,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAYzE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAGhD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAC7B,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC,CAAC;AAIF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAiItC;AAED,eAAe,UAAU,CAAC"}
|
package/dist/AgGridView.js
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
3
3
|
import Log from '@deephaven/log';
|
|
4
|
-
import { createFormatterFromSettings
|
|
5
|
-
import { AgGridReact
|
|
4
|
+
import { createFormatterFromSettings } from '@deephaven/jsapi-utils';
|
|
5
|
+
import { AgGridReact } from '@ag-grid-community/react';
|
|
6
6
|
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
7
|
-
import { getColumnDefs } from './utils/AgGridTableUtils';
|
|
7
|
+
import { getColumnDefs, getSideBar, isPivotTable, TREE_NODE_KEY, } from './utils/AgGridTableUtils';
|
|
8
8
|
import AgGridFormatter from './utils/AgGridFormatter';
|
|
9
|
-
import TreeCellRenderer from './renderers/TreeCellRenderer';
|
|
10
9
|
import DeephavenViewportDatasource from './datasources/DeephavenViewportDatasource';
|
|
10
|
+
import { getAutoGroupColumnDef } from './utils/AgGridRenderUtils';
|
|
11
|
+
import { toGroupKeyString } from './utils';
|
|
11
12
|
const log = Log.module('@deephaven/js-plugin-ag-grid/AgGridView');
|
|
12
13
|
/**
|
|
13
14
|
* AgGrid view that uses the Server-Side Row Model and a Deephaven table as a data source to display
|
|
@@ -16,10 +17,10 @@ const log = Log.module('@deephaven/js-plugin-ag-grid/AgGridView');
|
|
|
16
17
|
export function AgGridView({ table, settings, agGridProps, }) {
|
|
17
18
|
const dh = useApi();
|
|
18
19
|
const gridApiRef = useRef(null);
|
|
20
|
+
const autoSizedColumnsRef = useRef(new Set());
|
|
19
21
|
const [isVisible, setIsVisible] = useState(false);
|
|
20
22
|
const [isFirstDataRendered, setIsFirstDataRendered] = useState(false);
|
|
21
|
-
|
|
22
|
-
log.debug('AgGridView rendering', table, table === null || table === void 0 ? void 0 : table.columns);
|
|
23
|
+
log.debug('AgGridView rendering', table);
|
|
23
24
|
/** Map from Deephaven Table Columns to AG Grid ColDefs */
|
|
24
25
|
const colDefs = useMemo(() => getColumnDefs(table), [table]);
|
|
25
26
|
/** Create the ViewportDatasource to pass in to AG Grid based on the Deephaven Table */
|
|
@@ -27,42 +28,32 @@ export function AgGridView({ table, settings, agGridProps, }) {
|
|
|
27
28
|
// Create the formatter used to format cell values, currently just a
|
|
28
29
|
// wrapper around jsapi-utils Formatter, but more functionality could be added.
|
|
29
30
|
const formatter = useMemo(() => new AgGridFormatter(createFormatterFromSettings(dh, settings)), [dh, settings]);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
33
|
-
, Object.assign({}, props, { datasource: datasource })));
|
|
34
|
-
}, [datasource]);
|
|
35
|
-
const autoGroupColumnDef = useMemo(() => ({
|
|
36
|
-
cellRenderer: treeCellRenderer,
|
|
37
|
-
}), [treeCellRenderer]);
|
|
38
|
-
const sideBar = useMemo(() => ({
|
|
39
|
-
toolPanels: [
|
|
40
|
-
{
|
|
41
|
-
id: 'columns',
|
|
42
|
-
labelDefault: 'Columns',
|
|
43
|
-
labelKey: 'columns',
|
|
44
|
-
iconKey: 'columns',
|
|
45
|
-
toolPanel: 'agColumnsToolPanel',
|
|
46
|
-
toolPanelParams: {
|
|
47
|
-
suppressRowGroups: TableUtils.isTreeTable(table),
|
|
48
|
-
suppressValues: TableUtils.isTreeTable(table),
|
|
49
|
-
suppressPivots: true,
|
|
50
|
-
},
|
|
51
|
-
},
|
|
52
|
-
],
|
|
53
|
-
}), [table]);
|
|
31
|
+
const autoGroupColumnDef = useMemo(() => getAutoGroupColumnDef(datasource), [datasource]);
|
|
32
|
+
const sideBar = useMemo(() => getSideBar(table), [table]);
|
|
54
33
|
// Workaround to auto-size columns based on their contents, as ag-grid ignores virtual columns
|
|
55
34
|
// that are not visible in the viewport
|
|
56
35
|
const autoSizeAllColumns = () => {
|
|
36
|
+
var _a, _b;
|
|
57
37
|
const gridApi = gridApiRef.current;
|
|
58
38
|
if (!gridApi)
|
|
59
39
|
return;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
40
|
+
const allColumnIds = [
|
|
41
|
+
...((_a = gridApi.getColumns()) !== null && _a !== void 0 ? _a : []),
|
|
42
|
+
...((_b = gridApi.getPivotResultColumns()) !== null && _b !== void 0 ? _b : []),
|
|
43
|
+
].map(c => c.getColId());
|
|
44
|
+
// Only auto-size columns that haven't been auto-sized yet
|
|
45
|
+
const columnsToAutoSize = allColumnIds.filter(colId => !autoSizedColumnsRef.current.has(colId));
|
|
46
|
+
log.debug2('autoSizeAllColumns resizing', columnsToAutoSize);
|
|
47
|
+
if (columnsToAutoSize.length > 0) {
|
|
48
|
+
gridApi.autoSizeColumns(columnsToAutoSize);
|
|
49
|
+
columnsToAutoSize.forEach(colId => autoSizedColumnsRef.current.add(colId));
|
|
50
|
+
}
|
|
51
|
+
// Remove any columns that are no longer present in the grid from the auto-sized set
|
|
52
|
+
autoSizedColumnsRef.current.forEach(colId => {
|
|
53
|
+
if (!allColumnIds.includes(colId)) {
|
|
54
|
+
autoSizedColumnsRef.current.delete(colId);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
66
57
|
};
|
|
67
58
|
const handleGridReady = useCallback((event) => {
|
|
68
59
|
log.debug('handleGridReady', event);
|
|
@@ -78,14 +69,33 @@ export function AgGridView({ table, settings, agGridProps, }) {
|
|
|
78
69
|
setIsVisible(event.clientHeight > 0 && event.clientWidth > 0);
|
|
79
70
|
};
|
|
80
71
|
useEffect(() => {
|
|
81
|
-
if (isVisible && isFirstDataRendered
|
|
82
|
-
setIsColumnsSized(true);
|
|
72
|
+
if (isVisible && isFirstDataRendered) {
|
|
83
73
|
autoSizeAllColumns();
|
|
84
74
|
}
|
|
85
|
-
}, [isVisible, isFirstDataRendered
|
|
75
|
+
}, [isVisible, isFirstDataRendered]);
|
|
76
|
+
const getRowId = useCallback((params) => {
|
|
77
|
+
var _a;
|
|
78
|
+
const { data } = params;
|
|
79
|
+
if (data == null) {
|
|
80
|
+
log.warn('getRowId called with null data', params);
|
|
81
|
+
return '';
|
|
82
|
+
}
|
|
83
|
+
if (isPivotTable(table)) {
|
|
84
|
+
const groupKeys = [];
|
|
85
|
+
for (let i = 0; i < table.rowSources.length; i += 1) {
|
|
86
|
+
const rowSource = table.rowSources[i];
|
|
87
|
+
if (data[rowSource.name] != null) {
|
|
88
|
+
groupKeys.push(String(data[rowSource.name]));
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return toGroupKeyString(groupKeys);
|
|
92
|
+
}
|
|
93
|
+
const treeNode = data === null || data === void 0 ? void 0 : data[TREE_NODE_KEY];
|
|
94
|
+
return `${(_a = treeNode === null || treeNode === void 0 ? void 0 : treeNode.index) !== null && _a !== void 0 ? _a : ''}`;
|
|
95
|
+
}, [table]);
|
|
86
96
|
return (_jsx(AgGridReact
|
|
87
97
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
88
|
-
, Object.assign({}, agGridProps, { onGridReady: handleGridReady, onFirstDataRendered: handleFirstDataRendered, onGridSizeChanged: handleGridSizeChanged, autoGroupColumnDef: autoGroupColumnDef, columnDefs: colDefs, dataTypeDefinitions: formatter.cellDataTypeDefinitions, viewportDatasource: datasource, rowModelType: "viewport", sideBar: sideBar })));
|
|
98
|
+
, Object.assign({}, agGridProps, { onGridReady: handleGridReady, onFirstDataRendered: handleFirstDataRendered, onGridSizeChanged: handleGridSizeChanged, autoGroupColumnDef: autoGroupColumnDef, columnDefs: colDefs, dataTypeDefinitions: formatter.cellDataTypeDefinitions, viewportDatasource: datasource, rowModelType: "viewport", getRowId: getRowId, sideBar: sideBar })));
|
|
89
99
|
}
|
|
90
100
|
export default AgGridView;
|
|
91
101
|
//# sourceMappingURL=AgGridView.js.map
|
package/dist/AgGridView.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridView.js","sourceRoot":"","sources":["../src/AgGridView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"AgGridView.js","sourceRoot":"","sources":["../src/AgGridView.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,GAAG,MAAM,gBAAgB,CAAC;AAEjC,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AASrE,OAAO,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,EACL,aAAa,EACb,UAAU,EACV,YAAY,EACZ,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAClC,OAAO,eAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,2BAA2B,MAAM,2CAA2C,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAQ3C,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,yCAAyC,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EACzB,KAAK,EACL,QAAQ,EACR,WAAW,GACK;IAChB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IAEpB,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,MAAM,mBAAmB,GAAG,MAAM,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAE3D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEtE,GAAG,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;IAEzC,0DAA0D;IAC1D,MAAM,OAAO,GAAa,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEvE,uFAAuF;IACvF,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EAAE,CAAC,IAAI,2BAA2B,CAAC,EAAE,EAAE,KAAK,CAAC,EAChD,CAAC,EAAE,EAAE,KAAK,CAAC,CACZ,CAAC;IAEF,oEAAoE;IACpE,+EAA+E;IAC/E,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EAAE,CAAC,IAAI,eAAe,CAAC,2BAA2B,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,EACpE,CAAC,EAAE,EAAE,QAAQ,CAAC,CACf,CAAC;IAEF,MAAM,kBAAkB,GAAG,OAAO,CAChC,GAAG,EAAE,CAAC,qBAAqB,CAAC,UAAU,CAAC,EACvC,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE1D,8FAA8F;IAC9F,uCAAuC;IACvC,MAAM,kBAAkB,GAAG,GAAG,EAAE;;QAC9B,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,YAAY,GAAG;YACnB,GAAG,CAAC,MAAA,OAAO,CAAC,UAAU,EAAE,mCAAI,EAAE,CAAC;YAC/B,GAAG,CAAC,MAAA,OAAO,CAAC,qBAAqB,EAAE,mCAAI,EAAE,CAAC;SAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzB,0DAA0D;QAC1D,MAAM,iBAAiB,GAAG,YAAY,CAAC,MAAM,CAC3C,KAAK,CAAC,EAAE,CAAC,CAAC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CACjD,CAAC;QAEF,GAAG,CAAC,MAAM,CAAC,6BAA6B,EAAE,iBAAiB,CAAC,CAAC;QAC7D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YAC3C,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAChC,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CACvC,CAAC;SACH;QACD,oFAAoF;QACpF,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC1C,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACjC,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aAC3C;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,KAAqB,EAAE,EAAE;QACxB,GAAG,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACpC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC;IACjC,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,uBAAuB,GAAG,CAAC,KAA6B,EAAE,EAAE;QAChE,GAAG,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;QAC5C,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,KAA2B,EAAE,EAAE;QAC5D,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC1C,YAAY,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,IAAI,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,IAAI,mBAAmB,EAAE;YACpC,kBAAkB,EAAE,CAAC;SACtB;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC;IAErC,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,MAAsB,EAAU,EAAE;;QACjC,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;QACxB,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,MAAM,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;SACX;QAED,IAAI,YAAY,CAAC,KAAK,CAAC,EAAE;YACvB,MAAM,SAAS,GAAG,EAAE,CAAC;YACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;gBACnD,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE;oBAChC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBAC9C;aACF;YACD,OAAO,gBAAgB,CAAC,SAAS,CAAC,CAAC;SACpC;QAED,MAAM,QAAQ,GAAyB,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,aAAa,CAAC,CAAC;QAC7D,OAAO,GAAG,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,EAAE,EAAE,CAAC;IACpC,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;IAEF,OAAO,CACL,KAAC,WAAW;IACV,wDAAwD;wBACpD,WAAW,IACf,WAAW,EAAE,eAAe,EAC5B,mBAAmB,EAAE,uBAAuB,EAC5C,iBAAiB,EAAE,qBAAqB,EACxC,kBAAkB,EAAE,kBAAkB,EACtC,UAAU,EAAE,OAAO,EACnB,mBAAmB,EAAE,SAAS,CAAC,uBAAuB,EACtD,kBAAkB,EAAE,UAAU,EAC9B,YAAY,EAAC,UAAU,EACvB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,IAChB,CACH,CAAC;AACJ,CAAC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridWidget.d.ts","sourceRoot":"","sources":["../src/AgGridWidget.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"AgGridWidget.d.ts","sourceRoot":"","sources":["../src/AgGridWidget.tsx"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAW9D;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,GACzC,GAAG,CAAC,OAAO,CAmCb;AAED,eAAe,YAAY,CAAC"}
|
package/dist/AgGridWidget.js
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
3
|
import { LoadingOverlay } from '@deephaven/components';
|
|
4
4
|
import { useApi } from '@deephaven/jsapi-bootstrap';
|
|
5
|
-
import Log from '@deephaven/log';
|
|
6
5
|
import { getSettings } from '@deephaven/redux';
|
|
7
6
|
import { useSelector } from 'react-redux';
|
|
8
7
|
import { themeQuartz } from '@ag-grid-community/theming';
|
|
9
|
-
import { ViewportRowModelModule } from '@ag-grid-enterprise/viewport-row-model';
|
|
10
|
-
import { ColumnsToolPanelModule } from '@ag-grid-enterprise/column-tool-panel';
|
|
11
|
-
import { RowGroupingModule } from '@ag-grid-enterprise/row-grouping';
|
|
12
8
|
import AgGridView from './AgGridView';
|
|
13
9
|
import AgGridDhTheme from './AgGridDhTheme';
|
|
14
|
-
|
|
10
|
+
import { getDefaultProps } from './utils';
|
|
11
|
+
import useWidgetFetch from './hooks/useWidgetFetch';
|
|
15
12
|
/**
|
|
16
13
|
* Fetches an AgGrid widget from the server and fetches the underlying table provided by the widget.
|
|
17
14
|
* Then passes the table to AgGridView to display the table in an AG Grid.
|
|
@@ -20,52 +17,11 @@ export function AgGridWidget(props) {
|
|
|
20
17
|
const dh = useApi();
|
|
21
18
|
const settings = useSelector((getSettings));
|
|
22
19
|
const { fetch } = props;
|
|
23
|
-
const [table, setTable] = useState();
|
|
24
20
|
const gridDensity = settings === null || settings === void 0 ? void 0 : settings.gridDensity;
|
|
25
21
|
const themeParams = useMemo(() => AgGridDhTheme.getThemeParams(gridDensity), [gridDensity]);
|
|
26
22
|
const theme = useMemo(() => themeQuartz.withParams(themeParams), [themeParams]);
|
|
27
|
-
const agGridProps = useMemo(() => ({
|
|
28
|
-
|
|
29
|
-
RowGroupingModule,
|
|
30
|
-
ViewportRowModelModule,
|
|
31
|
-
ColumnsToolPanelModule,
|
|
32
|
-
],
|
|
33
|
-
defaultColDef: {
|
|
34
|
-
filterParams: {
|
|
35
|
-
buttons: ['reset', 'apply'],
|
|
36
|
-
},
|
|
37
|
-
},
|
|
38
|
-
rowSelection: {
|
|
39
|
-
mode: 'multiRow',
|
|
40
|
-
checkboxes: false,
|
|
41
|
-
headerCheckbox: false,
|
|
42
|
-
enableClickSelection: true,
|
|
43
|
-
},
|
|
44
|
-
suppressCellFocus: true,
|
|
45
|
-
theme,
|
|
46
|
-
rowHeight: themeParams.rowHeight,
|
|
47
|
-
rowStyle: {
|
|
48
|
-
// Displays numbers as monospace figures. Keeps decimal alignment.
|
|
49
|
-
fontVariantNumeric: 'tabular-nums',
|
|
50
|
-
},
|
|
51
|
-
}), [theme, themeParams]);
|
|
52
|
-
/** First we load the widget object. This is the object that is sent from the server in AgGridMessageStream. */
|
|
53
|
-
useEffect(() => {
|
|
54
|
-
let cancelled = false;
|
|
55
|
-
async function init() {
|
|
56
|
-
log.debug('Fetching widget');
|
|
57
|
-
const widget = await fetch();
|
|
58
|
-
const newTable = (await widget.exportedObjects[0].fetch());
|
|
59
|
-
if (!cancelled) {
|
|
60
|
-
log.info('AgGridView loaded table', newTable);
|
|
61
|
-
setTable(newTable);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
init();
|
|
65
|
-
return () => {
|
|
66
|
-
cancelled = true;
|
|
67
|
-
};
|
|
68
|
-
}, [dh, fetch]);
|
|
23
|
+
const agGridProps = useMemo(() => (Object.assign(Object.assign({}, getDefaultProps()), { theme, rowHeight: themeParams.rowHeight })), [theme, themeParams]);
|
|
24
|
+
const table = useWidgetFetch(dh, fetch);
|
|
69
25
|
return table != null ? (_jsx("div", Object.assign({ className: "ui-table-container" }, { children: _jsx(AgGridView, { table: table, settings: settings, agGridProps: agGridProps }) }))) : (_jsx(LoadingOverlay, {}));
|
|
70
26
|
}
|
|
71
27
|
export default AgGridWidget;
|
package/dist/AgGridWidget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgGridWidget.js","sourceRoot":"","sources":["../src/AgGridWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"AgGridWidget.js","sourceRoot":"","sources":["../src/AgGridWidget.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAa,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1C,OAAO,cAAc,MAAM,wBAAwB,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,KAA0C;IAE1C,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAA,WAAsB,CAAA,CAAC,CAAC;IACrD,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAExB,MAAM,WAAW,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,WAAW,CAAC;IAE1C,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,CAAC,EAC/C,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EACzC,CAAC,WAAW,CAAC,CACd,CAAC;IAEF,MAAM,WAAW,GAAqB,OAAO,CAC3C,GAAG,EAAE,CAAC,iCACD,eAAe,EAAE,KACpB,KAAK,EACL,SAAS,EAAE,WAAW,CAAC,SAAmB,IAC1C,EACF,CAAC,KAAK,EAAE,WAAW,CAAC,CACrB,CAAC;IAEF,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IAExC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CACrB,4BAAK,SAAS,EAAC,oBAAoB,gBACjC,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,GAAI,IACtE,CACP,CAAC,CAAC,CAAC,CACF,KAAC,cAAc,KAAG,CACnB,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
|