ods-component-lib 1.18.240 → 1.18.242

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.
@@ -1,8 +1,8 @@
1
1
  import { ReactElement } from "react";
2
- import { IOdsDataGridProps } from "./OdsMergeCellDataGrid.Types";
2
+ import { IOdsDataGridProps, SummaryTypes } from "./OdsMergeCellDataGrid.Types";
3
3
  export declare const getRequestHeaders: (props: any) => Headers;
4
4
  export declare const concatFilteredLabel: (result: string, totalloaded: number, filteredRowCount: number, filterApplied: boolean, props: any) => string;
5
5
  export declare const showSummaryItems: (props: IOdsDataGridProps) => boolean;
6
6
  export declare const getSummaryItems: (props: IOdsDataGridProps, columns: any[], grid: any, isMultiLevelColumn?: boolean) => ReactElement[];
7
- export declare const getSummaryItem: (col: any, visibleIndex: number, summaryType: any, isMultiLevelColumn: boolean, label?: string) => ReactElement;
7
+ export declare const getSummaryItem: (col: any, visibleIndex: number, summaryType: SummaryTypes, isMultiLevelColumn: boolean, label?: string) => ReactElement;
8
8
  export declare const getMultiLevelColumns: (col: any) => any;
@@ -3,6 +3,7 @@ import { ButtonType } from "antd/es/button/buttonHelpers";
3
3
  import { IButtonProps, IDataGridOptions, IEditingProps, ISelectionProps, ISummaryProps } from "devextreme-react/data-grid";
4
4
  import { ITooltipType } from "../../../utils/customTypes";
5
5
  import { IColumnOptions, IMasterDetailDatas, IMasterDetailFeatures } from "../OdsMasterDetailDataGrid/types";
