@linzjs/step-ag-grid 1.5.4 → 2.0.0
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/index.d.ts +2 -2
- package/dist/index.js +241 -200
- package/dist/index.js.map +1 -1
- package/dist/src/components/GridCell.d.ts +18 -27
- package/dist/src/components/GridPopoverHook.d.ts +4 -2
- package/dist/src/components/gridForm/GridFormDropDown.d.ts +8 -3
- package/dist/src/components/gridForm/GridFormEditBearing.d.ts +3 -4
- package/dist/src/components/gridForm/GridFormMessage.d.ts +4 -5
- package/dist/src/components/gridForm/GridFormMultiSelect.d.ts +2 -3
- package/dist/src/components/gridForm/GridFormPopoutMenu.d.ts +2 -3
- package/dist/src/components/gridForm/GridFormTextArea.d.ts +2 -3
- package/dist/src/components/gridForm/GridFormTextInput.d.ts +2 -3
- package/dist/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.d.ts +3 -2
- package/dist/src/components/gridPopoverEdit/GridPopoverEditBearing.d.ts +5 -270
- package/dist/src/components/gridPopoverEdit/GridPopoverEditDropDown.d.ts +3 -2
- package/dist/src/components/gridPopoverEdit/GridPopoverMenu.d.ts +2 -2
- package/dist/src/components/gridPopoverEdit/GridPopoverMessage.d.ts +3 -2
- package/dist/src/components/gridPopoverEdit/GridPopoverTextArea.d.ts +3 -2
- package/dist/src/components/gridPopoverEdit/GridPopoverTextInput.d.ts +3 -2
- package/dist/src/components/gridRender/GridRenderGenericCell.d.ts +1 -3
- package/dist/src/contexts/GridPopoverContext.d.ts +17 -0
- package/dist/src/contexts/GridPopoverContextProvider.d.ts +6 -0
- package/dist/src/contexts/{UpdatingContext.d.ts → GridUpdatingContext.d.ts} +2 -2
- package/dist/src/contexts/GridUpdatingContextProvider.d.ts +7 -0
- package/dist/src/stories/components/FormTest.d.ts +1 -2
- package/dist/step-ag-grid.esm.js +238 -198
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Grid.tsx +2 -2
- package/src/components/GridCell.tsx +57 -79
- package/src/components/GridLoadableCell.tsx +4 -1
- package/src/components/GridPopoverHook.tsx +10 -14
- package/src/components/gridForm/GridFormDropDown.tsx +41 -30
- package/src/components/gridForm/GridFormEditBearing.tsx +13 -13
- package/src/components/gridForm/GridFormMessage.tsx +8 -13
- package/src/components/gridForm/GridFormMultiSelect.tsx +19 -19
- package/src/components/gridForm/GridFormPopoutMenu.tsx +7 -8
- package/src/components/gridForm/GridFormTextArea.tsx +16 -17
- package/src/components/gridForm/GridFormTextInput.tsx +17 -17
- package/src/components/gridPopoverEdit/GridPopoutEditMultiSelect.ts +17 -16
- package/src/components/gridPopoverEdit/GridPopoverEditBearing.ts +53 -45
- package/src/components/gridPopoverEdit/GridPopoverEditDropDown.ts +17 -16
- package/src/components/gridPopoverEdit/GridPopoverMenu.tsx +20 -21
- package/src/components/gridPopoverEdit/GridPopoverMessage.ts +18 -16
- package/src/components/gridPopoverEdit/GridPopoverTextArea.ts +12 -16
- package/src/components/gridPopoverEdit/GridPopoverTextInput.ts +15 -15
- package/src/components/gridRender/GridRenderGenericCell.tsx +3 -5
- package/src/components/gridRender/GridRenderPopoutMenuCell.tsx +2 -2
- package/src/contexts/GridContextProvider.tsx +3 -5
- package/src/contexts/GridPopoverContext.tsx +32 -0
- package/src/contexts/GridPopoverContextProvider.tsx +53 -0
- package/src/contexts/{UpdatingContext.tsx → GridUpdatingContext.tsx} +2 -2
- package/src/contexts/{UpdatingContextProvider.tsx → GridUpdatingContextProvider.tsx} +8 -6
- package/src/stories/components/FormTest.tsx +4 -3
- package/src/stories/components/GridPopoutBearing.stories.tsx +28 -25
- package/src/stories/components/GridPopoutEditDropDown.stories.tsx +91 -50
- package/src/stories/components/GridPopoutEditGeneric.stories.tsx +18 -13
- package/src/stories/components/GridPopoutEditGenericTextArea.stories.tsx +76 -61
- package/src/stories/components/GridPopoutEditMultiSelect.stories.tsx +58 -51
- package/src/stories/components/GridReadOnly.stories.tsx +73 -57
- package/dist/src/contexts/UpdatingContextProvider.d.ts +0 -7
package/dist/index.js
CHANGED
|
@@ -1640,7 +1640,7 @@ var MenuRadioGroupFr = function (_a, externalRef) {
|
|
|
1640
1640
|
};
|
|
1641
1641
|
var MenuRadioGroup = react.forwardRef(MenuRadioGroupFr);
|
|
1642
1642
|
|
|
1643
|
-
var
|
|
1643
|
+
var GridUpdatingContext = react.createContext({
|
|
1644
1644
|
checkUpdating: function () {
|
|
1645
1645
|
console.error("Missing UpdatingContext");
|
|
1646
1646
|
return false;
|
|
@@ -1653,7 +1653,7 @@ var UpdatingContext = react.createContext({
|
|
|
1653
1653
|
}); }
|
|
1654
1654
|
});
|
|
1655
1655
|
|
|
1656
|
-
var
|
|
1656
|
+
var GridUpdatingContextProvider = function (props) {
|
|
1657
1657
|
var updatingBlocks = react.useRef({});
|
|
1658
1658
|
var updating = react.useRef({});
|
|
1659
1659
|
var resetUpdating = function () {
|
|
@@ -1685,7 +1685,7 @@ var UpdatingContextProvider = function (props) {
|
|
|
1685
1685
|
var checkUpdating = function (fields, id) {
|
|
1686
1686
|
return lodashEs.castArray(fields).some(function (f) { var _a; return (_a = updating.current[f]) === null || _a === void 0 ? void 0 : _a.includes(id); });
|
|
1687
1687
|
};
|
|
1688
|
-
return (jsxRuntime.jsx(
|
|
1688
|
+
return (jsxRuntime.jsx(GridUpdatingContext.Provider, __assign({ value: { modifyUpdating: modifyUpdating, checkUpdating: checkUpdating } }, { children: props.children })));
|
|
1689
1689
|
};
|
|
1690
1690
|
|
|
1691
1691
|
var GridContext = react.createContext({
|
|
@@ -1764,7 +1764,7 @@ var GridContext = react.createContext({
|
|
|
1764
1764
|
* Also, make sure the provider is created in a separate component, otherwise it won't be found.
|
|
1765
1765
|
*/
|
|
1766
1766
|
var GridContextProvider = function (props) {
|
|
1767
|
-
var modifyUpdating = react.useContext(
|
|
1767
|
+
var modifyUpdating = react.useContext(GridUpdatingContext).modifyUpdating;
|
|
1768
1768
|
var gridApiRef = react.useRef();
|
|
1769
1769
|
var idsBeforeUpdate = react.useRef([]);
|
|
1770
1770
|
/**
|
|
@@ -1790,10 +1790,7 @@ var GridContextProvider = function (props) {
|
|
|
1790
1790
|
noApiFn = (function () { });
|
|
1791
1791
|
}
|
|
1792
1792
|
var gridApi = gridApiRef.current;
|
|
1793
|
-
|
|
1794
|
-
return hasApiFn(gridApi);
|
|
1795
|
-
console.error("GridApi not ready");
|
|
1796
|
-
return noApiFn();
|
|
1793
|
+
return gridApi ? hasApiFn(gridApi) : noApiFn();
|
|
1797
1794
|
};
|
|
1798
1795
|
/**
|
|
1799
1796
|
* Set the quick filter value to grid.
|
|
@@ -2214,7 +2211,7 @@ var GridHeaderSelect = function (_a) {
|
|
|
2214
2211
|
var Grid = function (params) {
|
|
2215
2212
|
var _a;
|
|
2216
2213
|
var _b = react.useContext(GridContext), gridReady = _b.gridReady, setGridApi = _b.setGridApi, setQuickFilter = _b.setQuickFilter, ensureRowVisible = _b.ensureRowVisible, selectRowsById = _b.selectRowsById, ensureSelectedRowIsVisible = _b.ensureSelectedRowIsVisible, sizeColumnsToFit = _b.sizeColumnsToFit;
|
|
2217
|
-
var checkUpdating = react.useContext(
|
|
2214
|
+
var checkUpdating = react.useContext(GridUpdatingContext).checkUpdating;
|
|
2218
2215
|
var _c = react.useState(""), internalQuickFilter = _c[0], setInternalQuickFilter = _c[1];
|
|
2219
2216
|
var lastSelectedIds = react.useRef([]);
|
|
2220
2217
|
var _d = react.useState(false), staleGrid = _d[0], setStaleGrid = _d[1];
|
|
@@ -2387,8 +2384,24 @@ styleInject(css_248z$5);
|
|
|
2387
2384
|
var css_248z$4 = ".GridLoadableCell-container {\n display: flex;\n align-items: center;\n}";
|
|
2388
2385
|
styleInject(css_248z$4);
|
|
2389
2386
|
|
|
2387
|
+
var GridPopoverContext = react.createContext({
|
|
2388
|
+
anchorRef: { current: null },
|
|
2389
|
+
updateValueRef: {
|
|
2390
|
+
current: function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
2391
|
+
return __generator(this, function (_a) {
|
|
2392
|
+
console.error("Missing GridPopoverContext updateValueRef");
|
|
2393
|
+
return [2 /*return*/, false];
|
|
2394
|
+
});
|
|
2395
|
+
}); }
|
|
2396
|
+
},
|
|
2397
|
+
saving: false,
|
|
2398
|
+
setSaving: function () { },
|
|
2399
|
+
setProps: function () { },
|
|
2400
|
+
propsRef: { current: null }
|
|
2401
|
+
});
|
|
2402
|
+
|
|
2390
2403
|
var GridLoadableCell = function (props) {
|
|
2391
|
-
|
|
2404
|
+
react.useContext(GridPopoverContext).saving;
|
|
2392
2405
|
if (props.isLoading) {
|
|
2393
2406
|
return (jsxRuntime.jsx("div", __assign({ style: { display: "flex", alignItems: "center" } }, { children: jsxRuntime.jsx(lui.LuiMiniSpinner, { size: 22, divProps: { role: "status", "aria-label": "Loading", style: { marginBottom: 4 } } }) })));
|
|
2394
2407
|
}
|
|
@@ -2400,7 +2413,7 @@ var GridIcon = function (props) { return (jsxRuntime.jsx(lui.LuiIcon, { name: pr
|
|
|
2400
2413
|
|
|
2401
2414
|
var GridRendererGenericCell = function (props) {
|
|
2402
2415
|
var _a, _b, _c;
|
|
2403
|
-
var checkUpdating = react.useContext(
|
|
2416
|
+
var checkUpdating = react.useContext(GridUpdatingContext).checkUpdating;
|
|
2404
2417
|
var colDef = props.colDef;
|
|
2405
2418
|
var cellRendererParams = colDef.cellRendererParams;
|
|
2406
2419
|
var warningFn = cellRendererParams === null || cellRendererParams === void 0 ? void 0 : cellRendererParams.warning;
|
|
@@ -2417,9 +2430,57 @@ var GridRendererGenericCell = function (props) {
|
|
|
2417
2430
|
return (jsxRuntime.jsx(GridLoadableCell, __assign({ isLoading: checkUpdating((_c = (_b = colDef.field) !== null && _b !== void 0 ? _b : colDef.colId) !== null && _c !== void 0 ? _c : "", props.data.id) }, { children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [typeof warningText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_warning", title: warningText }), typeof infoText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_info", title: infoText }), jsxRuntime.jsx("span", __assign({ title: formatted }, { children: formatted }))] }) })));
|
|
2418
2431
|
};
|
|
2419
2432
|
|
|
2433
|
+
var GridPopoverContextProvider = function (props) {
|
|
2434
|
+
var _a = react.useContext(GridContext), getSelectedRows = _a.getSelectedRows, updatingCells = _a.updatingCells;
|
|
2435
|
+
var anchorRef = react.useRef();
|
|
2436
|
+
var propsRef = react.useRef({});
|
|
2437
|
+
var updateValueRef = react.useRef(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
2438
|
+
return __generator(this, function (_a) {
|
|
2439
|
+
console.error("updateValueRef.current is not set");
|
|
2440
|
+
return [2 /*return*/, false];
|
|
2441
|
+
});
|
|
2442
|
+
}); });
|
|
2443
|
+
var _b = react.useState(false), saving = _b[0], setSaving = _b[1];
|
|
2444
|
+
var setProps = function (props, multiEdit) {
|
|
2445
|
+
var _a, _b;
|
|
2446
|
+
var selectedRows = multiEdit ? getSelectedRows() : [props.data];
|
|
2447
|
+
var field = (_b = (_a = props.colDef) === null || _a === void 0 ? void 0 : _a.field) !== null && _b !== void 0 ? _b : "";
|
|
2448
|
+
anchorRef.current = props.eGridCell;
|
|
2449
|
+
propsRef.current = {
|
|
2450
|
+
value: props.value,
|
|
2451
|
+
data: props.data,
|
|
2452
|
+
field: field,
|
|
2453
|
+
selectedRows: selectedRows
|
|
2454
|
+
};
|
|
2455
|
+
updateValueRef.current = function (saveFn) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2456
|
+
var _a;
|
|
2457
|
+
return __generator(this, function (_b) {
|
|
2458
|
+
switch (_b.label) {
|
|
2459
|
+
case 0:
|
|
2460
|
+
_a = !saving;
|
|
2461
|
+
if (!_a) return [3 /*break*/, 2];
|
|
2462
|
+
return [4 /*yield*/, updatingCells({ selectedRows: selectedRows, field: field }, saveFn, setSaving)];
|
|
2463
|
+
case 1:
|
|
2464
|
+
_a = (_b.sent());
|
|
2465
|
+
_b.label = 2;
|
|
2466
|
+
case 2: return [2 /*return*/, _a];
|
|
2467
|
+
}
|
|
2468
|
+
});
|
|
2469
|
+
}); };
|
|
2470
|
+
};
|
|
2471
|
+
return (jsxRuntime.jsx(GridPopoverContext.Provider, __assign({ value: {
|
|
2472
|
+
anchorRef: anchorRef,
|
|
2473
|
+
saving: saving,
|
|
2474
|
+
setSaving: setSaving,
|
|
2475
|
+
updateValueRef: updateValueRef,
|
|
2476
|
+
propsRef: propsRef,
|
|
2477
|
+
setProps: setProps
|
|
2478
|
+
} }, { children: props.children })));
|
|
2479
|
+
};
|
|
2480
|
+
|
|
2420
2481
|
var GridCellRenderer = function (props) {
|
|
2421
2482
|
var _a, _b, _c;
|
|
2422
|
-
var checkUpdating = react.useContext(
|
|
2483
|
+
var checkUpdating = react.useContext(GridUpdatingContext).checkUpdating;
|
|
2423
2484
|
var colDef = props.colDef;
|
|
2424
2485
|
var rendererParams = colDef.cellRendererParams;
|
|
2425
2486
|
var warningFn = rendererParams === null || rendererParams === void 0 ? void 0 : rendererParams.warning;
|
|
@@ -2428,15 +2489,17 @@ var GridCellRenderer = function (props) {
|
|
|
2428
2489
|
var infoText = infoFn ? infoFn(props) : undefined;
|
|
2429
2490
|
return ((_a = colDef === null || colDef === void 0 ? void 0 : colDef.cellRendererParams) === null || _a === void 0 ? void 0 : _a.originalCellRenderer) ? (jsxRuntime.jsx(GridLoadableCell, __assign({ isLoading: checkUpdating((_c = (_b = colDef.field) !== null && _b !== void 0 ? _b : colDef.colId) !== null && _c !== void 0 ? _c : "", props.data.id) }, { children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [typeof warningText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_warning", title: warningText }), typeof infoText === "string" && jsxRuntime.jsx(GridIcon, { icon: "ic_info", title: infoText }), jsxRuntime.jsx(colDef.cellRendererParams.originalCellRenderer, __assign({}, props))] }) }))) : (jsxRuntime.jsx(GridRendererGenericCell, __assign({}, props)));
|
|
2430
2491
|
};
|
|
2431
|
-
|
|
2492
|
+
/*
|
|
2432
2493
|
* For editing a text area.
|
|
2433
2494
|
*/
|
|
2434
|
-
var GridCell = function (props) {
|
|
2495
|
+
var GridCell = function (props, custom) {
|
|
2435
2496
|
var _a;
|
|
2436
|
-
return __assign(__assign(__assign(__assign({ sortable: !!((props === null || props === void 0 ? void 0 : props.field) || (props === null || props === void 0 ? void 0 : props.valueGetter)), resizable: true }, (
|
|
2437
|
-
cellClass: (
|
|
2438
|
-
editable: true,
|
|
2439
|
-
cellEditor: GenericCellEditorComponent
|
|
2497
|
+
return __assign(__assign(__assign(__assign(__assign({ sortable: !!((props === null || props === void 0 ? void 0 : props.field) || (props === null || props === void 0 ? void 0 : props.valueGetter)), resizable: true }, ((custom === null || custom === void 0 ? void 0 : custom.editor) && {
|
|
2498
|
+
cellClass: (custom === null || custom === void 0 ? void 0 : custom.multiEdit) ? GenericMultiEditCellClass : undefined,
|
|
2499
|
+
editable: (_a = props.editable) !== null && _a !== void 0 ? _a : true,
|
|
2500
|
+
cellEditor: GenericCellEditorComponent(custom.editor)
|
|
2501
|
+
})), ((custom === null || custom === void 0 ? void 0 : custom.editorParams) && {
|
|
2502
|
+
cellEditorParams: __assign(__assign({}, custom.editorParams), { multiEdit: custom.multiEdit })
|
|
2440
2503
|
})), {
|
|
2441
2504
|
// Default value formatter, otherwise react freaks out on objects
|
|
2442
2505
|
valueFormatter: function (params) {
|
|
@@ -2449,37 +2512,22 @@ var GridCell = function (props) {
|
|
|
2449
2512
|
return JSON.stringify(params.value);
|
|
2450
2513
|
} }), props), { cellRenderer: GridCellRenderer, cellRendererParams: __assign({ originalCellRenderer: props.cellRenderer }, props.cellRendererParams) });
|
|
2451
2514
|
};
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2457
|
-
var multiEdit = (_a = cellEditorParams === null || cellEditorParams === void 0 ? void 0 : cellEditorParams.multiEdit) !== null && _a !== void 0 ? _a : false;
|
|
2458
|
-
var field = (_b = props.colDef.field) !== null && _b !== void 0 ? _b : "";
|
|
2459
|
-
var formProps = (_c = colDef.cellEditorParams) !== null && _c !== void 0 ? _c : {};
|
|
2460
|
-
var value = props.value;
|
|
2461
|
-
var selectedRows = react.useMemo(function () { return (multiEdit ? getSelectedRows() : [data]); }, [data, getSelectedRows, multiEdit]);
|
|
2462
|
-
var _e = react.useState(false), saving = _e[0], setSaving = _e[1];
|
|
2463
|
-
var updateValue = react.useCallback(function (saveFn) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2464
|
-
var _a;
|
|
2465
|
-
return __generator(this, function (_b) {
|
|
2466
|
-
switch (_b.label) {
|
|
2467
|
-
case 0:
|
|
2468
|
-
_a = !saving;
|
|
2469
|
-
if (!_a) return [3 /*break*/, 2];
|
|
2470
|
-
return [4 /*yield*/, updatingCells({ selectedRows: selectedRows, field: field }, saveFn, setSaving)];
|
|
2471
|
-
case 1:
|
|
2472
|
-
_a = (_b.sent());
|
|
2473
|
-
_b.label = 2;
|
|
2474
|
-
case 2: return [2 /*return*/, _a];
|
|
2475
|
-
}
|
|
2476
|
-
});
|
|
2477
|
-
}); }, [field, saving, selectedRows, updatingCells]);
|
|
2478
|
-
if (cellEditorParams == null)
|
|
2479
|
-
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
2480
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { children: colDef.cellRenderer ? jsxRuntime.jsx(colDef.cellRenderer, __assign({}, props, { saving: saving })) : props.value }), (cellEditorParams === null || cellEditorParams === void 0 ? void 0 : cellEditorParams.form) && (jsxRuntime.jsx(cellEditorParams.form, { cellEditorParams: props, updateValue: updateValue, saving: saving, formProps: formProps, data: data, value: value, field: field, selectedRows: selectedRows }))] }));
|
|
2515
|
+
// TODO memo?
|
|
2516
|
+
var GenericCellEditorComponent = function (editor) {
|
|
2517
|
+
return react.forwardRef(function GenericCellEditorComponent2(props, _) {
|
|
2518
|
+
return (jsxRuntime.jsx(GridPopoverContextProvider, { children: jsxRuntime.jsx(GenericCellEditorComponent3, __assign({}, __assign(__assign({}, props), { editor: editor }))) }));
|
|
2519
|
+
});
|
|
2481
2520
|
};
|
|
2482
|
-
var
|
|
2521
|
+
var GenericCellEditorComponent3 = function (props) {
|
|
2522
|
+
var _a;
|
|
2523
|
+
var _b = react.useContext(GridPopoverContext), setProps = _b.setProps, propsRef = _b.propsRef;
|
|
2524
|
+
var colDef = props.colDef;
|
|
2525
|
+
var cellEditorParams = colDef.cellEditorParams;
|
|
2526
|
+
var multiEdit = (_a = cellEditorParams === null || cellEditorParams === void 0 ? void 0 : cellEditorParams.multiEdit) !== null && _a !== void 0 ? _a : false;
|
|
2527
|
+
// TODO don't need all these props in context
|
|
2528
|
+
setProps(props, multiEdit);
|
|
2529
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { children: colDef.cellRenderer ? jsxRuntime.jsx(colDef.cellRenderer, __assign({}, props)) : props.value }), (props === null || props === void 0 ? void 0 : props.editor) && jsxRuntime.jsx(props.editor, __assign({}, cellEditorParams, propsRef.current))] }));
|
|
2530
|
+
};
|
|
2483
2531
|
|
|
2484
2532
|
/**
|
|
2485
2533
|
* If loading is true this returns a loading spinner, otherwise it returns its children.
|
|
@@ -2497,29 +2545,32 @@ var ComponentLoadingWrapper = function (props) {
|
|
|
2497
2545
|
} })), props.children] })));
|
|
2498
2546
|
};
|
|
2499
2547
|
|
|
2500
|
-
var useGridPopoverHook = function (props
|
|
2501
|
-
|
|
2502
|
-
var eGridCell = cellEditorParams.eGridCell;
|
|
2548
|
+
var useGridPopoverHook = function (props) {
|
|
2549
|
+
if (props === void 0) { props = {}; }
|
|
2503
2550
|
var stopEditing = react.useContext(GridContext).stopEditing;
|
|
2551
|
+
var _a = react.useContext(GridPopoverContext), anchorRef = _a.anchorRef, saving = _a.saving, updateValueRef = _a.updateValueRef;
|
|
2504
2552
|
var saveButtonRef = react.useRef(null);
|
|
2505
|
-
var
|
|
2506
|
-
anchorRef.current = eGridCell;
|
|
2507
|
-
var _a = react.useState(false), isOpen = _a[0], setOpen = _a[1];
|
|
2553
|
+
var _b = react.useState(false), isOpen = _b[0], setOpen = _b[1];
|
|
2508
2554
|
react.useEffect(function () {
|
|
2509
2555
|
setOpen(true);
|
|
2510
2556
|
}, []);
|
|
2511
2557
|
var triggerSave = react.useCallback(function (reason) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2512
|
-
var _a;
|
|
2513
|
-
return __generator(this, function (
|
|
2514
|
-
switch (
|
|
2558
|
+
var _a, _b;
|
|
2559
|
+
return __generator(this, function (_c) {
|
|
2560
|
+
switch (_c.label) {
|
|
2515
2561
|
case 0:
|
|
2516
|
-
_a = reason == "cancel" || !save;
|
|
2517
|
-
if (_a) return [3 /*break*/,
|
|
2518
|
-
|
|
2562
|
+
_a = reason == "cancel" || !props.save;
|
|
2563
|
+
if (_a) return [3 /*break*/, 3];
|
|
2564
|
+
_b = updateValueRef.current;
|
|
2565
|
+
if (!_b) return [3 /*break*/, 2];
|
|
2566
|
+
return [4 /*yield*/, updateValueRef.current(props.save)];
|
|
2519
2567
|
case 1:
|
|
2520
|
-
|
|
2521
|
-
|
|
2568
|
+
_b = (_c.sent());
|
|
2569
|
+
_c.label = 2;
|
|
2522
2570
|
case 2:
|
|
2571
|
+
_a = (_b);
|
|
2572
|
+
_c.label = 3;
|
|
2573
|
+
case 3:
|
|
2523
2574
|
if (_a) {
|
|
2524
2575
|
setOpen(false);
|
|
2525
2576
|
stopEditing();
|
|
@@ -2527,9 +2578,9 @@ var useGridPopoverHook = function (props, save) {
|
|
|
2527
2578
|
return [2 /*return*/];
|
|
2528
2579
|
}
|
|
2529
2580
|
});
|
|
2530
|
-
}); }, [
|
|
2581
|
+
}); }, [props, stopEditing, updateValueRef]);
|
|
2531
2582
|
var popoverWrapper = react.useCallback(function (children) {
|
|
2532
|
-
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: anchorRef.current && (jsxRuntime.jsxs(ControlledMenu, __assign({ state: isOpen ? "open" : "closed", portal: true, unmountOnClose: true, anchorRef: anchorRef, saveButtonRef: saveButtonRef, menuClassName: "lui-menu", onClose: function (event) { return triggerSave(event.reason).then(); },
|
|
2583
|
+
return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: anchorRef.current && (jsxRuntime.jsxs(ControlledMenu, __assign({ state: isOpen ? "open" : "closed", portal: true, unmountOnClose: true, anchorRef: anchorRef, saveButtonRef: saveButtonRef, menuClassName: "lui-menu", onClose: function (event) { return triggerSave(event.reason).then(); }, viewScroll: "auto", dontShrinkIfDirectionIsTop: true }, { children: [saving && (jsxRuntime.jsx("div", { style: {
|
|
2533
2584
|
position: "absolute",
|
|
2534
2585
|
left: 0,
|
|
2535
2586
|
top: 0,
|
|
@@ -2538,7 +2589,7 @@ var useGridPopoverHook = function (props, save) {
|
|
|
2538
2589
|
backgroundColor: "rgba(64,64,64,0.1)",
|
|
2539
2590
|
zIndex: 1000
|
|
2540
2591
|
} })), children, jsxRuntime.jsx("button", { ref: saveButtonRef, onClick: function () { return triggerSave().then(); }, style: { display: "none" } })] }))) }));
|
|
2541
|
-
}, [isOpen, saving, triggerSave]);
|
|
2592
|
+
}, [anchorRef, isOpen, saving, triggerSave]);
|
|
2542
2593
|
return {
|
|
2543
2594
|
popoverWrapper: popoverWrapper,
|
|
2544
2595
|
triggerSave: triggerSave
|
|
@@ -2547,7 +2598,7 @@ var useGridPopoverHook = function (props, save) {
|
|
|
2547
2598
|
|
|
2548
2599
|
var GridRenderPopoutMenuCell = function (props) {
|
|
2549
2600
|
var _a, _b, _c;
|
|
2550
|
-
var checkUpdating = react.useContext(
|
|
2601
|
+
var checkUpdating = react.useContext(GridUpdatingContext).checkUpdating;
|
|
2551
2602
|
var isLoading = checkUpdating((_b = (_a = props.colDef) === null || _a === void 0 ? void 0 : _a.field) !== null && _b !== void 0 ? _b : "", props.data.id);
|
|
2552
2603
|
var editable = (_c = props.colDef) === null || _c === void 0 ? void 0 : _c.editable;
|
|
2553
2604
|
var disabled = !(typeof editable === "function"
|
|
@@ -2569,9 +2620,12 @@ styleInject(css_248z$3);
|
|
|
2569
2620
|
|
|
2570
2621
|
var MenuSeparatorString = "_____MENU_SEPARATOR_____";
|
|
2571
2622
|
var MenuSeparator = Object.freeze({ value: MenuSeparatorString });
|
|
2572
|
-
var
|
|
2573
|
-
|
|
2574
|
-
|
|
2623
|
+
var MenuHeaderString = "_____MENU_HEADER_____";
|
|
2624
|
+
var MenuHeaderItem = function (title) {
|
|
2625
|
+
return { label: title, value: MenuHeaderString };
|
|
2626
|
+
};
|
|
2627
|
+
var GridFormDropDown = function (_props) {
|
|
2628
|
+
var props = _props;
|
|
2575
2629
|
var _a = react.useContext(GridContext), updatingCells = _a.updatingCells, stopEditing = _a.stopEditing;
|
|
2576
2630
|
var _b = react.useState(""), filter = _b[0], setFilter = _b[1];
|
|
2577
2631
|
var _c = react.useState([]), filteredValues = _c[0], setFilteredValues = _c[1];
|
|
@@ -2590,8 +2644,8 @@ var GridFormDropDown = function (props) {
|
|
|
2590
2644
|
case 0:
|
|
2591
2645
|
hasChanged = selectedRows.some(function (row) { return row[field] !== value; });
|
|
2592
2646
|
if (!hasChanged) return [3 /*break*/, 3];
|
|
2593
|
-
if (!
|
|
2594
|
-
return [4 /*yield*/,
|
|
2647
|
+
if (!props.onSelectedItem) return [3 /*break*/, 2];
|
|
2648
|
+
return [4 /*yield*/, props.onSelectedItem({ selectedRows: selectedRows, value: value })];
|
|
2595
2649
|
case 1:
|
|
2596
2650
|
_a.sent();
|
|
2597
2651
|
return [3 /*break*/, 3];
|
|
@@ -2605,7 +2659,7 @@ var GridFormDropDown = function (props) {
|
|
|
2605
2659
|
case 1: return [2 /*return*/, _a.sent()];
|
|
2606
2660
|
}
|
|
2607
2661
|
});
|
|
2608
|
-
}); }, [
|
|
2662
|
+
}); }, [props, updatingCells]);
|
|
2609
2663
|
var selectFilterHandler = react.useCallback(function (value) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2610
2664
|
var field;
|
|
2611
2665
|
return __generator(this, function (_a) {
|
|
@@ -2616,8 +2670,8 @@ var GridFormDropDown = function (props) {
|
|
|
2616
2670
|
return __generator(this, function (_a) {
|
|
2617
2671
|
switch (_a.label) {
|
|
2618
2672
|
case 0:
|
|
2619
|
-
if (!
|
|
2620
|
-
return [4 /*yield*/,
|
|
2673
|
+
if (!props.onSelectFilter) return [3 /*break*/, 2];
|
|
2674
|
+
return [4 /*yield*/, props.onSelectFilter({ selectedRows: selectedRows, value: value })];
|
|
2621
2675
|
case 1:
|
|
2622
2676
|
_a.sent();
|
|
2623
2677
|
_a.label = 2;
|
|
@@ -2628,14 +2682,14 @@ var GridFormDropDown = function (props) {
|
|
|
2628
2682
|
case 1: return [2 /*return*/, _a.sent()];
|
|
2629
2683
|
}
|
|
2630
2684
|
});
|
|
2631
|
-
}); }, [
|
|
2685
|
+
}); }, [props, updatingCells]);
|
|
2632
2686
|
// Load up options list if it's async function
|
|
2633
2687
|
react.useEffect(function () {
|
|
2634
2688
|
var _a;
|
|
2635
2689
|
if (options || optionsInitialising.current)
|
|
2636
2690
|
return;
|
|
2637
2691
|
optionsInitialising.current = true;
|
|
2638
|
-
var optionsConf = (_a =
|
|
2692
|
+
var optionsConf = (_a = props.options) !== null && _a !== void 0 ? _a : [];
|
|
2639
2693
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
2640
2694
|
var optionsList;
|
|
2641
2695
|
return __generator(this, function (_a) {
|
|
@@ -2653,7 +2707,7 @@ var GridFormDropDown = function (props) {
|
|
|
2653
2707
|
}
|
|
2654
2708
|
return item;
|
|
2655
2709
|
});
|
|
2656
|
-
if (
|
|
2710
|
+
if (props.filtered) {
|
|
2657
2711
|
// This is needed otherwise when filter input is rendered and sets autofocus
|
|
2658
2712
|
// the mouse up of the double click edit triggers the cell to cancel editing
|
|
2659
2713
|
lodashEs.delay(function () { return setOptions(optionsList); }, 100);
|
|
@@ -2666,10 +2720,10 @@ var GridFormDropDown = function (props) {
|
|
|
2666
2720
|
}
|
|
2667
2721
|
});
|
|
2668
2722
|
}); })();
|
|
2669
|
-
}, [filter, options,
|
|
2670
|
-
// Local filtering
|
|
2723
|
+
}, [filter, options, props]);
|
|
2724
|
+
// Local filtering.
|
|
2671
2725
|
react.useEffect(function () {
|
|
2672
|
-
if (
|
|
2726
|
+
if (props.filtered == "local") {
|
|
2673
2727
|
if (options == null)
|
|
2674
2728
|
return;
|
|
2675
2729
|
setFilteredValues(options
|
|
@@ -2683,19 +2737,19 @@ var GridFormDropDown = function (props) {
|
|
|
2683
2737
|
})
|
|
2684
2738
|
.filter(function (r) { return r !== undefined; }));
|
|
2685
2739
|
}
|
|
2686
|
-
}, [
|
|
2740
|
+
}, [props.filtered, filter, options]);
|
|
2687
2741
|
var researchOnFilterChange = debounce__default["default"](react.useCallback(function () {
|
|
2688
2742
|
setOptions(null);
|
|
2689
2743
|
}, []), 500);
|
|
2690
2744
|
var previousFilter = react.useRef(filter);
|
|
2691
|
-
// Reload filtering
|
|
2745
|
+
// Reload filtering.
|
|
2692
2746
|
react.useEffect(function () {
|
|
2693
|
-
if (previousFilter.current != filter &&
|
|
2747
|
+
if (previousFilter.current != filter && props.filtered == "reload") {
|
|
2694
2748
|
previousFilter.current = filter;
|
|
2695
|
-
|
|
2749
|
+
props.optionsRequestCancel && props.optionsRequestCancel();
|
|
2696
2750
|
researchOnFilterChange().then();
|
|
2697
2751
|
}
|
|
2698
|
-
}, [filter,
|
|
2752
|
+
}, [filter, props, researchOnFilterChange]);
|
|
2699
2753
|
var onFilterKeyDown = react.useCallback(function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2700
2754
|
var activeOptions;
|
|
2701
2755
|
return __generator(this, function (_a) {
|
|
@@ -2712,7 +2766,7 @@ var GridFormDropDown = function (props) {
|
|
|
2712
2766
|
stopEditing();
|
|
2713
2767
|
return [3 /*break*/, 5];
|
|
2714
2768
|
case 2:
|
|
2715
|
-
if (!
|
|
2769
|
+
if (!props.onSelectFilter) return [3 /*break*/, 4];
|
|
2716
2770
|
return [4 /*yield*/, selectFilterHandler(filter)];
|
|
2717
2771
|
case 3:
|
|
2718
2772
|
_a.sent();
|
|
@@ -2725,26 +2779,28 @@ var GridFormDropDown = function (props) {
|
|
|
2725
2779
|
case 5: return [2 /*return*/];
|
|
2726
2780
|
}
|
|
2727
2781
|
});
|
|
2728
|
-
}); }, [filteredValues, options, selectItemHandler, selectFilterHandler, stopEditing, filter,
|
|
2729
|
-
|
|
2782
|
+
}); }, [filteredValues, options, selectItemHandler, selectFilterHandler, stopEditing, filter, props]);
|
|
2783
|
+
var maxRowsStyles = props.maxRows !== undefined ? { maxHeight: 62 + 34 * props.maxRows, overFlowY: "auto" } : undefined;
|
|
2784
|
+
var popoverWrapper = useGridPopoverHook().popoverWrapper;
|
|
2785
|
+
return popoverWrapper(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.filtered && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(FocusableItem, __assign({ className: "filter-item" }, { children: function (_a) {
|
|
2730
2786
|
var _b;
|
|
2731
2787
|
var ref = _a.ref;
|
|
2732
|
-
return (jsxRuntime.jsx("div", __assign({ style: { display: "flex", width: "100%" } }, { children: jsxRuntime.jsx("input", { autoFocus: true, className: "free-text-input", style: { border: "0px" }, ref: ref, type: "text", placeholder: (_b =
|
|
2733
|
-
} })), jsxRuntime.jsx(MenuDivider, {}, "$$divider_filter")] })), jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !options }, { children: jsxRuntime.jsxs(
|
|
2788
|
+
return (jsxRuntime.jsx("div", __assign({ style: { display: "flex", width: "100%" } }, { children: jsxRuntime.jsx("input", { autoFocus: true, className: "free-text-input", style: { border: "0px" }, ref: ref, type: "text", placeholder: (_b = props.filterPlaceholder) !== null && _b !== void 0 ? _b : "Placeholder", "data-testid": "filteredMenu-free-text-input", defaultValue: filter, onChange: function (e) { return setFilter(e.target.value.toLowerCase()); }, onKeyDown: function (e) { return onFilterKeyDown(e); } }) })));
|
|
2789
|
+
} })), jsxRuntime.jsx(MenuDivider, {}, "$$divider_filter")] })), jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !options }, { children: jsxRuntime.jsxs("div", __assign({ style: maxRowsStyles }, { children: [options && options.length == (filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.length) && jsxRuntime.jsx(MenuItem, { children: "[Empty]" }), options === null || options === void 0 ? void 0 : options.map(function (item, index) {
|
|
2734
2790
|
var _a;
|
|
2735
|
-
return item.value === MenuSeparatorString ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : filteredValues.includes(item.value) ? null : (jsxRuntime.jsx(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onClick: function () { return selectItemHandler(item.value); } }, { children: (_a = item.label) !== null && _a !== void 0 ? _a : (item.value == null ? "<".concat(item.value, ">") : "".concat(item.value)) }), "".concat(props.field, "-").concat(index)));
|
|
2736
|
-
})] }) }))] }));
|
|
2791
|
+
return item.value === MenuSeparatorString ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : item.value === MenuHeaderString ? (jsxRuntime.jsx(MenuHeader, { children: item.label })) : filteredValues.includes(item.value) ? null : (jsxRuntime.jsx(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onClick: function () { return selectItemHandler(item.value); } }, { children: (_a = item.label) !== null && _a !== void 0 ? _a : (item.value == null ? "<".concat(item.value, ">") : "".concat(item.value)) }), "".concat(props.field, "-").concat(index)));
|
|
2792
|
+
})] })) }))] }));
|
|
2737
2793
|
};
|
|
2738
2794
|
|
|
2739
2795
|
var GridFormMultiSelect = function (props) {
|
|
2740
|
-
var
|
|
2796
|
+
var selectedRows = props.selectedRows;
|
|
2741
2797
|
var _a = react.useState(""), filter = _a[0], setFilter = _a[1];
|
|
2742
2798
|
var _b = react.useState([]), filteredValues = _b[0], setFilteredValues = _b[1];
|
|
2743
2799
|
var optionsInitialising = react.useRef(false);
|
|
2744
2800
|
var _c = react.useState(), options = _c[0], setOptions = _c[1];
|
|
2745
2801
|
var subSelectedValues = react.useRef({});
|
|
2746
2802
|
var _d = react.useState(function () {
|
|
2747
|
-
return
|
|
2803
|
+
return props.initialSelectedValues ? props.initialSelectedValues(selectedRows) : [];
|
|
2748
2804
|
}), selectedValues = _d[0], setSelectedValues = _d[1];
|
|
2749
2805
|
var save = react.useCallback(function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2750
2806
|
var values;
|
|
@@ -2752,28 +2808,28 @@ var GridFormMultiSelect = function (props) {
|
|
|
2752
2808
|
switch (_a.label) {
|
|
2753
2809
|
case 0:
|
|
2754
2810
|
values = lodashEs.fromPairs(selectedValues.map(function (value) { var _a; return [value, (_a = subSelectedValues.current[value]) !== null && _a !== void 0 ? _a : true]; }));
|
|
2755
|
-
if (!
|
|
2756
|
-
return [4 /*yield*/,
|
|
2811
|
+
if (!props.onSave) return [3 /*break*/, 2];
|
|
2812
|
+
return [4 /*yield*/, props.onSave({ selectedRows: selectedRows, values: values })];
|
|
2757
2813
|
case 1: return [2 /*return*/, _a.sent()];
|
|
2758
2814
|
case 2: return [2 /*return*/, true];
|
|
2759
2815
|
}
|
|
2760
2816
|
});
|
|
2761
|
-
}); }, [
|
|
2762
|
-
var _e = useGridPopoverHook(
|
|
2817
|
+
}); }, [props, selectedValues]);
|
|
2818
|
+
var _e = useGridPopoverHook({ save: save }), popoverWrapper = _e.popoverWrapper, triggerSave = _e.triggerSave;
|
|
2763
2819
|
// Load up options list if it's async function
|
|
2764
2820
|
react.useEffect(function () {
|
|
2765
2821
|
var _a;
|
|
2766
2822
|
if (options || optionsInitialising.current)
|
|
2767
2823
|
return;
|
|
2768
2824
|
optionsInitialising.current = true;
|
|
2769
|
-
var optionsConf = (_a =
|
|
2825
|
+
var optionsConf = (_a = props.options) !== null && _a !== void 0 ? _a : [];
|
|
2770
2826
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
2771
2827
|
var optionsList;
|
|
2772
2828
|
return __generator(this, function (_a) {
|
|
2773
2829
|
switch (_a.label) {
|
|
2774
2830
|
case 0:
|
|
2775
2831
|
if (!(typeof optionsConf == "function")) return [3 /*break*/, 2];
|
|
2776
|
-
return [4 /*yield*/, optionsConf(
|
|
2832
|
+
return [4 /*yield*/, optionsConf(selectedRows)];
|
|
2777
2833
|
case 1:
|
|
2778
2834
|
optionsConf = _a.sent();
|
|
2779
2835
|
_a.label = 2;
|
|
@@ -2784,7 +2840,7 @@ var GridFormMultiSelect = function (props) {
|
|
|
2784
2840
|
}
|
|
2785
2841
|
return item;
|
|
2786
2842
|
});
|
|
2787
|
-
if (
|
|
2843
|
+
if (props.filtered) {
|
|
2788
2844
|
// This is needed otherwise when filter input is rendered and sets autofocus
|
|
2789
2845
|
// the mouse up of the double click edit triggers the cell to cancel editing
|
|
2790
2846
|
lodashEs.delay(function () { return setOptions(optionsList); }, 100);
|
|
@@ -2797,9 +2853,9 @@ var GridFormMultiSelect = function (props) {
|
|
|
2797
2853
|
}
|
|
2798
2854
|
});
|
|
2799
2855
|
}); })();
|
|
2800
|
-
}, [
|
|
2856
|
+
}, [props.filtered, props.options, options, selectedRows]);
|
|
2801
2857
|
react.useEffect(function () {
|
|
2802
|
-
if (!
|
|
2858
|
+
if (!props.filtered || options == null)
|
|
2803
2859
|
return;
|
|
2804
2860
|
setFilteredValues(options
|
|
2805
2861
|
.map(function (option) {
|
|
@@ -2811,11 +2867,11 @@ var GridFormMultiSelect = function (props) {
|
|
|
2811
2867
|
return str.toLowerCase().indexOf(filter.trim()) === -1 ? option.value : undefined;
|
|
2812
2868
|
})
|
|
2813
2869
|
.filter(function (r) { return r !== undefined; }));
|
|
2814
|
-
}, [
|
|
2815
|
-
return popoverWrapper(jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !options }, { children: jsxRuntime.jsxs("div", __assign({ className: "Grid-popoverContainerList" }, { children: [options &&
|
|
2870
|
+
}, [props.filtered, filter, options]);
|
|
2871
|
+
return popoverWrapper(jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !options }, { children: jsxRuntime.jsxs("div", __assign({ className: "Grid-popoverContainerList" }, { children: [options && props.filtered && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(FocusableItem, __assign({ className: "filter-item" }, { children: function (_a) {
|
|
2816
2872
|
var _b;
|
|
2817
2873
|
var ref = _a.ref;
|
|
2818
|
-
return (jsxRuntime.jsx("div", __assign({ style: { display: "flex", width: "100%" } }, { children: jsxRuntime.jsx("input", { autoFocus: true, className: "free-text-input", style: { border: "0px" }, ref: ref, type: "text", placeholder: (_b =
|
|
2874
|
+
return (jsxRuntime.jsx("div", __assign({ style: { display: "flex", width: "100%" } }, { children: jsxRuntime.jsx("input", { autoFocus: true, className: "free-text-input", style: { border: "0px" }, ref: ref, type: "text", placeholder: (_b = props.filterPlaceholder) !== null && _b !== void 0 ? _b : "Placeholder", "data-testid": "filteredMenu-free-text-input", defaultValue: "", onChange: function (e) { return setFilter(e.target.value.toLowerCase()); } }) })));
|
|
2819
2875
|
} }), "filter"), jsxRuntime.jsx(MenuDivider, {}, "$$divider_filter")] })), options === null || options === void 0 ? void 0 : options.map(function (item, index) {
|
|
2820
2876
|
var _a;
|
|
2821
2877
|
return item.value === MenuSeparatorString ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : filteredValues.includes(item.value) ? null : (jsxRuntime.jsxs(react.Fragment, { children: [jsxRuntime.jsx(MenuItem, __assign({ onClick: function (e) {
|
|
@@ -2861,11 +2917,8 @@ var GridFormMultiSelect = function (props) {
|
|
|
2861
2917
|
})] })) })));
|
|
2862
2918
|
};
|
|
2863
2919
|
|
|
2864
|
-
var GridPopoutEditMultiSelect = function (colDef) {
|
|
2865
|
-
|
|
2866
|
-
return GridCell(__assign(__assign({ initialWidth: 65, maxWidth: 150, cellClass: ((_a = colDef.cellEditor) === null || _a === void 0 ? void 0 : _a.multiEdit) ? GenericMultiEditCellClass : undefined }, colDef), ((colDef === null || colDef === void 0 ? void 0 : colDef.cellEditorParams) && {
|
|
2867
|
-
cellEditorParams: __assign(__assign({}, colDef.cellEditorParams), { form: GridFormMultiSelect })
|
|
2868
|
-
})));
|
|
2920
|
+
var GridPopoutEditMultiSelect = function (colDef, props) {
|
|
2921
|
+
return GridCell(__assign({ initialWidth: 65, maxWidth: 150, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign({ editor: GridFormMultiSelect }, props));
|
|
2869
2922
|
};
|
|
2870
2923
|
|
|
2871
2924
|
var css_248z$2 = "/**\n @deprecated\n */\n/**\n @deprecated\n */\n/**\n @deprecated\n */\n.GridPopoutMenu-burger {\n cursor: pointer;\n}\n.GridPopoutMenu-burger svg {\n fill: #007198;\n}\n\n.GridPopoutMenu-burgerDisabled svg {\n fill: #989189;\n}";
|
|
@@ -2877,8 +2930,8 @@ var PopoutMenuSeparator = Object.freeze({ __isMenuSeparator__: true });
|
|
|
2877
2930
|
* NOTE: If the popout menu doesn't appear on single click when also selecting row it's because
|
|
2878
2931
|
* you need a useMemo around your columnDefs
|
|
2879
2932
|
*/
|
|
2880
|
-
var GridFormPopoutMenu = function (
|
|
2881
|
-
var
|
|
2933
|
+
var GridFormPopoutMenu = function (_props) {
|
|
2934
|
+
var props = _props;
|
|
2882
2935
|
var updatingCells = react.useContext(GridContext).updatingCells;
|
|
2883
2936
|
var optionsInitialising = react.useRef(false);
|
|
2884
2937
|
var _a = react.useState(), options = _a[0], setOptions = _a[1];
|
|
@@ -2888,7 +2941,7 @@ var GridFormPopoutMenu = function (props) {
|
|
|
2888
2941
|
if (options || optionsInitialising.current)
|
|
2889
2942
|
return;
|
|
2890
2943
|
optionsInitialising.current = true;
|
|
2891
|
-
var optionsConf = (_a =
|
|
2944
|
+
var optionsConf = (_a = props.options) !== null && _a !== void 0 ? _a : [];
|
|
2892
2945
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
2893
2946
|
var _a;
|
|
2894
2947
|
return __generator(this, function (_b) {
|
|
@@ -2909,7 +2962,7 @@ var GridFormPopoutMenu = function (props) {
|
|
|
2909
2962
|
}
|
|
2910
2963
|
});
|
|
2911
2964
|
}); })();
|
|
2912
|
-
}, [options,
|
|
2965
|
+
}, [options, props.options, props.selectedRows]);
|
|
2913
2966
|
var actionClick = react.useCallback(function (menuOption) { return __awaiter(void 0, void 0, void 0, function () {
|
|
2914
2967
|
return __generator(this, function (_a) {
|
|
2915
2968
|
switch (_a.label) {
|
|
@@ -2937,7 +2990,7 @@ var GridFormPopoutMenu = function (props) {
|
|
|
2937
2990
|
var filteredOptions = options === null || options === void 0 ? void 0 : options.filter(function (menuOption) {
|
|
2938
2991
|
return menuOption.label === PopoutMenuSeparator || selectedRowCount === 1 || menuOption.supportsMultiEdit;
|
|
2939
2992
|
});
|
|
2940
|
-
var popoverWrapper = useGridPopoverHook(
|
|
2993
|
+
var popoverWrapper = useGridPopoverHook().popoverWrapper;
|
|
2941
2994
|
return popoverWrapper(jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !filteredOptions }, { children: jsxRuntime.jsx("div", __assign({ className: "Grid-popoverContainerList" }, { children: options === null || options === void 0 ? void 0 : options.map(function (item, index) {
|
|
2942
2995
|
return item.label === PopoutMenuSeparator ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : (!item.hidden && (jsxRuntime.jsx(MenuItem, __assign({ onClick: function () { return actionClick(item); }, disabled: !!item.disabled || !(filteredOptions === null || filteredOptions === void 0 ? void 0 : filteredOptions.includes(item)), title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "" }, { children: item.label }), "".concat(item.label))));
|
|
2943
2996
|
}) })) })));
|
|
@@ -2946,14 +2999,12 @@ var GridFormPopoutMenu = function (props) {
|
|
|
2946
2999
|
/**
|
|
2947
3000
|
* Popout burger menu
|
|
2948
3001
|
*/
|
|
2949
|
-
var GridPopoverMenu = function (colDef) {
|
|
3002
|
+
var GridPopoverMenu = function (colDef, props) {
|
|
2950
3003
|
var _a;
|
|
2951
|
-
return GridCell(__assign(__assign(
|
|
3004
|
+
return GridCell(__assign(__assign({ maxWidth: 64, editable: colDef.editable != null ? colDef.editable : true, cellRenderer: GridRenderPopoutMenuCell, cellClass: ((_a = colDef === null || colDef === void 0 ? void 0 : colDef.cellEditorParams) === null || _a === void 0 ? void 0 : _a.multiEdit) !== false ? GenericMultiEditCellClass : undefined }, colDef), { cellRendererParams: {
|
|
2952
3005
|
// Menus open on single click, this parameter is picked up in Grid.tsx
|
|
2953
3006
|
singleClickEdit: true
|
|
2954
|
-
} }), (
|
|
2955
|
-
cellEditorParams: __assign(__assign({ multiEdit: true }, colDef.cellEditorParams), { form: GridFormPopoutMenu })
|
|
2956
|
-
})));
|
|
3007
|
+
} }), __assign({ editor: GridFormPopoutMenu }, props));
|
|
2957
3008
|
};
|
|
2958
3009
|
|
|
2959
3010
|
var bearingValueFormatter = function (params) {
|
|
@@ -3044,9 +3095,9 @@ var TextInputFormatted = function (props) {
|
|
|
3044
3095
|
return (jsxRuntime.jsxs("div", __assign({ className: clsx("LuiTextInput Grid-popoverContainer", props.error && "hasError", props.warning && "hasWarning", props.className) }, { children: [jsxRuntime.jsxs("span", __assign({ className: "LuiTextInput-inputWrapper" }, { children: [jsxRuntime.jsx("input", __assign({ type: "text", className: "LuiTextInput-input", min: "0", value: props.value, onChange: props.onChange }, props.inputProps)), jsxRuntime.jsx("span", __assign({ className: "LuiTextInput-formatted" }, { children: props.formatted }))] })), props.error && (jsxRuntime.jsxs("span", __assign({ className: "LuiTextInput-error" }, { children: [jsxRuntime.jsx(lui.LuiIcon, { alt: "error", name: "ic_error", className: "LuiTextInput-error-icon", size: "sm", status: "error" }), props.error] }))), props.warning && (jsxRuntime.jsxs("span", __assign({ className: "LuiTextInput-warning" }, { children: [jsxRuntime.jsx(lui.LuiIcon, { alt: "warning", name: "ic_warning", className: "LuiTextInput-warning-icon", size: "sm", status: "warning" }), props.warning] })))] })));
|
|
3045
3096
|
};
|
|
3046
3097
|
|
|
3047
|
-
var GridFormEditBearing = function (
|
|
3098
|
+
var GridFormEditBearing = function (_props) {
|
|
3048
3099
|
var _a;
|
|
3049
|
-
var
|
|
3100
|
+
var props = _props;
|
|
3050
3101
|
var _b = react.useState("".concat((_a = props.value) !== null && _a !== void 0 ? _a : "")), value = _b[0], setValue = _b[1];
|
|
3051
3102
|
var save = react.useCallback(function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3052
3103
|
var parsedValue, field_1;
|
|
@@ -3060,8 +3111,8 @@ var GridFormEditBearing = function (props) {
|
|
|
3060
3111
|
if (parsedValue === props.value) {
|
|
3061
3112
|
return [2 /*return*/, true];
|
|
3062
3113
|
}
|
|
3063
|
-
if (!
|
|
3064
|
-
return [4 /*yield*/,
|
|
3114
|
+
if (!props.onSave) return [3 /*break*/, 2];
|
|
3115
|
+
return [4 /*yield*/, props.onSave(selectedRows, parsedValue)];
|
|
3065
3116
|
case 1: return [2 /*return*/, _a.sent()];
|
|
3066
3117
|
case 2:
|
|
3067
3118
|
field_1 = props.field;
|
|
@@ -3075,42 +3126,42 @@ var GridFormEditBearing = function (props) {
|
|
|
3075
3126
|
case 3: return [2 /*return*/, true];
|
|
3076
3127
|
}
|
|
3077
3128
|
});
|
|
3078
|
-
}); }, [
|
|
3079
|
-
var _c = useGridPopoverHook(
|
|
3129
|
+
}); }, [props, value]);
|
|
3130
|
+
var _c = useGridPopoverHook({ save: save }), triggerSave = _c.triggerSave, popoverWrapper = _c.popoverWrapper;
|
|
3080
3131
|
return popoverWrapper(jsxRuntime.jsx("div", __assign({ className: "GridFormEditBearing-input Grid-popoverContainer" }, { children: jsxRuntime.jsx(TextInputFormatted, { value: value !== null && value !== void 0 ? value : "", onChange: function (e) {
|
|
3081
3132
|
setValue(e.target.value.trim());
|
|
3082
3133
|
}, inputProps: {
|
|
3083
3134
|
autoFocus: true,
|
|
3084
|
-
placeholder:
|
|
3135
|
+
placeholder: props.placeHolder,
|
|
3085
3136
|
disabled: false,
|
|
3086
3137
|
maxLength: 16,
|
|
3087
3138
|
onKeyDown: function (e) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
3088
3139
|
return [2 /*return*/, e.key === "Enter" && triggerSave().then()];
|
|
3089
3140
|
}); }); }
|
|
3090
|
-
}, formatted: bearingStringValidator(value,
|
|
3141
|
+
}, formatted: bearingStringValidator(value, props.range) ? "?" : convertDDToDMS(bearingNumberParser(value)), error: bearingStringValidator(value, props.range) }) })));
|
|
3091
3142
|
};
|
|
3092
3143
|
|
|
3093
|
-
var GridPopoverEditBearingLike = function (colDef) {
|
|
3094
|
-
|
|
3095
|
-
return GridCell(__assign(__assign({ initialWidth: 65, maxWidth: 150, valueFormatter: bearingValueFormatter, cellClass: ((_a = colDef.cellEditorParams) === null || _a === void 0 ? void 0 : _a.multiEdit) ? GenericMultiEditCellClass : undefined }, colDef), ((colDef === null || colDef === void 0 ? void 0 : colDef.cellEditorParams) && {
|
|
3096
|
-
cellEditorParams: __assign(__assign({}, colDef.cellEditorParams), { form: GridFormEditBearing })
|
|
3097
|
-
})));
|
|
3144
|
+
var GridPopoverEditBearingLike = function (colDef, props) {
|
|
3145
|
+
return GridCell(__assign({ initialWidth: 65, maxWidth: 150, valueFormatter: bearingValueFormatter, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign({ editor: GridFormEditBearing }, props));
|
|
3098
3146
|
};
|
|
3099
|
-
var GridPopoverEditBearing = function (colDef) {
|
|
3100
|
-
|
|
3101
|
-
|
|
3147
|
+
var GridPopoverEditBearing = function (colDef, props) {
|
|
3148
|
+
return GridPopoverEditBearingLike(__assign({ valueFormatter: bearingValueFormatter }, colDef), {
|
|
3149
|
+
multiEdit: !!props.multiEdit,
|
|
3150
|
+
editorParams: __assign({ placeHolder: "Enter bearing correction", range: function (value) {
|
|
3102
3151
|
if (value === null)
|
|
3103
|
-
return "Bearing is required";
|
|
3152
|
+
return "Bearing correction is required";
|
|
3104
3153
|
if (value >= 360)
|
|
3105
|
-
return "Bearing must be less than 360 degrees";
|
|
3154
|
+
return "Bearing correction must be less than 360 degrees";
|
|
3106
3155
|
if (value < 0)
|
|
3107
|
-
return "Bearing must not be negative";
|
|
3156
|
+
return "Bearing correction must not be negative";
|
|
3108
3157
|
return null;
|
|
3109
|
-
} },
|
|
3158
|
+
} }, props.editorParams)
|
|
3159
|
+
});
|
|
3110
3160
|
};
|
|
3111
|
-
var GridPopoverEditBearingCorrection = function (colDef) {
|
|
3112
|
-
|
|
3113
|
-
|
|
3161
|
+
var GridPopoverEditBearingCorrection = function (colDef, props) {
|
|
3162
|
+
return GridPopoverEditBearingLike(__assign({ valueFormatter: bearingCorrectionValueFormatter }, colDef), {
|
|
3163
|
+
multiEdit: !!props.multiEdit,
|
|
3164
|
+
editorParams: __assign({ placeHolder: "Enter bearing correction", range: function (value) {
|
|
3114
3165
|
if (value === null)
|
|
3115
3166
|
return "Bearing is required";
|
|
3116
3167
|
if (value >= 360)
|
|
@@ -3118,20 +3169,18 @@ var GridPopoverEditBearingCorrection = function (colDef) {
|
|
|
3118
3169
|
if (value <= -180)
|
|
3119
3170
|
return "Bearing must be greater then -180 degrees";
|
|
3120
3171
|
return null;
|
|
3121
|
-
} },
|
|
3172
|
+
} }, props.editorParams)
|
|
3173
|
+
});
|
|
3122
3174
|
};
|
|
3123
3175
|
|
|
3124
|
-
var GridPopoverEditDropDown = function (colDef) {
|
|
3125
|
-
|
|
3126
|
-
return GridCell(__assign(__assign({ initialWidth: 65, maxWidth: 150, cellClass: ((_a = colDef.cellEditor) === null || _a === void 0 ? void 0 : _a.multiEdit) ? GenericMultiEditCellClass : undefined }, colDef), ((colDef === null || colDef === void 0 ? void 0 : colDef.cellEditorParams) && {
|
|
3127
|
-
cellEditorParams: __assign(__assign({}, colDef.cellEditorParams), { form: GridFormDropDown })
|
|
3128
|
-
})));
|
|
3176
|
+
var GridPopoverEditDropDown = function (colDef, props) {
|
|
3177
|
+
return GridCell(__assign({ initialWidth: 65, maxWidth: 150, cellClass: props.multiEdit ? GenericMultiEditCellClass : undefined }, colDef), __assign({ editor: GridFormDropDown }, props));
|
|
3129
3178
|
};
|
|
3130
3179
|
|
|
3131
|
-
var GridFormMessage = function (
|
|
3132
|
-
var
|
|
3180
|
+
var GridFormMessage = function (_props) {
|
|
3181
|
+
var props = _props;
|
|
3133
3182
|
var _a = react.useState(null), message = _a[0], setMessage = _a[1];
|
|
3134
|
-
var popoverWrapper = useGridPopoverHook(
|
|
3183
|
+
var popoverWrapper = useGridPopoverHook().popoverWrapper;
|
|
3135
3184
|
react.useEffect(function () {
|
|
3136
3185
|
(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
3137
3186
|
var _a;
|
|
@@ -3139,24 +3188,19 @@ var GridFormMessage = function (props) {
|
|
|
3139
3188
|
switch (_b.label) {
|
|
3140
3189
|
case 0:
|
|
3141
3190
|
_a = setMessage;
|
|
3142
|
-
return [4 /*yield*/,
|
|
3191
|
+
return [4 /*yield*/, props.message(props)];
|
|
3143
3192
|
case 1:
|
|
3144
3193
|
_a.apply(void 0, [_b.sent()]);
|
|
3145
3194
|
return [2 /*return*/];
|
|
3146
3195
|
}
|
|
3147
3196
|
});
|
|
3148
3197
|
}); })().then();
|
|
3149
|
-
}, [
|
|
3198
|
+
}, [props]);
|
|
3150
3199
|
return popoverWrapper(jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: message === null }, { children: jsxRuntime.jsx("div", __assign({ style: { maxWidth: 400 }, className: "Grid-popoverContainer" }, { children: message })) })));
|
|
3151
3200
|
};
|
|
3152
3201
|
|
|
3153
|
-
var GridPopoverMessage = function (colDef) {
|
|
3154
|
-
|
|
3155
|
-
return GridCell(__assign(__assign(__assign({ maxWidth: 140 }, colDef), { cellRendererParams: (_a = colDef.cellRendererParams) !== null && _a !== void 0 ? _a : {
|
|
3156
|
-
singleClickEdit: true
|
|
3157
|
-
} }), ((colDef === null || colDef === void 0 ? void 0 : colDef.cellEditorParams) && {
|
|
3158
|
-
cellEditorParams: __assign(__assign({}, colDef.cellEditorParams), { form: GridFormMessage })
|
|
3159
|
-
})));
|
|
3202
|
+
var GridPopoverMessage = function (colDef, props) {
|
|
3203
|
+
return GridCell(__assign(__assign({ maxWidth: 140 }, colDef), { cellRendererParams: __assign({ singleClickEdit: true }, colDef.cellRendererParams) }), __assign({ editor: GridFormMessage }, props));
|
|
3160
3204
|
};
|
|
3161
3205
|
|
|
3162
3206
|
var useGenerateOrDefaultId = function (idFromProps) {
|
|
@@ -3169,22 +3213,22 @@ var TextAreaInput = function (props) {
|
|
|
3169
3213
|
return (jsxRuntime.jsxs("div", __assign({ className: clsx("LuiTextAreaInput Grid-popoverContainer", ((_b = props.inputProps) === null || _b === void 0 ? void 0 : _b.disabled) ? "isDisabled" : "", (props === null || props === void 0 ? void 0 : props.error) ? "hasError" : "") }, { children: [jsxRuntime.jsxs("label", __assign({ htmlFor: id }, { children: [props.mandatory && jsxRuntime.jsx("span", __assign({ className: "LuiTextAreaInput-mandatory" }, { children: "*" })), props.label && jsxRuntime.jsx("span", __assign({ className: "LuiTextAreaInput-label" }, { children: props.label })), jsxRuntime.jsxs("div", __assign({ className: "LuiTextAreaInput-wrapper" }, { children: [" ", jsxRuntime.jsx("textarea", __assign({ id: id, value: props.value, onChange: props.onChange, rows: 5 }, props.inputProps))] }))] })), props.error && (jsxRuntime.jsxs("span", __assign({ className: "LuiTextAreaInput-error" }, { children: [jsxRuntime.jsx(lui.LuiIcon, { alt: "error", name: "ic_error", className: "LuiTextAreaInput-error-icon", size: "sm", status: "error" }), props.error] })))] })));
|
|
3170
3214
|
};
|
|
3171
3215
|
|
|
3172
|
-
var GridFormTextArea = function (
|
|
3216
|
+
var GridFormTextArea = function (_props) {
|
|
3173
3217
|
var _a, _b;
|
|
3174
|
-
var
|
|
3218
|
+
var props = _props;
|
|
3175
3219
|
var _c = react.useState((_a = props.value) !== null && _a !== void 0 ? _a : ""), value = _c[0], setValue = _c[1];
|
|
3176
3220
|
var invalid = react.useCallback(function () {
|
|
3177
|
-
if (
|
|
3221
|
+
if (props.required && value.length == 0) {
|
|
3178
3222
|
return "Some text is required";
|
|
3179
3223
|
}
|
|
3180
|
-
if (
|
|
3181
|
-
return "Text must be no longer than ".concat(
|
|
3224
|
+
if (props.maxlength && value.length > props.maxlength) {
|
|
3225
|
+
return "Text must be no longer than ".concat(props.maxlength, " characters");
|
|
3182
3226
|
}
|
|
3183
|
-
if (
|
|
3184
|
-
return
|
|
3227
|
+
if (props.validate) {
|
|
3228
|
+
return props.validate(value);
|
|
3185
3229
|
}
|
|
3186
3230
|
return null;
|
|
3187
|
-
}, [
|
|
3231
|
+
}, [props, value]);
|
|
3188
3232
|
var save = react.useCallback(function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3189
3233
|
var field;
|
|
3190
3234
|
return __generator(this, function (_a) {
|
|
@@ -3194,8 +3238,8 @@ var GridFormTextArea = function (props) {
|
|
|
3194
3238
|
return [2 /*return*/, false];
|
|
3195
3239
|
if (props.value === (value !== null && value !== void 0 ? value : ""))
|
|
3196
3240
|
return [2 /*return*/, true];
|
|
3197
|
-
if (!
|
|
3198
|
-
return [4 /*yield*/,
|
|
3241
|
+
if (!props.onSave) return [3 /*break*/, 2];
|
|
3242
|
+
return [4 /*yield*/, props.onSave(selectedRows, value)];
|
|
3199
3243
|
case 1: return [2 /*return*/, _a.sent()];
|
|
3200
3244
|
case 2:
|
|
3201
3245
|
field = props.field;
|
|
@@ -3207,35 +3251,33 @@ var GridFormTextArea = function (props) {
|
|
|
3207
3251
|
return [2 /*return*/, true];
|
|
3208
3252
|
}
|
|
3209
3253
|
});
|
|
3210
|
-
}); }, [
|
|
3211
|
-
var popoverWrapper = useGridPopoverHook(
|
|
3212
|
-
return popoverWrapper(jsxRuntime.jsx("div", __assign({ style: { display: "flex", flexDirection: "row", width: (_b =
|
|
3254
|
+
}); }, [props, invalid, value]);
|
|
3255
|
+
var popoverWrapper = useGridPopoverHook({ save: save }).popoverWrapper;
|
|
3256
|
+
return popoverWrapper(jsxRuntime.jsx("div", __assign({ style: { display: "flex", flexDirection: "row", width: (_b = props.width) !== null && _b !== void 0 ? _b : 240 }, className: "FormTest" }, { children: jsxRuntime.jsx(TextAreaInput, { value: value, onChange: function (e) { return setValue(e.target.value); }, error: invalid(), inputProps: { placeholder: props.placeholder } }) })));
|
|
3213
3257
|
};
|
|
3214
3258
|
|
|
3215
|
-
var GridPopoverTextArea = function (colDef) {
|
|
3216
|
-
return GridCell(__assign(
|
|
3217
|
-
cellEditorParams: __assign(__assign({ width: 260 }, colDef.cellEditorParams), { form: GridFormTextArea })
|
|
3218
|
-
})));
|
|
3259
|
+
var GridPopoverTextArea = function (colDef, params) {
|
|
3260
|
+
return GridCell(__assign({ maxWidth: 260 }, colDef), __assign({ editor: GridFormTextArea }, params));
|
|
3219
3261
|
};
|
|
3220
3262
|
|
|
3221
|
-
var GridFormTextInput = function (
|
|
3263
|
+
var GridFormTextInput = function (_props) {
|
|
3222
3264
|
var _a;
|
|
3223
|
-
var
|
|
3265
|
+
var props = _props;
|
|
3224
3266
|
var initValue = props.value == null ? "" : "".concat(props.value);
|
|
3225
3267
|
var _b = react.useState(initValue), value = _b[0], setValue = _b[1];
|
|
3226
3268
|
var invalid = react.useCallback(function () {
|
|
3227
3269
|
var trimmedValue = value.trim();
|
|
3228
|
-
if (
|
|
3270
|
+
if (props.required && trimmedValue.length == 0) {
|
|
3229
3271
|
return "Some text is required";
|
|
3230
3272
|
}
|
|
3231
|
-
if (
|
|
3232
|
-
return "Text must be no longer than ".concat(
|
|
3273
|
+
if (props.maxlength && trimmedValue.length > props.maxlength) {
|
|
3274
|
+
return "Text must be no longer than ".concat(props.maxlength, " characters");
|
|
3233
3275
|
}
|
|
3234
|
-
if (
|
|
3235
|
-
return
|
|
3276
|
+
if (props.validate) {
|
|
3277
|
+
return props.validate(trimmedValue, props.data);
|
|
3236
3278
|
}
|
|
3237
3279
|
return null;
|
|
3238
|
-
}, [
|
|
3280
|
+
}, [props, value]);
|
|
3239
3281
|
var save = react.useCallback(function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3240
3282
|
var trimmedValue, field;
|
|
3241
3283
|
return __generator(this, function (_a) {
|
|
@@ -3246,8 +3288,8 @@ var GridFormTextInput = function (props) {
|
|
|
3246
3288
|
trimmedValue = value.trim();
|
|
3247
3289
|
if (initValue === trimmedValue)
|
|
3248
3290
|
return [2 /*return*/, true];
|
|
3249
|
-
if (!
|
|
3250
|
-
return [4 /*yield*/,
|
|
3291
|
+
if (!props.onSave) return [3 /*break*/, 2];
|
|
3292
|
+
return [4 /*yield*/, props.onSave(selectedRows, trimmedValue)];
|
|
3251
3293
|
case 1: return [2 /*return*/, _a.sent()];
|
|
3252
3294
|
case 2:
|
|
3253
3295
|
field = props.field;
|
|
@@ -3259,21 +3301,19 @@ var GridFormTextInput = function (props) {
|
|
|
3259
3301
|
return [2 /*return*/, true];
|
|
3260
3302
|
}
|
|
3261
3303
|
});
|
|
3262
|
-
}); }, [invalid, value, initValue,
|
|
3263
|
-
var _c = useGridPopoverHook(
|
|
3264
|
-
return popoverWrapper(jsxRuntime.jsx("div", __assign({ style: { display: "flex", flexDirection: "row", width: (_a =
|
|
3304
|
+
}); }, [invalid, value, initValue, props]);
|
|
3305
|
+
var _c = useGridPopoverHook({ save: save }), popoverWrapper = _c.popoverWrapper, triggerSave = _c.triggerSave;
|
|
3306
|
+
return popoverWrapper(jsxRuntime.jsx("div", __assign({ style: { display: "flex", flexDirection: "row", width: (_a = props.width) !== null && _a !== void 0 ? _a : 240 }, className: "FormTest" }, { children: jsxRuntime.jsx(TextInputFormatted, { value: value, onChange: function (e) { return setValue(e.target.value); }, error: invalid(), formatted: props.units, inputProps: {
|
|
3265
3307
|
style: { width: "100%" },
|
|
3266
|
-
placeholder:
|
|
3308
|
+
placeholder: props.placeholder,
|
|
3267
3309
|
onKeyDown: function (e) { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_a) {
|
|
3268
3310
|
return [2 /*return*/, e.key === "Enter" && triggerSave().then()];
|
|
3269
3311
|
}); }); }
|
|
3270
3312
|
} }) })));
|
|
3271
3313
|
};
|
|
3272
3314
|
|
|
3273
|
-
var GridPopoverTextInput = function (colDef) {
|
|
3274
|
-
return GridCell(__assign(
|
|
3275
|
-
cellEditorParams: __assign(__assign({ width: 240 }, colDef.cellEditorParams), { form: GridFormTextInput })
|
|
3276
|
-
})));
|
|
3315
|
+
var GridPopoverTextInput = function (colDef, params) {
|
|
3316
|
+
return GridCell(__assign({ maxWidth: 140 }, colDef), __assign({ editor: GridFormTextInput }, params));
|
|
3277
3317
|
};
|
|
3278
3318
|
|
|
3279
3319
|
var GridSubComponentTextArea = function (props) {
|
|
@@ -3288,7 +3328,6 @@ exports.ComponentLoadingWrapper = ComponentLoadingWrapper;
|
|
|
3288
3328
|
exports.ControlledMenu = ControlledMenu;
|
|
3289
3329
|
exports.FocusableItem = FocusableItem;
|
|
3290
3330
|
exports.GenericCellEditorComponent = GenericCellEditorComponent;
|
|
3291
|
-
exports.GenericCellEditorComponentFr = GenericCellEditorComponentFr;
|
|
3292
3331
|
exports.GenericMultiEditCellClass = GenericMultiEditCellClass;
|
|
3293
3332
|
exports.Grid = Grid;
|
|
3294
3333
|
exports.GridCell = GridCell;
|
|
@@ -3316,11 +3355,15 @@ exports.GridPopoverTextInput = GridPopoverTextInput;
|
|
|
3316
3355
|
exports.GridRenderPopoutMenuCell = GridRenderPopoutMenuCell;
|
|
3317
3356
|
exports.GridRendererGenericCell = GridRendererGenericCell;
|
|
3318
3357
|
exports.GridSubComponentTextArea = GridSubComponentTextArea;
|
|
3358
|
+
exports.GridUpdatingContext = GridUpdatingContext;
|
|
3359
|
+
exports.GridUpdatingContextProvider = GridUpdatingContextProvider;
|
|
3319
3360
|
exports.Menu = Menu;
|
|
3320
3361
|
exports.MenuButton = MenuButton;
|
|
3321
3362
|
exports.MenuDivider = MenuDivider;
|
|
3322
3363
|
exports.MenuGroup = MenuGroup;
|
|
3323
3364
|
exports.MenuHeader = MenuHeader;
|
|
3365
|
+
exports.MenuHeaderItem = MenuHeaderItem;
|
|
3366
|
+
exports.MenuHeaderString = MenuHeaderString;
|
|
3324
3367
|
exports.MenuItem = MenuItem;
|
|
3325
3368
|
exports.MenuRadioGroup = MenuRadioGroup;
|
|
3326
3369
|
exports.MenuSeparator = MenuSeparator;
|
|
@@ -3329,8 +3372,6 @@ exports.PopoutMenuSeparator = PopoutMenuSeparator;
|
|
|
3329
3372
|
exports.SubMenu = SubMenu;
|
|
3330
3373
|
exports.TextAreaInput = TextAreaInput;
|
|
3331
3374
|
exports.TextInputFormatted = TextInputFormatted;
|
|
3332
|
-
exports.UpdatingContext = UpdatingContext;
|
|
3333
|
-
exports.UpdatingContextProvider = UpdatingContextProvider;
|
|
3334
3375
|
exports.bearingCorrectionValueFormatter = bearingCorrectionValueFormatter;
|
|
3335
3376
|
exports.bearingNumberParser = bearingNumberParser;
|
|
3336
3377
|
exports.bearingStringValidator = bearingStringValidator;
|