ods-component-lib 1.18.236 → 1.18.237

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,5 +1,7 @@
1
1
  import React from "react";
2
+ import { IOdsTimelineTableProps } from "./OdsTimelineTable.Types";
2
3
  export declare const checkboxCellComponent: (props: any) => React.JSX.Element;
3
4
  export declare const statusCellComponent: (props: any) => React.JSX.Element;
4
5
  export declare const mapCustomTask: (item: any) => any;
5
- export declare const mapSelectedKeys: (datasource: any[], key?: string, selectedKeys?: number[] | string[]) => any[];
6
+ export declare const mapSelectedKeys: (datasource: any[], key?: string, selectedKeys?: string[]) => any[];
7
+ export declare const getExportableTimelineTable: (props: IOdsTimelineTableProps, ref: any) => React.JSX.Element;
@@ -61,6 +61,10 @@ export interface IOdsTimelineTableProps extends React.PropsWithChildren<IGanttOp
61
61
  * ClientSideSorting means Gantt's default sorting, but sorting have to be managed programmacitally if ServerSideSorting is chosen
62
62
  */
63
63
  sortingProcess?: SortingProcessType;
64
+ /**
65
+ * Set translations for showing in cells
66
+ */
67
+ dataTranslations?: ITranslationValue[];
64
68
  /**
65
69
  * This is a selection event that fired when selection is changed.
66
70
  */
@@ -124,3 +128,7 @@ export interface IOdsTimelineTableSearchBox extends IItemProps {
124
128
  placeholder?: string;
125
129
  onSearch?(searchValue?: string): void;
126
130
  }
131
+ export interface ITranslationValue {
132
+ originalValue: any;
133
+ translatedValue: string;
134
+ }
package/dist/index.js CHANGED
@@ -46,7 +46,8 @@ var devextremeReact = require('devextreme-react');
46
46
  var antdStyle = require('antd-style');
47
47
  var FileSaver = require('file-saver');
48
48
  require('devextreme/dist/css/dx.light.css');
49
- var gantt = require('devextreme-react/gantt');
49
+ var Gantt = require('devextreme-react/gantt');
50
+ var Gantt__default = _interopDefault(Gantt);
50
51
  require('jspdf-autotable');
51
52
 