6
+ export declare type SummaryTypes = "avg" | "count" | "custom" | "max" | "min" | "sum";
6
7
  interface IExportProps {
7
8
  enabled: boolean;
8
9
  allowExportSelectedData?: boolean;
@@ -8,4 +8,8 @@ export declare const useStyles: (props?: {
8
8
  taskBarTitle: import("antd-style").SerializedStyles;
9
9
  searchBoxIcon: import("antd-style").SerializedStyles;
10
10
  searchBox: import("antd-style").SerializedStyles;
11
+ columnChooserPopup: import("antd-style").SerializedStyles;
12
+ columnChooserHeader: import("antd-style").SerializedStyles;
13
+ columnChooserCloseButton: import("antd-style").SerializedStyles;
14
+ columnChooserDivider: import("antd-style").SerializedStyles;
11
15
  }>;
@@ -131,6 +131,10 @@ export interface IOdsTimelineTableToolbarSettings {
131
131
  fileName?: string;
132
132
  documentFormat?: ExportDocumentType;
133
133
  };
134
+ columnChooser?: {
135
+ visible?: boolean;
136
+ title?: string;
137
+ };
134
138
  dateFilterVisible?: boolean;
135
139
  zoomVisible?: boolean;
136
140
  }
@@ -151,3 +155,8 @@ export interface ITranslationValue {
151
155
  originalValue: any;
152
156
  translatedValue: string;
153
157
  }
158
+ export interface IOdsTimelineTableColumnChooserProps {
159
+ title: string;
160
+ items: string[];
161
+ onSelection?(selectedItems: string[], selectedItem?: string, deselectedItem?: string): void;
162
+ }
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { IOdsTimelineTableColumnChooserProps } from "./OdsTimelineTable.Types";
3
+ declare const OdsTimelineTableColumnChooser: (props: IOdsTimelineTableColumnChooserProps) => React.JSX.Element;
4
+ export default OdsTimelineTableColumnChooser;
package/dist/index.js CHANGED
@@ -49,6 +49,7 @@ var FileSaver = require('file-saver');
49
49
  require('devextreme/dist/css/dx.light.css');
50
50
  var gantt = require('devextreme-react/gantt');
51
51
  require('jspdf-autotable');
52
+ var button = require('devextreme-react/button');
52
53
 
53
54
  function _toPrimitive(t, r) {
54
55
  if ("object" != typeof t || !t) return t;
@@ -37966,7 +37967,7 @@ var OdsMergeCellDataGridHelper = /*#__PURE__*/function () {
37966
37967
  });
37967
37968
  } else {
37968
37969
  mergedCells.filter(function (x) {
37969
- return x.FieldName == dataFieldCurrent && x.Type != "OutOfScope";
37970
+ return x.FieldName == dataFieldCurrent && x.Type != "OutOfScope" && x.Type != "Dirty";
37970
37971
  }).map(function (item) {
37971
37972
  mergedCells.filter(function (x) {
37972
37973
  return x.FieldName == dataFieldNext && x.Type != "New" && x.Type != "Placed";
@@ -38074,7 +38075,6 @@ var OdsMergeCellDataGrid = function OdsMergeCellDataGrid(props) {
38074
38075
  helper.columns = props.columns;
38075
38076
  helper.dataSource = props.dataSource;
38076
38077
  helper.mergeDataFields = props.mergeDataFields;
38077
- helper.sortDataSource();
38078
38078
  setMergedCellInfo(helper.mergeDataSource(props.keyExpr));
38079
38079
  setData(helper.dataSource);
38080
38080
  }, [props.dataSource]);
@@ -55971,7 +55971,7 @@ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEv
55971
55971
  return selectionColumn;
55972
55972
  };
55973
55973
 
55974
- var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4;
55974
+ var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4, _templateObject6$3, _templateObject7$3, _templateObject8$3, _templateObject9$3;
55975
55975
  var useStyles$b = antdStyle.createStyles(function (_ref, props) {
55976
55976
  var _props$taskWidth, _props$progressPerc, _props$progressColor;
55977
55977
  var css = _ref.css;
@@ -55983,7 +55983,11 @@ var useStyles$b = antdStyle.createStyles(function (_ref, props) {
55983
55983
  taskProgress: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteralLoose(["\n height: 100%;\n position: absolute;\n left: 0;\n bottom: 0;\n width: ", "%;\n border: 1px solid ", ";\n border-radius: 5px;\n background-color: ", ";\n "])), _progressPerc, _progressColor, _progressColor),
55984
55984
  taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "]))),
55985
55985
  searchBoxIcon: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n color: #999;\n font-size: 17px;\n line-height: 18px;\n "]))),
55986
- searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n padding-left: 5px;\n "])))
55986
+ searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n padding-left: 5px;\n "]))),
55987
+ columnChooserPopup: css(_templateObject6$3 || (_templateObject6$3 = _taggedTemplateLiteralLoose(["\n min-width: 250px;\n "]))),
55988
+ columnChooserHeader: css(_templateObject7$3 || (_templateObject7$3 = _taggedTemplateLiteralLoose(["\n display: flex;\n align-items: center;\n "]))),
55989
+ columnChooserCloseButton: css(_templateObject8$3 || (_templateObject8$3 = _taggedTemplateLiteralLoose(["\n flex: 1;\n text-align: end;\n cursor: pointer;\n "]))),
55990
+ columnChooserDivider: css(_templateObject9$3 || (_templateObject9$3 = _taggedTemplateLiteralLoose(["\n margin-top: 10px;\n margin-bottom: 10px;\n "])))
55987
55991
  };
55988
55992
  });
55989
55993
 
@@ -56042,8 +56046,99 @@ var OdsTimelineTableSearchBox = function OdsTimelineTableSearchBox(props) {
56042
56046
  }));
56043
56047
  };
56044
56048
 
