ods-component-lib 1.18.243 → 1.18.244

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.
@@ -16,7 +16,7 @@ import jsPDF, { jsPDF as jsPDF$1 } from 'jspdf';
16
16
  import { Workbook } from 'exceljs';
17
17
  import { saveAs } from 'file-saver-es';
18
18
  import moment, { isDate } from 'moment';
19
- import { GridIcon, UpArrow5Icon, DownArrow5Icon, Loop1Icon, EditIcon, Trash1Icon, CopyIcon, DiscountIcon, KebabMenuIcon, RefreshIcon, LinkBreakIcon, FloppyDiskIcon, Discount2Icon, Slide1Icon, BabyIcon, BabyBottleIcon, UsersIcon, Search1Icon, CrossIcon, UpArrow2Icon, DownArrow2Icon } from 'ods-icon/react/24/outline';
19
+ import { GridIcon, UpArrow5Icon, DownArrow5Icon, Loop1Icon, EditIcon, Trash1Icon, CopyIcon, DiscountIcon, KebabMenuIcon, RefreshIcon, LinkBreakIcon, FloppyDiskIcon, Discount2Icon, Slide1Icon, BabyIcon, BabyBottleIcon, UsersIcon, Search1Icon, UpArrow2Icon, DownArrow2Icon, CrossIcon } from 'ods-icon/react/24/outline';
20
20
  import { TreeList, Lookup, DataGrid as DataGrid$2, Toolbar as Toolbar$1 } from 'devextreme-react';
21
21
  import { createStyles } from 'antd-style';
22
22
  import { saveAs as saveAs$1 } from 'file-saver';
@@ -38023,7 +38023,7 @@ OdsMergeCellDataGridHelper.getInstance = function () {
38023
38023
  };
38024
38024
 
38025
38025
  var useToken$2 = theme.useToken;
