@linzjs/step-ag-grid 7.0.2 → 7.0.3
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.js +67 -52
- package/dist/index.js.map +1 -1
- package/dist/src/components/gridForm/GridFormDropDown.d.ts +1 -0
- package/dist/step-ag-grid.esm.js +67 -52
- package/dist/step-ag-grid.esm.js.map +1 -1
- package/package.json +1 -1
- package/src/components/gridForm/GridFormDropDown.tsx +51 -28
- package/src/stories/grid/GridPopoutEditDropDown.stories.tsx +5 -0
package/dist/index.js
CHANGED
|
@@ -3084,6 +3084,13 @@ function defer() {
|
|
|
3084
3084
|
return deferred;
|
|
3085
3085
|
}
|
|
3086
3086
|
|
|
3087
|
+
var css_248z$4 = ".helpText{color:#6b6966;font-size:.75rem;font-weight:400}";
|
|
3088
|
+
styleInject(css_248z$4);
|
|
3089
|
+
|
|
3090
|
+
var FormError = function (props) {
|
|
3091
|
+
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.error && (jsxRuntime.jsx("span", __assign({ className: "LuiTextInput-error", style: { paddingLeft: 0 } }, { children: props.error }))), props.helpText && !props.error && jsxRuntime.jsx("span", __assign({ className: "helpText" }, { children: props.helpText }))] }));
|
|
3092
|
+
};
|
|
3093
|
+
|
|
3087
3094
|
var MenuSeparatorString = "_____MENU_SEPARATOR_____";
|
|
3088
3095
|
var MenuSeparator = Object.freeze({ value: MenuSeparatorString });
|
|
3089
3096
|
var MenuHeaderString = "_____MENU_HEADER_____";
|
|
@@ -3094,6 +3101,7 @@ var fieldToString = function (field) {
|
|
|
3094
3101
|
return typeof field == "symbol" ? field.toString() : "".concat(field);
|
|
3095
3102
|
};
|
|
3096
3103
|
var GridFormDropDown = function (props) {
|
|
3104
|
+
var stopEditing = react.useContext(GridContext).stopEditing;
|
|
3097
3105
|
var _a = useGridPopoverContext(), selectedRows = _a.selectedRows, field = _a.field, updateValue = _a.updateValue, data = _a.data;
|
|
3098
3106
|
// Save triggers during async action processing which triggers another selectItem(), this ref blocks that
|
|
3099
3107
|
var _b = react.useState(""), filter = _b[0], setFilter = _b[1];
|
|
@@ -3140,22 +3148,27 @@ var GridFormDropDown = function (props) {
|
|
|
3140
3148
|
}); }, [selectItemHandler, updateValue]);
|
|
3141
3149
|
var selectFilterHandler = react.useCallback(function (value) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3142
3150
|
return __generator(this, function (_a) {
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3154
|
-
|
|
3155
|
-
|
|
3156
|
-
|
|
3157
|
-
|
|
3158
|
-
|
|
3151
|
+
switch (_a.label) {
|
|
3152
|
+
case 0: return [4 /*yield*/, updateValue(function (selectedRows) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3153
|
+
var _a;
|
|
3154
|
+
return __generator(this, function (_b) {
|
|
3155
|
+
switch (_b.label) {
|
|
3156
|
+
case 0:
|
|
3157
|
+
_a = props.onSelectFilter;
|
|
3158
|
+
if (!_a) return [3 /*break*/, 2];
|
|
3159
|
+
return [4 /*yield*/, props.onSelectFilter({ selectedRows: selectedRows, value: value })];
|
|
3160
|
+
case 1:
|
|
3161
|
+
_a = (_b.sent());
|
|
3162
|
+
_b.label = 2;
|
|
3163
|
+
case 2:
|
|
3164
|
+
return [2 /*return*/, true];
|
|
3165
|
+
}
|
|
3166
|
+
});
|
|
3167
|
+
}); }, 0)];
|
|
3168
|
+
case 1:
|
|
3169
|
+
_a.sent();
|
|
3170
|
+
return [2 /*return*/];
|
|
3171
|
+
}
|
|
3159
3172
|
});
|
|
3160
3173
|
}); }, [props, updateValue]);
|
|
3161
3174
|
// Load up options list if it's async function
|
|
@@ -3211,7 +3224,7 @@ var GridFormDropDown = function (props) {
|
|
|
3211
3224
|
return undefined;
|
|
3212
3225
|
}
|
|
3213
3226
|
var str = option.label || "";
|
|
3214
|
-
return str.toLowerCase().indexOf(filter) === -1 ? option.value : undefined;
|
|
3227
|
+
return str.toLowerCase().indexOf(filter.toLowerCase()) === -1 ? option.value : undefined;
|
|
3215
3228
|
})
|
|
3216
3229
|
.filter(function (r) { return r !== undefined; }));
|
|
3217
3230
|
}
|
|
@@ -3232,56 +3245,65 @@ var GridFormDropDown = function (props) {
|
|
|
3232
3245
|
* Saves are wrapped in updateValue and triggered by blur events
|
|
3233
3246
|
*/
|
|
3234
3247
|
var save = react.useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
3235
|
-
var activeOptions;
|
|
3236
3248
|
return __generator(this, function (_a) {
|
|
3237
3249
|
switch (_a.label) {
|
|
3238
3250
|
case 0:
|
|
3239
3251
|
if (!options)
|
|
3240
3252
|
return [2 /*return*/, true];
|
|
3241
|
-
activeOptions = options.filter(function (option) { return !filteredValues.includes(option.value); });
|
|
3242
|
-
if (!(activeOptions.length === 1)) return [3 /*break*/, 2];
|
|
3243
|
-
return [4 /*yield*/, selectItemHandler(activeOptions[0].value)];
|
|
3244
|
-
case 1:
|
|
3245
|
-
_a.sent();
|
|
3246
|
-
return [3 /*break*/, 6];
|
|
3247
|
-
case 2:
|
|
3248
|
-
if (!(activeOptions.length === 0 && props.onSelectFilter)) return [3 /*break*/, 4];
|
|
3249
|
-
return [4 /*yield*/, selectFilterHandler(filter)];
|
|
3250
|
-
case 3:
|
|
3251
|
-
_a.sent();
|
|
3252
|
-
return [3 /*break*/, 6];
|
|
3253
|
-
case 4:
|
|
3254
3253
|
// Handler for sub-selected value
|
|
3255
3254
|
if (!selectedSubComponent)
|
|
3256
3255
|
return [2 /*return*/, true];
|
|
3257
3256
|
if (selectedSubComponent.subComponent && !subComponentIsValid.current)
|
|
3258
3257
|
return [2 /*return*/, false];
|
|
3259
3258
|
return [4 /*yield*/, selectItemHandler(selectedSubComponent.value, subSelectedValue)];
|
|
3260
|
-
case
|
|
3259
|
+
case 1:
|
|
3261
3260
|
_a.sent();
|
|
3262
|
-
|
|
3263
|
-
case 6: return [2 /*return*/, true];
|
|
3261
|
+
return [2 /*return*/, true];
|
|
3264
3262
|
}
|
|
3265
3263
|
});
|
|
3266
|
-
}); }, [
|
|
3267
|
-
filter,
|
|
3268
|
-
filteredValues,
|
|
3269
|
-
options,
|
|
3270
|
-
props.onSelectFilter,
|
|
3271
|
-
selectFilterHandler,
|
|
3272
|
-
selectItemHandler,
|
|
3273
|
-
selectedSubComponent,
|
|
3274
|
-
subSelectedValue,
|
|
3275
|
-
]);
|
|
3264
|
+
}); }, [options, selectItemHandler, selectedSubComponent, subSelectedValue]);
|
|
3276
3265
|
var popoverWrapper = useGridPopoverHook({
|
|
3277
3266
|
className: props.className,
|
|
3278
3267
|
invalid: function () { return !!(selectedSubComponent && !subComponentIsValid.current); },
|
|
3279
3268
|
save: save
|
|
3280
3269
|
}).popoverWrapper;
|
|
3270
|
+
var enterKeyPressedRef = react.useRef(false);
|
|
3271
|
+
var handleKeyDown = react.useCallback(function (e) {
|
|
3272
|
+
if (e.key === "Enter") {
|
|
3273
|
+
e.stopPropagation();
|
|
3274
|
+
e.preventDefault();
|
|
3275
|
+
enterKeyPressedRef.current = true;
|
|
3276
|
+
}
|
|
3277
|
+
}, []);
|
|
3278
|
+
var handleKeyUp = react.useCallback(function (e) { return __awaiter(void 0, void 0, void 0, function () {
|
|
3279
|
+
var _a;
|
|
3280
|
+
return __generator(this, function (_b) {
|
|
3281
|
+
switch (_b.label) {
|
|
3282
|
+
case 0:
|
|
3283
|
+
if (!options)
|
|
3284
|
+
return [2 /*return*/];
|
|
3285
|
+
if (!(e.key === "Enter")) return [3 /*break*/, 3];
|
|
3286
|
+
e.stopPropagation();
|
|
3287
|
+
e.preventDefault();
|
|
3288
|
+
if (!enterKeyPressedRef.current)
|
|
3289
|
+
return [2 /*return*/];
|
|
3290
|
+
_a = props.onSelectFilter;
|
|
3291
|
+
if (!_a) return [3 /*break*/, 2];
|
|
3292
|
+
return [4 /*yield*/, selectFilterHandler(filter)];
|
|
3293
|
+
case 1:
|
|
3294
|
+
_a = (_b.sent());
|
|
3295
|
+
_b.label = 2;
|
|
3296
|
+
case 2:
|
|
3297
|
+
stopEditing();
|
|
3298
|
+
_b.label = 3;
|
|
3299
|
+
case 3: return [2 /*return*/];
|
|
3300
|
+
}
|
|
3301
|
+
});
|
|
3302
|
+
}); }, [filter, options, props.onSelectFilter, selectFilterHandler, stopEditing]);
|
|
3281
3303
|
return popoverWrapper(jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.filtered && (jsxRuntime.jsxs("div", __assign({ className: "GridFormDropDown-filter" }, { children: [jsxRuntime.jsx(FocusableItem, __assign({ className: "filter-item" }, { children: function (_a) {
|
|
3282
3304
|
var _b;
|
|
3283
3305
|
var ref = _a.ref;
|
|
3284
|
-
return (jsxRuntime.
|
|
3306
|
+
return (jsxRuntime.jsxs("div", __assign({ style: { display: "flex", flexDirection: "column", width: "100%" } }, { children: [jsxRuntime.jsx("input", { autoFocus: true, className: "LuiTextInput-input", ref: ref, type: "text", placeholder: (_b = props.filterPlaceholder) !== null && _b !== void 0 ? _b : "Placeholder", "data-testid": "filteredMenu-free-text-input", defaultValue: filter, "data-disableenterautosave": true, "data-allowtabtoSave": true, onChange: function (e) { return setFilter(e.target.value); }, onKeyDown: handleKeyDown, onKeyUp: handleKeyUp }), props.filterHelpText && isNotEmpty(filter) && (jsxRuntime.jsx(FormError, { error: null, helpText: props.filterHelpText }))] })));
|
|
3285
3307
|
} })), jsxRuntime.jsx(MenuDivider, {}, "$$divider_filter")] }))), jsxRuntime.jsx(ComponentLoadingWrapper, __assign({ loading: !options, className: "GridFormDropDown-options" }, { children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [options && options.length == (filteredValues === null || filteredValues === void 0 ? void 0 : filteredValues.length) && (jsxRuntime.jsx(MenuItem, __assign({ className: "GridPopoverEditDropDown-noOptions" }, { children: "No Options" }), "".concat(fieldToString(field), "-empty"))), options === null || options === void 0 ? void 0 : options.map(function (item, index) {
|
|
3286
3308
|
var _a;
|
|
3287
3309
|
return item.value === MenuSeparatorString ? (jsxRuntime.jsx(MenuDivider, {}, "$$divider_".concat(index))) : item.value === MenuHeaderString ? (jsxRuntime.jsx(MenuHeader, { children: item.label }, "$$header_".concat(index))) : filteredValues.includes(item.value) ? null : (jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs(MenuItem, __assign({ disabled: !!item.disabled, title: item.disabled && typeof item.disabled !== "boolean" ? item.disabled : "", value: item.value, onClick: function (e) {
|
|
@@ -3323,13 +3345,6 @@ var GridFormDropDown = function (props) {
|
|
|
3323
3345
|
})] }) }))] }));
|
|
3324
3346
|
};
|
|
3325
3347
|
|
|
3326
|
-
var css_248z$4 = ".helpText{color:#6b6966;font-size:.75rem;font-weight:400}";
|
|
3327
|
-
styleInject(css_248z$4);
|
|
3328
|
-
|
|
3329
|
-
var FormError = function (props) {
|
|
3330
|
-
return (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [props.error && (jsxRuntime.jsx("span", __assign({ className: "LuiTextInput-error", style: { paddingLeft: 0 } }, { children: props.error }))), props.helpText && !props.error && jsxRuntime.jsx("span", __assign({ className: "helpText" }, { children: props.helpText }))] }));
|
|
3331
|
-
};
|
|
3332
|
-
|
|
3333
3348
|
function escapeStringRegexp(string) {
|
|
3334
3349
|
if (typeof string !== 'string') {
|
|
3335
3350
|
throw new TypeError('Expected a string');
|