@adaptabletools/adaptable-react-aggrid 13.0.0-canary.0 → 13.0.0-canary.10
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/base.css +1 -0
- package/index.css +1 -0
- package/package.json +4 -4
- package/src/components/AdaptableReact.d.ts +11 -0
- package/src/components/AdaptableReact.js +2 -2
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -1
- package/src/setupFrameworkComponents.js +11 -3
package/base.css
CHANGED
|
@@ -2827,6 +2827,7 @@ input[type='number'].ab-Input:hover::-webkit-inner-spin-button:active {
|
|
|
2827
2827
|
.ab-Datepicker-Overlay .rdp.rdp-with_weeknumber .rdp-row td:nth-child(8) {
|
|
2828
2828
|
display: table-cell; }
|
|
2829
2829
|
.ab-ToggleButton {
|
|
2830
|
+
user-select: none;
|
|
2830
2831
|
position: relative;
|
|
2831
2832
|
display: inline-block;
|
|
2832
2833
|
min-width: 40px;
|
package/index.css
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adaptabletools/adaptable-react-aggrid",
|
|
3
|
-
"version": "13.0.0-canary.
|
|
3
|
+
"version": "13.0.0-canary.10",
|
|
4
4
|
"description": "React version of AdapTable - the powerful AG Grid add-on that provides all the rich functionality that advanced users expect from their DataGrids and Data Tables",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "contact sales@adaptabletools.com for details",
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"tslib": "^2.3.0",
|
|
22
|
-
"@adaptabletools/adaptable": "13.0.0-canary.
|
|
22
|
+
"@adaptabletools/adaptable": "13.0.0-canary.10"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@ag-grid-community/core": ">=28.1.0",
|
|
26
26
|
"@ag-grid-community/react": ">=28.1.0",
|
|
27
|
-
"react": "^16.8.0 || ^17.0.0",
|
|
28
|
-
"react-dom": "^16.8.0 || ^17.0.0"
|
|
27
|
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
28
|
+
"react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0"
|
|
29
29
|
},
|
|
30
30
|
"engines": {
|
|
31
31
|
"node": ">=6.0.0"
|
|
@@ -8,6 +8,17 @@ export interface AdaptableReactProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
8
8
|
adaptableApi: AdaptableApi;
|
|
9
9
|
gridOptions: GridOptions;
|
|
10
10
|
}) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Accepts any jsx content and an HTML node (container) and renders the jsx into the node.
|
|
13
|
+
*
|
|
14
|
+
* The return value should be a function that, when called, unmounts the jsx element/component from the node.
|
|
15
|
+
*
|
|
16
|
+
* This is useful when your app runs on React 18. Adaptable works with older versions of React as well, so we need to suport everyone.
|
|
17
|
+
* See details about React 18 changes at https://reactjs.org/blog/2022/03/08/react-18-upgrade-guide.html#updates-to-client-rendering-apis
|
|
18
|
+
*
|
|
19
|
+
* Providing this function and using React 18 APIs to render elements will help you avoid a runtime warning.
|
|
20
|
+
*/
|
|
21
|
+
renderReactRoot?: (el: JSX.Element, container: HTMLElement) => VoidFunction;
|
|
11
22
|
}
|
|
12
23
|
declare const AdaptableReact: React.FunctionComponent<AdaptableReactProps>;
|
|
13
24
|
export default AdaptableReact;
|
|
@@ -18,14 +18,14 @@ if (package_json_1.version !== version_1.default) {
|
|
|
18
18
|
}
|
|
19
19
|
const getRandomInt = (max) => Math.floor(Math.random() * Math.floor(max));
|
|
20
20
|
const AdaptableReact = (_a) => {
|
|
21
|
-
var { adaptableOptions, gridOptions, onAdaptableReady } = _a, props = tslib_1.__rest(_a, ["adaptableOptions", "gridOptions", "onAdaptableReady"]);
|
|
21
|
+
var { adaptableOptions, gridOptions, onAdaptableReady, renderReactRoot } = _a, props = tslib_1.__rest(_a, ["adaptableOptions", "gridOptions", "onAdaptableReady", "renderReactRoot"]);
|
|
22
22
|
const seedId = (0, react_1.useMemo)(() => `${getRandomInt(1000)}-${Date.now()}`, []);
|
|
23
23
|
const adaptableContainerId = `adaptable-${seedId}`;
|
|
24
24
|
const containerRef = (0, react_1.useMemo)(() => {
|
|
25
25
|
let adaptableApi;
|
|
26
26
|
return (node) => {
|
|
27
27
|
if (node) {
|
|
28
|
-
agGrid_1.default.initInternal(Object.assign(Object.assign({}, adaptableOptions), { containerOptions: Object.assign(Object.assign({}, adaptableOptions.containerOptions), { adaptableContainer: node }), gridOptions: gridOptions || adaptableOptions.gridOptions }), { waitForAgGrid: true }).then((api) => {
|
|
28
|
+
agGrid_1.default.initInternal(Object.assign(Object.assign({}, adaptableOptions), { containerOptions: Object.assign(Object.assign({}, adaptableOptions.containerOptions), { adaptableContainer: node }), gridOptions: gridOptions || adaptableOptions.gridOptions }), { waitForAgGrid: true, renderReactRoot }).then((api) => {
|
|
29
29
|
adaptableApi = api;
|
|
30
30
|
(0, logger_1.LogAdaptableInfo)('AdaptableReady');
|
|
31
31
|
if (onAdaptableReady) {
|
package/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default } from './components/AdaptableReact';
|
|
2
2
|
export { AdaptableToolPanelAgGridComponent } from '@adaptabletools/adaptable/src/AdaptableComponents';
|
|
3
|
-
export { AdaptableBooleanExpressionFunctions, AdaptableScalarExpressionFunctions, AdaptableAggregatedBooleanExpressionFunctions, AdaptableAggregatedScalarExpressionFunctions, AdaptableObservableExpressionFunctions, } from '@adaptabletools/adaptable/agGrid';
|
|
3
|
+
export { AdaptableQL, AdaptableBooleanExpressionFunctions, AdaptableScalarExpressionFunctions, AdaptableAggregatedBooleanExpressionFunctions, AdaptableAggregatedScalarExpressionFunctions, AdaptableObservableExpressionFunctions, } from '@adaptabletools/adaptable/agGrid';
|
|
4
4
|
export { AdaptableOptionsWizardView } from './components/AdaptableOptionsWizardView';
|
|
5
5
|
export * from '@adaptabletools/adaptable/types';
|
package/src/index.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AdaptableOptionsWizardView = exports.AdaptableObservableExpressionFunctions = exports.AdaptableAggregatedScalarExpressionFunctions = exports.AdaptableAggregatedBooleanExpressionFunctions = exports.AdaptableScalarExpressionFunctions = exports.AdaptableBooleanExpressionFunctions = exports.AdaptableToolPanelAgGridComponent = exports.default = void 0;
|
|
3
|
+
exports.AdaptableOptionsWizardView = exports.AdaptableObservableExpressionFunctions = exports.AdaptableAggregatedScalarExpressionFunctions = exports.AdaptableAggregatedBooleanExpressionFunctions = exports.AdaptableScalarExpressionFunctions = exports.AdaptableBooleanExpressionFunctions = exports.AdaptableQL = exports.AdaptableToolPanelAgGridComponent = exports.default = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
var AdaptableReact_1 = require("./components/AdaptableReact");
|
|
6
6
|
Object.defineProperty(exports, "default", { enumerable: true, get: function () { return tslib_1.__importDefault(AdaptableReact_1).default; } });
|
|
7
7
|
var AdaptableComponents_1 = require("@adaptabletools/adaptable/src/AdaptableComponents");
|
|
8
8
|
Object.defineProperty(exports, "AdaptableToolPanelAgGridComponent", { enumerable: true, get: function () { return AdaptableComponents_1.AdaptableToolPanelAgGridComponent; } });
|
|
9
9
|
var agGrid_1 = require("@adaptabletools/adaptable/agGrid");
|
|
10
|
+
Object.defineProperty(exports, "AdaptableQL", { enumerable: true, get: function () { return agGrid_1.AdaptableQL; } });
|
|
10
11
|
Object.defineProperty(exports, "AdaptableBooleanExpressionFunctions", { enumerable: true, get: function () { return agGrid_1.AdaptableBooleanExpressionFunctions; } });
|
|
11
12
|
Object.defineProperty(exports, "AdaptableScalarExpressionFunctions", { enumerable: true, get: function () { return agGrid_1.AdaptableScalarExpressionFunctions; } });
|
|
12
13
|
Object.defineProperty(exports, "AdaptableAggregatedBooleanExpressionFunctions", { enumerable: true, get: function () { return agGrid_1.AdaptableAggregatedBooleanExpressionFunctions; } });
|
|
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setupFrameworkComponents = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const React = tslib_1.__importStar(require("react"));
|
|
6
|
-
const react_dom_1 = require("react-dom");
|
|
7
6
|
const logger_1 = require("./logger");
|
|
7
|
+
const weakMap = new WeakMap();
|
|
8
8
|
const setupFrameworkComponents = (adaptableApi) => {
|
|
9
9
|
adaptableApi.internalApi
|
|
10
10
|
.getAdaptableInstance()
|
|
@@ -13,7 +13,10 @@ const setupFrameworkComponents = (adaptableApi) => {
|
|
|
13
13
|
try {
|
|
14
14
|
(0, logger_1.LogAdaptableInfo)(`Mounting custom framework component ${componentType}`, containerDomNode);
|
|
15
15
|
const ReactComponent = frameworkComponent;
|
|
16
|
-
|
|
16
|
+
const unmount = adaptableApi.internalApi
|
|
17
|
+
.getAdaptableInstance()
|
|
18
|
+
.renderReactRoot(React.createElement(ReactComponent, { adaptableApi: adaptableApi }), containerDomNode);
|
|
19
|
+
weakMap.set(containerDomNode, unmount);
|
|
17
20
|
}
|
|
18
21
|
catch (err) {
|
|
19
22
|
(0, logger_1.LogAdaptableError)(`Cannot correctly mount custom framework component ${componentType}`, err);
|
|
@@ -22,7 +25,12 @@ const setupFrameworkComponents = (adaptableApi) => {
|
|
|
22
25
|
else {
|
|
23
26
|
(0, logger_1.LogAdaptableInfo)(`Unmounting custom framework component ${componentType}`, containerDomNode);
|
|
24
27
|
try {
|
|
25
|
-
|
|
28
|
+
const unmount = weakMap.get(containerDomNode);
|
|
29
|
+
weakMap.delete(containerDomNode);
|
|
30
|
+
if (!unmount) {
|
|
31
|
+
throw 'Cannot find render root for given node.';
|
|
32
|
+
}
|
|
33
|
+
unmount();
|
|
26
34
|
}
|
|
27
35
|
catch (err) {
|
|
28
36
|
(0, logger_1.LogAdaptableError)(`Cannot correctly unmount custom framework component ${componentType}`, err);
|