38026
- var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38026
+ var OdsMergeCellDataGrid = forwardRef(function (props, ref) {
38027
38027
  var _props$columnResizing, _props$className, _props$selection, _props$selectOptions, _props$selectOptions$, _props$selectOptions2, _props$selectOptions$2, _props$selectOptions3;
38028
38028
  var refGrid = props.refGrid,
38029
38029
  keyExpr = props.keyExpr,
@@ -38043,6 +38043,12 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38043
38043
  var _useState4 = useState([]),
38044
38044
  mergedCellInfo = _useState4[0],
38045
38045
  setMergedCellInfo = _useState4[1];
38046
+ var _useState5 = useState({
38047
+ sortedColumns: [],
38048
+ columnHeaderProps: null
38049
+ }),
38050
+ sortingChangeEventProps = _useState5[0],
38051
+ setSortingChangeEventProps = _useState5[1];
38046
38052
  var _useStyles = useStyles$a(),
38047
38053
  gridStyle = _useStyles.styles;
38048
38054
  useEffect(function () {
@@ -38088,6 +38094,11 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38088
38094
  refGrid.current.instance.updateDimensions();
38089
38095
  }
38090
38096
  }, []);
38097
+ useEffect(function () {
38098
+ if (sortingChangeEventProps.columnHeaderProps !== null) {
38099
+ props.onSortingChanged && props.onSortingChanged(sortingChangeEventProps.sortedColumns, sortingChangeEventProps.columnHeaderProps);
38100
+ }
38101
+ }, [sortingChangeEventProps]);
38091
38102
  var actionButtons = useMemo(function () {
38092
38103
  if (props.actionButtonGroup) {
38093
38104
  if (props.actionButtonGroup.length > 3 && !props.edit) {
@@ -38349,6 +38360,112 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38349
38360
  var checkIsPropArray = function checkIsPropArray(prop) {
38350
38361
  return prop && Array.isArray(prop);
38351
38362
  };
38363
+ var customClearSorting = function customClearSorting() {
38364
+ setSortingChangeEventProps(function (prev) {
38365
+ return _extends({}, prev, {
38366
+ sortedColumns: []
38367
+ });
38368
+ });
38369
+ props.onSortingChanged && props.onSortingChanged([], undefined);
38370
+ };
38371
+ var getSortedColumns = function getSortedColumns() {
38372
+ return sortingChangeEventProps.sortedColumns;
38373
+ };
38374
+ var customHeaderCellComponent = function customHeaderCellComponent(props) {
38375
+ if (props.data.column.allowSorting) {
38376
+ return React.createElement("div", {
38377
+ className: "sortingHeaderCell",
38378
+ onClick: function onClick(e) {
38379
+ if (Boolean(props.data.column.allowSorting)) {
38380
+ if (e.shiftKey === true && e.ctrlKey === false) {
38381
+ onSorting(props.data, 2);
38382
+ } else if (e.shiftKey === false && e.ctrlKey === false) {
38383
+ onSorting(props.data, 1);
38384
+ } else if (e.shiftKey === false && e.ctrlKey === true) {
38385
+ onRemoveSorting(props.data);
38386
+ }
38387
+ }
38388
+ }
38389
+ }, React.createElement("span", {
38390
+ className: "headerCaption"
38391
+ }, props.data.column.caption), getSortIcon(props.data.column));
38392
+ }
38393
+ return React.createElement("div", null, props.data.column.caption);
38394
+ };
38395
+ var getSortIcon = function getSortIcon(column) {
38396
+ var sortingFieldName = getSortingFieldName(column);
38397
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38398
+ return item.sortingFieldName == sortingFieldName;
38399
+ });
38400
+ if (sortedColumn) {
38401
+ return sortedColumn.sortType === "ASC" ? React.createElement(UpArrow2Icon, null) : React.createElement(DownArrow2Icon, null);
38402
+ }
38403
+ return undefined;
38404
+ };
38405
+ var getSortingFieldName = function getSortingFieldName(column) {
38406
+ var _column$sortingFieldN;
38407
+ return (_column$sortingFieldN = column.sortingFieldName) != null ? _column$sortingFieldN : column.dataField;
38408
+ };
38409
+ var onSorting = function onSorting(headerCellProps, sortingMode) {
38410
+ var sortingFieldName = getSortingFieldName(headerCellProps.column);
38411
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38412
+ return item.sortingFieldName == sortingFieldName;
38413
+ });
38414
+ var prevSortIndex = sortedColumn === null || sortedColumn === void 0 ? void 0 : sortedColumn.sortIndex;
38415
+ var newSortedColumn = {
38416
+ sortingFieldName: sortingFieldName,
38417
+ sortType: "ASC",
38418
+ sortIndex: sortingMode == 2 ? sortedColumn === undefined ? sortingChangeEventProps.sortedColumns.length : sortingChangeEventProps.sortedColumns.length - 1 : 0,
38419
+ sortingText: sortingFieldName + " ASC"
38420
+ };
38421
+ if (sortedColumn) {
38422
+ newSortedColumn.sortType = sortedColumn.sortType == "ASC" ? "DESC" : "ASC";
38423
+ newSortedColumn.sortingText = sortingFieldName + " " + newSortedColumn.sortType;
38424
+ }
38425
+ var newSortedColumns = sortingMode == 2 ? [].concat(sortingChangeEventProps.sortedColumns.filter(function (item) {
38426
+ return item.sortingFieldName != sortingFieldName;
38427
+ }), [newSortedColumn]) : [newSortedColumn];
38428
+ if (sortingMode == 2 && sortedColumn !== undefined) {
38429
+ newSortedColumns = newSortedColumns.map(function (item) {
38430
+ if (item.sortingFieldName != sortingFieldName && item.sortIndex > prevSortIndex) {
38431
+ item.sortIndex = item.sortIndex - 1;
38432
+ }
38433
+ return item;
38434
+ });
38435
+ }
38436
+ setSortingChangeEventProps({
38437
+ sortedColumns: newSortedColumns,
38438
+ columnHeaderProps: headerCellProps
38439
+ });
38440
+ };
38441
+ var onRemoveSorting = function onRemoveSorting(headerCellProps) {
38442
+ var sortingFieldName = getSortingFieldName(headerCellProps.column);
38443
+ var sortedColumn = sortingChangeEventProps.sortedColumns.find(function (item) {
38444
+ return item.sortingFieldName == sortingFieldName;
38445
+ });
38446
+ if (sortedColumn === undefined) {
38447
+ return;
38448
+ }
38449
+ var prevSortIndex = sortedColumn.sortIndex;
38450
+ var newSortedColumns = sortingChangeEventProps.sortedColumns.filter(function (item) {
38451
+ return item.sortingFieldName != sortingFieldName;
38452
+ }).map(function (item) {
38453
+ if (item.sortIndex > prevSortIndex) {
38454
+ item.sortIndex = item.sortIndex - 1;
38455
+ }
38456
+ return item;
38457
+ });
38458
+ setSortingChangeEventProps({
38459
+ sortedColumns: newSortedColumns,
38460
+ columnHeaderProps: headerCellProps
38461
+ });
38462
+ };
38463
+ useImperativeHandle(ref, function () {
38464
+ return {
38465
+ getSortedColumns: getSortedColumns,
38466
+ customClearSorting: customClearSorting
38467
+ };
38468
+ });
38352
38469
  return React.createElement(React.Fragment, null, React.createElement(DataGrid$1, Object.assign({
38353
38470
  keyExpr: keyExpr,
38354
38471
  dataSource: data,
@@ -38360,9 +38477,6 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38360
38477
  columnResizingMode: (_props$columnResizing = props.columnResizingMode) != null ? _props$columnResizing : "widget",
38361
38478
  showRowLines: true,
38362
38479
  allowColumnReordering: true,
38363
- remoteOperations: {
38364
- sorting: true
38365
- },
38366
38480
  paging: {
38367
38481
  enabled: false
38368
38482
  },
@@ -38401,7 +38515,8 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38401
38515
  }, col, {
38402
38516
  minWidth: 50,
38403
38517
  width: props.isColumnWidthFixed === true ? 160 : undefined,
38404
- cssClass: col.cssClass
38518
+ cssClass: col.cssClass,
38519
+ headerCellComponent: customHeaderCellComponent
38405
38520
  }), col.lookUp && React.createElement(Lookup, Object.assign({}, col.lookUp)), (col.dataField === "IsActive" || col.dataField === "isActive") && React.createElement(HeaderFilter, {
38406
38521
  dataSource: [{
38407
38522
  text: "Active",
@@ -38449,7 +38564,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38449
38564
  }), React.createElement(HeaderFilter, {
38450
38565
  visible: true
38451
38566
  }), React.createElement(Sorting, {
38452
- mode: "multiple"
38567
+ mode: "none"
38453
38568
  }), !props.closeGridHeader && React.createElement(Export, {
38454
38569
  enabled: true,
38455
38570
  allowExportSelectedData: true,
@@ -38487,7 +38602,7 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38487
38602
  customLoad: customLoad,
38488
38603
  customSave: customSave
38489
38604
  })));
38490
- };
38605
+ });
38491
38606
 
38492
38607
  var lodash = createCommonjsModule(function (module, exports) {
38493
38608
  (function() {