@wavemaker/react-runtime 11.14.2-1.245 → 12.0.0-next.28533
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/actions/base-action.js +5 -7
- package/actions/login-action.js +7 -8
- package/actions/logout-action.js +5 -7
- package/actions/navigation-action.js +32 -10
- package/actions/notification-action.js +22 -8
- package/actions/timer-action.js +13 -15
- package/actions/toast.js +4 -2
- package/actions/toast.service.js +1 -2
- package/components/advanced/carousel/index.js +1 -1
- package/components/advanced/carousel/template.js +1 -1
- package/components/basic/anchor/index.js +26 -9
- package/components/basic/html/index.js +115 -24
- package/components/basic/icon/index.js +2 -1
- package/components/basic/iframe/index.js +2 -1
- package/components/basic/label/index.js +12 -9
- package/components/basic/message/index.js +12 -3
- package/components/basic/picture/index.js +11 -4
- package/components/basic/progress-bar/index.js +1 -1
- package/components/basic/progress-circle/index.js +34 -28
- package/components/basic/progress-circle/props.js +10 -2
- package/components/basic/richtexteditor/index.js +95 -94
- package/components/basic/search/index.js +401 -156
- package/components/basic/search/providers.js +126 -61
- package/components/basic/spinner/index.js +2 -1
- package/components/basic/tree/index.js +34 -34
- package/components/basic/tree/utils.js +10 -4
- package/components/chart/components/barColumnChart/index.js +36 -33
- package/components/chart/components/bubbleChart/index.js +35 -25
- package/components/chart/components/chartLegend/utils.js +2 -1
- package/components/chart/components/cumulativeLineChart/index.js +30 -26
- package/components/chart/components/lineAreaChart/index.js +50 -32
- package/components/chart/components/pieDonutChart/index.js +13 -4
- package/components/chart/hooks/useXAxisConfig.js +15 -8
- package/components/chart/index.js +223 -53
- package/components/chart/utils.js +12 -1
- package/components/constants.js +5 -2
- package/components/container/accordion/accordion-pane/index.js +17 -12
- package/components/container/accordion/index.js +9 -4
- package/components/container/alignment-utils.js +56 -1
- package/components/container/index.js +49 -20
- package/components/container/panel/components/panel-header/index.js +3 -4
- package/components/container/panel/index.js +15 -10
- package/components/container/tabs/index.js +92 -14
- package/components/container/tabs/tab-pane/index.js +15 -8
- package/components/container/tabs/utils.js +51 -0
- package/components/container/wizard/components/StepComponents.js +2 -1
- package/components/container/wizard/components/WizardStep.js +2 -1
- package/components/container/wizard/index.js +64 -35
- package/components/container/wizard/utils.js +46 -1
- package/components/container/wizard/wizard-step/index.js +11 -1
- package/components/data/card/card-content/index.js +1 -1
- package/components/data/form/base-form/index.js +991 -180
- package/components/data/form/base-form/props.js +3 -1
- package/components/data/form/base-form/utils.js +159 -1
- package/components/data/form/dynamic-fields/constant.js +53 -0
- package/components/data/form/dynamic-fields/index.js +10 -45
- package/components/data/form/dynamic-fields/utils.js +37 -2
- package/components/data/form/form-action/index.js +5 -4
- package/components/data/form/form-context.js +5 -1
- package/components/data/form/form-controller/utils.js +84 -0
- package/components/data/form/form-controller/validation-contrustor.js +402 -189
- package/components/data/form/form-controller/withFormController.js +191 -52
- package/components/data/form/form-field/base-field.js +54 -33
- package/components/data/form/form-field/index.js +28 -5
- package/components/data/form/form-header/index.js +3 -4
- package/components/data/form/index.js +20 -1
- package/components/data/list/components/ListDND.js +2 -1
- package/components/data/list/components/ListItem.js +6 -2
- package/components/data/list/components/ListItemWithTemplate.js +46 -2
- package/components/data/list/components/ListItems.js +17 -26
- package/components/data/list/components/ListPagination.js +3 -3
- package/components/data/list/components/StandardListItems.js +3 -4
- package/components/data/list/hooks/useListEffects.js +55 -14
- package/components/data/list/hooks/useListEventHandlers.js +3 -1
- package/components/data/list/hooks/useListState.js +3 -1
- package/components/data/list/hooks/usePaginatedGroupedData.js +18 -5
- package/components/data/list/index.js +74 -55
- package/components/data/list/utils/list-helpers.js +73 -35
- package/components/data/list/utils/list-widget-methods.js +138 -95
- package/components/data/live-filter/index.js +26 -15
- package/components/data/live-form/index.js +23 -7
- package/components/data/live-form/props.js +1 -1
- package/components/data/pagination/components/BasicPagination.js +71 -16
- package/components/data/pagination/components/PageSizeSelector.js +8 -3
- package/components/data/pagination/components/TotalRecords.js +1 -5
- package/components/data/pagination/hooks/usePagination.js +349 -66
- package/components/data/pagination/index.js +137 -19
- package/components/data/table/components/AddNewRow.js +5 -1
- package/components/data/table/components/EditableCell.js +2 -2
- package/components/data/table/components/RowCells.js +64 -0
- package/components/data/table/components/RowExpansionButton.js +2 -2
- package/components/data/table/components/SummaryCell.js +111 -0
- package/components/data/table/components/SummaryRow.js +54 -0
- package/components/data/table/components/SummaryRowFooter.js +46 -0
- package/components/data/table/components/TableBody.js +61 -59
- package/components/data/table/components/TableDataRow.js +109 -0
- package/components/data/table/components/TableFilters.js +225 -121
- package/components/data/table/components/TableHeader.js +291 -23
- package/components/data/table/components/TablePanelHeading.js +139 -8
- package/components/data/table/components/index.js +22 -1
- package/components/data/table/hooks/use-edited-rows.js +141 -0
- package/components/data/table/hooks/useCellState.js +5 -12
- package/components/data/table/hooks/useFormWidget.js +58 -51
- package/components/data/table/hooks/usePaginationState.js +45 -24
- package/components/data/table/hooks/usePanelStructure.js +4 -4
- package/components/data/table/hooks/useRowHandlers.js +39 -5
- package/components/data/table/hooks/useRowSelection.js +244 -50
- package/components/data/table/hooks/useServerSideSorting.js +81 -37
- package/components/data/table/hooks/useTableColumns.js +211 -118
- package/components/data/table/hooks/useTableData.js +54 -9
- package/components/data/table/hooks/useTableEdit.js +272 -97
- package/components/data/table/hooks/useTableEffects.js +31 -13
- package/components/data/table/hooks/useTableFilter.js +1 -1
- package/components/data/table/hooks/useTableInitialization.js +23 -22
- package/components/data/table/hooks/useTableState.js +11 -5
- package/components/data/table/hooks/useTableStateManager.js +140 -65
- package/components/data/table/index.js +637 -274
- package/components/data/table/live-table/index.js +54 -22
- package/components/data/table/table-action/index.js +1 -1
- package/components/data/table/table-group/index.js +26 -0
- package/components/data/table/table-row-action/index.js +32 -18
- package/components/data/table/utils/buildSelectionColumns.js +12 -21
- package/components/data/table/utils/columnBuilder.js +29 -14
- package/components/data/table/utils/columnProxy.js +68 -1
- package/components/data/table/utils/constants.js +6 -2
- package/components/data/table/utils/crud-handlers.js +68 -63
- package/components/data/table/utils/groupHeaderUtils.js +102 -0
- package/components/data/table/utils/index.js +210 -21
- package/components/data/table/utils/renderDisplayCell.js +6 -6
- package/components/data/table/utils/selectionUtils.js +25 -26
- package/components/data/table/utils/validation.js +1 -0
- package/components/data/utils/filter-field-util.js +3 -3
- package/components/dialogs/alert-dialog/index.js +1 -1
- package/components/dialogs/confirm-dialog/index.js +1 -1
- package/components/dialogs/dialog/index.js +4 -1
- package/components/dialogs/dialog-content/index.js +3 -1
- package/components/dialogs/dialog-header/index.js +2 -2
- package/components/dialogs/iframe-dialog/index.js +11 -5
- package/components/dialogs/index.js +1 -1
- package/components/dialogs/login-dialog/index.js +1 -1
- package/components/dialogs/page-dialog/index.js +1 -1
- package/components/form/button/index.js +33 -7
- package/components/input/calendar/index.js +18 -6
- package/components/input/chips/index.js +99 -28
- package/components/input/chips/utils.js +34 -4
- package/components/input/color-picker/index.js +74 -25
- package/components/input/composite/index.js +3 -3
- package/components/input/currency/index.js +35 -49
- package/components/input/default/checkbox/index.js +23 -28
- package/components/input/default/checkboxset/index.js +38 -18
- package/components/input/default/checkboxset/utils.js +30 -0
- package/components/input/default/radioset/index.js +36 -39
- package/components/input/default/switch/index.js +30 -13
- package/components/input/epoch/date/index.js +130 -69
- package/components/input/epoch/date/utils.js +94 -1
- package/components/input/epoch/datetime/index.js +72 -22
- package/components/input/epoch/datetime/utils.js +49 -10
- package/components/input/epoch/time/index.js +68 -19
- package/components/input/epoch/time/utils.js +62 -14
- package/components/input/fileupload/Utils.js +12 -7
- package/components/input/fileupload/components/MultiUpload.js +2 -6
- package/components/input/fileupload/components/SingleUpload.js +3 -7
- package/components/input/fileupload/index.js +6 -10
- package/components/input/fileupload/useFileUpload.js +16 -5
- package/components/input/number/index.js +158 -43
- package/components/input/rating/index.js +90 -7
- package/components/input/select/index.js +147 -70
- package/components/input/slider/index.js +84 -26
- package/components/input/text/index.js +38 -18
- package/components/input/text/util.js +283 -130
- package/components/input/textarea/index.js +13 -10
- package/components/input/upload/index.js +124 -0
- package/components/input/upload/props.js +5 -0
- package/components/input/util/index.js +11 -0
- package/components/navbar/index.js +51 -3
- package/components/navbar/nav/index.js +46 -16
- package/components/navbar/nav-item/index.js +11 -5
- package/components/navigation/menu/components/ListItems.js +3 -0
- package/components/navigation/menu/constants.js +2 -1
- package/components/navigation/menu/hooks/useHoverState.hook.js +48 -0
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +37 -0
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +15 -0
- package/components/navigation/menu/index.js +326 -188
- package/components/navigation/menu/utils/action-task.js +14 -0
- package/components/navigation/menu/utils/role-filter.js +76 -0
- package/components/navigation/popover/index.js +99 -26
- package/components/page/partial-container/index.js +34 -5
- package/components/prefab/index.js +2 -4
- package/context/PrefabContext.js +10 -6
- package/context/WidgetProvider.js +30 -31
- package/core/app.service.js +1 -1
- package/core/constants/events.js +57 -1
- package/core/dialog.service.js +1 -2
- package/core/event-notifier.js +1 -2
- package/core/formatter/array-formatters.js +33 -0
- package/core/formatter/date-formatters.js +2 -4
- package/core/formatter/index.js +2 -1
- package/core/formatter/number-formatters.js +5 -10
- package/core/formatter/security-formatters.js +2 -4
- package/core/formatter/string-formatters.js +3 -6
- package/core/proxy-service.js +84 -13
- package/core/script-registry.js +108 -48
- package/core/util/common.js +4 -4
- package/core/util/compare.js +30 -0
- package/core/util/dom.js +8 -8
- package/core/util/index.js +16 -6
- package/core/util/safe-is-equal.js +156 -0
- package/core/util/security.js +1 -2
- package/core/util/utils.js +16 -7
- package/higherOrder/BaseApp.js +108 -65
- package/higherOrder/BaseDateTime.js +31 -13
- package/higherOrder/BasePage.js +268 -144
- package/higherOrder/BasePartial.js +1 -1
- package/higherOrder/BasePrefab.js +33 -15
- package/higherOrder/DataNav.js +99 -16
- package/higherOrder/helper.js +5 -0
- package/higherOrder/withBaseWrapper.js +41 -28
- package/hooks/useAuth.js +11 -5
- package/hooks/useHttp.js +280 -94
- package/mui-config/theme-provider.js +1 -1
- package/mui-config/theme.js +1 -1
- package/package-lock.json +711 -669
- package/package.json +8 -8
- package/store/bindActions/i18nActions.js +18 -0
- package/store/index.js +3 -1
- package/store/slices/appConfigSlice.js +2 -2
- package/store/slices/authSlice.js +31 -28
- package/store/slices/i18nSlice.js +2 -2
- package/store/slices/navigationSlice.js +35 -0
- package/store/viewport.service.js +255 -0
- package/utils/attr.js +35 -0
- package/utils/dataset-util.js +1 -2
- package/utils/form-state.util.js +43 -12
- package/utils/form-utils.js +47 -2
- package/utils/format-util.js +28 -13
- package/utils/page-params-util.js +33 -1
- package/utils/state-persistance.js +72 -13
- package/utils/transformedDataset-utils.js +35 -24
- package/variables/base-variable.js +12 -14
- package/variables/crud-variable.js +225 -0
- package/variables/live-variable.js +56 -20
- package/variables/metadata.service.js +123 -0
- package/variables/model-variable.js +21 -15
- package/variables/service-variable.js +88 -83
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = exports.WmColorPicker = void 0;
|
|
9
9
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
10
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
11
12
|
var _reactColor = require("react-color");
|
|
12
13
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
@@ -15,9 +16,12 @@ var _input = require("@base-ui-components/react/input");
|
|
|
15
16
|
var _styles = require("@mui/material/styles");
|
|
16
17
|
var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWrapper");
|
|
17
18
|
var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
|
|
19
|
+
var _reactDom = require("react-dom");
|
|
18
20
|
var _excluded = ["datavalue", "placeholder", "readonly", "disabled", "required", "name", "shortcutkey", "tabindex", "className", "autoclose", "arialabel", "onDoubleClick", "onMouseEnter", "onMouseLeave", "onFocus", "onBlur", "onClick", "onKeydown", "onKeyup", "onChange", "listener"];
|
|
19
21
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
20
22
|
var __jsx = _react["default"].createElement;
|
|
23
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
24
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
21
25
|
// Constants
|
|
22
26
|
var AUTOCLOSE_TYPE = {
|
|
23
27
|
ALWAYS: "always",
|
|
@@ -31,25 +35,32 @@ var POSITION_DELAY = 100;
|
|
|
31
35
|
|
|
32
36
|
// Styled Components
|
|
33
37
|
var StyledColorPicker = (0, _styles.styled)(_Box["default"])(function (_ref) {
|
|
34
|
-
var theme = _ref.theme
|
|
38
|
+
var theme = _ref.theme,
|
|
39
|
+
direction = _ref.direction;
|
|
35
40
|
return {
|
|
36
|
-
position: "
|
|
41
|
+
position: "fixed",
|
|
42
|
+
// Changed from absolute to fixed for portal positioning
|
|
37
43
|
zIndex: 1300,
|
|
38
44
|
marginTop: theme.spacing(1),
|
|
39
|
-
|
|
40
|
-
top: "115%",
|
|
41
|
-
"&::before": {
|
|
45
|
+
"&::before": _objectSpread({
|
|
42
46
|
content: '""',
|
|
43
47
|
position: "absolute",
|
|
44
|
-
top: "-20px",
|
|
45
48
|
left: "8px",
|
|
46
49
|
width: 0,
|
|
47
50
|
height: 0,
|
|
48
51
|
borderStyle: "solid",
|
|
49
|
-
borderWidth: "10px 5px",
|
|
50
|
-
borderColor: "rgba(0, 0, 0, 0) rgba(0, 0, 0, 0) #777 rgba(0, 0, 0, 0)",
|
|
51
52
|
zIndex: 999999
|
|
52
|
-
},
|
|
53
|
+
}, direction === "down" ? {
|
|
54
|
+
// Arrow pointing up (picker opens downward)
|
|
55
|
+
top: "-10px",
|
|
56
|
+
borderWidth: "0 5px 10px 5px",
|
|
57
|
+
borderColor: "transparent transparent #777 transparent"
|
|
58
|
+
} : {
|
|
59
|
+
// Arrow pointing down (picker opens upward)
|
|
60
|
+
bottom: "-10px",
|
|
61
|
+
borderWidth: "10px 5px 0 5px",
|
|
62
|
+
borderColor: "#777 transparent transparent transparent"
|
|
63
|
+
}),
|
|
53
64
|
"& .chrome-picker": {
|
|
54
65
|
boxShadow: "0 2px 15px rgba(0,0,0,0.12), 0 2px 10px rgba(0,0,0,0.16) !important",
|
|
55
66
|
height: "auto",
|
|
@@ -229,27 +240,33 @@ var useColorValue = function useColorValue(initialValue) {
|
|
|
229
240
|
};
|
|
230
241
|
var usePickerPosition = function usePickerPosition() {
|
|
231
242
|
var _useState3 = (0, _react.useState)({
|
|
232
|
-
top:
|
|
233
|
-
left: 0
|
|
243
|
+
top: 0,
|
|
244
|
+
left: 0,
|
|
245
|
+
direction: "down"
|
|
234
246
|
}),
|
|
235
247
|
position = _useState3[0],
|
|
236
248
|
setPosition = _useState3[1];
|
|
237
249
|
var calculatePosition = (0, _react.useCallback)(function (containerElement) {
|
|
238
250
|
if (!containerElement) {
|
|
239
251
|
return {
|
|
240
|
-
top:
|
|
241
|
-
left: 0
|
|
252
|
+
top: 0,
|
|
253
|
+
left: 0,
|
|
254
|
+
direction: "down"
|
|
242
255
|
};
|
|
243
256
|
}
|
|
244
257
|
var rect = containerElement.getBoundingClientRect();
|
|
245
258
|
var viewportHeight = window.innerHeight;
|
|
246
259
|
var spaceBelow = viewportHeight - rect.bottom;
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
260
|
+
|
|
261
|
+
// Calculate absolute position using fixed positioning (for portal)
|
|
262
|
+
var openUpward = spaceBelow < PICKER_HEIGHT;
|
|
263
|
+
var top = openUpward ? rect.top - PICKER_HEIGHT + 50 // Position above if not enough space below
|
|
264
|
+
: rect.bottom + 8; // Position below with 8px gap
|
|
265
|
+
|
|
266
|
+
return {
|
|
267
|
+
top: top,
|
|
268
|
+
left: rect.left,
|
|
269
|
+
direction: openUpward ? "up" : "down"
|
|
253
270
|
};
|
|
254
271
|
}, []);
|
|
255
272
|
return {
|
|
@@ -334,6 +351,16 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
334
351
|
setIsOpen(false);
|
|
335
352
|
}
|
|
336
353
|
}, [isOpen, isInteractingWithPicker]);
|
|
354
|
+
|
|
355
|
+
// Register widget methods (open/close) with listener
|
|
356
|
+
(0, _react.useEffect)(function () {
|
|
357
|
+
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
358
|
+
listener.onChange(props.fieldName || name, {
|
|
359
|
+
open: openPicker,
|
|
360
|
+
close: closePicker
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
}, [openPicker, closePicker]);
|
|
337
364
|
var validateAndSetColor = (0, _react.useCallback)(function (value) {
|
|
338
365
|
if (!value.trim()) {
|
|
339
366
|
setColorValue({
|
|
@@ -455,7 +482,11 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
455
482
|
};
|
|
456
483
|
setColorValue(rgbaColor);
|
|
457
484
|
var newValue = a !== 1 ? rgbaToString(rgbaColor) : rgbaToHex(rgbaColor);
|
|
485
|
+
if (inputRef.current) {
|
|
486
|
+
inputRef.current.value = newValue;
|
|
487
|
+
}
|
|
458
488
|
if (listener !== null && listener !== void 0 && listener.Widgets[(props === null || props === void 0 ? void 0 : props.fieldName) || name]) {
|
|
489
|
+
listener.Widgets[name].datavalue = newValue;
|
|
459
490
|
listener.Widgets[name].displayValue = newValue;
|
|
460
491
|
}
|
|
461
492
|
setInputValue(newValue);
|
|
@@ -464,8 +495,11 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
464
495
|
datavalue: newValue
|
|
465
496
|
});
|
|
466
497
|
}
|
|
498
|
+
var customEvent = _objectSpread(_objectSpread({}, event), {}, {
|
|
499
|
+
type: "change"
|
|
500
|
+
});
|
|
467
501
|
if (onChange) {
|
|
468
|
-
onChange(
|
|
502
|
+
onChange(customEvent, listener.Widgets[name], newValue, inputValue);
|
|
469
503
|
}
|
|
470
504
|
if (autoclose === AUTOCLOSE_TYPE.ALWAYS && !isInteractingWithPicker) {
|
|
471
505
|
setTimeout(function () {
|
|
@@ -589,6 +623,20 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
589
623
|
return window.removeEventListener("keydown", handleEscape);
|
|
590
624
|
};
|
|
591
625
|
}, [isOpen]);
|
|
626
|
+
|
|
627
|
+
// Update picker position on scroll or resize
|
|
628
|
+
(0, _react.useEffect)(function () {
|
|
629
|
+
if (!isOpen) return;
|
|
630
|
+
var updatePosition = function updatePosition() {
|
|
631
|
+
setPickerPosition(calculatePosition(containerRef.current));
|
|
632
|
+
};
|
|
633
|
+
window.addEventListener("scroll", updatePosition, true);
|
|
634
|
+
window.addEventListener("resize", updatePosition);
|
|
635
|
+
return function () {
|
|
636
|
+
window.removeEventListener("scroll", updatePosition, true);
|
|
637
|
+
window.removeEventListener("resize", updatePosition);
|
|
638
|
+
};
|
|
639
|
+
}, [isOpen, calculatePosition, setPickerPosition]);
|
|
592
640
|
var checkPlaceholder = function checkPlaceholder() {
|
|
593
641
|
setTimeout(function () {
|
|
594
642
|
var _containerRef$current2;
|
|
@@ -651,12 +699,13 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
651
699
|
style: {
|
|
652
700
|
backgroundColor: inputValue ? rgbaToString(colorValue) : "transparent"
|
|
653
701
|
}
|
|
654
|
-
})), isOpen && __jsx(StyledColorPicker, {
|
|
702
|
+
})), isOpen && /*#__PURE__*/(0, _reactDom.createPortal)(__jsx(StyledColorPicker, {
|
|
655
703
|
className: "color-picker",
|
|
656
704
|
ref: pickerRef,
|
|
705
|
+
direction: pickerPosition.direction,
|
|
657
706
|
sx: {
|
|
658
|
-
top: pickerPosition.top,
|
|
659
|
-
left: pickerPosition.left,
|
|
707
|
+
top: "".concat(pickerPosition.top, "px"),
|
|
708
|
+
left: "".concat(pickerPosition.left, "px"),
|
|
660
709
|
zIndex: 1300
|
|
661
710
|
},
|
|
662
711
|
onClick: function onClick(e) {
|
|
@@ -667,9 +716,9 @@ var WmColorPicker = exports.WmColorPicker = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
667
716
|
}, __jsx(_reactColor.ChromePicker, {
|
|
668
717
|
color: colorValue,
|
|
669
718
|
onChange: handleColorChange
|
|
670
|
-
})));
|
|
719
|
+
})), document.body));
|
|
671
720
|
}, function (prevProps, nextProps) {
|
|
672
|
-
var keysToCompare = ["datavalue", "placeholder", "readonly", "disabled", "required", "name", "shortcutkey", "show", "tabindex", "autoclose", "arialabel"];
|
|
721
|
+
var keysToCompare = ["datavalue", "placeholder", "readonly", "disabled", "required", "name", "shortcutkey", "show", "tabindex", "autoclose", "arialabel", "hidden", "show"];
|
|
673
722
|
return keysToCompare.every(function (key) {
|
|
674
723
|
return prevProps[key] === nextProps[key];
|
|
675
724
|
});
|
|
@@ -22,7 +22,6 @@ var CAPTION_POSITION = {
|
|
|
22
22
|
floating: "caption-floating"
|
|
23
23
|
};
|
|
24
24
|
function WmComposite(props) {
|
|
25
|
-
var _clsx;
|
|
26
25
|
var children = props.children,
|
|
27
26
|
styles = props.styles,
|
|
28
27
|
className = props.className,
|
|
@@ -129,8 +128,9 @@ function WmComposite(props) {
|
|
|
129
128
|
return __jsx("div", {
|
|
130
129
|
ref: containerRef,
|
|
131
130
|
style: styles,
|
|
132
|
-
className: (0, _clsx2["default"])((
|
|
133
|
-
id: id
|
|
131
|
+
className: (0, _clsx2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, DEFAULT_CLASS, true), className || "", Boolean(className)), "".concat(CAPTION_POSITION[captionposition], " ").concat(required ? "required" : "")),
|
|
132
|
+
id: id,
|
|
133
|
+
hidden: props.hidden
|
|
134
134
|
}, childElements);
|
|
135
135
|
}
|
|
136
136
|
WmComposite.displayName = "WmComposite";
|
|
@@ -94,7 +94,17 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
94
94
|
var _currencyConstants$CU;
|
|
95
95
|
return ((_currencyConstants$CU = _constants.currencyConstants.CURRENCY_INFO[currencyCode]) === null || _currencyConstants$CU === void 0 ? void 0 : _currencyConstants$CU.symbol) || "$";
|
|
96
96
|
}, [currencyCode]);
|
|
97
|
-
var
|
|
97
|
+
var effectiveDecimalPlaces = (0, _react.useMemo)(function () {
|
|
98
|
+
if (decimalplaces > 0) return decimalplaces;
|
|
99
|
+
if (inputmode === "financial" && step && step < 1) {
|
|
100
|
+
var stepStr = step.toString();
|
|
101
|
+
if (stepStr.includes(".")) {
|
|
102
|
+
return stepStr.split(".")[1].length;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return decimalplaces;
|
|
106
|
+
}, [decimalplaces, inputmode, step]);
|
|
107
|
+
var htmlInputMode = effectiveDecimalPlaces > 0 ? "decimal" : "numeric";
|
|
98
108
|
var validateValue = (0, _react.useCallback)(function (value) {
|
|
99
109
|
return (0, _formatUtil.validateNumericValue)(value, required, minvalue, maxvalue);
|
|
100
110
|
}, [required, minvalue, maxvalue]);
|
|
@@ -102,7 +112,7 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
102
112
|
var validation = validateValue(value);
|
|
103
113
|
setShowError(!validation.isValid);
|
|
104
114
|
if (onChange || listener !== null && listener !== void 0 && listener.onChange) {
|
|
105
|
-
(0, _formatUtil.handleValidatedValueUpdate)(value, name, inputEl.current, onChange, listener, prevDatavalue, setPrevDatavalue, props);
|
|
115
|
+
(0, _formatUtil.handleValidatedValueUpdate)(value, props.fieldName || name, inputEl.current, onChange, listener, prevDatavalue, setPrevDatavalue, props);
|
|
106
116
|
}
|
|
107
117
|
}, parseInt(updatedelay || "10"), {
|
|
108
118
|
leading: parseInt(updatedelay) === 0
|
|
@@ -121,60 +131,44 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
121
131
|
}, [onFocus]);
|
|
122
132
|
var handleArrowPress = (0, _react.useCallback)(function (event, direction) {
|
|
123
133
|
event.preventDefault();
|
|
124
|
-
if (readonly || disabled || step === 0) {
|
|
134
|
+
if (readonly || disabled || !step || step === 0) {
|
|
125
135
|
return;
|
|
126
136
|
}
|
|
127
137
|
var targetVal = event.target.value.replace(/,/g, "");
|
|
128
138
|
var currentValue = targetVal && !isNaN(Number.parseFloat(targetVal)) ? Number.parseFloat(targetVal) : datavalue;
|
|
129
|
-
var newValue = (0, _formatUtil.handleStepValue)(currentValue, direction, step,
|
|
139
|
+
var newValue = (0, _formatUtil.handleStepValue)(currentValue, direction, step, effectiveDecimalPlaces, minvalue, maxvalue);
|
|
130
140
|
var cleanValue = newValue.toString();
|
|
131
141
|
setInternalValue(cleanValue);
|
|
132
142
|
setDatavalue(newValue);
|
|
133
143
|
setRawInputValue(cleanValue);
|
|
134
|
-
if (onChange) {
|
|
135
|
-
var syntheticEvent = {
|
|
136
|
-
target: {
|
|
137
|
-
value: newValue.toString(),
|
|
138
|
-
name: name
|
|
139
|
-
},
|
|
140
|
-
currentTarget: inputEl.current
|
|
141
|
-
};
|
|
142
|
-
onChange(syntheticEvent, props, newValue, prevDatavalue);
|
|
143
|
-
}
|
|
144
144
|
var validation = validateValue(newValue);
|
|
145
145
|
setShowError(!validation.isValid);
|
|
146
146
|
if (updateon === "keypress") {
|
|
147
147
|
debouncedUpdateValue(newValue);
|
|
148
148
|
}
|
|
149
|
-
}, [readonly, disabled, step, datavalue, minvalue, maxvalue,
|
|
149
|
+
}, [readonly, disabled, step, datavalue, minvalue, maxvalue, effectiveDecimalPlaces, validateValue, onChange, name, props, prevDatavalue, debouncedUpdateValue]);
|
|
150
150
|
var handleKeyDown = (0, _react.useCallback)(function (event) {
|
|
151
|
-
if (
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
151
|
+
if (step && step !== 0) {
|
|
152
|
+
if (event.key === "ArrowUp") {
|
|
153
|
+
handleArrowPress(event, "UP");
|
|
154
|
+
return;
|
|
155
|
+
} else if (event.key === "ArrowDown") {
|
|
156
|
+
handleArrowPress(event, "DOWN");
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (event.key === "Enter" && onEnter) {
|
|
156
161
|
onEnter(event);
|
|
157
162
|
}
|
|
158
163
|
if (onKeyDown) {
|
|
159
164
|
onKeyDown(event);
|
|
160
165
|
}
|
|
161
|
-
}, [handleArrowPress, onEnter, onKeyDown]);
|
|
166
|
+
}, [handleArrowPress, onEnter, onKeyDown, step]);
|
|
162
167
|
var handleInputChange = function handleInputChange(event) {
|
|
163
|
-
var result = (0, _formatUtil.handleNumericInputChange)(event.target.value, inputmode,
|
|
168
|
+
var result = (0, _formatUtil.handleNumericInputChange)(event.target.value, inputmode, effectiveDecimalPlaces, setRawInputValue);
|
|
164
169
|
if (result.newVal === null && event.target.value !== "") {
|
|
165
170
|
return; // Invalid input, don't update
|
|
166
171
|
}
|
|
167
|
-
if (onChange) {
|
|
168
|
-
var _result$newVal;
|
|
169
|
-
var syntheticEvent = {
|
|
170
|
-
target: {
|
|
171
|
-
value: ((_result$newVal = result.newVal) === null || _result$newVal === void 0 ? void 0 : _result$newVal.toString()) || "",
|
|
172
|
-
name: name
|
|
173
|
-
},
|
|
174
|
-
currentTarget: inputEl.current
|
|
175
|
-
};
|
|
176
|
-
onChange(syntheticEvent, props, result.newVal, prevDatavalue);
|
|
177
|
-
}
|
|
178
172
|
setInternalValue(result.inputValue);
|
|
179
173
|
setDatavalue(result.newVal);
|
|
180
174
|
var validation = validateValue(result.newVal);
|
|
@@ -186,7 +180,7 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
186
180
|
var handleBlur = function handleBlur(e) {
|
|
187
181
|
var _listener$Widgets;
|
|
188
182
|
// Ensure proper formatting on blur
|
|
189
|
-
var formattedValue = (0, _formatUtil.formatOnBlur)(datavalue, rawInputValue, trailingzero,
|
|
183
|
+
var formattedValue = (0, _formatUtil.formatOnBlur)(datavalue, rawInputValue, trailingzero, effectiveDecimalPlaces);
|
|
190
184
|
if (formattedValue) {
|
|
191
185
|
setInternalValue(formattedValue);
|
|
192
186
|
}
|
|
@@ -194,16 +188,7 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
194
188
|
debouncedUpdateValue(datavalue);
|
|
195
189
|
}
|
|
196
190
|
onBlur === null || onBlur === void 0 || onBlur(e, listener === null || listener === void 0 || (_listener$Widgets = listener.Widgets) === null || _listener$Widgets === void 0 ? void 0 : _listener$Widgets[name]);
|
|
197
|
-
if (updateon === "blur"
|
|
198
|
-
var syntheticEvent = {
|
|
199
|
-
target: {
|
|
200
|
-
value: (datavalue === null || datavalue === void 0 ? void 0 : datavalue.toString()) || "",
|
|
201
|
-
name: name
|
|
202
|
-
},
|
|
203
|
-
currentTarget: inputEl.current
|
|
204
|
-
};
|
|
205
|
-
onChange(syntheticEvent, props, datavalue, prevDatavalue);
|
|
206
|
-
} else if (updateon === "blur") {
|
|
191
|
+
if (updateon === "blur") {
|
|
207
192
|
debouncedUpdateValue(datavalue);
|
|
208
193
|
}
|
|
209
194
|
var validation = validateValue(datavalue);
|
|
@@ -212,7 +197,7 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
212
197
|
setShowError(!validation.isValid);
|
|
213
198
|
};
|
|
214
199
|
(0, _react.useEffect)(function () {
|
|
215
|
-
if (initialDataValue
|
|
200
|
+
if (initialDataValue != datavalue) {
|
|
216
201
|
setDatavalue(initialDataValue);
|
|
217
202
|
var cleanValue = initialDataValue !== null ? initialDataValue.toString() : "";
|
|
218
203
|
setInternalValue(cleanValue);
|
|
@@ -228,15 +213,16 @@ var WmCurrency = function WmCurrency(props) {
|
|
|
228
213
|
onMouseLeave: handleMouseLeave
|
|
229
214
|
} : {}), onFocus ? {
|
|
230
215
|
onFocus: handleFocus
|
|
231
|
-
} : {}),
|
|
216
|
+
} : {}), {
|
|
232
217
|
onBlur: handleBlur
|
|
233
|
-
}
|
|
218
|
+
}), {
|
|
234
219
|
onChange: handleInputChange
|
|
235
|
-
}
|
|
220
|
+
}), {
|
|
236
221
|
onKeyDown: handleKeyDown
|
|
237
|
-
}
|
|
222
|
+
});
|
|
238
223
|
return __jsx(_material.Box, {
|
|
239
224
|
component: "div",
|
|
225
|
+
hidden: props.hidden,
|
|
240
226
|
className: "".concat(_constants.currencyConstants.DEFAULT_CLS, " ").concat(className || "", " ").concat(isTouched ? "ng-touched" : "ng-untouched", " ").concat(isDirty ? "ng-invalid" : ""),
|
|
241
227
|
inputMode: inputmode
|
|
242
228
|
}, __jsx(_material.Box, {
|
|
@@ -22,6 +22,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
22
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
23
23
|
var DEFAULT_CLS = "app-checkbox checkbox";
|
|
24
24
|
var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (props) {
|
|
25
|
+
var _props$hidden;
|
|
25
26
|
var _props$caption = props.caption,
|
|
26
27
|
caption = _props$caption === void 0 ? " " : _props$caption,
|
|
27
28
|
_props$checkedvalue = props.checkedvalue,
|
|
@@ -78,15 +79,10 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
|
|
|
78
79
|
if (datavalue === null || datavalue === undefined) {
|
|
79
80
|
setActualValue(null);
|
|
80
81
|
} else {
|
|
81
|
-
var
|
|
82
|
+
var isEqual = datavalue === checkedvalue || String(datavalue) === String(checkedvalue);
|
|
83
|
+
var newValue = isEqual ? checkedvalue : uncheckedvalue;
|
|
82
84
|
setActualValue(newValue);
|
|
83
85
|
prevRefValue.current = datavalue;
|
|
84
|
-
var event = {
|
|
85
|
-
target: {
|
|
86
|
-
checked: newValue
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
handleChange(event);
|
|
90
86
|
}
|
|
91
87
|
}, [datavalue]);
|
|
92
88
|
var handleChange = (0, _react.useCallback)(function (event) {
|
|
@@ -98,23 +94,21 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
|
|
|
98
94
|
prevRefValue.current = newValue;
|
|
99
95
|
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
100
96
|
listener.onChange(props.fieldName || name, {
|
|
101
|
-
datavalue: newValue
|
|
97
|
+
datavalue: newValue,
|
|
98
|
+
// Pass the actual value, not boolean
|
|
99
|
+
displayValue: newValue
|
|
102
100
|
});
|
|
103
101
|
}
|
|
104
|
-
if (listener !== null && listener !== void 0 && listener.Widgets[name]) {
|
|
105
|
-
// Store the actual value, not just boolean
|
|
106
|
-
listener.Widgets[name].displayValue = newValue;
|
|
107
|
-
}
|
|
108
102
|
if (onChange) {
|
|
109
103
|
// Pass the actual value in the onChange callback
|
|
110
104
|
onChange(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name], newValue, actualValue !== null && actualValue !== void 0 ? actualValue : uncheckedvalue);
|
|
111
105
|
}
|
|
112
106
|
}, [checkedvalue, uncheckedvalue, onChange, listener, name, actualValue]);
|
|
113
107
|
var handleBlur = (0, _react.useCallback)(function (event) {
|
|
114
|
-
onBlur === null || onBlur === void 0 || onBlur(event);
|
|
108
|
+
onBlur === null || onBlur === void 0 || onBlur(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
|
|
115
109
|
}, [onBlur]);
|
|
116
110
|
var handleFocus = (0, _react.useCallback)(function (event) {
|
|
117
|
-
onFocus === null || onFocus === void 0 || onFocus(event);
|
|
111
|
+
onFocus === null || onFocus === void 0 || onFocus(event, listener === null || listener === void 0 ? void 0 : listener.Widgets[name]);
|
|
118
112
|
}, [onFocus]);
|
|
119
113
|
var handleKeyDown = (0, _react.useCallback)(function (event) {
|
|
120
114
|
if (disabled || readonly) {
|
|
@@ -132,14 +126,12 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
|
|
|
132
126
|
return;
|
|
133
127
|
}
|
|
134
128
|
var newValue = event.target.checked ? checkedvalue : uncheckedvalue;
|
|
135
|
-
if (listener !== null && listener !== void 0 && listener.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
datavalue: newValue // Pass the actual value
|
|
142
|
-
}));
|
|
129
|
+
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
130
|
+
listener.onChange(name, {
|
|
131
|
+
datavalue: newValue,
|
|
132
|
+
// Pass the actual value
|
|
133
|
+
displayValue: newValue
|
|
134
|
+
});
|
|
143
135
|
}
|
|
144
136
|
if (onClick) {
|
|
145
137
|
// Pass the actual value in the onClick callback
|
|
@@ -167,15 +159,18 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
|
|
|
167
159
|
onFocus: handleFocus
|
|
168
160
|
} : {});
|
|
169
161
|
return __jsx("div", (0, _extends2["default"])({
|
|
170
|
-
|
|
171
|
-
|
|
162
|
+
hidden: (_props$hidden = props.hidden) !== null && _props$hidden !== void 0 ? _props$hidden : false,
|
|
163
|
+
className: checkboxClasses
|
|
172
164
|
}, name ? {
|
|
173
165
|
name: name
|
|
174
166
|
} : {}, caption ? {
|
|
175
167
|
caption: caption
|
|
176
168
|
} : {}, type === "toggle" ? {
|
|
177
169
|
type: "toggle"
|
|
178
|
-
} : {}
|
|
170
|
+
} : {}, {
|
|
171
|
+
disabled: disabled,
|
|
172
|
+
style: props.styles
|
|
173
|
+
}), __jsx(_Box["default"], {
|
|
179
174
|
component: "label",
|
|
180
175
|
className: "wm-checkbox-label ".concat(!isChecked ? "unchecked" : "", " ").concat(disabled || readonly ? "disabled" : "", " ").concat(required && caption ? "required" : ""),
|
|
181
176
|
onKeyDown: handleKeyDown
|
|
@@ -217,13 +212,13 @@ var WmCheckbox = exports.WmCheckbox = /*#__PURE__*/(0, _react.memo)(function (pr
|
|
|
217
212
|
"aria-hidden": "true",
|
|
218
213
|
tabIndex: -1,
|
|
219
214
|
disabled: disabled,
|
|
220
|
-
value: actualValue === null || actualValue === undefined ? "" : String(actualValue) // Handle null/undefined values
|
|
215
|
+
value: actualValue === null || actualValue === undefined ? "false" : String(actualValue) // Handle null/undefined values
|
|
221
216
|
}));
|
|
222
217
|
}, function (prev, next) {
|
|
223
|
-
var keys = ["datavalue", "checkedvalue", "uncheckedvalue", "disabled", "readonly", "required", "shortcutkey", "show", "tabindex", "type", "className"];
|
|
218
|
+
var keys = ["datavalue", "checkedvalue", "uncheckedvalue", "disabled", "readonly", "required", "shortcutkey", "show", "tabindex", "type", "className", "hidden"];
|
|
224
219
|
return keys.every(function (key) {
|
|
225
220
|
return prev[key] === next[key];
|
|
226
221
|
});
|
|
227
222
|
});
|
|
228
223
|
WmCheckbox.displayName = "WmCheckbox";
|
|
229
|
-
var _default = exports["default"] = (0, _withFormController["default"])(
|
|
224
|
+
var _default = exports["default"] = (0, _withBaseWrapper.withBaseWrapper)((0, _withFormController["default"])(WmCheckbox));
|
|
@@ -21,6 +21,7 @@ var _withBaseWrapper = require("@wavemaker/react-runtime/higherOrder/withBaseWra
|
|
|
21
21
|
var _constants = require("@wavemaker/react-runtime/components/constants");
|
|
22
22
|
var _transformedDatasetUtils = require("@wavemaker/react-runtime/utils/transformedDataset-utils");
|
|
23
23
|
var _input = require("@base-ui-components/react/input");
|
|
24
|
+
var _utils = require("./utils");
|
|
24
25
|
var _withFormController = _interopRequireDefault(require("@wavemaker/react-runtime/components/data/form/form-controller/withFormController"));
|
|
25
26
|
var _listHelpers = require("@wavemaker/react-runtime/components/data/list/utils/list-helpers");
|
|
26
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
@@ -58,7 +59,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
58
59
|
datafield = _props$datafield === void 0 ? "" : _props$datafield,
|
|
59
60
|
_props$displayfield = props.displayfield,
|
|
60
61
|
displayfield = _props$displayfield === void 0 ? "" : _props$displayfield,
|
|
61
|
-
|
|
62
|
+
getDisplayExpression = props.getDisplayExpression,
|
|
62
63
|
_props$dataset = props.dataset,
|
|
63
64
|
dataset = _props$dataset === void 0 ? "Option 1, Option 2, Option 3" : _props$dataset,
|
|
64
65
|
_props$datavalue = props.datavalue,
|
|
@@ -134,9 +135,12 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
134
135
|
}, [itemsperrow]);
|
|
135
136
|
var transformedDataset = (0, _react.useMemo)(function () {
|
|
136
137
|
if (!dataset) return [];
|
|
137
|
-
|
|
138
|
+
if (usekeys) {
|
|
139
|
+
return (0, _transformedDatasetUtils.transformDataWithKeys)(dataset);
|
|
140
|
+
}
|
|
141
|
+
var data = (0, _transformedDatasetUtils.transformDataset)(dataset, datafield, displayfield, undefined, getDisplayExpression, orderby, groupby, dataPath, "", match);
|
|
138
142
|
return data;
|
|
139
|
-
}, [dataset, datafield, displayfield,
|
|
143
|
+
}, [dataset, datafield, displayfield, getDisplayExpression, orderby, groupby, match, usekeys, dataPath]);
|
|
140
144
|
(0, _react.useEffect)(function () {
|
|
141
145
|
setIsLoading(true);
|
|
142
146
|
setError(null);
|
|
@@ -215,6 +219,8 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
215
219
|
if (matchedKeys.length > 0 && !(0, _lodashEs.isEqual)(matchedKeys, localSelectedKeys)) {
|
|
216
220
|
setLocalSelectedKeys(matchedKeys);
|
|
217
221
|
}
|
|
222
|
+
} else if (normalizedDatavalue.length == 0 && (!datavalue || datavalue.length == 0)) {
|
|
223
|
+
setLocalSelectedKeys([]);
|
|
218
224
|
}
|
|
219
225
|
}
|
|
220
226
|
}, [datavalue]); // Removed localSelectedKeys from deps
|
|
@@ -234,10 +240,16 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
234
240
|
return _objectSpread(_objectSpread({}, prevState), {}, (0, _defineProperty2["default"])({}, key, !prevState[key]));
|
|
235
241
|
});
|
|
236
242
|
}, []);
|
|
237
|
-
var handleCheckboxChange = (0, _react.useCallback)(function (event, key) {
|
|
243
|
+
var handleCheckboxChange = (0, _react.useCallback)(function (event, key, dataObject) {
|
|
238
244
|
if (disabled || readonly) return;
|
|
239
245
|
var currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
|
|
240
246
|
var isCurrentlySelected = currentSelectedKeys.some(function (k) {
|
|
247
|
+
if (datafield == _constants.ALL_FIELDS) {
|
|
248
|
+
if (usekeys) {
|
|
249
|
+
return (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(key);
|
|
250
|
+
}
|
|
251
|
+
return (0, _lodashEs.isEqual)(k, dataObject);
|
|
252
|
+
}
|
|
241
253
|
if ((0, _typeof2["default"])(k) === "object" && datafield) {
|
|
242
254
|
return k[datafield] === key;
|
|
243
255
|
}
|
|
@@ -247,6 +259,9 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
247
259
|
var newKeys;
|
|
248
260
|
if (isChecked) {
|
|
249
261
|
var selectedItem = (0, _lodashEs.find)(localDatasetItems, function (item) {
|
|
262
|
+
if (datafield == _constants.ALL_FIELDS) {
|
|
263
|
+
return (0, _lodashEs.isEqual)(item.value, dataObject);
|
|
264
|
+
}
|
|
250
265
|
return (0, _lodashEs.toString)(item.key) === (0, _lodashEs.toString)(key);
|
|
251
266
|
});
|
|
252
267
|
if (usekeys) {
|
|
@@ -258,10 +273,16 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
258
273
|
} else {
|
|
259
274
|
value = selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value;
|
|
260
275
|
}
|
|
261
|
-
newKeys = [].concat((0, _toConsumableArray2["default"])(currentSelectedKeys), [value || key]);
|
|
276
|
+
newKeys = [].concat((0, _toConsumableArray2["default"])(currentSelectedKeys), [(selectedItem === null || selectedItem === void 0 ? void 0 : selectedItem.value) || key]);
|
|
262
277
|
}
|
|
263
278
|
} else {
|
|
264
279
|
newKeys = currentSelectedKeys.filter(function (k) {
|
|
280
|
+
if (datafield == _constants.ALL_FIELDS) {
|
|
281
|
+
if (usekeys) {
|
|
282
|
+
return (0, _lodashEs.toString)(k) !== (0, _lodashEs.toString)(key);
|
|
283
|
+
}
|
|
284
|
+
return !(0, _lodashEs.isEqual)(k, dataObject);
|
|
285
|
+
}
|
|
265
286
|
if ((0, _typeof2["default"])(k) === "object" && datafield) {
|
|
266
287
|
return k[datafield] !== key;
|
|
267
288
|
}
|
|
@@ -272,9 +293,6 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
272
293
|
if (onchange) {
|
|
273
294
|
onchange(newKeys);
|
|
274
295
|
}
|
|
275
|
-
if (listener !== null && listener !== void 0 && listener.Widgets[name]) {
|
|
276
|
-
listener.Widgets[name].displayValue = newKeys;
|
|
277
|
-
}
|
|
278
296
|
if (onChange && name) {
|
|
279
297
|
onChange(event, listener.Widgets[name], newKeys, currentSelectedKeys);
|
|
280
298
|
}
|
|
@@ -282,20 +300,22 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
282
300
|
onClick(event, listener.Widgets[name]);
|
|
283
301
|
}
|
|
284
302
|
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
285
|
-
|
|
286
|
-
|
|
303
|
+
var displayValues = (0, _utils.getCheckboxsetDisplayValues)(localDatasetItems, newKeys, datafield, usekeys);
|
|
304
|
+
listener.onChange(props.fieldName || name, {
|
|
305
|
+
datavalue: newKeys,
|
|
306
|
+
displayValue: displayValues
|
|
287
307
|
});
|
|
288
308
|
}
|
|
289
309
|
}, [localDatasetItems, localSelectedKeys, disabled, readonly, usekeys, datafield, onchange, props, onChange, name]);
|
|
290
310
|
var isItemChecked = (0, _react.useCallback)(function (item) {
|
|
291
311
|
var currentSelectedKeys = Array.isArray(localSelectedKeys) ? localSelectedKeys : [];
|
|
292
312
|
return currentSelectedKeys.some(function (k) {
|
|
293
|
-
if (
|
|
294
|
-
return k
|
|
313
|
+
if (datafield == _constants.ALL_FIELDS) {
|
|
314
|
+
return usekeys ? (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(item.key) : (0, _lodashEs.isEqual)(k, item.value);
|
|
295
315
|
}
|
|
296
316
|
return (0, _lodashEs.toString)(k) === (0, _lodashEs.toString)(item.key);
|
|
297
317
|
});
|
|
298
|
-
}, [localSelectedKeys, datafield]);
|
|
318
|
+
}, [localSelectedKeys, datafield, usekeys]);
|
|
299
319
|
var renderCheckboxItem = (0, _react.useCallback)(function (item, index) {
|
|
300
320
|
var isChecked = isItemChecked(item);
|
|
301
321
|
return __jsx(_ListItem["default"], {
|
|
@@ -307,7 +327,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
307
327
|
onClick: function onClick(e) {
|
|
308
328
|
var tag = e.target.tagName;
|
|
309
329
|
if (tag !== "INPUT" && tag !== "LABEL" && tag !== "SPAN") {
|
|
310
|
-
handleCheckboxChange(e, (0, _lodashEs.toString)(item.key));
|
|
330
|
+
handleCheckboxChange(e, (0, _lodashEs.toString)(item.key), item === null || item === void 0 ? void 0 : item.dataObject);
|
|
311
331
|
}
|
|
312
332
|
},
|
|
313
333
|
component: "li",
|
|
@@ -330,7 +350,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
330
350
|
role: "checkbox",
|
|
331
351
|
"aria-checked": isChecked,
|
|
332
352
|
onChange: function onChange(e) {
|
|
333
|
-
return handleCheckboxChange(e, (0, _lodashEs.toString)(item.key));
|
|
353
|
+
return handleCheckboxChange(e, (0, _lodashEs.toString)(item.key), item === null || item === void 0 ? void 0 : item.dataObject);
|
|
334
354
|
},
|
|
335
355
|
style: disabled || readonly ? {
|
|
336
356
|
background: "transparent"
|
|
@@ -338,8 +358,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
338
358
|
}), __jsx(_Typography["default"], {
|
|
339
359
|
component: "span",
|
|
340
360
|
className: "caption",
|
|
341
|
-
id: "checkbox-list-label-".concat(item.key + "_" + index)
|
|
342
|
-
disabled: disabled || readonly
|
|
361
|
+
id: "checkbox-list-label-".concat(item.key + "_" + index)
|
|
343
362
|
}, item.label)));
|
|
344
363
|
}, [isItemChecked, handleCheckboxChange, disabled, readonly, tabIndex, name, itemclass, itemsPerRowClass]);
|
|
345
364
|
var renderGroupHeader = (0, _react.useCallback)(function (group) {
|
|
@@ -399,6 +418,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
399
418
|
}
|
|
400
419
|
};
|
|
401
420
|
return __jsx(_List["default"], {
|
|
421
|
+
hidden: props.hidden,
|
|
402
422
|
style: styles,
|
|
403
423
|
className: (0, _clsx["default"])(DEFAULT_CLASS, className, itemclass, listclass),
|
|
404
424
|
onMouseEnter: function onMouseEnter(event) {
|
|
@@ -444,7 +464,7 @@ var WmCheckboxset = exports.WmCheckboxset = /*#__PURE__*/(0, _react.memo)(functi
|
|
|
444
464
|
return renderCheckboxItem(item, index);
|
|
445
465
|
}));
|
|
446
466
|
}, function (prev, current) {
|
|
447
|
-
var keys = ["datavalue", "dataset", "show", "disabled", "readonly", "orderby", "groupby", "collapsible", "datasetItems", "collapsed", "onClick", "onChange", "onMouseEnter", "onMouseLeave", "
|
|
467
|
+
var keys = ["datavalue", "dataset", "show", "disabled", "readonly", "orderby", "groupby", "collapsible", "datasetItems", "collapsed", "onClick", "onChange", "onMouseEnter", "onMouseLeave", "getDisplayExpression", "datafield", "displayfield", "dataset", "datavalue", "usekeys", "groupby", "hidden"];
|
|
448
468
|
return keys.every(function (key) {
|
|
449
469
|
if (key === "datasetItems") {
|
|
450
470
|
return (0, _lodashEs.isEqual)(prev[key], current[key]);
|