56049
+ var uniqueRecords = function uniqueRecords(value, index, array) {
56050
+ return array.indexOf(value) === index;
56051
+ };
56052
+
56053
+ var OdsTimelineTableColumnChooser = function OdsTimelineTableColumnChooser(props) {
56054
+ var _useStyles = useStyles$b(),
56055
+ timelineTableStyles = _useStyles.styles;
56056
+ var _useState = React.useState(false),
56057
+ open = _useState[0],
56058
+ setOpen = _useState[1];
56059
+ var _useState2 = React.useState(props.items),
56060
+ columns = _useState2[0],
56061
+ setColumns = _useState2[1];
56062
+ var _useState3 = React.useState(props.items),
56063
+ selectedColumns = _useState3[0],
56064
+ setSelectedColumns = _useState3[1];
56065
+ var filterColumns = function filterColumns(searchValue) {
56066
+ if (searchValue !== undefined && searchValue !== null && searchValue !== "") {
56067
+ setColumns(function (prev) {
56068
+ return prev.filter(function (item) {
56069
+ return item.toLocaleLowerCase().includes(searchValue.toLocaleLowerCase());
56070
+ });
56071
+ });
56072
+ } else {
56073
+ setColumns(props.items);
56074
+ }
56075
+ };
56076
+ var selectAllChanged = function selectAllChanged(isSelected) {
56077
+ if (isSelected) {
56078
+ setSelectedColumns(function (prev) {
56079
+ return [].concat(prev, columns).filter(uniqueRecords);
56080
+ });
56081
+ } else {
56082
+ setSelectedColumns(function (prev) {
56083
+ return prev.filter(function (item) {
56084
+ return !columns.some(function (x) {
56085
+ return x === item;
56086
+ });
56087
+ });
56088
+ });
56089
+ }
56090
+ };
56091
+ var selectChanged = function selectChanged(_isSelected, _columnName) {};
56092
+ var isSelected = function isSelected(columnName) {
56093
+ return selectedColumns.some(columnName);
56094
+ };
56095
+ var content = React__default.createElement("div", {
56096
+ className: timelineTableStyles.columnChooserPopup
56097
+ }, React__default.createElement("div", {
56098
+ className: timelineTableStyles.columnChooserHeader
56099
+ }, React__default.createElement("span", null, props.title), React__default.createElement("span", {
56100
+ className: timelineTableStyles.columnChooserCloseButton,
56101
+ onClick: function onClick() {
56102
+ return setOpen(false);
56103
+ }
56104
+ }, React__default.createElement(outline.CrossIcon, null))), React__default.createElement(OdsInput, {
56105
+ key: "OdsTimelineTableColumnChooser_OdsSearch",
56106
+ prefix: React__default.createElement("span", {
56107
+ className: "dx-icon-search " + timelineTableStyles.searchBoxIcon
56108
+ }),
56109
+ className: timelineTableStyles.searchBox,
56110
+ onChange: function onChange(e) {
56111
+ return filterColumns(e.target.value);
56112
+ }
56113
+ }), React__default.createElement(OdsCheckbox, {
56114
+ defaultChecked: true,
56115
+ onChange: function onChange(e) {
56116
+ return selectAllChanged(e.target.value);
56117
+ }
56118
+ }), React__default.createElement(antd.Divider, {
56119
+ className: timelineTableStyles.columnChooserDivider
56120
+ }), columns.map(function (columnName, index) {
56121
+ return React__default.createElement(OdsCheckbox, {
56122
+ key: "OdsTimelineTableColumnChooser_OdsCheckbox_" + index,
56123
+ value: isSelected(columnName),
56124
+ onChange: function onChange(e) {
56125
+ return selectChanged();
56126
+ }
56127
+ });
56128
+ }));
56129
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(antd.Popover, {
56130
+ open: open,
56131
+ content: content
56132
+ }, React__default.createElement(button.Button, {
56133
+ icon: "columnchooser",
56134
+ onClick: function onClick() {
56135
+ return setOpen(true);
56136
+ }
56137
+ })));
56138
+ };
56139
+
56045
56140
  var OdsTimelineTable = React.forwardRef(function (props, ref) {
56046
- var _toolbarSettings$sear, _toolbarSettings$sear5, _toolbarSettings$expo6, _toolbarSettings$expo7;
56141
+ var _toolbarSettings$sear, _toolbarSettings$sear5, _toolbarSettings$expo6, _toolbarSettings$expo7, _toolbarSettings$colu;
56047
56142
  var customColumns = props.customColumns,
56048
56143
  customTasks = props.customTasks,
56049
56144
  customTaskKey = props.customTaskKey,
@@ -56410,6 +56505,19 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
56410
56505
  stylingMode: "text",
56411
56506
  onClick: exportToPdf
56412
56507
  }
56508
+ }), React__default.createElement(gantt.Item, {
56509
+ key: "OdsTimelineTable_ToolbarItem_ColumChooser",
56510
+ visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$colu = toolbarSettings.columnChooser) === null || _toolbarSettings$colu === void 0 ? void 0 : _toolbarSettings$colu.visible,
56511
+ location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location,
56512
+ component: function component(props) {
56513
+ var _toolbarSettings$colu2, _toolbarSettings$colu3;
56514
+ return OdsTimelineTableColumnChooser(_extends({}, props, {
56515
+ title: (_toolbarSettings$colu2 = toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$colu3 = toolbarSettings.columnChooser) === null || _toolbarSettings$colu3 === void 0 ? void 0 : _toolbarSettings$colu3.title) != null ? _toolbarSettings$colu2 : "Column Chooser",
56516
+ items: customColumns.map(function (item) {
56517
+ return item.caption;
56518
+ })
56519
+ }));
56520
+ }
56413
56521
  })) : "", React__default.createElement(gantt.ContextMenu, {
56414
56522
  enabled: false
56415
56523
  }), timelineColumns === null || timelineColumns === void 0 ? void 0 : timelineColumns.map(function (columnProps) {