52
53
  function _toPrimitive(t, r) {
@@ -38520,6 +38521,40 @@ var Constants = {
38520
38521
  timelineDefaultEndDate: new Date(currentYear + 1, 0, 1)
38521
38522
  };
38522
38523
 
38524
+ var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4;
38525
+ var useStyles$b = antdStyle.createStyles(function (_ref, props) {
38526
+ var _props$taskWidth, _props$progressPerc, _props$progressColor;
38527
+ var css = _ref.css;
38528
+ var _taskWidth = (_props$taskWidth = props === null || props === void 0 ? void 0 : props.taskWidth) != null ? _props$taskWidth : 0;
38529
+ var _progressPerc = (_props$progressPerc = props === null || props === void 0 ? void 0 : props.progressPerc) != null ? _props$progressPerc : 100;
38530
+ var _progressColor = (_props$progressColor = props === null || props === void 0 ? void 0 : props.progressColor) != null ? _props$progressColor : "unset";
38531
+ return {
38532
+ taskBar: css(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n min-height: 22px;\n display: block;\n overflow: hidden;\n width: ", "px;\n border: 1px solid #f0f0f0;\n border-radius: 5px;\n background-color: #f0f0f0;\n "])), _taskWidth != null ? _taskWidth : 0),
38533
+ 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),
38534
+ taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "]))),
38535
+ searchBoxIcon: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n color: #999;\n font-size: 17px;\n line-height: 18px;\n "]))),
38536
+ searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n padding-left: 5px;\n "])))
38537
+ };
38538
+ });
38539
+
38540
+ var OdsTimelineTableTaskTemplate = function OdsTimelineTableTaskTemplate(_ref) {
38541
+ var taskData = _ref.taskData,
38542
+ taskSize = _ref.taskSize;
38543
+ var _useStyles = useStyles$b({
38544
+ progressColor: taskData.color,
38545
+ progressPerc: taskData.progress,
38546
+ taskWidth: taskSize.width
38547
+ }),
38548
+ timelineTableStyles = _useStyles.styles;
38549
+ return React__default.createElement("div", {
38550
+ className: timelineTableStyles.taskBar
38551
+ }, React__default.createElement("span", {
38552
+ className: timelineTableStyles.taskBarTitle
38553
+ }, taskData.title), React__default.createElement("div", {
38554
+ className: timelineTableStyles.taskProgress
38555
+ }));
38556
+ };
38557
+
38523
38558
  var checkboxCellComponent = function checkboxCellComponent(props) {
38524
38559
  var isChecked = props.data.value;
38525
38560
  var onChange = function onChange(e) {
@@ -38573,17 +38608,65 @@ var mapCustomTask = function mapCustomTask(item) {
38573
38608
  var mapSelectedKeys = function mapSelectedKeys(datasource, key, selectedKeys) {
38574
38609
  if (key && key != "" && selectedKeys && selectedKeys.length > 0) {
38575
38610
  return datasource.map(function (x) {
38576
- if (selectedKeys.some(function (y) {
38611
+ x.isSelected = selectedKeys.some(function (y) {
38577
38612
  return y == x[key];
38578
- })) {
38579
- x.isSelected = true;
38580
- }
38613
+ });
38581
38614
  return x;
38582
38615
  });
38583
38616
  } else {
38584
38617
  return datasource;
38585
38618
  }
38586
38619
  };
38620
+ var getTranslatedValue = function getTranslatedValue(value, translations) {
38621
+ var _translations$find$tr, _translations$find;
38622
+ return (_translations$find$tr = (_translations$find = translations.find(function (item) {
38623
+ return item.originalValue == value;
38624
+ })) === null || _translations$find === void 0 ? void 0 : _translations$find.translatedValue) != null ? _translations$find$tr : value;
38625
+ };
38626
+ var getExportableTimelineTable = function getExportableTimelineTable(props, ref) {
38627
+ var _props$customColumns;
38628
+ return React__default.createElement(Gantt__default, Object.assign({
38629
+ width: 0,
38630
+ height: 0,
38631
+ startDateRange: props.startDateRange,
38632
+ endDateRange: props.endDateRange,
38633
+ ref: ref,
38634
+ taskContentRender: function taskContentRender(params) {
38635
+ return React__default.createElement(OdsTimelineTableTaskTemplate, Object.assign({}, params));
38636
+ }
38637
+ }, props), (_props$customColumns = props.customColumns) === null || _props$customColumns === void 0 ? void 0 : _props$customColumns.filter(function (col) {
38638
+ return col.allowExporting != false;
38639
+ }).map(function (columnProps) {
38640
+ if (columnProps.isStatusColumn) {
38641
+ return React__default.createElement(Gantt.Column, Object.assign({
38642
+ cssClass: "cellCenteredVertically"
38643
+ }, columnProps, {
38644
+ cellRender: function cellRender(_ref) {
38645
+ var value = _ref.value;
38646
+ return getTranslatedValue(value, props.dataTranslations);
38647
+ }
38648
+ }));
38649
+ } else if (columnProps.isCheckboxColumn) {
38650
+ return React__default.createElement(Gantt.Column, Object.assign({
38651
+ cssClass: "cellCenteredVertically"
38652
+ }, columnProps, {
38653
+ cellRender: function cellRender(_ref2) {
38654
+ var value = _ref2.value;
38655
+ return getTranslatedValue(value, props.dataTranslations);
38656
+ }
38657
+ }));
38658
+ } else {
38659
+ return React__default.createElement(Gantt.Column, Object.assign({}, columnProps, {
38660
+ cellRender: function cellRender(_ref3) {
38661
+ var value = _ref3.value;
38662
+ return getTranslatedValue(value, props.dataTranslations);
38663
+ }
38664
+ }));
38665
+ }
38666
+ }), React__default.createElement(Gantt.Tasks, {
38667
+ dataSource: props.customTasks
38668
+ }), props.children);
38669
+ };
38587
38670
 
38588
38671
  var OdsTimelineTableDateFilter = function OdsTimelineTableDateFilter(props) {
38589
38672
  var defaultStartDate = props.defaultStartDate,
@@ -38661,6 +38744,7 @@ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEv
38661
38744
  minWidth: 50,
38662
38745
  width: 50,
38663
38746
  dataField: "isSelected",
38747
+ allowExporting: false,
38664
38748
  cellComponent: function cellComponent(props) {
38665
38749
  var onChange = function onChange(e) {
38666
38750
  selectionEvent && selectionEvent({
@@ -38681,40 +38765,6 @@ var OdsTimelineSelectionColumn = function OdsTimelineSelectionColumn(selectionEv
38681
38765
  return selectionColumn;
38682
38766
  };
38683
38767
 
38684
- var _templateObject$B, _templateObject2$9, _templateObject3$6, _templateObject4$5, _templateObject5$4;
38685
- var useStyles$b = antdStyle.createStyles(function (_ref, props) {
38686
- var _props$taskWidth, _props$progressPerc, _props$progressColor;
38687
- var css = _ref.css;
38688
- var _taskWidth = (_props$taskWidth = props === null || props === void 0 ? void 0 : props.taskWidth) != null ? _props$taskWidth : 0;
38689
- var _progressPerc = (_props$progressPerc = props === null || props === void 0 ? void 0 : props.progressPerc) != null ? _props$progressPerc : 100;
38690
- var _progressColor = (_props$progressColor = props === null || props === void 0 ? void 0 : props.progressColor) != null ? _props$progressColor : "unset";
38691
- return {
38692
- taskBar: css(_templateObject$B || (_templateObject$B = _taggedTemplateLiteralLoose(["\n min-height: 22px;\n display: block;\n overflow: hidden;\n width: ", "px;\n border: 1px solid #f0f0f0;\n border-radius: 5px;\n background-color: #f0f0f0;\n "])), _taskWidth != null ? _taskWidth : 0),
38693
- 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),
38694
- taskBarTitle: css(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteralLoose(["\n z-index: 1;\n padding-left: 4px;\n position: absolute;\n "]))),
38695
- searchBoxIcon: css(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteralLoose(["\n color: #999;\n font-size: 17px;\n line-height: 18px;\n "]))),
38696
- searchBox: css(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteralLoose(["\n padding-left: 5px;\n "])))
38697
- };
38698
- });
38699
-
38700
- var OdsTimelineTableTaskTemplate = function OdsTimelineTableTaskTemplate(_ref) {
38701
- var taskData = _ref.taskData,
38702
- taskSize = _ref.taskSize;
38703
- var _useStyles = useStyles$b({
38704
- progressColor: taskData.color,
38705
- progressPerc: taskData.progress,
38706
- taskWidth: taskSize.width
38707
- }),
38708
- timelineTableStyles = _useStyles.styles;
38709
- return React__default.createElement("div", {
38710
- className: timelineTableStyles.taskBar
38711
- }, React__default.createElement("span", {
38712
- className: timelineTableStyles.taskBarTitle
38713
- }, taskData.title), React__default.createElement("div", {
38714
- className: timelineTableStyles.taskProgress
38715
- }));
38716
- };
38717
-
38718
38768
  var OdsTimelineTableSearchBox = function OdsTimelineTableSearchBox(props) {
38719
38769
  var _props$value;
38720
38770
  var _useStyles = useStyles$b(),
@@ -38769,6 +38819,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
38769
38819
  onDateRangeChange = props.onDateRangeChange,
38770
38820
  onSortingChanged = props.onSortingChanged;
38771
38821
  var refGantt = React.useRef(null);
38822
+ var refGanttExportable = React.useRef(null);
38772
38823
  var _useState = React.useState(startDateRange != null ? startDateRange : Constants.timelineDefaultStartDate),
38773
38824
  startDate = _useState[0],
38774
38825
  setStartDate = _useState[1];
@@ -38966,11 +39017,10 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
38966
39017
  }));
38967
39018
  };
38968
39019
  var exportToPdf = function exportToPdf() {
38969
- var _odsTimelineTable$_tr, _toolbarSettings$expo, _toolbarSettings$expo2, _toolbarSettings$expo3;
38970
- var _odsTimelineTable = refGantt.current.instance;
38971
- console.log("exportToPdf", _odsTimelineTable, _odsTimelineTable._treeList, (_odsTimelineTable$_tr = _odsTimelineTable._treeList) === null || _odsTimelineTable$_tr === void 0 ? void 0 : _odsTimelineTable$_tr.getVisibleColumns());
39020
+ var _toolbarSettings$expo, _toolbarSettings$expo2, _toolbarSettings$expo3;
39021
+ var exportableTimelineTable = refGanttExportable.current.instance;
38972
39022
  pdf_exporter.exportGantt({
38973
- component: _odsTimelineTable,
39023
+ component: exportableTimelineTable,
38974
39024
  createDocumentMethod: function createDocumentMethod(args) {
38975
39025
  return new jsPDF.jsPDF(args);
38976
39026
  },
@@ -38997,7 +39047,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
38997
39047
  customClearSorting: customClearSorting
38998
39048
  };
38999
39049
  });
39000
- return React__default.createElement(React__default.Fragment, null, React__default.createElement(gantt.Gantt, Object.assign({
39050
+ return React__default.createElement(React__default.Fragment, null, React__default.createElement(Gantt.Gantt, Object.assign({
39001
39051
  width: "100%",
39002
39052
  height: 500,
39003
39053
  startDateRange: startDate,
@@ -39011,7 +39061,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39011
39061
  mode: sortingMode,
39012
39062
  showSortIndexes: false
39013
39063
  }
39014
- }), toolbarSettings !== null && toolbarSettings !== void 0 && toolbarSettings.visible ? React__default.createElement(gantt.Toolbar, null, React__default.createElement(gantt.Item, {
39064
+ }), toolbarSettings !== null && toolbarSettings !== void 0 && toolbarSettings.visible ? React__default.createElement(Gantt.Toolbar, null, React__default.createElement(Gantt.Item, {
39015
39065
  key: "OdsTimelineTable_ToolbarItem_DateFilter",
39016
39066
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.dateFilterVisible,
39017
39067
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location,
@@ -39022,22 +39072,22 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39022
39072
  onFilterRangeChange: onTimelineDateRangeChange
39023
39073
  }));
39024
39074
  }
39025
- }), React__default.createElement(gantt.Item, {
39075
+ }), React__default.createElement(Gantt.Item, {
39026
39076
  key: "OdsTimelineTable_ToolbarItem_Search",
39027
39077
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$sear5 = toolbarSettings.search) === null || _toolbarSettings$sear5 === void 0 ? void 0 : _toolbarSettings$sear5.visible,
39028
39078
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location,
39029
39079
  component: searchBoxComponent
39030
- }), React__default.createElement(gantt.Item, {
39080
+ }), (toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.zoomVisible) && React__default.createElement(Gantt.Item, {
39031
39081
  key: "OdsTimelineTable_ToolbarItem_ZoomIn",
39032
39082
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.zoomVisible,
39033
39083
  name: "zoomIn",
39034
39084
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location
39035
- }), React__default.createElement(gantt.Item, {
39085
+ }), (toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.zoomVisible) && React__default.createElement(Gantt.Item, {
39036
39086
  key: "OdsTimelineTable_ToolbarItem_ZoomOut",
39037
39087
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.zoomVisible,
39038
39088
  name: "zoomOut",
39039
39089
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location
39040
- }), React__default.createElement(gantt.Item, {
39090
+ }), React__default.createElement(Gantt.Item, {
39041
39091
  key: "OdsTimelineTable_ToolbarItem_Export",
39042
39092
  visible: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : (_toolbarSettings$expo6 = toolbarSettings["export"]) === null || _toolbarSettings$expo6 === void 0 ? void 0 : _toolbarSettings$expo6.visible,
39043
39093
  location: toolbarSettings === null || toolbarSettings === void 0 ? void 0 : toolbarSettings.location,
@@ -39048,11 +39098,11 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39048
39098
  stylingMode: "text",
39049
39099
  onClick: exportToPdf
39050
39100
  }
39051
- })) : "", React__default.createElement(gantt.ContextMenu, {
39101
+ })) : "", React__default.createElement(Gantt.ContextMenu, {
39052
39102
  enabled: false
39053
39103
  }), timelineColumns === null || timelineColumns === void 0 ? void 0 : timelineColumns.map(function (columnProps) {
39054
39104
  if (columnProps.isStatusColumn) {
39055
- return React__default.createElement(gantt.Column, Object.assign({
39105
+ return React__default.createElement(Gantt.Column, Object.assign({
39056
39106
  width: 50,
39057
39107
  minWidth: 50,
39058
39108
  cssClass: "cellCenteredVertically",
@@ -39060,7 +39110,7 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39060
39110
  headerCellComponent: minimalHeaderCellComponent
39061
39111
  }, columnProps));
39062
39112
  } else if (columnProps.isCheckboxColumn) {
39063
- return React__default.createElement(gantt.Column, Object.assign({
39113
+ return React__default.createElement(Gantt.Column, Object.assign({
39064
39114
  width: 50,
39065
39115
  minWidth: 50,
39066
39116
  cssClass: "cellCenteredVertically",
@@ -39069,18 +39119,23 @@ var OdsTimelineTable = React.forwardRef(function (props, ref) {
39069
39119
  allowSorting: false
39070
39120
  }, columnProps));
39071
39121
  } else {
39072
- return React__default.createElement(gantt.Column, Object.assign({
39122
+ return React__default.createElement(Gantt.Column, Object.assign({
39073
39123
  headerCellComponent: function headerCellComponent(props) {
39074
39124
  return customHeaderCellComponent(props);
39075
39125
  }
39076
39126
  }, columnProps));
39077
39127
  }
39078
- }), React__default.createElement(gantt.Tasks, {
39128
+ }), React__default.createElement(Gantt.Tasks, {
39079
39129
  dataSource: timelineTasks
39080
- }), children, React__default.createElement(gantt.Sorting, {
39130
+ }), children, React__default.createElement(Gantt.Sorting, {
39081
39131
  mode: sortingMode,
39082
39132
  showSortIndexes: showSortIndexes
39083
- })));
39133
+ })), getExportableTimelineTable(_extends({}, props, {
39134
+ startDateRange: startDate,
39135
+ endDateRange: endDate,
39136
+ customColumns: timelineColumns,
39137
+ customTasks: timelineTasks
39138
+ }), refGanttExportable));
39084
39139
  });
39085
39140
 
39086
39141
  /**