primereact 10.9.4 → 10.9.6
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/api/api.cjs.js +9 -1
- package/api/api.cjs.min.js +1 -1
- package/api/api.d.ts +5 -3
- package/api/api.esm.js +9 -1
- package/api/api.esm.min.js +1 -1
- package/api/api.js +9 -1
- package/api/api.min.js +1 -1
- package/autocomplete/autocomplete.cjs.js +13 -1
- package/autocomplete/autocomplete.cjs.min.js +1 -1
- package/autocomplete/autocomplete.d.ts +5 -5
- package/autocomplete/autocomplete.esm.js +14 -2
- package/autocomplete/autocomplete.esm.min.js +1 -1
- package/autocomplete/autocomplete.js +13 -1
- package/autocomplete/autocomplete.min.js +1 -1
- package/breadcrumb/breadcrumb.cjs.js +2 -1
- package/breadcrumb/breadcrumb.cjs.min.js +1 -1
- package/breadcrumb/breadcrumb.esm.js +2 -1
- package/breadcrumb/breadcrumb.esm.min.js +1 -1
- package/breadcrumb/breadcrumb.js +2 -1
- package/breadcrumb/breadcrumb.min.js +1 -1
- package/calendar/calendar.cjs.js +37 -7
- package/calendar/calendar.cjs.min.js +1 -1
- package/calendar/calendar.esm.js +38 -8
- package/calendar/calendar.esm.min.js +1 -1
- package/calendar/calendar.js +37 -7
- package/calendar/calendar.min.js +1 -1
- package/cascadeselect/cascadeselect.cjs.js +62 -5
- package/cascadeselect/cascadeselect.cjs.min.js +1 -1
- package/cascadeselect/cascadeselect.d.ts +22 -0
- package/cascadeselect/cascadeselect.esm.js +63 -6
- package/cascadeselect/cascadeselect.esm.min.js +1 -1
- package/cascadeselect/cascadeselect.js +63 -7
- package/cascadeselect/cascadeselect.min.js +1 -1
- package/checkbox/checkbox.cjs.js +1 -1
- package/checkbox/checkbox.cjs.min.js +1 -1
- package/checkbox/checkbox.esm.js +1 -1
- package/checkbox/checkbox.esm.min.js +1 -1
- package/checkbox/checkbox.js +1 -1
- package/checkbox/checkbox.min.js +1 -1
- package/chip/chip.cjs.js +15 -2
- package/chip/chip.cjs.min.js +1 -1
- package/chip/chip.esm.js +17 -4
- package/chip/chip.esm.min.js +1 -1
- package/chip/chip.js +15 -2
- package/chip/chip.min.js +1 -1
- package/chips/chips.cjs.js +1 -1
- package/chips/chips.cjs.min.js +1 -1
- package/chips/chips.esm.js +1 -1
- package/chips/chips.esm.min.js +1 -1
- package/chips/chips.js +1 -1
- package/chips/chips.min.js +1 -1
- package/colorpicker/colorpicker.cjs.js +9 -2
- package/colorpicker/colorpicker.cjs.min.js +1 -1
- package/colorpicker/colorpicker.esm.js +9 -2
- package/colorpicker/colorpicker.esm.min.js +1 -1
- package/colorpicker/colorpicker.js +9 -2
- package/colorpicker/colorpicker.min.js +1 -1
- package/confirmpopup/confirmpopup.cjs.js +10 -2
- package/confirmpopup/confirmpopup.cjs.min.js +1 -1
- package/confirmpopup/confirmpopup.esm.js +10 -2
- package/confirmpopup/confirmpopup.esm.min.js +1 -1
- package/confirmpopup/confirmpopup.js +10 -2
- package/confirmpopup/confirmpopup.min.js +1 -1
- package/core/core.js +214 -38
- package/core/core.min.js +9 -9
- package/datatable/datatable.cjs.js +359 -291
- package/datatable/datatable.cjs.min.js +1 -1
- package/datatable/datatable.d.ts +79 -3
- package/datatable/datatable.esm.js +360 -292
- package/datatable/datatable.esm.min.js +1 -1
- package/datatable/datatable.js +359 -291
- package/datatable/datatable.min.js +1 -1
- package/dialog/dialog.cjs.js +3 -2
- package/dialog/dialog.cjs.min.js +1 -1
- package/dialog/dialog.d.ts +6 -1
- package/dialog/dialog.esm.js +3 -2
- package/dialog/dialog.esm.min.js +1 -1
- package/dialog/dialog.js +3 -2
- package/dialog/dialog.min.js +1 -1
- package/dropdown/dropdown.cjs.js +26 -5
- package/dropdown/dropdown.cjs.min.js +1 -1
- package/dropdown/dropdown.d.ts +4 -0
- package/dropdown/dropdown.esm.js +26 -5
- package/dropdown/dropdown.esm.min.js +1 -1
- package/dropdown/dropdown.js +26 -5
- package/dropdown/dropdown.min.js +1 -1
- package/fileupload/fileupload.cjs.js +4 -2
- package/fileupload/fileupload.cjs.min.js +1 -1
- package/fileupload/fileupload.esm.js +4 -2
- package/fileupload/fileupload.esm.min.js +1 -1
- package/fileupload/fileupload.js +4 -2
- package/fileupload/fileupload.min.js +1 -1
- package/galleria/galleria.cjs.js +1 -0
- package/galleria/galleria.cjs.min.js +1 -1
- package/galleria/galleria.esm.js +1 -0
- package/galleria/galleria.esm.min.js +1 -1
- package/galleria/galleria.js +1 -0
- package/galleria/galleria.min.js +1 -1
- package/hooks/hooks.cjs.js +16 -6
- package/hooks/hooks.cjs.min.js +1 -1
- package/hooks/hooks.esm.js +16 -6
- package/hooks/hooks.esm.min.js +1 -1
- package/hooks/hooks.js +16 -6
- package/hooks/hooks.min.js +1 -1
- package/inputmask/inputmask.cjs.js +1 -1
- package/inputmask/inputmask.cjs.min.js +1 -1
- package/inputmask/inputmask.esm.js +1 -1
- package/inputmask/inputmask.esm.min.js +1 -1
- package/inputmask/inputmask.js +1 -1
- package/inputmask/inputmask.min.js +1 -1
- package/inputnumber/inputnumber.cjs.js +11 -3
- package/inputnumber/inputnumber.cjs.min.js +1 -1
- package/inputnumber/inputnumber.esm.js +11 -3
- package/inputnumber/inputnumber.esm.min.js +1 -1
- package/inputnumber/inputnumber.js +11 -3
- package/inputnumber/inputnumber.min.js +1 -1
- package/inputotp/inputotp.cjs.js +1 -0
- package/inputotp/inputotp.cjs.min.js +1 -1
- package/inputotp/inputotp.esm.js +1 -0
- package/inputotp/inputotp.esm.min.js +1 -1
- package/inputotp/inputotp.js +1 -0
- package/inputotp/inputotp.min.js +1 -1
- package/listbox/listbox.d.ts +4 -4
- package/mention/mention.cjs.js +18 -9
- package/mention/mention.cjs.min.js +1 -1
- package/mention/mention.d.ts +5 -0
- package/mention/mention.esm.js +18 -9
- package/mention/mention.esm.min.js +1 -1
- package/mention/mention.js +18 -9
- package/mention/mention.min.js +1 -1
- package/menu/menu.cjs.js +14 -3
- package/menu/menu.cjs.min.js +1 -1
- package/menu/menu.esm.js +15 -4
- package/menu/menu.esm.min.js +1 -1
- package/menu/menu.js +14 -3
- package/menu/menu.min.js +1 -1
- package/menubar/menubar.cjs.js +6 -9
- package/menubar/menubar.cjs.min.js +1 -1
- package/menubar/menubar.esm.js +6 -9
- package/menubar/menubar.esm.min.js +1 -1
- package/menubar/menubar.js +6 -9
- package/menubar/menubar.min.js +1 -1
- package/multiselect/multiselect.cjs.js +68 -18
- package/multiselect/multiselect.cjs.min.js +1 -1
- package/multiselect/multiselect.esm.js +68 -18
- package/multiselect/multiselect.esm.min.js +1 -1
- package/multiselect/multiselect.js +68 -18
- package/multiselect/multiselect.min.js +1 -1
- package/multistatecheckbox/multistatecheckbox.cjs.js +17 -9
- package/multistatecheckbox/multistatecheckbox.cjs.min.js +1 -1
- package/multistatecheckbox/multistatecheckbox.esm.js +17 -9
- package/multistatecheckbox/multistatecheckbox.esm.min.js +1 -1
- package/multistatecheckbox/multistatecheckbox.js +17 -9
- package/multistatecheckbox/multistatecheckbox.min.js +1 -1
- package/orderlist/orderlist.cjs.js +34 -3
- package/orderlist/orderlist.cjs.min.js +1 -1
- package/orderlist/orderlist.esm.js +34 -3
- package/orderlist/orderlist.esm.min.js +1 -1
- package/orderlist/orderlist.js +34 -3
- package/orderlist/orderlist.min.js +1 -1
- package/overlaypanel/overlaypanel.cjs.js +9 -10
- package/overlaypanel/overlaypanel.cjs.min.js +1 -1
- package/overlaypanel/overlaypanel.esm.js +9 -10
- package/overlaypanel/overlaypanel.esm.min.js +1 -1
- package/overlaypanel/overlaypanel.js +9 -10
- package/overlaypanel/overlaypanel.min.js +1 -1
- package/package.json +1 -1
- package/paginator/paginator.cjs.js +9 -1
- package/paginator/paginator.cjs.min.js +1 -1
- package/paginator/paginator.esm.js +9 -1
- package/paginator/paginator.esm.min.js +1 -1
- package/paginator/paginator.js +9 -1
- package/paginator/paginator.min.js +1 -1
- package/password/password.cjs.js +9 -2
- package/password/password.cjs.min.js +1 -1
- package/password/password.esm.js +10 -3
- package/password/password.esm.min.js +1 -1
- package/password/password.js +9 -2
- package/password/password.min.js +1 -1
- package/picklist/picklist.cjs.js +9 -1
- package/picklist/picklist.cjs.min.js +1 -1
- package/picklist/picklist.esm.js +9 -1
- package/picklist/picklist.esm.min.js +1 -1
- package/picklist/picklist.js +9 -1
- package/picklist/picklist.min.js +1 -1
- package/primereact.all.cjs.js +931 -442
- package/primereact.all.cjs.min.js +1 -1
- package/primereact.all.esm.js +932 -443
- package/primereact.all.esm.min.js +1 -1
- package/primereact.all.js +931 -442
- package/primereact.all.min.js +1 -1
- package/radiobutton/radiobutton.cjs.js +2 -2
- package/radiobutton/radiobutton.cjs.min.js +1 -1
- package/radiobutton/radiobutton.d.ts +1 -1
- package/radiobutton/radiobutton.esm.js +2 -2
- package/radiobutton/radiobutton.esm.min.js +1 -1
- package/radiobutton/radiobutton.js +2 -2
- package/radiobutton/radiobutton.min.js +1 -1
- package/slidemenu/slidemenu.cjs.js +9 -2
- package/slidemenu/slidemenu.cjs.min.js +1 -1
- package/slidemenu/slidemenu.esm.js +10 -3
- package/slidemenu/slidemenu.esm.min.js +1 -1
- package/slidemenu/slidemenu.js +9 -2
- package/slidemenu/slidemenu.min.js +1 -1
- package/tree/tree.cjs.js +1 -1
- package/tree/tree.cjs.min.js +1 -1
- package/tree/tree.esm.js +1 -1
- package/tree/tree.esm.min.js +1 -1
- package/tree/tree.js +1 -1
- package/tree/tree.min.js +1 -1
- package/treeselect/treeselect.cjs.js +19 -8
- package/treeselect/treeselect.cjs.min.js +1 -1
- package/treeselect/treeselect.d.ts +33 -0
- package/treeselect/treeselect.esm.js +19 -8
- package/treeselect/treeselect.esm.min.js +1 -1
- package/treeselect/treeselect.js +19 -8
- package/treeselect/treeselect.min.js +1 -1
- package/treetable/treetable.cjs.js +1 -1
- package/treetable/treetable.cjs.min.js +1 -1
- package/treetable/treetable.esm.js +1 -1
- package/treetable/treetable.esm.min.js +1 -1
- package/treetable/treetable.js +1 -1
- package/treetable/treetable.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.cjs.js +7 -6
- package/tristatecheckbox/tristatecheckbox.cjs.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.esm.js +7 -6
- package/tristatecheckbox/tristatecheckbox.esm.min.js +1 -1
- package/tristatecheckbox/tristatecheckbox.js +7 -6
- package/tristatecheckbox/tristatecheckbox.min.js +1 -1
- package/utils/utils.cjs.js +138 -18
- package/utils/utils.cjs.min.js +1 -1
- package/utils/utils.d.ts +5 -1
- package/utils/utils.esm.js +138 -18
- package/utils/utils.esm.min.js +1 -1
- package/utils/utils.js +138 -18
- package/utils/utils.min.js +1 -1
- package/web-types.json +105 -11
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import React__default from 'react';
|
|
3
|
+
import React__default, { Fragment } from 'react';
|
|
4
4
|
import PrimeReact$1, { FilterMatchMode as FilterMatchMode$1, PrimeReactContext, ariaLabel as ariaLabel$1, localeOption, FilterOperator, FilterService } from 'primereact/api';
|
|
5
5
|
import { ComponentBase, useHandleStyle } from 'primereact/componentbase';
|
|
6
6
|
import { ObjectUtils, classNames, DomHandler, IconUtils, UniqueComponentId, ZIndexUtils } from 'primereact/utils';
|
|
@@ -713,7 +713,7 @@ var Checkbox = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (i
|
|
|
713
713
|
return props.checked === props.trueValue;
|
|
714
714
|
};
|
|
715
715
|
var _onChange = function onChange(event) {
|
|
716
|
-
if (props.disabled || props.
|
|
716
|
+
if (props.disabled || props.readOnly) {
|
|
717
717
|
return;
|
|
718
718
|
}
|
|
719
719
|
if (props.onChange) {
|
|
@@ -972,7 +972,7 @@ var RadioButton = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
|
|
|
972
972
|
onChange(event);
|
|
973
973
|
};
|
|
974
974
|
var onChange = function onChange(event) {
|
|
975
|
-
if (props.disabled || props.
|
|
975
|
+
if (props.disabled || props.readOnly) {
|
|
976
976
|
return;
|
|
977
977
|
}
|
|
978
978
|
if (props.onChange) {
|
|
@@ -1075,7 +1075,7 @@ var RadioButton = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function
|
|
|
1075
1075
|
onBlur: onBlur,
|
|
1076
1076
|
onChange: onChange,
|
|
1077
1077
|
disabled: props.disabled,
|
|
1078
|
-
readOnly: props.
|
|
1078
|
+
readOnly: props.readOnly,
|
|
1079
1079
|
required: props.required,
|
|
1080
1080
|
tabIndex: props.tabIndex,
|
|
1081
1081
|
className: cx('input')
|
|
@@ -1148,7 +1148,7 @@ RowRadioButton.displayName = 'RowRadioButton';
|
|
|
1148
1148
|
|
|
1149
1149
|
function ownKeys$b(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; }
|
|
1150
1150
|
function _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
1151
|
-
var
|
|
1151
|
+
var Cell = function Cell(props) {
|
|
1152
1152
|
var mergeProps = useMergeProps();
|
|
1153
1153
|
var _React$useState = React.useState(props.editing),
|
|
1154
1154
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -1176,13 +1176,9 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1176
1176
|
var getColumnProp = function getColumnProp(name) {
|
|
1177
1177
|
return ColumnBase.getCProp(props.column, name);
|
|
1178
1178
|
};
|
|
1179
|
-
var getColumnProps = function getColumnProps() {
|
|
1180
|
-
return ColumnBase.getCProps(props.column);
|
|
1181
|
-
};
|
|
1182
1179
|
var getColumnPTOptions = function getColumnPTOptions(key) {
|
|
1183
|
-
var cProps = getColumnProps();
|
|
1184
1180
|
var columnMetaData = {
|
|
1185
|
-
props: cProps,
|
|
1181
|
+
props: props.cProps,
|
|
1186
1182
|
parent: props.metaData,
|
|
1187
1183
|
hostName: props.hostName,
|
|
1188
1184
|
state: {
|
|
@@ -1198,10 +1194,8 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1198
1194
|
};
|
|
1199
1195
|
return mergeProps(ptm("column.".concat(key), {
|
|
1200
1196
|
column: columnMetaData
|
|
1201
|
-
}), ptm("column.".concat(key), columnMetaData), ptmo(cProps, key, columnMetaData));
|
|
1197
|
+
}), ptm("column.".concat(key), columnMetaData), ptmo(props.cProps, key, columnMetaData));
|
|
1202
1198
|
};
|
|
1203
|
-
var field = getColumnProp('field') || "field_".concat(props.index);
|
|
1204
|
-
var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;
|
|
1205
1199
|
var isEditable = function isEditable() {
|
|
1206
1200
|
return ObjectUtils.isNotEmpty(props.editMode) && getColumnProp('editor');
|
|
1207
1201
|
};
|
|
@@ -1226,34 +1220,22 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1226
1220
|
_useEventListener2 = _slicedToArray(_useEventListener, 2),
|
|
1227
1221
|
bindDocumentClickListener = _useEventListener2[0],
|
|
1228
1222
|
unbindDocumentClickListener = _useEventListener2[1];
|
|
1229
|
-
var isSelected = function isSelected() {
|
|
1230
|
-
return props.selection ? props.selection instanceof Array ? findIndex(props.selection) > -1 : equals(props.selection) : false;
|
|
1231
|
-
};
|
|
1232
|
-
var equalsData = function equalsData(data) {
|
|
1233
|
-
return props.compareSelectionBy === 'equals' ? data === props.rowData : ObjectUtils.equals(data, props.rowData, props.dataKey);
|
|
1234
|
-
};
|
|
1235
|
-
var equals = function equals(selectedCell) {
|
|
1236
|
-
return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsData(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === props.index);
|
|
1237
|
-
};
|
|
1238
1223
|
var isOutsideClicked = function isOutsideClicked(target) {
|
|
1239
1224
|
return elementRef.current && !(elementRef.current.isSameNode(target) || elementRef.current.contains(target));
|
|
1240
1225
|
};
|
|
1241
|
-
var getVirtualScrollerOption = function getVirtualScrollerOption(option) {
|
|
1242
|
-
return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
|
|
1243
|
-
};
|
|
1244
1226
|
var getStyle = function getStyle() {
|
|
1245
1227
|
var bodyStyle = getColumnProp('bodyStyle');
|
|
1246
1228
|
var columnStyle = getColumnProp('style');
|
|
1247
|
-
return
|
|
1229
|
+
return props.frozenCol ? Object.assign({}, columnStyle, bodyStyle, styleObjectState) : Object.assign({}, columnStyle, bodyStyle);
|
|
1248
1230
|
};
|
|
1249
1231
|
var getCellParams = function getCellParams() {
|
|
1250
1232
|
return {
|
|
1251
|
-
value: resolveFieldData(),
|
|
1252
|
-
field: field,
|
|
1233
|
+
value: props.resolveFieldData(),
|
|
1234
|
+
field: props.field,
|
|
1253
1235
|
rowData: props.rowData,
|
|
1254
1236
|
rowIndex: props.rowIndex,
|
|
1255
1237
|
cellIndex: props.index,
|
|
1256
|
-
selected:
|
|
1238
|
+
selected: props.isCellSelected,
|
|
1257
1239
|
column: props.column,
|
|
1258
1240
|
props: props
|
|
1259
1241
|
};
|
|
@@ -1264,20 +1246,6 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1264
1246
|
originalEvent: event
|
|
1265
1247
|
}, params);
|
|
1266
1248
|
};
|
|
1267
|
-
var resolveFieldData = function resolveFieldData(data) {
|
|
1268
|
-
return ObjectUtils.resolveFieldData(data || props.rowData, field);
|
|
1269
|
-
};
|
|
1270
|
-
var getEditingRowData = function getEditingRowData() {
|
|
1271
|
-
return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;
|
|
1272
|
-
};
|
|
1273
|
-
var getTabIndex = function getTabIndex(cellSelected) {
|
|
1274
|
-
return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && props.index === 0 ? props.tabIndex : -1 : null;
|
|
1275
|
-
};
|
|
1276
|
-
var findIndex = function findIndex(collection) {
|
|
1277
|
-
return (collection || []).findIndex(function (data) {
|
|
1278
|
-
return equals(data);
|
|
1279
|
-
});
|
|
1280
|
-
};
|
|
1281
1249
|
var closeCell = function closeCell(event) {
|
|
1282
1250
|
var params = getCellCallbackParams(event);
|
|
1283
1251
|
var onBeforeCellEditHide = getColumnProp('onBeforeCellEditHide');
|
|
@@ -1298,7 +1266,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1298
1266
|
var switchCellToViewMode = function switchCellToViewMode(event, submit) {
|
|
1299
1267
|
var callbackParams = getCellCallbackParams(event);
|
|
1300
1268
|
var newRowData = _objectSpread$b({}, editingRowDataStateRef.current);
|
|
1301
|
-
var newValue = resolveFieldData(newRowData);
|
|
1269
|
+
var newValue = props.resolveFieldData(newRowData);
|
|
1302
1270
|
var params = _objectSpread$b(_objectSpread$b({}, callbackParams), {}, {
|
|
1303
1271
|
newRowData: newRowData,
|
|
1304
1272
|
newValue: newValue
|
|
@@ -1323,128 +1291,20 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1323
1291
|
}
|
|
1324
1292
|
setEditingRowDataState(newRowData);
|
|
1325
1293
|
};
|
|
1326
|
-
var _findNextSelectableCell = function findNextSelectableCell(cell) {
|
|
1327
|
-
var nextCell = cell.nextElementSibling;
|
|
1328
|
-
return nextCell ? DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : _findNextSelectableCell(nextCell) : null;
|
|
1329
|
-
};
|
|
1330
|
-
var _findPrevSelectableCell = function findPrevSelectableCell(cell) {
|
|
1331
|
-
var prevCell = cell.previousElementSibling;
|
|
1332
|
-
return prevCell ? DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : _findPrevSelectableCell(prevCell) : null;
|
|
1333
|
-
};
|
|
1334
|
-
var _findDownSelectableCell = function findDownSelectableCell(cell) {
|
|
1335
|
-
var downRow = cell.parentElement.nextElementSibling;
|
|
1336
|
-
var downCell = downRow ? downRow.children[props.index] : null;
|
|
1337
|
-
return downRow && downCell ? DomHandler.getAttribute(downRow, 'data-p-selectable-row') && DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : _findDownSelectableCell(downCell) : null;
|
|
1338
|
-
};
|
|
1339
|
-
var _findUpSelectableCell = function findUpSelectableCell(cell) {
|
|
1340
|
-
var upRow = cell.parentElement.previousElementSibling;
|
|
1341
|
-
var upCell = upRow ? upRow.children[props.index] : null;
|
|
1342
|
-
return upRow && upCell ? DomHandler.getAttribute(upRow, 'data-p-selectable-row') && DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : _findUpSelectableCell(upCell) : null;
|
|
1343
|
-
};
|
|
1344
|
-
var changeTabIndex = function changeTabIndex(currentCell, nextCell) {
|
|
1345
|
-
if (currentCell && nextCell) {
|
|
1346
|
-
currentCell.tabIndex = -1;
|
|
1347
|
-
nextCell.tabIndex = props.tabIndex;
|
|
1348
|
-
}
|
|
1349
|
-
};
|
|
1350
|
-
var focusOnElement = function focusOnElement() {
|
|
1351
|
-
clearTimeout(focusTimeout.current);
|
|
1352
|
-
focusTimeout.current = setTimeout(function () {
|
|
1353
|
-
if (editingState) {
|
|
1354
|
-
var focusableEl = props.editMode === 'cell' ? DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section="editorkeyhelperlabel"])') : DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save="true"]');
|
|
1355
|
-
focusableEl && focusableEl.focus();
|
|
1356
|
-
}
|
|
1357
|
-
keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);
|
|
1358
|
-
}, 1);
|
|
1359
|
-
};
|
|
1360
|
-
var focusOnInit = function focusOnInit() {
|
|
1361
|
-
clearTimeout(initFocusTimeout.current);
|
|
1362
|
-
initFocusTimeout.current = setTimeout(function () {
|
|
1363
|
-
var focusableEl = props.editMode === 'row' ? DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init="true"]') : null;
|
|
1364
|
-
focusableEl && focusableEl.focus();
|
|
1365
|
-
}, 1);
|
|
1366
|
-
};
|
|
1367
|
-
var updateStickyPosition = function updateStickyPosition() {
|
|
1368
|
-
if (getColumnProp('frozen')) {
|
|
1369
|
-
var styleObject = _objectSpread$b({}, styleObjectState);
|
|
1370
|
-
var align = getColumnProp('alignFrozen');
|
|
1371
|
-
if (align === 'right') {
|
|
1372
|
-
var right = 0;
|
|
1373
|
-
var next = elementRef.current && elementRef.current.nextElementSibling;
|
|
1374
|
-
if (next && next.classList.contains('p-frozen-column')) {
|
|
1375
|
-
right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
|
|
1376
|
-
}
|
|
1377
|
-
styleObject.right = right + 'px';
|
|
1378
|
-
} else {
|
|
1379
|
-
var left = 0;
|
|
1380
|
-
var prev = elementRef.current && elementRef.current.previousElementSibling;
|
|
1381
|
-
if (prev && prev.classList.contains('p-frozen-column')) {
|
|
1382
|
-
left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
|
|
1383
|
-
}
|
|
1384
|
-
styleObject.left = left + 'px';
|
|
1385
|
-
}
|
|
1386
|
-
var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;
|
|
1387
|
-
!isSameStyle && setStyleObjectState(styleObject);
|
|
1388
|
-
}
|
|
1389
|
-
};
|
|
1390
1294
|
var editorCallback = function editorCallback(val) {
|
|
1391
1295
|
var editingRowData = _objectSpread$b({}, editingRowDataState);
|
|
1392
|
-
ObjectUtils.mutateFieldData(editingRowData, field, val);
|
|
1296
|
+
ObjectUtils.mutateFieldData(editingRowData, props.field, val);
|
|
1393
1297
|
setEditingRowDataState(editingRowData);
|
|
1394
1298
|
|
|
1395
1299
|
// update editing meta for complete methods on row mode
|
|
1396
|
-
var currentData = getEditingRowData();
|
|
1300
|
+
var currentData = props.getEditingRowData();
|
|
1397
1301
|
if (currentData) {
|
|
1398
|
-
ObjectUtils.mutateFieldData(currentData, field, val);
|
|
1302
|
+
ObjectUtils.mutateFieldData(currentData, props.field, val);
|
|
1399
1303
|
}
|
|
1400
1304
|
editingRowDataStateRef.current = editingRowData;
|
|
1401
1305
|
};
|
|
1402
1306
|
var _onClick = function onClick(event) {
|
|
1403
|
-
|
|
1404
|
-
if (props.editMode !== 'row' && isEditable() && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.selected)) {
|
|
1405
|
-
selfClick.current = true;
|
|
1406
|
-
var onBeforeCellEditShow = getColumnProp('onBeforeCellEditShow');
|
|
1407
|
-
var onCellEditInit = getColumnProp('onCellEditInit');
|
|
1408
|
-
var cellEditValidatorEvent = getColumnProp('cellEditValidatorEvent');
|
|
1409
|
-
if (onBeforeCellEditShow) {
|
|
1410
|
-
// if user returns false do not show the editor
|
|
1411
|
-
if (onBeforeCellEditShow(params) === false) {
|
|
1412
|
-
return;
|
|
1413
|
-
}
|
|
1414
|
-
|
|
1415
|
-
// if user prevents default stop the editor
|
|
1416
|
-
if (event && event.defaultPrevented) {
|
|
1417
|
-
return;
|
|
1418
|
-
}
|
|
1419
|
-
}
|
|
1420
|
-
|
|
1421
|
-
// If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.
|
|
1422
|
-
setTimeout(function () {
|
|
1423
|
-
setEditingState(true);
|
|
1424
|
-
if (onCellEditInit) {
|
|
1425
|
-
if (onCellEditInit(params) === false) {
|
|
1426
|
-
return;
|
|
1427
|
-
}
|
|
1428
|
-
|
|
1429
|
-
// if user prevents default stop the editor
|
|
1430
|
-
if (event && event.defaultPrevented) {
|
|
1431
|
-
return;
|
|
1432
|
-
}
|
|
1433
|
-
}
|
|
1434
|
-
if (cellEditValidatorEvent === 'click') {
|
|
1435
|
-
bindDocumentClickListener();
|
|
1436
|
-
overlayEventListener.current = function (e) {
|
|
1437
|
-
if (!isOutsideClicked(e.target)) {
|
|
1438
|
-
selfClick.current = true;
|
|
1439
|
-
}
|
|
1440
|
-
};
|
|
1441
|
-
OverlayService.on('overlay-click', overlayEventListener.current);
|
|
1442
|
-
}
|
|
1443
|
-
}, 1);
|
|
1444
|
-
}
|
|
1445
|
-
if (props.allowCellSelection && props.onClick) {
|
|
1446
|
-
props.onClick(params);
|
|
1447
|
-
}
|
|
1307
|
+
props.onClick(event, getCellCallbackParams(event), isEditable(), editingState, setEditingState, selfClick, props.column, bindDocumentClickListener, overlayEventListener, isOutsideClicked);
|
|
1448
1308
|
};
|
|
1449
1309
|
var _onMouseDown = function onMouseDown(event) {
|
|
1450
1310
|
var params = getCellCallbackParams(event);
|
|
@@ -1468,7 +1328,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1468
1328
|
cell = event.currentTarget;
|
|
1469
1329
|
switch (event.code) {
|
|
1470
1330
|
case 'ArrowLeft':
|
|
1471
|
-
var prevCell =
|
|
1331
|
+
var prevCell = props.findPrevSelectableCell(cell);
|
|
1472
1332
|
if (prevCell) {
|
|
1473
1333
|
changeTabIndex(cell, prevCell);
|
|
1474
1334
|
prevCell.focus();
|
|
@@ -1476,7 +1336,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1476
1336
|
event.preventDefault();
|
|
1477
1337
|
break;
|
|
1478
1338
|
case 'ArrowRight':
|
|
1479
|
-
var nextCell =
|
|
1339
|
+
var nextCell = props.findNextSelectableCell(cell);
|
|
1480
1340
|
if (nextCell) {
|
|
1481
1341
|
changeTabIndex(cell, nextCell);
|
|
1482
1342
|
nextCell.focus();
|
|
@@ -1484,7 +1344,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1484
1344
|
event.preventDefault();
|
|
1485
1345
|
break;
|
|
1486
1346
|
case 'ArrowUp':
|
|
1487
|
-
var upCell =
|
|
1347
|
+
var upCell = props.findUpSelectableCell(cell, index);
|
|
1488
1348
|
if (upCell) {
|
|
1489
1349
|
changeTabIndex(cell, upCell);
|
|
1490
1350
|
upCell.focus();
|
|
@@ -1492,7 +1352,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1492
1352
|
event.preventDefault();
|
|
1493
1353
|
break;
|
|
1494
1354
|
case 'ArrowDown':
|
|
1495
|
-
var downCell =
|
|
1355
|
+
var downCell = props.findDownSelectableCell(cell, index);
|
|
1496
1356
|
if (downCell) {
|
|
1497
1357
|
changeTabIndex(cell, downCell);
|
|
1498
1358
|
downCell.focus();
|
|
@@ -1531,13 +1391,6 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1531
1391
|
index: props.rowIndex
|
|
1532
1392
|
});
|
|
1533
1393
|
};
|
|
1534
|
-
var onCheckboxChange = function onCheckboxChange(event) {
|
|
1535
|
-
props.onCheckboxChange({
|
|
1536
|
-
originalEvent: event,
|
|
1537
|
-
data: props.rowData,
|
|
1538
|
-
index: props.rowIndex
|
|
1539
|
-
});
|
|
1540
|
-
};
|
|
1541
1394
|
var onRowToggle = function onRowToggle(event) {
|
|
1542
1395
|
props.onRowToggle({
|
|
1543
1396
|
originalEvent: event,
|
|
@@ -1550,8 +1403,8 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1550
1403
|
props.onRowEditInit({
|
|
1551
1404
|
originalEvent: event,
|
|
1552
1405
|
data: props.rowData,
|
|
1553
|
-
newData: getEditingRowData(),
|
|
1554
|
-
field: field,
|
|
1406
|
+
newData: props.getEditingRowData(),
|
|
1407
|
+
field: props.field,
|
|
1555
1408
|
index: props.rowIndex
|
|
1556
1409
|
});
|
|
1557
1410
|
};
|
|
@@ -1559,32 +1412,26 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1559
1412
|
props.onRowEditSave({
|
|
1560
1413
|
originalEvent: event,
|
|
1561
1414
|
data: props.rowData,
|
|
1562
|
-
newData: getEditingRowData(),
|
|
1563
|
-
field: field,
|
|
1415
|
+
newData: props.getEditingRowData(),
|
|
1416
|
+
field: props.field,
|
|
1564
1417
|
index: props.rowIndex
|
|
1565
1418
|
});
|
|
1566
|
-
focusOnInit();
|
|
1419
|
+
props.focusOnInit(initFocusTimeout, elementRef);
|
|
1567
1420
|
};
|
|
1568
1421
|
var onRowEditCancel = function onRowEditCancel(event) {
|
|
1569
1422
|
props.onRowEditCancel({
|
|
1570
1423
|
originalEvent: event,
|
|
1571
1424
|
data: props.rowData,
|
|
1572
|
-
newData: getEditingRowData(),
|
|
1573
|
-
field: field,
|
|
1425
|
+
newData: props.getEditingRowData(),
|
|
1426
|
+
field: props.field,
|
|
1574
1427
|
index: props.rowIndex
|
|
1575
1428
|
});
|
|
1576
|
-
focusOnInit();
|
|
1429
|
+
props.focusOnInit(initFocusTimeout, elementRef);
|
|
1577
1430
|
};
|
|
1578
1431
|
React.useEffect(function () {
|
|
1579
|
-
if (
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
});
|
|
1583
|
-
React.useEffect(function () {
|
|
1584
|
-
if (props.editMode === 'cell' || props.editMode === 'row') {
|
|
1585
|
-
focusOnElement();
|
|
1586
|
-
}
|
|
1587
|
-
}, [props.editMode, props.editing, editingState]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1432
|
+
if (props.frozenCol) props.updateStickyPosition(elementRef, props.frozenCol, props.alignFrozenCol, styleObjectState, setStyleObjectState);
|
|
1433
|
+
if (props.editMode === 'cell' || props.editMode === 'row') props.focusOnElement(focusTimeout, editingState, elementRef, keyHelperRef);
|
|
1434
|
+
}, [props.editMode, props.editing, editingState, props.frozenCol, props.alignFrozenCol]); // eslint-disable-line react-hooks/exhaustive-deps
|
|
1588
1435
|
|
|
1589
1436
|
React.useEffect(function () {
|
|
1590
1437
|
if (props.editMode === 'row' && props.editing !== editingState) {
|
|
@@ -1593,7 +1440,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1593
1440
|
}, [props.editMode, props.editing, editingState]);
|
|
1594
1441
|
useUpdateEffect(function () {
|
|
1595
1442
|
if (props.editMode === 'cell' || props.editMode === 'row') {
|
|
1596
|
-
var editingRowData = getEditingRowData();
|
|
1443
|
+
var editingRowData = props.getEditingRowData();
|
|
1597
1444
|
setEditingRowDataState(editingRowData);
|
|
1598
1445
|
editingRowDataStateRef.current = editingRowData;
|
|
1599
1446
|
}
|
|
@@ -1603,7 +1450,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1603
1450
|
var callbackParams = getCellCallbackParams();
|
|
1604
1451
|
var params = _objectSpread$b(_objectSpread$b({}, callbackParams), {}, {
|
|
1605
1452
|
editing: editingState,
|
|
1606
|
-
editingKey: editingKey
|
|
1453
|
+
editingKey: props.editingKey
|
|
1607
1454
|
});
|
|
1608
1455
|
props.onEditingMetaChange(params);
|
|
1609
1456
|
}
|
|
@@ -1616,16 +1463,16 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1616
1463
|
}
|
|
1617
1464
|
});
|
|
1618
1465
|
var createLoading = function createLoading() {
|
|
1619
|
-
var options = getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
|
|
1466
|
+
var options = props.getVirtualScrollerOption('getLoaderOptions')(props.rowIndex, {
|
|
1620
1467
|
cellIndex: props.index,
|
|
1621
1468
|
cellFirst: props.index === 0,
|
|
1622
|
-
cellLast: props.index === getVirtualScrollerOption('columns').length - 1,
|
|
1469
|
+
cellLast: props.index === props.getVirtualScrollerOption('columns').length - 1,
|
|
1623
1470
|
cellEven: props.index % 2 === 0,
|
|
1624
1471
|
cellOdd: props.index % 2 !== 0,
|
|
1625
1472
|
column: props.column,
|
|
1626
|
-
field: field
|
|
1473
|
+
field: props.field
|
|
1627
1474
|
});
|
|
1628
|
-
var content = ObjectUtils.getJSXElement(getVirtualScrollerOption('loadingTemplate'), options);
|
|
1475
|
+
var content = ObjectUtils.getJSXElement(props.getVirtualScrollerOption('loadingTemplate'), options);
|
|
1629
1476
|
var bodyCellProps = mergeProps(getColumnPTOptions('bodyCell'), {
|
|
1630
1477
|
role: 'cell'
|
|
1631
1478
|
});
|
|
@@ -1634,20 +1481,20 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1634
1481
|
var createElement = function createElement() {
|
|
1635
1482
|
var content;
|
|
1636
1483
|
var editorKeyHelper;
|
|
1637
|
-
var cellSelected = props.allowCellSelection &&
|
|
1484
|
+
var cellSelected = props.allowCellSelection && props.isCellSelected;
|
|
1638
1485
|
var isRowEditor = props.editMode === 'row';
|
|
1639
|
-
var tabIndex = getTabIndex(cellSelected);
|
|
1486
|
+
var tabIndex = props.getTabIndex(cellSelected, props.index);
|
|
1640
1487
|
var selectionMode = getColumnProp('selectionMode');
|
|
1641
1488
|
var rowReorder = getColumnProp('rowReorder');
|
|
1642
1489
|
var header = getColumnProp('header');
|
|
1643
1490
|
var body = getColumnProp('body');
|
|
1644
1491
|
var editor = getColumnProp('editor');
|
|
1645
|
-
var frozen =
|
|
1492
|
+
var frozen = props.frozenCol;
|
|
1646
1493
|
var align = getColumnProp('align');
|
|
1647
|
-
var value = resolveFieldData();
|
|
1494
|
+
var value = props.resolveFieldData();
|
|
1648
1495
|
var columnBodyOptions = {
|
|
1649
1496
|
column: props.column,
|
|
1650
|
-
field: field,
|
|
1497
|
+
field: props.field,
|
|
1651
1498
|
rowIndex: props.rowIndex,
|
|
1652
1499
|
frozenRow: props.frozenRow,
|
|
1653
1500
|
props: props.tableProps
|
|
@@ -1672,12 +1519,12 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1672
1519
|
if (showSelection) {
|
|
1673
1520
|
var ariaLabelField = props.selectionAriaLabel || props.tableProps.dataKey;
|
|
1674
1521
|
var ariaLabelText = ObjectUtils.resolveFieldData(props.rowData, ariaLabelField);
|
|
1675
|
-
label = "".concat(props.
|
|
1522
|
+
label = "".concat(props.isRowSelected ? ariaLabel$1('unselectRow') : ariaLabel$1('selectRow'), " ").concat(ariaLabelText);
|
|
1676
1523
|
}
|
|
1677
1524
|
content = showSelection && /*#__PURE__*/React.createElement(React.Fragment, null, selectionMode === 'single' && /*#__PURE__*/React.createElement(RowRadioButton, {
|
|
1678
1525
|
hostName: props.hostName,
|
|
1679
1526
|
column: props.column,
|
|
1680
|
-
checked: props.
|
|
1527
|
+
checked: props.isRowSelected,
|
|
1681
1528
|
disabled: !props.isSelectable({
|
|
1682
1529
|
data: props.rowData,
|
|
1683
1530
|
index: props.rowIndex
|
|
@@ -1692,12 +1539,12 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1692
1539
|
}), selectionMode === 'multiple' && /*#__PURE__*/React.createElement(RowCheckbox, {
|
|
1693
1540
|
hostName: props.hostName,
|
|
1694
1541
|
column: props.column,
|
|
1695
|
-
checked: props.
|
|
1542
|
+
checked: props.isRowSelected,
|
|
1696
1543
|
disabled: !props.isSelectable({
|
|
1697
1544
|
data: props.rowData,
|
|
1698
1545
|
index: props.rowIndex
|
|
1699
1546
|
}),
|
|
1700
|
-
onChange: onCheckboxChange,
|
|
1547
|
+
onChange: props.onCheckboxChange,
|
|
1701
1548
|
tabIndex: props.tabIndex,
|
|
1702
1549
|
ariaLabel: label,
|
|
1703
1550
|
checkIcon: props.checkIcon,
|
|
@@ -1747,7 +1594,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1747
1594
|
expanderProps.element = content;
|
|
1748
1595
|
content = ObjectUtils.getJSXElement(body, props.rowData, {
|
|
1749
1596
|
column: props.column,
|
|
1750
|
-
field: field,
|
|
1597
|
+
field: props.field,
|
|
1751
1598
|
rowIndex: props.rowIndex,
|
|
1752
1599
|
frozenRow: props.frozenRow,
|
|
1753
1600
|
props: props.tableProps,
|
|
@@ -1821,7 +1668,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1821
1668
|
rowEditorProps.element = content;
|
|
1822
1669
|
content = ObjectUtils.getJSXElement(body, props.rowData, {
|
|
1823
1670
|
column: props.column,
|
|
1824
|
-
field: field,
|
|
1671
|
+
field: props.field,
|
|
1825
1672
|
rowIndex: props.rowIndex,
|
|
1826
1673
|
frozenRow: props.frozenRow,
|
|
1827
1674
|
props: props.tableProps,
|
|
@@ -1831,7 +1678,7 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1831
1678
|
} else if (body && (!editingState || !editor)) {
|
|
1832
1679
|
content = body ? ObjectUtils.getJSXElement(body, props.rowData, {
|
|
1833
1680
|
column: props.column,
|
|
1834
|
-
field: field,
|
|
1681
|
+
field: props.field,
|
|
1835
1682
|
rowIndex: props.rowIndex,
|
|
1836
1683
|
frozenRow: props.frozenRow,
|
|
1837
1684
|
props: props.tableProps
|
|
@@ -1839,9 +1686,9 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1839
1686
|
} else if (editor && editingState) {
|
|
1840
1687
|
content = ObjectUtils.getJSXElement(editor, {
|
|
1841
1688
|
rowData: editingRowDataState,
|
|
1842
|
-
value: resolveFieldData(editingRowDataState),
|
|
1689
|
+
value: props.resolveFieldData(editingRowDataState),
|
|
1843
1690
|
column: props.column,
|
|
1844
|
-
field: field,
|
|
1691
|
+
field: props.field,
|
|
1845
1692
|
rowIndex: props.rowIndex,
|
|
1846
1693
|
frozenRow: props.frozenRow,
|
|
1847
1694
|
props: props.tableProps,
|
|
@@ -1909,7 +1756,29 @@ var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
|
1909
1756
|
ref: elementRef
|
|
1910
1757
|
}, bodyCellProps), editorKeyHelper, title, content);
|
|
1911
1758
|
};
|
|
1912
|
-
return getVirtualScrollerOption('loading') ? createLoading() : createElement();
|
|
1759
|
+
return props.getVirtualScrollerOption('loading') ? createLoading() : createElement();
|
|
1760
|
+
};
|
|
1761
|
+
|
|
1762
|
+
// RadioCheckCell is used for the Radio and Checkbox selection and has the isRowSelected dependency
|
|
1763
|
+
var RadioCheckCell = /*#__PURE__*/React.memo(function (props) {
|
|
1764
|
+
return /*#__PURE__*/React.createElement(Cell, props);
|
|
1765
|
+
}, function (prevProps, nextProps) {
|
|
1766
|
+
var keysToCompare = ['isRowSelected', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'rowData'];
|
|
1767
|
+
return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare);
|
|
1768
|
+
});
|
|
1769
|
+
RadioCheckCell.displayName = 'RadioCheckCell';
|
|
1770
|
+
var defaultKeysToCompare = ['rowData', 'field', 'allowCellSelection', 'isCellSelected', 'editMode', 'index', 'tabIndex', 'editing', 'expanded', 'editingMeta', 'frozenCol', 'alignFrozenCol'];
|
|
1771
|
+
var BodyCell = /*#__PURE__*/React.memo(function (props) {
|
|
1772
|
+
return /*#__PURE__*/React.createElement(Cell, props);
|
|
1773
|
+
}, function (prevProps, nextProps) {
|
|
1774
|
+
if (nextProps.cellMemo === false) return false;
|
|
1775
|
+
var memoProps = nextProps.cellMemoProps;
|
|
1776
|
+
var keysToCompare = Array.isArray(memoProps) && memoProps.every(function (prop) {
|
|
1777
|
+
return typeof prop === 'string';
|
|
1778
|
+
}) ? memoProps : defaultKeysToCompare;
|
|
1779
|
+
var memoPropsDepth = nextProps.cellMemoPropsDepth;
|
|
1780
|
+
var depth = typeof memoPropsDepth === 'number' && memoPropsDepth > 0 ? memoPropsDepth : 1;
|
|
1781
|
+
return ObjectUtils.selectiveCompare(prevProps, nextProps, keysToCompare, depth);
|
|
1913
1782
|
});
|
|
1914
1783
|
BodyCell.displayName = 'BodyCell';
|
|
1915
1784
|
|
|
@@ -1925,6 +1794,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
|
|
|
1925
1794
|
var _props$ptCallbacks = props.ptCallbacks,
|
|
1926
1795
|
ptm = _props$ptCallbacks.ptm,
|
|
1927
1796
|
cx = _props$ptCallbacks.cx;
|
|
1797
|
+
var isRowSelected = !props.allowCellSelection && props.selected || props.contextMenuSelected;
|
|
1928
1798
|
var getBodyRowPTOptions = function getBodyRowPTOptions(key) {
|
|
1929
1799
|
return ptm(key, {
|
|
1930
1800
|
parent: props.metaData,
|
|
@@ -1938,7 +1808,7 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
|
|
|
1938
1808
|
data: props.rowData,
|
|
1939
1809
|
index: props.rowIndex
|
|
1940
1810
|
}),
|
|
1941
|
-
selected:
|
|
1811
|
+
selected: isRowSelected,
|
|
1942
1812
|
stripedRows: props.metaData.props.stripedRows
|
|
1943
1813
|
}
|
|
1944
1814
|
});
|
|
@@ -1967,10 +1837,10 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
|
|
|
1967
1837
|
return equals(rowData, data);
|
|
1968
1838
|
});
|
|
1969
1839
|
};
|
|
1970
|
-
var changeTabIndex = function changeTabIndex(
|
|
1971
|
-
if (
|
|
1972
|
-
|
|
1973
|
-
|
|
1840
|
+
var changeTabIndex = function changeTabIndex(currentElement, nextElement) {
|
|
1841
|
+
if (currentElement && nextElement) {
|
|
1842
|
+
currentElement.tabIndex = -1;
|
|
1843
|
+
nextElement.tabIndex = props.tabIndex;
|
|
1974
1844
|
}
|
|
1975
1845
|
};
|
|
1976
1846
|
var findFirstSelectableRow = function findFirstSelectableRow(row) {
|
|
@@ -2297,32 +2167,179 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
|
|
|
2297
2167
|
onEditChange(e, false);
|
|
2298
2168
|
event.preventDefault();
|
|
2299
2169
|
};
|
|
2170
|
+
var equalsDataCell = function equalsDataCell(data) {
|
|
2171
|
+
return props.compareSelectionBy === 'equals' ? data === props.rowData : ObjectUtils.equals(data, props.rowData, props.dataKey);
|
|
2172
|
+
};
|
|
2173
|
+
var equalsCell = function equalsCell(selectedCell, field, colIndex) {
|
|
2174
|
+
return selectedCell && (selectedCell.rowIndex === props.rowIndex || equalsDataCell(selectedCell.rowData)) && (selectedCell.field === field || selectedCell.cellIndex === colIndex);
|
|
2175
|
+
};
|
|
2176
|
+
var findIndexCell = function findIndexCell(collection, field, colIndex) {
|
|
2177
|
+
return (collection || []).findIndex(function (data) {
|
|
2178
|
+
return equalsCell(data, field, colIndex);
|
|
2179
|
+
});
|
|
2180
|
+
};
|
|
2181
|
+
var isCellSelected = function isCellSelected(selection, field, colIndex) {
|
|
2182
|
+
return selection ? selection instanceof Array ? findIndexCell(selection, field, colIndex) > -1 : equalsCell(selection, field, colIndex) : false;
|
|
2183
|
+
};
|
|
2184
|
+
var onCheckboxChange = function onCheckboxChange(event) {
|
|
2185
|
+
props.onCheckboxChange({
|
|
2186
|
+
originalEvent: event,
|
|
2187
|
+
data: props.rowData,
|
|
2188
|
+
index: props.rowIndex
|
|
2189
|
+
});
|
|
2190
|
+
};
|
|
2191
|
+
var editingKey = props.dataKey ? props.rowData && props.rowData[props.dataKey] || props.rowIndex : props.rowIndex;
|
|
2192
|
+
var getVirtualScrollerOption = React.useCallback(function (option) {
|
|
2193
|
+
return props.virtualScrollerOptions ? props.virtualScrollerOptions[option] : null;
|
|
2194
|
+
}, [props.virtualScrollerOptions]);
|
|
2195
|
+
var getEditingRowData = function getEditingRowData() {
|
|
2196
|
+
return props.editingMeta && props.editingMeta[editingKey] ? props.editingMeta[editingKey].data : props.rowData;
|
|
2197
|
+
};
|
|
2198
|
+
var getTabIndexCell = React.useCallback(function (cellSelected, cellIndex) {
|
|
2199
|
+
return props.allowCellSelection ? cellSelected ? 0 : props.rowIndex === 0 && cellIndex === 0 ? props.tabIndex : -1 : null;
|
|
2200
|
+
}, [props.allowCellSelection, props.rowIndex, props.tabIndex]);
|
|
2201
|
+
var findNextSelectableCell = React.useCallback(function (cell) {
|
|
2202
|
+
var nextCell = cell.nextElementSibling;
|
|
2203
|
+
return nextCell ? DomHandler.getAttribute(nextCell, 'data-p-selectable-cell') ? nextCell : findNextSelectableCell(nextCell) : null;
|
|
2204
|
+
}, []);
|
|
2205
|
+
var findPrevSelectableCell = React.useCallback(function (cell) {
|
|
2206
|
+
var prevCell = cell.previousElementSibling;
|
|
2207
|
+
return prevCell ? DomHandler.getAttribute(prevCell, 'data-p-selectable-cell') ? prevCell : findPrevSelectableCell(prevCell) : null;
|
|
2208
|
+
}, []);
|
|
2209
|
+
var findDownSelectableCell = React.useCallback(function (cell, cellIndex) {
|
|
2210
|
+
var downRow = cell.parentElement.nextElementSibling;
|
|
2211
|
+
var downCell = downRow ? downRow.children[cellIndex] : null;
|
|
2212
|
+
return downRow && downCell ? DomHandler.getAttribute(downRow, 'data-p-selectable-row') && DomHandler.getAttribute(downCell, 'data-p-selectable-cell') ? downCell : findDownSelectableCell(downCell) : null;
|
|
2213
|
+
}, []);
|
|
2214
|
+
var findUpSelectableCell = React.useCallback(function (cell, cellIndex) {
|
|
2215
|
+
var upRow = cell.parentElement.previousElementSibling;
|
|
2216
|
+
var upCell = upRow ? upRow.children[cellIndex] : null;
|
|
2217
|
+
return upRow && upCell ? DomHandler.getAttribute(upRow, 'data-p-selectable-row') && DomHandler.getAttribute(upCell, 'data-p-selectable-cell') ? upCell : findUpSelectableCell(upCell) : null;
|
|
2218
|
+
}, []);
|
|
2219
|
+
var focusOnElement = React.useCallback(function (focusTimeoutRef, editingState, elementRef, keyHelperRef) {
|
|
2220
|
+
clearTimeout(focusTimeoutRef.current);
|
|
2221
|
+
focusTimeoutRef.current = setTimeout(function () {
|
|
2222
|
+
if (editingState) {
|
|
2223
|
+
var focusableEl = props.editMode === 'cell' ? DomHandler.getFirstFocusableElement(elementRef.current, ':not([data-pc-section="editorkeyhelperlabel"])') : DomHandler.findSingle(elementRef.current, '[data-p-row-editor-save="true"]');
|
|
2224
|
+
focusableEl && focusableEl.focus();
|
|
2225
|
+
}
|
|
2226
|
+
keyHelperRef.current && (keyHelperRef.current.tabIndex = editingState ? -1 : 0);
|
|
2227
|
+
}, 1);
|
|
2228
|
+
}, [props.editMode]);
|
|
2229
|
+
var focusOnInit = React.useCallback(function (initFocusTimeoutRef, elementRef) {
|
|
2230
|
+
clearTimeout(initFocusTimeoutRef.current);
|
|
2231
|
+
initFocusTimeoutRef.current = setTimeout(function () {
|
|
2232
|
+
var focusableEl = props.editMode === 'row' ? DomHandler.findSingle(elementRef.current, '[data-p-row-editor-init="true"]') : null;
|
|
2233
|
+
focusableEl && focusableEl.focus();
|
|
2234
|
+
}, 1);
|
|
2235
|
+
}, [props.editMode]);
|
|
2236
|
+
var updateStickyPosition = React.useCallback(function (elementRef, frozen, alignFrozen, styleObjectState, setStyleObjectState) {
|
|
2237
|
+
if (frozen) {
|
|
2238
|
+
var styleObject = _objectSpread$a({}, styleObjectState);
|
|
2239
|
+
if (alignFrozen === 'right') {
|
|
2240
|
+
var right = 0;
|
|
2241
|
+
var next = elementRef.current && elementRef.current.nextElementSibling;
|
|
2242
|
+
if (next && next.classList.contains('p-frozen-column')) {
|
|
2243
|
+
right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right || 0);
|
|
2244
|
+
}
|
|
2245
|
+
styleObject.right = right + 'px';
|
|
2246
|
+
} else {
|
|
2247
|
+
var left = 0;
|
|
2248
|
+
var prev = elementRef.current && elementRef.current.previousElementSibling;
|
|
2249
|
+
if (prev && prev.classList.contains('p-frozen-column')) {
|
|
2250
|
+
left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left || 0);
|
|
2251
|
+
}
|
|
2252
|
+
styleObject.left = left + 'px';
|
|
2253
|
+
}
|
|
2254
|
+
var isSameStyle = styleObjectState.left === styleObject.left && styleObjectState.right === styleObject.right;
|
|
2255
|
+
!isSameStyle && setStyleObjectState(styleObject);
|
|
2256
|
+
}
|
|
2257
|
+
}, []);
|
|
2258
|
+
var onCellClick = function onCellClick(event, params, isEditable, editingState, setEditingState, selfClick, column, bindDocumentClickListener, overlayEventListener, isOutsideClicked) {
|
|
2259
|
+
if (props.editMode !== 'row' && isEditable && !editingState && (props.selectOnEdit || !props.selectOnEdit && props.isRowSelected)) {
|
|
2260
|
+
selfClick.current = true;
|
|
2261
|
+
var onBeforeCellEditShow = getColumnProp(column, 'onBeforeCellEditShow');
|
|
2262
|
+
var onCellEditInit = getColumnProp(column, 'onCellEditInit');
|
|
2263
|
+
var cellEditValidatorEvent = getColumnProp(column, 'cellEditValidatorEvent');
|
|
2264
|
+
if (onBeforeCellEditShow) {
|
|
2265
|
+
// if user returns false do not show the editor
|
|
2266
|
+
if (onBeforeCellEditShow(params) === false) {
|
|
2267
|
+
return;
|
|
2268
|
+
}
|
|
2269
|
+
|
|
2270
|
+
// if user prevents default stop the editor
|
|
2271
|
+
if (event && event.defaultPrevented) {
|
|
2272
|
+
return;
|
|
2273
|
+
}
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2276
|
+
// If the data is sorted using sort icon, it has been added to wait for the sort operation when any cell is wanted to be opened.
|
|
2277
|
+
setTimeout(function () {
|
|
2278
|
+
setEditingState(true);
|
|
2279
|
+
if (onCellEditInit) {
|
|
2280
|
+
if (onCellEditInit(params) === false) {
|
|
2281
|
+
return;
|
|
2282
|
+
}
|
|
2283
|
+
|
|
2284
|
+
// if user prevents default stop the editor
|
|
2285
|
+
if (event && event.defaultPrevented) {
|
|
2286
|
+
return;
|
|
2287
|
+
}
|
|
2288
|
+
}
|
|
2289
|
+
if (cellEditValidatorEvent === 'click') {
|
|
2290
|
+
bindDocumentClickListener();
|
|
2291
|
+
overlayEventListener.current = function (e) {
|
|
2292
|
+
if (!isOutsideClicked(e.target)) {
|
|
2293
|
+
selfClick.current = true;
|
|
2294
|
+
}
|
|
2295
|
+
};
|
|
2296
|
+
OverlayService.on('overlay-click', overlayEventListener.current);
|
|
2297
|
+
}
|
|
2298
|
+
}, 1);
|
|
2299
|
+
}
|
|
2300
|
+
if (props.allowCellSelection && props.onCellClick) {
|
|
2301
|
+
props.onCellClick(params);
|
|
2302
|
+
}
|
|
2303
|
+
};
|
|
2300
2304
|
var createContent = function createContent() {
|
|
2301
2305
|
return props.columns.map(function (col, i) {
|
|
2302
2306
|
if (shouldRenderBodyCell(props.value, col, props.index)) {
|
|
2303
2307
|
var key = "".concat(props.rowIndex, "_").concat(getColumnProp(col, 'columnKey') || getColumnProp(col, 'field'), "_").concat(i);
|
|
2304
2308
|
var rowSpan = props.rowGroupMode === 'rowspan' ? calculateRowGroupSize(props.value, col, props.index) : null;
|
|
2305
|
-
|
|
2309
|
+
var field = getColumnProp(col, 'field') || "field_".concat(i);
|
|
2310
|
+
var resolveFieldData = function resolveFieldData(data) {
|
|
2311
|
+
return ObjectUtils.resolveFieldData(data || props.rowData, field);
|
|
2312
|
+
};
|
|
2313
|
+
var selectionMode = getColumnProp(col, 'selectionMode');
|
|
2314
|
+
var cellProps = mergeProps({
|
|
2306
2315
|
hostName: props.hostName,
|
|
2307
|
-
key: key,
|
|
2308
2316
|
allowCellSelection: props.allowCellSelection,
|
|
2317
|
+
cellMemo: props.cellMemo,
|
|
2318
|
+
cellMemoProps: props.cellMemoProps,
|
|
2319
|
+
cellMemoPropsDepth: props.cellMemoPropsDepth,
|
|
2309
2320
|
cellClassName: props.cellClassName,
|
|
2310
2321
|
checkIcon: props.checkIcon,
|
|
2311
2322
|
collapsedRowIcon: props.collapsedRowIcon,
|
|
2323
|
+
field: field,
|
|
2324
|
+
resolveFieldData: resolveFieldData,
|
|
2312
2325
|
column: col,
|
|
2313
|
-
|
|
2326
|
+
cProps: props.colsProps[i],
|
|
2314
2327
|
dataKey: props.dataKey,
|
|
2315
2328
|
editMode: props.editMode,
|
|
2316
2329
|
editing: editing,
|
|
2317
2330
|
editingMeta: props.editingMeta,
|
|
2331
|
+
onEditingMetaChange: props.onEditingMetaChange,
|
|
2332
|
+
editingKey: editingKey,
|
|
2333
|
+
getEditingRowData: getEditingRowData,
|
|
2318
2334
|
expanded: props.expanded,
|
|
2319
2335
|
expandedRowIcon: props.expandedRowIcon,
|
|
2320
2336
|
frozenRow: props.frozenRow,
|
|
2337
|
+
frozenCol: getColumnProp(col, 'frozen'),
|
|
2338
|
+
alignFrozenCol: getColumnProp(col, 'alignFrozen'),
|
|
2321
2339
|
index: i,
|
|
2322
2340
|
isSelectable: props.isSelectable,
|
|
2323
|
-
onCheckboxChange:
|
|
2324
|
-
onClick:
|
|
2325
|
-
onEditingMetaChange: props.onEditingMetaChange,
|
|
2341
|
+
onCheckboxChange: onCheckboxChange,
|
|
2342
|
+
onClick: onCellClick,
|
|
2326
2343
|
onMouseDown: props.onCellMouseDown,
|
|
2327
2344
|
onMouseUp: props.onCellMouseUp,
|
|
2328
2345
|
onRadioChange: props.onRadioChange,
|
|
@@ -2338,20 +2355,31 @@ var BodyRow = /*#__PURE__*/React.memo(function (props) {
|
|
|
2338
2355
|
rowIndex: props.rowIndex,
|
|
2339
2356
|
rowSpan: rowSpan,
|
|
2340
2357
|
selectOnEdit: props.selectOnEdit,
|
|
2341
|
-
|
|
2342
|
-
|
|
2358
|
+
isRowSelected: isRowSelected,
|
|
2359
|
+
isCellSelected: isCellSelected(props.selection, field, i),
|
|
2343
2360
|
selectionAriaLabel: props.tableProps.selectionAriaLabel,
|
|
2344
2361
|
showRowReorderElement: props.showRowReorderElement,
|
|
2345
2362
|
showSelectionElement: props.showSelectionElement,
|
|
2346
2363
|
tabIndex: props.tabIndex,
|
|
2364
|
+
getTabIndex: getTabIndexCell,
|
|
2347
2365
|
tableProps: props.tableProps,
|
|
2348
2366
|
tableSelector: props.tableSelector,
|
|
2349
2367
|
value: props.value,
|
|
2350
|
-
|
|
2368
|
+
getVirtualScrollerOption: getVirtualScrollerOption,
|
|
2351
2369
|
ptCallbacks: props.ptCallbacks,
|
|
2352
2370
|
metaData: props.metaData,
|
|
2353
|
-
unstyled: props.unstyled
|
|
2371
|
+
unstyled: props.unstyled,
|
|
2372
|
+
findNextSelectableCell: findNextSelectableCell,
|
|
2373
|
+
findPrevSelectableCell: findPrevSelectableCell,
|
|
2374
|
+
findDownSelectableCell: findDownSelectableCell,
|
|
2375
|
+
findUpSelectableCell: findUpSelectableCell,
|
|
2376
|
+
focusOnElement: focusOnElement,
|
|
2377
|
+
focusOnInit: focusOnInit,
|
|
2378
|
+
updateStickyPosition: updateStickyPosition
|
|
2354
2379
|
});
|
|
2380
|
+
return /*#__PURE__*/React.createElement(Fragment, {
|
|
2381
|
+
key: key
|
|
2382
|
+
}, selectionMode ? /*#__PURE__*/React.createElement(RadioCheckCell, cellProps) : /*#__PURE__*/React.createElement(BodyCell, cellProps));
|
|
2355
2383
|
}
|
|
2356
2384
|
return null;
|
|
2357
2385
|
});
|
|
@@ -2501,8 +2529,11 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2501
2529
|
var getColumnProps = function getColumnProps(column) {
|
|
2502
2530
|
return ColumnBase.getCProps(column);
|
|
2503
2531
|
};
|
|
2532
|
+
var cProps = getColumnProps(props.column);
|
|
2533
|
+
var colsProps = props.columns ? props.columns.map(function (col) {
|
|
2534
|
+
return getColumnProps(col);
|
|
2535
|
+
}) : [];
|
|
2504
2536
|
var getColumnPTOptions = function getColumnPTOptions(key) {
|
|
2505
|
-
var cProps = getColumnProps(props.column);
|
|
2506
2537
|
var columnMetaData = {
|
|
2507
2538
|
props: cProps,
|
|
2508
2539
|
parent: props.metaData,
|
|
@@ -2627,8 +2658,12 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2627
2658
|
var allowSelection = function allowSelection(event) {
|
|
2628
2659
|
return !DomHandler.isClickable(event.originalEvent.target);
|
|
2629
2660
|
};
|
|
2661
|
+
var metaKeySelectionRef = React.useRef(props.metaKeySelection);
|
|
2662
|
+
React.useEffect(function () {
|
|
2663
|
+
metaKeySelectionRef.current = props.metaKeySelection;
|
|
2664
|
+
}, [props.metaKeySelection]);
|
|
2630
2665
|
var allowMetaKeySelection = function allowMetaKeySelection(event) {
|
|
2631
|
-
return !rowTouched.current && (!
|
|
2666
|
+
return !rowTouched.current && (!metaKeySelectionRef.current || metaKeySelectionRef.current && (event.originalEvent.metaKey || event.originalEvent.ctrlKey));
|
|
2632
2667
|
};
|
|
2633
2668
|
var allowRangeSelection = function allowRangeSelection(event) {
|
|
2634
2669
|
return isMultipleSelection() && event.originalEvent.shiftKey && anchorRowIndex.current !== null;
|
|
@@ -2649,9 +2684,6 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2649
2684
|
options = options || props.virtualScrollerOptions;
|
|
2650
2685
|
return options ? options[option] : null;
|
|
2651
2686
|
};
|
|
2652
|
-
var getProcessedDataIndex = function getProcessedDataIndex(rowIndex) {
|
|
2653
|
-
return props.lazy ? rowIndex - props.first : rowIndex;
|
|
2654
|
-
};
|
|
2655
2687
|
var findIndex = function findIndex(collection, rowData) {
|
|
2656
2688
|
return (collection || []).findIndex(function (data) {
|
|
2657
2689
|
return equals(rowData, data);
|
|
@@ -2701,6 +2733,10 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2701
2733
|
});
|
|
2702
2734
|
}
|
|
2703
2735
|
};
|
|
2736
|
+
var selectionRef = React.useRef(props.selection);
|
|
2737
|
+
React.useEffect(function () {
|
|
2738
|
+
selectionRef.current = props.selection;
|
|
2739
|
+
}, [props.selection]);
|
|
2704
2740
|
var onSingleSelection = function onSingleSelection(_ref) {
|
|
2705
2741
|
var originalEvent = _ref.originalEvent,
|
|
2706
2742
|
data = _ref.data,
|
|
@@ -2714,10 +2750,11 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2714
2750
|
return;
|
|
2715
2751
|
}
|
|
2716
2752
|
var selected = isSelected(data);
|
|
2717
|
-
var
|
|
2753
|
+
var currentSelection = selectionRef.current || [];
|
|
2754
|
+
var newSelection = currentSelection;
|
|
2718
2755
|
if (selected) {
|
|
2719
2756
|
if (toggleable) {
|
|
2720
|
-
|
|
2757
|
+
newSelection = null;
|
|
2721
2758
|
onUnselect({
|
|
2722
2759
|
originalEvent: originalEvent,
|
|
2723
2760
|
data: data,
|
|
@@ -2725,7 +2762,7 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2725
2762
|
});
|
|
2726
2763
|
}
|
|
2727
2764
|
} else {
|
|
2728
|
-
|
|
2765
|
+
newSelection = data;
|
|
2729
2766
|
onSelect({
|
|
2730
2767
|
originalEvent: originalEvent,
|
|
2731
2768
|
data: data,
|
|
@@ -2733,10 +2770,10 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2733
2770
|
});
|
|
2734
2771
|
}
|
|
2735
2772
|
focusOnElement(originalEvent, true);
|
|
2736
|
-
if (props.onSelectionChange &&
|
|
2773
|
+
if (props.onSelectionChange && newSelection !== currentSelection) {
|
|
2737
2774
|
props.onSelectionChange({
|
|
2738
2775
|
originalEvent: originalEvent,
|
|
2739
|
-
value:
|
|
2776
|
+
value: newSelection,
|
|
2740
2777
|
type: type
|
|
2741
2778
|
});
|
|
2742
2779
|
}
|
|
@@ -2754,11 +2791,12 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2754
2791
|
return;
|
|
2755
2792
|
}
|
|
2756
2793
|
var selected = isSelected(data);
|
|
2757
|
-
var
|
|
2794
|
+
var currentSelection = selectionRef.current || [];
|
|
2795
|
+
var newSelection = currentSelection;
|
|
2758
2796
|
if (selected) {
|
|
2759
2797
|
if (toggleable) {
|
|
2760
|
-
var selectionIndex = findIndex(
|
|
2761
|
-
|
|
2798
|
+
var selectionIndex = findIndex(currentSelection, data);
|
|
2799
|
+
newSelection = currentSelection.filter(function (val, i) {
|
|
2762
2800
|
return i !== selectionIndex;
|
|
2763
2801
|
});
|
|
2764
2802
|
onUnselect({
|
|
@@ -2766,15 +2804,15 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2766
2804
|
data: data,
|
|
2767
2805
|
type: type
|
|
2768
2806
|
});
|
|
2769
|
-
} else if (
|
|
2770
|
-
|
|
2807
|
+
} else if (currentSelection.length) {
|
|
2808
|
+
currentSelection.forEach(function (d) {
|
|
2771
2809
|
return onUnselect({
|
|
2772
2810
|
originalEvent: originalEvent,
|
|
2773
2811
|
data: d,
|
|
2774
2812
|
type: type
|
|
2775
2813
|
});
|
|
2776
2814
|
});
|
|
2777
|
-
|
|
2815
|
+
newSelection = [data];
|
|
2778
2816
|
onSelect({
|
|
2779
2817
|
originalEvent: originalEvent,
|
|
2780
2818
|
data: data,
|
|
@@ -2782,18 +2820,18 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2782
2820
|
});
|
|
2783
2821
|
}
|
|
2784
2822
|
} else {
|
|
2785
|
-
|
|
2786
|
-
|
|
2823
|
+
newSelection = ObjectUtils.isObject(currentSelection) ? [currentSelection] : currentSelection;
|
|
2824
|
+
newSelection = toggleable && isMultipleSelection() ? [].concat(_toConsumableArray(newSelection), [data]) : [data];
|
|
2787
2825
|
onSelect({
|
|
2788
2826
|
originalEvent: originalEvent,
|
|
2789
2827
|
data: data,
|
|
2790
2828
|
type: type
|
|
2791
2829
|
});
|
|
2792
2830
|
}
|
|
2793
|
-
if (props.onSelectionChange &&
|
|
2831
|
+
if (props.onSelectionChange && newSelection !== currentSelection) {
|
|
2794
2832
|
props.onSelectionChange({
|
|
2795
2833
|
originalEvent: originalEvent,
|
|
2796
|
-
value:
|
|
2834
|
+
value: newSelection,
|
|
2797
2835
|
type: type
|
|
2798
2836
|
});
|
|
2799
2837
|
}
|
|
@@ -2816,16 +2854,14 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2816
2854
|
var rangeStart;
|
|
2817
2855
|
var rangeEnd;
|
|
2818
2856
|
var isAllowCellSelection = allowCellSelection();
|
|
2819
|
-
|
|
2820
|
-
|
|
2821
|
-
|
|
2822
|
-
|
|
2823
|
-
|
|
2824
|
-
|
|
2825
|
-
rangeStart = rangeRowIndexInProcessedData;
|
|
2826
|
-
rangeEnd = anchorRowIndexInProcessedData;
|
|
2857
|
+
if (rangeRowIndex.current > anchorRowIndex.current) {
|
|
2858
|
+
rangeStart = anchorRowIndex.current;
|
|
2859
|
+
rangeEnd = rangeRowIndex.current;
|
|
2860
|
+
} else if (rangeRowIndex.current < anchorRowIndex.current) {
|
|
2861
|
+
rangeStart = rangeRowIndex.current;
|
|
2862
|
+
rangeEnd = anchorRowIndex.current;
|
|
2827
2863
|
} else {
|
|
2828
|
-
rangeStart = rangeEnd =
|
|
2864
|
+
rangeStart = rangeEnd = rangeRowIndex.current;
|
|
2829
2865
|
}
|
|
2830
2866
|
return isAllowCellSelection ? selectRangeOnCell(event, rangeStart, rangeEnd) : selectRangeOnRow(event, rangeStart, rangeEnd);
|
|
2831
2867
|
};
|
|
@@ -2866,7 +2902,7 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
2866
2902
|
for (var i = rowRangeStart; i <= rowRangeEnd; i++) {
|
|
2867
2903
|
var rowData = value[i];
|
|
2868
2904
|
var columns = props.columns;
|
|
2869
|
-
var rowIndex = props.
|
|
2905
|
+
var rowIndex = props.paginator ? i + props.first : i;
|
|
2870
2906
|
for (var j = cellRangeStart; j <= cellRangeEnd; j++) {
|
|
2871
2907
|
var field = getColumnProp(columns[j], 'field');
|
|
2872
2908
|
var _value = ObjectUtils.resolveFieldData(rowData, field);
|
|
@@ -3065,13 +3101,17 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
3065
3101
|
onRangeSelection(event, 'row');
|
|
3066
3102
|
}
|
|
3067
3103
|
};
|
|
3104
|
+
var expandedRowsRef = React.useRef(props.expandedRows);
|
|
3105
|
+
React.useEffect(function () {
|
|
3106
|
+
expandedRowsRef.current = props.expandedRows;
|
|
3107
|
+
}, [props.expandedRows]);
|
|
3068
3108
|
var onRowToggle = function onRowToggle(event) {
|
|
3069
3109
|
var expandedRows;
|
|
3070
3110
|
var dataKey = props.dataKey;
|
|
3071
3111
|
var hasDataKey = props.groupRowsBy ? dataKey === props.groupRowsBy : !!dataKey;
|
|
3072
3112
|
if (hasDataKey) {
|
|
3073
3113
|
var dataKeyValue = String(ObjectUtils.resolveFieldData(event.data, dataKey));
|
|
3074
|
-
expandedRows =
|
|
3114
|
+
expandedRows = expandedRowsRef.current ? _objectSpread$8({}, expandedRowsRef.current) : {};
|
|
3075
3115
|
if (expandedRows[dataKeyValue] != null) {
|
|
3076
3116
|
delete expandedRows[dataKeyValue];
|
|
3077
3117
|
if (props.onRowCollapse) {
|
|
@@ -3090,8 +3130,8 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
3090
3130
|
}
|
|
3091
3131
|
}
|
|
3092
3132
|
} else {
|
|
3093
|
-
var expandedRowIndex = findIndex(
|
|
3094
|
-
expandedRows =
|
|
3133
|
+
var expandedRowIndex = findIndex(expandedRowsRef.current, event.data);
|
|
3134
|
+
expandedRows = expandedRowsRef.current ? _toConsumableArray(expandedRowsRef.current) : [];
|
|
3095
3135
|
if (expandedRowIndex !== -1) {
|
|
3096
3136
|
expandedRows = expandedRows.filter(function (_, i) {
|
|
3097
3137
|
return i !== expandedRowIndex;
|
|
@@ -3341,7 +3381,7 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
3341
3381
|
return null;
|
|
3342
3382
|
};
|
|
3343
3383
|
var createGroupHeader = function createGroupHeader(rowData, rowIndex, expanded, colSpan) {
|
|
3344
|
-
if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData,
|
|
3384
|
+
if (isSubheaderGrouping && shouldRenderRowGroupHeader(props.value, rowData, rowIndex - props.first)) {
|
|
3345
3385
|
var style = rowGroupHeaderStyle();
|
|
3346
3386
|
var toggler = props.expandableRowGroups && /*#__PURE__*/React.createElement(RowTogglerButton, {
|
|
3347
3387
|
hostName: props.hostName,
|
|
@@ -3391,10 +3431,14 @@ var TableBody = /*#__PURE__*/React.memo(/*#__PURE__*/React.forwardRef(function (
|
|
|
3391
3431
|
hostName: props.hostName,
|
|
3392
3432
|
allowCellSelection: _allowCellSelection,
|
|
3393
3433
|
allowRowSelection: _allowRowSelection,
|
|
3434
|
+
cellMemo: props.cellMemo,
|
|
3435
|
+
cellMemoProps: props.cellMemoProps,
|
|
3436
|
+
cellMemoPropsDepth: props.cellMemoPropsDepth,
|
|
3394
3437
|
cellClassName: props.cellClassName,
|
|
3395
3438
|
checkIcon: props.checkIcon,
|
|
3396
3439
|
collapsedRowIcon: props.collapsedRowIcon,
|
|
3397
3440
|
columns: props.columns,
|
|
3441
|
+
colsProps: colsProps,
|
|
3398
3442
|
compareSelectionBy: props.compareSelectionBy,
|
|
3399
3443
|
contextMenuSelected: contextMenuSelected,
|
|
3400
3444
|
dataKey: props.dataKey,
|
|
@@ -3782,6 +3826,7 @@ var FilterMatchMode = Object.freeze({
|
|
|
3782
3826
|
EQUALS: 'equals',
|
|
3783
3827
|
NOT_EQUALS: 'notEquals',
|
|
3784
3828
|
IN: 'in',
|
|
3829
|
+
NOT_IN: 'notIn',
|
|
3785
3830
|
LESS_THAN: 'lt',
|
|
3786
3831
|
LESS_THAN_OR_EQUAL_TO: 'lte',
|
|
3787
3832
|
GREATER_THAN: 'gt',
|
|
@@ -3870,6 +3915,7 @@ var locales = {
|
|
|
3870
3915
|
emptySelectionMessage: 'No selected item',
|
|
3871
3916
|
endsWith: 'Ends with',
|
|
3872
3917
|
equals: 'Equals',
|
|
3918
|
+
fileChosenMessage: '{0} files',
|
|
3873
3919
|
fileSizeTypes: ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'],
|
|
3874
3920
|
filter: 'Filter',
|
|
3875
3921
|
firstDayOfWeek: 0,
|
|
@@ -3888,6 +3934,7 @@ var locales = {
|
|
|
3888
3934
|
nextMonth: 'Next Month',
|
|
3889
3935
|
nextSecond: 'Next Second',
|
|
3890
3936
|
nextYear: 'Next Year',
|
|
3937
|
+
noFileChosenMessage: 'No file chosen',
|
|
3891
3938
|
noFilter: 'No Filter',
|
|
3892
3939
|
notContains: 'Not contains',
|
|
3893
3940
|
notEquals: 'Not equals',
|
|
@@ -3915,8 +3962,10 @@ var locales = {
|
|
|
3915
3962
|
aria: {
|
|
3916
3963
|
cancelEdit: 'Cancel Edit',
|
|
3917
3964
|
close: 'Close',
|
|
3965
|
+
collapseLabel: 'Collapse',
|
|
3918
3966
|
collapseRow: 'Row Collapsed',
|
|
3919
3967
|
editRow: 'Edit Row',
|
|
3968
|
+
expandLabel: 'Expand',
|
|
3920
3969
|
expandRow: 'Row Expanded',
|
|
3921
3970
|
falseLabel: 'False',
|
|
3922
3971
|
filterConstraint: 'Filter Constraint',
|
|
@@ -3941,18 +3990,20 @@ var locales = {
|
|
|
3941
3990
|
next: 'Next',
|
|
3942
3991
|
nextPageLabel: 'Next Page',
|
|
3943
3992
|
nullLabel: 'Not Selected',
|
|
3944
|
-
pageLabel: 'Page {page}',
|
|
3945
3993
|
otpLabel: 'Please enter one time password character {0}',
|
|
3994
|
+
pageLabel: 'Page {page}',
|
|
3946
3995
|
passwordHide: 'Hide Password',
|
|
3947
3996
|
passwordShow: 'Show Password',
|
|
3948
3997
|
previous: 'Previous',
|
|
3949
3998
|
prevPageLabel: 'Previous Page',
|
|
3999
|
+
removeLabel: 'Remove',
|
|
3950
4000
|
rotateLeft: 'Rotate Left',
|
|
3951
4001
|
rotateRight: 'Rotate Right',
|
|
3952
4002
|
rowsPerPageLabel: 'Rows per page',
|
|
3953
4003
|
saveEdit: 'Save Edit',
|
|
3954
4004
|
scrollTop: 'Scroll Top',
|
|
3955
4005
|
selectAll: 'All items selected',
|
|
4006
|
+
selectLabel: 'Select',
|
|
3956
4007
|
selectRow: 'Row Selected',
|
|
3957
4008
|
showFilterMenu: 'Show Filter Menu',
|
|
3958
4009
|
slide: 'Slide',
|
|
@@ -3961,6 +4012,7 @@ var locales = {
|
|
|
3961
4012
|
stars: '{star} stars',
|
|
3962
4013
|
trueLabel: 'True',
|
|
3963
4014
|
unselectAll: 'All items unselected',
|
|
4015
|
+
unselectLabel: 'Unselect',
|
|
3964
4016
|
unselectRow: 'Row Unselected',
|
|
3965
4017
|
zoomImage: 'Zoom Image',
|
|
3966
4018
|
zoomIn: 'Zoom In',
|
|
@@ -4178,9 +4230,17 @@ var ColumnFilter = /*#__PURE__*/React.memo(function (props) {
|
|
|
4178
4230
|
var type = _ref.type,
|
|
4179
4231
|
valid = _ref.valid;
|
|
4180
4232
|
if (valid) {
|
|
4181
|
-
type === 'outside'
|
|
4233
|
+
if (type === 'outside') {
|
|
4234
|
+
if (!selfClick.current && !isTargetClicked(event.target)) {
|
|
4235
|
+
hide();
|
|
4236
|
+
}
|
|
4237
|
+
selfClick.current = false;
|
|
4238
|
+
} else if (context.hideOverlaysOnDocumentScrolling) {
|
|
4239
|
+
hide();
|
|
4240
|
+
} else if (!DomHandler.isDocument(event.target)) {
|
|
4241
|
+
DomHandler.alignOverlay(overlayRef.current, iconRef.current, context && context.appendTo || PrimeReact$1.appendTo, false);
|
|
4242
|
+
}
|
|
4182
4243
|
}
|
|
4183
|
-
selfClick.current = false;
|
|
4184
4244
|
},
|
|
4185
4245
|
when: overlayVisibleState
|
|
4186
4246
|
}),
|
|
@@ -6879,58 +6939,60 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
|
|
|
6879
6939
|
var exportCSV = function exportCSV(options) {
|
|
6880
6940
|
var data;
|
|
6881
6941
|
var csv = "\uFEFF";
|
|
6882
|
-
var columns = getColumns();
|
|
6883
6942
|
if (options && options.selectionOnly) {
|
|
6884
6943
|
data = props.selection || [];
|
|
6885
6944
|
} else {
|
|
6886
6945
|
data = [].concat(_toConsumableArray(props.frozenValue || []), _toConsumableArray(processedData() || []));
|
|
6887
6946
|
}
|
|
6888
6947
|
|
|
6889
|
-
//
|
|
6890
|
-
|
|
6891
|
-
var
|
|
6948
|
+
// First build collection of exportable columns
|
|
6949
|
+
var exportableColumns = getColumns().filter(function (column) {
|
|
6950
|
+
var exportable = getColumnProp(column, 'exportable');
|
|
6951
|
+
var field = getColumnProp(column, 'field');
|
|
6952
|
+
|
|
6953
|
+
// Column must be exportable (or undefined/not set) and have a field defined
|
|
6954
|
+
return exportable !== false && field;
|
|
6955
|
+
});
|
|
6956
|
+
|
|
6957
|
+
// headers
|
|
6958
|
+
exportableColumns.forEach(function (column, i) {
|
|
6959
|
+
var _ref5 = [getColumnProp(column, 'field'), getColumnProp(column, 'header'), getColumnProp(column, 'exportHeader')],
|
|
6892
6960
|
field = _ref5[0],
|
|
6893
6961
|
header = _ref5[1],
|
|
6894
|
-
exportHeader = _ref5[2]
|
|
6895
|
-
|
|
6896
|
-
|
|
6897
|
-
|
|
6898
|
-
csv = csv +
|
|
6899
|
-
if (i < columns.length - 1) {
|
|
6900
|
-
csv = csv + props.csvSeparator;
|
|
6901
|
-
}
|
|
6962
|
+
exportHeader = _ref5[2];
|
|
6963
|
+
var columnHeader = String(exportHeader || header || field).replace(/"/g, '""').replace(/\n/g, "\u2028");
|
|
6964
|
+
csv = csv + ('"' + columnHeader + '"');
|
|
6965
|
+
if (i < exportableColumns.length - 1) {
|
|
6966
|
+
csv = csv + props.csvSeparator;
|
|
6902
6967
|
}
|
|
6903
6968
|
});
|
|
6904
6969
|
|
|
6905
|
-
//body
|
|
6970
|
+
// body
|
|
6906
6971
|
data.forEach(function (record) {
|
|
6907
6972
|
csv = csv + '\n';
|
|
6908
|
-
|
|
6909
|
-
var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')
|
|
6973
|
+
exportableColumns.forEach(function (column, i) {
|
|
6974
|
+
var _ref6 = [getColumnProp(column, 'field'), getColumnProp(column, 'exportField')],
|
|
6910
6975
|
colField = _ref6[0],
|
|
6911
|
-
exportField = _ref6[1]
|
|
6912
|
-
exportable = _ref6[2];
|
|
6976
|
+
exportField = _ref6[1];
|
|
6913
6977
|
var field = exportField || colField;
|
|
6914
|
-
|
|
6915
|
-
|
|
6916
|
-
if (
|
|
6917
|
-
|
|
6918
|
-
cellData
|
|
6919
|
-
|
|
6920
|
-
|
|
6921
|
-
|
|
6922
|
-
|
|
6923
|
-
});
|
|
6924
|
-
} else {
|
|
6925
|
-
cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
|
|
6926
|
-
}
|
|
6978
|
+
var cellData = ObjectUtils.resolveFieldData(record, field);
|
|
6979
|
+
if (cellData != null) {
|
|
6980
|
+
if (props.exportFunction) {
|
|
6981
|
+
cellData = props.exportFunction({
|
|
6982
|
+
data: cellData,
|
|
6983
|
+
field: field,
|
|
6984
|
+
rowData: record,
|
|
6985
|
+
column: column
|
|
6986
|
+
});
|
|
6927
6987
|
} else {
|
|
6928
|
-
cellData = '';
|
|
6929
|
-
}
|
|
6930
|
-
csv = csv + ('"' + cellData + '"');
|
|
6931
|
-
if (i < columns.length - 1) {
|
|
6932
|
-
csv = csv + props.csvSeparator;
|
|
6988
|
+
cellData = String(cellData).replace(/"/g, '""').replace(/\n/g, "\u2028");
|
|
6933
6989
|
}
|
|
6990
|
+
} else {
|
|
6991
|
+
cellData = '';
|
|
6992
|
+
}
|
|
6993
|
+
csv = csv + ('"' + cellData + '"');
|
|
6994
|
+
if (i < exportableColumns.length - 1) {
|
|
6995
|
+
csv = csv + props.csvSeparator;
|
|
6934
6996
|
}
|
|
6935
6997
|
});
|
|
6936
6998
|
});
|
|
@@ -7195,6 +7257,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
|
|
|
7195
7257
|
var frozenBody = ObjectUtils.isNotEmpty(props.frozenValue) && /*#__PURE__*/React.createElement(TableBody, {
|
|
7196
7258
|
hostName: "DataTable",
|
|
7197
7259
|
ref: frozenBodyRef,
|
|
7260
|
+
cellMemo: props.cellMemo,
|
|
7261
|
+
cellMemoProps: props.cellMemoProps,
|
|
7262
|
+
cellMemoPropsDepth: props.cellMemoPropsDepth,
|
|
7198
7263
|
cellClassName: props.cellClassName,
|
|
7199
7264
|
cellSelection: props.cellSelection,
|
|
7200
7265
|
checkIcon: props.checkIcon,
|
|
@@ -7279,6 +7344,9 @@ var DataTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
|
|
|
7279
7344
|
var body = /*#__PURE__*/React.createElement(TableBody, {
|
|
7280
7345
|
hostName: "DataTable",
|
|
7281
7346
|
ref: bodyRef,
|
|
7347
|
+
cellMemo: props.cellMemo,
|
|
7348
|
+
cellMemoProps: props.cellMemoProps,
|
|
7349
|
+
cellMemoPropsDepth: props.cellMemoPropsDepth,
|
|
7282
7350
|
cellClassName: props.cellClassName,
|
|
7283
7351
|
cellSelection: props.cellSelection,
|
|
7284
7352
|
checkIcon: props.checkIcon,
|