d2coreui 21.0.14 → 21.0.16

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.
Files changed (143) hide show
  1. package/components/clipboard/clipboardUtils.d.ts +1 -1
  2. package/components/clipboard/clipboardUtils.js +1 -18
  3. package/components/clipboard/clipboardUtils.js.map +1 -1
  4. package/components/codemirror/SyntaxHighlighter.js.map +1 -1
  5. package/components/collapse/expandable.js.map +1 -1
  6. package/components/color/colorPicker.js.map +1 -1
  7. package/components/color/colorSwatch.js.map +1 -1
  8. package/components/color/colorUtils.js.map +1 -1
  9. package/components/date/dateRangeInput.d.ts +3 -2
  10. package/components/date/dateRangeInput.js +34 -20
  11. package/components/date/dateRangeInput.js.map +1 -1
  12. package/components/date/dateRangeInputAdvancedPanel.js.map +1 -1
  13. package/components/date/dateRangeInputConfirm.js.map +1 -1
  14. package/components/date/dateTimeInput.d.ts +2 -0
  15. package/components/date/dateTimeInput.js +16 -10
  16. package/components/date/dateTimeInput.js.map +1 -1
  17. package/components/date/durationInput.d.ts +7 -7
  18. package/components/date/durationInput.js +128 -75
  19. package/components/date/durationInput.js.map +1 -1
  20. package/components/form/NiceFormItem.d.ts +14 -0
  21. package/components/form/NiceFormItem.js +32 -0
  22. package/components/form/NiceFormItem.js.map +1 -0
  23. package/components/grid/cell/cellEditorUtils.js.map +1 -1
  24. package/components/grid/cell/customEnumCellEditor.js.map +1 -1
  25. package/components/grid/cell/dateCellEditor.js +1 -1
  26. package/components/grid/cell/dateCellEditor.js.map +1 -1
  27. package/components/grid/cell/durationCellEditor.js.map +1 -1
  28. package/components/grid/cell/hexaOctetStringCellEditor.js.map +1 -1
  29. package/components/grid/cell/hexaValueCellEditor.js.map +1 -1
  30. package/components/grid/cell/numberCellEditor.js +2 -2
  31. package/components/grid/cell/numberCellEditor.js.map +1 -1
  32. package/components/grid/cell/rangeSelector.js.map +1 -1
  33. package/components/grid/cell/simpleStatusTextCellEditor.js.map +1 -1
  34. package/components/grid/cell/statusTextCellEditor.js.map +1 -1
  35. package/components/grid/cell/tableDefaultRowStyleRules.js.map +1 -1
  36. package/components/grid/cell/textCellEditor.js +2 -1
  37. package/components/grid/cell/textCellEditor.js.map +1 -1
  38. package/components/grid/cell/wildcardQuickFilter.js.map +1 -1
  39. package/components/grid/columnUtils.js.map +1 -1
  40. package/components/grid/config/columnTransfer.js.map +1 -1
  41. package/components/grid/config/dataGridEditor.js.map +1 -1
  42. package/components/grid/config/rowStylePicker.js.map +1 -1
  43. package/components/grid/dataGrid.d.ts +3 -2
  44. package/components/grid/dataGrid.js +51 -54
  45. package/components/grid/dataGrid.js.map +1 -1
  46. package/components/grid/detail/detailHeaderPanel.d.ts +13 -0
  47. package/components/grid/detail/detailHeaderPanel.js +26 -0
  48. package/components/grid/detail/detailHeaderPanel.js.map +1 -0
  49. package/components/grid/export/contextMenu.d.ts +2 -1
  50. package/components/grid/export/contextMenu.js +4 -4
  51. package/components/grid/export/contextMenu.js.map +1 -1
  52. package/components/grid/export/progressPopup.js.map +1 -1
  53. package/components/grid/export/worker/clipboardExport.js.map +1 -1
  54. package/components/grid/export/worker/csvExport.js.map +1 -1
  55. package/components/grid/export/worker/pdfExport.js.map +1 -1
  56. package/components/grid/export/worker/txtExport.js.map +1 -1
  57. package/components/grid/extendedDataGrid.d.ts +1 -0
  58. package/components/grid/extendedDataGrid.js +6 -2
  59. package/components/grid/extendedDataGrid.js.map +1 -1
  60. package/components/grid/filter/customColumnFilter.js.map +1 -1
  61. package/components/grid/filter/dateColumnFilter.js.map +1 -1
  62. package/components/grid/filter/textColumnFilter.js.map +1 -1
  63. package/components/grid/header/simpleHeader.js.map +1 -1
  64. package/components/grid/panel/dataGridPagination.d.ts +16 -0
  65. package/components/grid/panel/dataGridPagination.js +59 -0
  66. package/components/grid/panel/dataGridPagination.js.map +1 -0
  67. package/components/grid/panel/loadingOverlay.js.map +1 -1
  68. package/components/grid/panel/noRecordsOverlay.js.map +1 -1
  69. package/components/grid/panel/tablePagination.js.map +1 -1
  70. package/components/icons/ant-design-double-right-outline.svg +5 -5
  71. package/components/icons/ant-design_close-outline.svg +5 -5
  72. package/components/icons/undoIcon.js.map +1 -1
  73. package/components/input/autoCompleteInput.js.map +1 -1
  74. package/components/input/draftUtils.js.map +1 -1
  75. package/components/input/draftail.js.map +1 -1
  76. package/components/input/hexaFormattedInput.js.map +1 -1
  77. package/components/input/mask/helpers.js.map +1 -1
  78. package/components/input/mask/inputMaskCore.js.map +1 -1
  79. package/components/input/mask/pattern.js.map +1 -1
  80. package/components/input/maskedInput.d.ts +2 -2
  81. package/components/input/maskedInput.js.map +1 -1
  82. package/components/input/passwordInput.js.map +1 -1
  83. package/components/input/simpleAutoComplete.js.map +1 -1
  84. package/components/input/textarea/extractSpansOfClasses.js.map +1 -1
  85. package/components/input/textarea/getRanges.js.map +1 -1
  86. package/components/input/textarea/getType.js.map +1 -1
  87. package/components/input/textarea/highlighedContents.js.map +1 -1
  88. package/components/input/textarea/mentionsWithHighlighting.js +1 -1
  89. package/components/input/textarea/mentionsWithHighlighting.js.map +1 -1
  90. package/components/keyboard/keyboardUtils.js.map +1 -1
  91. package/components/modal/draggableModalProvider.js.map +1 -1
  92. package/components/modal/impl/clamp.js.map +1 -1
  93. package/components/modal/impl/draggableModal.js.map +1 -1
  94. package/components/modal/impl/draggableModalContext.js.map +1 -1
  95. package/components/modal/impl/draggableModalInner.js.map +1 -1
  96. package/components/modal/impl/draggableModalReducer.js.map +1 -1
  97. package/components/modal/impl/getWindowSize.js.map +1 -1
  98. package/components/modal/impl/index.js.map +1 -1
  99. package/components/modal/impl/resizeHandle.js.map +1 -1
  100. package/components/modal/impl/useDrag.js.map +1 -1
  101. package/components/modal/impl/usePrevious.js.map +1 -1
  102. package/components/modal/impl/useResize.js.map +1 -1
  103. package/components/modal/modalDialog.js.map +1 -1
  104. package/components/picker/enumValuePicker.js.map +1 -1
  105. package/components/platformSpecific.js.map +1 -1
  106. package/components/scrollTo/onlyText.js.map +1 -1
  107. package/components/scrollTo/scrollTo.js.map +1 -1
  108. package/components/table/dataTable.d.ts +1 -0
  109. package/components/table/dataTable.js.map +1 -1
  110. package/components/table/dragSortingTable.js.map +1 -1
  111. package/components/text/impl/innerSize.js.map +1 -1
  112. package/components/text/impl/series.js.map +1 -1
  113. package/components/text/impl/shallowEqual.js.map +1 -1
  114. package/components/text/impl/uniqueId.js.map +1 -1
  115. package/components/text/impl/whilst.js.map +1 -1
  116. package/components/text/textFit.js.map +1 -1
  117. package/i18n/components.cs.json +100 -0
  118. package/i18n/components.sk.json +5 -1
  119. package/i18n/components.uk.json +100 -0
  120. package/i18n/componentsLocaleHolder.d.ts +1 -1
  121. package/i18n/componentsLocaleHolder.js +6 -4
  122. package/i18n/componentsLocaleHolder.js.map +1 -1
  123. package/package.json +70 -70
  124. package/style/ag-grid/_ag-theme-antd-vars.scss +194 -194
  125. package/style/ag-grid/ag-theme-antd.scss +87 -87
  126. package/style/ag-grid/aggrid-adaptations.css +42 -42
  127. package/style/ag-grid/aggrid.scss +11 -11
  128. package/style/antd/antd-tree-showline.css +24 -24
  129. package/style/antd/full-height-tabs.scss +62 -62
  130. package/style/draftail/draftail-editor.css +179 -179
  131. package/style/flexLayout/flexLayout.scss +130 -130
  132. package/style/flexLayout/flexLayoutBase.scss +623 -623
  133. package/style/flexLayout/new/flexLayoutBase.scss +621 -621
  134. package/style/form/niceFormItem.css +39 -0
  135. package/style/index.less +299 -291
  136. package/style/loading.css +31 -31
  137. package/style/modal/DraggableModal.css +40 -40
  138. package/style/modal/ResizeHandle.css +19 -19
  139. package/style/splitPane/splitPane.css +48 -48
  140. package/style/table/dragSortingTable.css +6 -6
  141. package/components/date/millisecondDatePicker.d.ts +0 -16
  142. package/components/date/millisecondDatePicker.js +0 -56
  143. package/components/date/millisecondDatePicker.js.map +0 -1
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ interface Props {
3
+ style?: React.CSSProperties;
4
+ hidePrevNextButton?: boolean;
5
+ onPrevRecord?(): void;
6
+ onNextRecord?(): void;
7
+ onClose?(): void;
8
+ }
9
+ export default class DetailHeaderPanel extends React.Component<Props> {
10
+ constructor(props: Readonly<Props>);
11
+ render(): JSX.Element;
12
+ }
13
+ export {};
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ import { ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, ProfileOutlined } from "@ant-design/icons";
3
+ import i18n from "d2core/i18n/i18n";
4
+ import { Button } from "antd";
5
+ export default class DetailHeaderPanel extends React.Component {
6
+ constructor(props) {
7
+ super(props);
8
+ }
9
+ render() {
10
+ return (React.createElement("div", { className: "ant-drawer-header", style: Object.assign({ padding: "8px 4px 8px 12px", display: "flex", justifyContent: "space-between", alignItems: "center" }, this.props.style) },
11
+ React.createElement("div", null,
12
+ React.createElement(ProfileOutlined, null),
13
+ " ",
14
+ i18n("Detail")),
15
+ React.createElement("div", null,
16
+ !this.props.hidePrevNextButton &&
17
+ React.createElement(Button.Group, { style: { marginTop: -4 } },
18
+ React.createElement(Button, { title: i18n("Previous Record"), onClick: this.props.onPrevRecord },
19
+ React.createElement(ArrowUpOutlined, null)),
20
+ React.createElement(Button, { title: i18n("Next Record"), onClick: this.props.onNextRecord },
21
+ React.createElement(ArrowDownOutlined, null))),
22
+ React.createElement(Button, { title: i18n("Close"), type: "text", onClick: this.props.onClose },
23
+ React.createElement(CloseOutlined, null)))));
24
+ }
25
+ }
26
+ //# sourceMappingURL=detailHeaderPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detailHeaderPanel.js","sourceRoot":"","sources":["../../../../../components/grid/detail/detailHeaderPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,iBAAiB,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACrG,OAAO,IAAI,MAAM,kBAAkB,CAAC;AACpC,OAAO,EAAC,MAAM,EAAC,MAAM,MAAM,CAAC;AAa5B,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,KAAK,CAAC,SAAgB;IACjE,YAAY,KAAsB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,MAAM;QACF,OAAO,CACH,6BACI,SAAS,EAAC,mBAAmB,EAC7B,KAAK,kBACD,OAAO,EAAE,kBAAkB,EAC3B,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,eAAe,EAC/B,UAAU,EAAE,QAAQ,IACjB,IAAI,CAAC,KAAK,CAAC,KAAK;YAGvB;gBACI,oBAAC,eAAe,OAAE;;gBAAE,IAAI,CAAC,QAAQ,CAAC,CAChC;YACN;gBACK,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB;oBAC3B,oBAAC,MAAM,CAAC,KAAK,IAAC,KAAK,EAAE,EAAC,SAAS,EAAE,CAAC,CAAC,EAAC;wBAChC,oBAAC,MAAM,IAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;4BACpE,oBAAC,eAAe,OAAE,CACb;wBACT,oBAAC,MAAM,IAAC,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY;4BAChE,oBAAC,iBAAiB,OAAE,CACf,CACE;gBAEnB,oBAAC,MAAM,IACH,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,EACpB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;oBAE3B,oBAAC,aAAa,OAAE,CACX,CACP,CACJ,CACT,CAAC;IACN,CAAC;CACJ","sourcesContent":["import React from \"react\";\nimport {ArrowDownOutlined, ArrowUpOutlined, CloseOutlined, ProfileOutlined} from \"@ant-design/icons\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {Button} from \"antd\";\n\ninterface Props {\n style?: React.CSSProperties\n hidePrevNextButton?: boolean\n\n onPrevRecord?(): void\n\n onNextRecord?(): void\n\n onClose?(): void\n}\n\nexport default class DetailHeaderPanel extends React.Component<Props> {\n constructor(props: Readonly<Props>) {\n super(props);\n }\n\n render() {\n return (\n <div\n className=\"ant-drawer-header\"\n style={{\n padding: \"8px 4px 8px 12px\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n ...this.props.style\n }}\n >\n <div>\n <ProfileOutlined/> {i18n(\"Detail\")}\n </div>\n <div>\n {!this.props.hidePrevNextButton &&\n <Button.Group style={{marginTop: -4}}>\n <Button title={i18n(\"Previous Record\")} onClick={this.props.onPrevRecord}>\n <ArrowUpOutlined/>\n </Button>\n <Button title={i18n(\"Next Record\")} onClick={this.props.onNextRecord}>\n <ArrowDownOutlined/>\n </Button>\n </Button.Group>\n }\n <Button\n title={i18n(\"Close\")}\n type=\"text\"\n onClick={this.props.onClose}\n >\n <CloseOutlined/>\n </Button>\n </div>\n </div>\n );\n }\n}"]}
@@ -5,7 +5,8 @@ export interface ContextMenuProps {
5
5
  onlySelectedNodes?: boolean;
6
6
  showMilliseconds: boolean;
7
7
  showYear: boolean;
8
- getExportContent: (progressPopup: ProgressPopup, props: ContextMenuProps) => Promise<string[][]>;
8
+ hideNotificationOnClipboardCopy?: boolean;
9
+ getExportContent: (progressPopup: ProgressPopup | null, props: ContextMenuProps) => Promise<string[][]>;
9
10
  renderer?(menuElements: MenuElement[]): MenuElement[];
10
11
  onClick?(key: string): void;
11
12
  }
@@ -50,17 +50,17 @@ export default class ContextMenu extends React.Component {
50
50
  const csvContent = await csvExport(tableContent);
51
51
  await Thread.terminate(csvExport);
52
52
  await progressPopup.update(100);
53
- PlatformSpecific.INSTANCE.saveContent(`export_${moment().format("YYYYMMDD_HHmm")}.csv`, csvContent, true);
53
+ PlatformSpecific.INSTANCE.saveContent(`export_${moment().format("YYYYMMDD_HHmm")}.csv`, `\ufeff${csvContent}`, true);
54
54
  break;
55
55
  }
56
56
  case "clipboardCopy": {
57
- const progressPopup = new ProgressPopup(i18n("Export List to") + " " + i18n("Clipboard"));
57
+ const progressPopup = !this.props.hideNotificationOnClipboardCopy ? new ProgressPopup(i18n("Export List to") + " " + i18n("Clipboard")) : null;
58
58
  const tableContent = await this.props.getExportContent(progressPopup, this.props);
59
59
  const clipboardExport = await spawn(new Worker(clipboardExportUrl));
60
60
  const clipboardContent = await clipboardExport(tableContent);
61
61
  ClipboardUtils.copyToClipboard(clipboardContent);
62
62
  await Thread.terminate(clipboardExport);
63
- await progressPopup.update(100);
63
+ await (progressPopup === null || progressPopup === void 0 ? void 0 : progressPopup.update(100));
64
64
  break;
65
65
  }
66
66
  case "pdfExport": {
@@ -78,7 +78,7 @@ export default class ContextMenu extends React.Component {
78
78
  this.setState({ exporting: false });
79
79
  }
80
80
  render() {
81
- const _a = this.props, { onlySelectedNodes, showMilliseconds, showYear, getExportContent, renderer } = _a, rest = __rest(_a, ["onlySelectedNodes", "showMilliseconds", "showYear", "getExportContent", "renderer"]);
81
+ const _a = this.props, { onlySelectedNodes, showMilliseconds, showYear, hideNotificationOnClipboardCopy, getExportContent, renderer } = _a, rest = __rest(_a, ["onlySelectedNodes", "showMilliseconds", "showYear", "hideNotificationOnClipboardCopy", "getExportContent", "renderer"]);
82
82
  let menuItems = this.renderExportMenuItems();
83
83
  if (renderer) {
84
84
  menuItems = renderer(menuItems);
@@ -1 +1 @@
1
- {"version":3,"file":"contextMenu.js","sourceRoot":"","sources":["../../../../../components/grid/export/contextMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {CopyOutlined, FileOutlined, FilePdfOutlined, FileTextOutlined} from \"@ant-design/icons\";\r\nimport {Menu, Switch} from \"antd\";\r\nimport React from \"react\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {spawn, Thread, Worker} from \"threads\"\r\nimport moment from \"moment\";\r\nimport ProgressPopup from \"./progressPopup\";\r\nimport {MenuElement} from \"../dataGrid\";\r\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\r\n// @ts-ignore\r\nimport txtExportUrl from 'threads-plugin/dist/loader?name=txtExport!d2coreui/components/grid/export/worker/txtExport.ts'\r\n// @ts-ignore\r\nimport csvExportUrl from \"threads-plugin/dist/loader?name=csvExport!d2coreui/components/grid/export/worker/csvExport.ts\"\r\n// @ts-ignore\r\nimport clipboardExportUrl from \"threads-plugin/dist/loader?name=clipboardExport!d2coreui/components/grid/export/worker/clipboardExport.ts\"\r\n// @ts-ignore\r\nimport pdfExportUrl from \"threads-plugin/dist/loader?name=pdfExport!d2coreui/components/grid/export/worker/pdfExport.ts\"\r\nimport PlatformSpecific from \"d2coreui/components/platformSpecific\";\r\n\r\n\r\nexport interface ContextMenuProps {\r\n onlySelectedNodes?: boolean\r\n showMilliseconds: boolean\r\n showYear: boolean\r\n\r\n getExportContent: (progressPopup: ProgressPopup, props: ContextMenuProps) => Promise<string[][]>\r\n\r\n // overrides context menu rendering\r\n renderer?(menuElements: MenuElement[]): MenuElement[]\r\n\r\n // handler for custom context menu items click\r\n onClick?(key: string): void\r\n}\r\n\r\ntype PageOrientation = \"PORTRAIT\" | \"LANDSCAPE\";\r\n\r\ninterface ContextMenuState {\r\n pageOrientation: PageOrientation\r\n exporting: boolean\r\n}\r\n\r\n\r\nexport default class ContextMenu extends React.Component<ContextMenuProps, ContextMenuState> {\r\n constructor(props: Readonly<ContextMenuProps>) {\r\n super(props);\r\n this.state = {\r\n pageOrientation: \"PORTRAIT\",\r\n exporting: false\r\n };\r\n }\r\n\r\n async onExportMenuClick(menuKey: string) {\r\n this.setState({exporting: true});\r\n switch (menuKey) {\r\n case \"txtExport\": {\r\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" TXT\");\r\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\r\n const txtExport = await spawn(new Worker(txtExportUrl));\r\n const textContent = await txtExport(tableContent);\r\n await Thread.terminate(txtExport);\r\n await progressPopup.update(100);\r\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.txt`, textContent, true);\r\n break;\r\n }\r\n case \"csvExport\": {\r\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" CSV\");\r\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\r\n const csvExport = await spawn(new Worker(csvExportUrl));\r\n const csvContent = await csvExport(tableContent);\r\n await Thread.terminate(csvExport);\r\n await progressPopup.update(100);\r\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.csv`, csvContent, true);\r\n break;\r\n }\r\n case \"clipboardCopy\": {\r\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" \" + i18n(\"Clipboard\"));\r\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\r\n const clipboardExport = await spawn(new Worker(clipboardExportUrl));\r\n const clipboardContent = await clipboardExport(tableContent);\r\n ClipboardUtils.copyToClipboard(clipboardContent);\r\n await Thread.terminate(clipboardExport);\r\n await progressPopup.update(100);\r\n break;\r\n }\r\n case \"pdfExport\": {\r\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" PDF\");\r\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\r\n const pdfExport = await spawn(new Worker(pdfExportUrl));\r\n pdfExport.handler().subscribe(async (data: string) => {\r\n Thread.terminate(pdfExport);\r\n await progressPopup.update(100);\r\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.pdf`, data, false);\r\n });\r\n pdfExport.export(tableContent, {pageOrientation: this.state.pageOrientation});\r\n }\r\n }\r\n this.setState({exporting: false});\r\n }\r\n\r\n render() {\r\n const {onlySelectedNodes, showMilliseconds, showYear, getExportContent, renderer, ...rest} = this.props;\r\n let menuItems: MenuElement[] = this.renderExportMenuItems();\r\n if (renderer) {\r\n menuItems = renderer(menuItems);\r\n }\r\n return (\r\n <Menu {...rest}\r\n onClick={(item: any) => {\r\n this.onExportMenuClick(item.key);\r\n if (this.props.onClick) {\r\n this.props.onClick(item.key.toString());\r\n }\r\n }}>\r\n {menuItems}\r\n </Menu>);\r\n }\r\n\r\n renderExportMenuItems() {\r\n return [\r\n <Menu.Item icon={<FileOutlined/>} key=\"txtExport\" disabled={this.state.exporting}>{i18n(\"Export List to\") + \" TXT\"}\r\n </Menu.Item>,\r\n <Menu.Item icon={<FileTextOutlined/>} key=\"csvExport\"\r\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" CSV\"}\r\n </Menu.Item>,\r\n <Menu.Item icon={<FilePdfOutlined/>} key=\"pdfExport\"\r\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" PDF\"}\r\n <Switch\r\n style={{marginLeft: 8}}\r\n checkedChildren={i18n(\"Landscape\") + \" \"}\r\n unCheckedChildren={\"\" + i18n(\"Portrait\")}\r\n checked={this.state.pageOrientation !== \"PORTRAIT\"}\r\n onChange={(checked, e: MouseEvent) => {\r\n e.stopPropagation();\r\n (e as any).nativeEvent.stopImmediatePropagation();\r\n this.setState({pageOrientation: checked ? \"LANDSCAPE\" : \"PORTRAIT\"});\r\n }}\r\n /></Menu.Item>,\r\n <Menu.Divider key=\"divider1\"/>,\r\n <Menu.Item key=\"clipboardCopy\" icon={<CopyOutlined/>} disabled={this.state.exporting}>{i18n(\"Copy to Clipboard\")}\r\n </Menu.Item>\r\n ];\r\n }\r\n}"]}
1
+ {"version":3,"file":"contextMenu.js","sourceRoot":"","sources":["../../../../../components/grid/export/contextMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["import {CopyOutlined, FileOutlined, FilePdfOutlined, FileTextOutlined} from \"@ant-design/icons\";\nimport {Menu, Switch} from \"antd\";\nimport React from \"react\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {spawn, Thread, Worker} from \"threads\"\nimport moment from \"moment\";\nimport ProgressPopup from \"./progressPopup\";\nimport {MenuElement} from \"../dataGrid\";\nimport {ClipboardUtils} from \"d2coreui/components/clipboard/clipboardUtils\";\n// @ts-ignore\nimport txtExportUrl from 'threads-plugin/dist/loader?name=txtExport!d2coreui/components/grid/export/worker/txtExport.ts'\n// @ts-ignore\nimport csvExportUrl from \"threads-plugin/dist/loader?name=csvExport!d2coreui/components/grid/export/worker/csvExport.ts\"\n// @ts-ignore\nimport clipboardExportUrl from \"threads-plugin/dist/loader?name=clipboardExport!d2coreui/components/grid/export/worker/clipboardExport.ts\"\n// @ts-ignore\nimport pdfExportUrl from \"threads-plugin/dist/loader?name=pdfExport!d2coreui/components/grid/export/worker/pdfExport.ts\"\nimport PlatformSpecific from \"d2coreui/components/platformSpecific\";\n\n\nexport interface ContextMenuProps {\n onlySelectedNodes?: boolean\n showMilliseconds: boolean\n showYear: boolean\n hideNotificationOnClipboardCopy?: boolean\n\n getExportContent: (progressPopup: ProgressPopup | null, props: ContextMenuProps) => Promise<string[][]>\n\n // overrides context menu rendering\n renderer?(menuElements: MenuElement[]): MenuElement[]\n\n // handler for custom context menu items click\n onClick?(key: string): void\n}\n\ntype PageOrientation = \"PORTRAIT\" | \"LANDSCAPE\";\n\ninterface ContextMenuState {\n pageOrientation: PageOrientation\n exporting: boolean\n}\n\n\nexport default class ContextMenu extends React.Component<ContextMenuProps, ContextMenuState> {\n constructor(props: Readonly<ContextMenuProps>) {\n super(props);\n this.state = {\n pageOrientation: \"PORTRAIT\",\n exporting: false\n };\n }\n\n async onExportMenuClick(menuKey: string) {\n this.setState({exporting: true});\n switch (menuKey) {\n case \"txtExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" TXT\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const txtExport = await spawn(new Worker(txtExportUrl));\n const textContent = await txtExport(tableContent);\n await Thread.terminate(txtExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.txt`, textContent, true);\n break;\n }\n case \"csvExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" CSV\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const csvExport = await spawn(new Worker(csvExportUrl));\n const csvContent = await csvExport(tableContent);\n await Thread.terminate(csvExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.csv`, `\\ufeff${csvContent}`, true);\n break;\n }\n case \"clipboardCopy\": {\n const progressPopup = !this.props.hideNotificationOnClipboardCopy ? new ProgressPopup(i18n(\"Export List to\") + \" \" + i18n(\"Clipboard\")) : null;\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const clipboardExport = await spawn(new Worker(clipboardExportUrl));\n const clipboardContent = await clipboardExport(tableContent);\n ClipboardUtils.copyToClipboard(clipboardContent);\n await Thread.terminate(clipboardExport);\n await progressPopup?.update(100);\n break;\n }\n case \"pdfExport\": {\n const progressPopup = new ProgressPopup(i18n(\"Export List to\") + \" PDF\");\n const tableContent = await this.props.getExportContent(progressPopup, this.props);\n const pdfExport = await spawn(new Worker(pdfExportUrl));\n pdfExport.handler().subscribe(async (data: string) => {\n Thread.terminate(pdfExport);\n await progressPopup.update(100);\n PlatformSpecific.INSTANCE.saveContent(`export_${moment().format(\"YYYYMMDD_HHmm\")}.pdf`, data, false);\n });\n pdfExport.export(tableContent, {pageOrientation: this.state.pageOrientation});\n }\n }\n this.setState({exporting: false});\n }\n\n render() {\n const {onlySelectedNodes, showMilliseconds, showYear, hideNotificationOnClipboardCopy, getExportContent, renderer, ...rest} = this.props;\n let menuItems: MenuElement[] = this.renderExportMenuItems();\n if (renderer) {\n menuItems = renderer(menuItems);\n }\n return (\n <Menu {...rest}\n onClick={(item: any) => {\n this.onExportMenuClick(item.key);\n if (this.props.onClick) {\n this.props.onClick(item.key.toString());\n }\n }}>\n {menuItems}\n </Menu>);\n }\n\n renderExportMenuItems() {\n return [\n <Menu.Item icon={<FileOutlined/>} key=\"txtExport\" disabled={this.state.exporting}>{i18n(\"Export List to\") + \" TXT\"}\n </Menu.Item>,\n <Menu.Item icon={<FileTextOutlined/>} key=\"csvExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" CSV\"}\n </Menu.Item>,\n <Menu.Item icon={<FilePdfOutlined/>} key=\"pdfExport\"\n disabled={this.state.exporting}>{i18n(\"Export List to\") + \" PDF\"}\n <Switch\n style={{marginLeft: 8}}\n checkedChildren={i18n(\"Landscape\") + \" \"}\n unCheckedChildren={\"\" + i18n(\"Portrait\")}\n checked={this.state.pageOrientation !== \"PORTRAIT\"}\n onChange={(checked, e: MouseEvent) => {\n e.stopPropagation();\n (e as any).nativeEvent.stopImmediatePropagation();\n this.setState({pageOrientation: checked ? \"LANDSCAPE\" : \"PORTRAIT\"});\n }}\n /></Menu.Item>,\n <Menu.Divider key=\"divider1\"/>,\n <Menu.Item key=\"clipboardCopy\" icon={<CopyOutlined/>} disabled={this.state.exporting}>{i18n(\"Copy to Clipboard\")}\n </Menu.Item>\n ];\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"progressPopup.js","sourceRoot":"","sources":["../../../../../components/grid/export/progressPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\r\nimport {LoadingOutlined} from \"@ant-design/icons\";\r\nimport {notification, Progress} from \"antd\";\r\nimport i18n from \"d2core/i18n/i18n\";\r\nimport {ProgressProps} from \"antd/lib/progress/progress\";\r\n\r\ninterface ProgressBarProps extends ProgressProps {\r\n registerUpdateHandler(updateHandler: ((percent: number) => void) | null): void\r\n}\r\n\r\ninterface ProgressBarState {\r\n percent: number\r\n}\r\n\r\nexport class ProgressBar extends React.Component<ProgressBarProps, ProgressBarState> {\r\n constructor(props: Readonly<ProgressBarProps>) {\r\n super(props);\r\n this.state = {\r\n percent: 0,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.registerUpdateHandler) {\r\n this.props.registerUpdateHandler(this.makeProgress.bind(this));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n if (this.props.registerUpdateHandler) {\r\n this.props.registerUpdateHandler(null);\r\n }\r\n }\r\n\r\n makeProgress(percent: number) {\r\n this.setState({percent: percent});\r\n }\r\n\r\n render() {\r\n const {registerUpdateHandler, ...rest} = this.props;\r\n return <Progress percent={this.state.percent} {...rest}/>;\r\n }\r\n}\r\n\r\nexport default class ProgressPopup {\r\n title: string;\r\n recordCount?: number;\r\n makeProgress: ((percent: number) => void) | null = null;\r\n progressVisible: boolean = false;\r\n\r\n constructor(title: string) {\r\n this.title = title;\r\n }\r\n\r\n async initializeProgressPopup() {\r\n notification.open({\r\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\r\n key: \"export\",\r\n description: <ProgressBar registerUpdateHandler={(makeProgress) => {\r\n this.makeProgress = makeProgress;\r\n }}/>,\r\n icon: <LoadingOutlined/>,\r\n duration: 0\r\n });\r\n this.progressVisible = true;\r\n await this.sleep(100);\r\n }\r\n\r\n setRecordCount(recordCount: number) {\r\n this.recordCount = recordCount;\r\n }\r\n\r\n async update(progressPercent: number) {\r\n if (!this.progressVisible) {\r\n await this.initializeProgressPopup();\r\n }\r\n if (progressPercent === 100) {\r\n this.close();\r\n }\r\n if (this.makeProgress) {\r\n this.makeProgress(progressPercent);\r\n }\r\n }\r\n\r\n close() {\r\n notification.success({\r\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\r\n key: \"export\",\r\n description: <Progress percent={100}/>\r\n });\r\n this.progressVisible = false;\r\n }\r\n\r\n error() {\r\n notification.error({\r\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\r\n key: \"export\",\r\n description: <Progress status={\"exception\"} percent={100}/>\r\n });\r\n this.progressVisible = false;\r\n }\r\n\r\n sleep(ms: number): Promise<void> {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n}"]}
1
+ {"version":3,"file":"progressPopup.js","sourceRoot":"","sources":["../../../../../components/grid/export/progressPopup.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport {LoadingOutlined} from \"@ant-design/icons\";\nimport {notification, Progress} from \"antd\";\nimport i18n from \"d2core/i18n/i18n\";\nimport {ProgressProps} from \"antd/lib/progress/progress\";\n\ninterface ProgressBarProps extends ProgressProps {\n registerUpdateHandler(updateHandler: ((percent: number) => void) | null): void\n}\n\ninterface ProgressBarState {\n percent: number\n}\n\nexport class ProgressBar extends React.Component<ProgressBarProps, ProgressBarState> {\n constructor(props: Readonly<ProgressBarProps>) {\n super(props);\n this.state = {\n percent: 0,\n };\n }\n\n componentDidMount() {\n if (this.props.registerUpdateHandler) {\n this.props.registerUpdateHandler(this.makeProgress.bind(this));\n }\n }\n\n componentWillUnmount() {\n if (this.props.registerUpdateHandler) {\n this.props.registerUpdateHandler(null);\n }\n }\n\n makeProgress(percent: number) {\n this.setState({percent: percent});\n }\n\n render() {\n const {registerUpdateHandler, ...rest} = this.props;\n return <Progress percent={this.state.percent} {...rest}/>;\n }\n}\n\nexport default class ProgressPopup {\n title: string;\n recordCount?: number;\n makeProgress: ((percent: number) => void) | null = null;\n progressVisible: boolean = false;\n\n constructor(title: string) {\n this.title = title;\n }\n\n async initializeProgressPopup() {\n notification.open({\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\n key: \"export\",\n description: <ProgressBar registerUpdateHandler={(makeProgress) => {\n this.makeProgress = makeProgress;\n }}/>,\n icon: <LoadingOutlined/>,\n duration: 0\n });\n this.progressVisible = true;\n await this.sleep(100);\n }\n\n setRecordCount(recordCount: number) {\n this.recordCount = recordCount;\n }\n\n async update(progressPercent: number) {\n if (!this.progressVisible) {\n await this.initializeProgressPopup();\n }\n if (progressPercent === 100) {\n this.close();\n }\n if (this.makeProgress) {\n this.makeProgress(progressPercent);\n }\n }\n\n close() {\n notification.success({\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\n key: \"export\",\n description: <Progress percent={100}/>\n });\n this.progressVisible = false;\n }\n\n error() {\n notification.error({\n message: this.title + (this.recordCount === undefined ? \"\" : i18n(\" (%{n} records)\", {n: \"\" + this.recordCount})),\n key: \"export\",\n description: <Progress status={\"exception\"} percent={100}/>\n });\n this.progressVisible = false;\n }\n\n sleep(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n }\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"clipboardExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/clipboardExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAErC,SAAS,eAAe,CAAC,SAAqB;IAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,eAAe,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\r\n\r\nfunction clipboardExport(tableData: string[][]) {\r\n const textContent = tableData.map((row) => {\r\n return row.join(\"\\t\");\r\n }).join(\"\\r\\n\");\r\n return textContent;\r\n}\r\n\r\nexpose(clipboardExport);"]}
1
+ {"version":3,"file":"clipboardExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/clipboardExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAErC,SAAS,eAAe,CAAC,SAAqB;IAC1C,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,eAAe,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\n\nfunction clipboardExport(tableData: string[][]) {\n const textContent = tableData.map((row) => {\n return row.join(\"\\t\");\n }).join(\"\\r\\n\");\n return textContent;\n}\n\nexpose(clipboardExport);"]}
@@ -1 +1 @@
1
- {"version":3,"file":"csvExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/csvExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAErC,SAAS,SAAS,CAAC,SAAoB;IACnC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,SAAS,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\r\n\r\nfunction csvExport(tableData:string[][]) {\r\n const textContent = tableData.map((row) => {\r\n return row.join(\";\");\r\n }).join(\"\\r\\n\");\r\n return textContent;\r\n}\r\n\r\nexpose(csvExport);"]}
1
+ {"version":3,"file":"csvExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/csvExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AAErC,SAAS,SAAS,CAAC,SAAoB;IACnC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtC,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,SAAS,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\n\nfunction csvExport(tableData:string[][]) {\n const textContent = tableData.map((row) => {\n return row.join(\";\");\n }).join(\"\\r\\n\");\n return textContent;\n}\n\nexpose(csvExport);"]}
@@ -1 +1 @@
1
- {"version":3,"file":"pdfExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/pdfExport.ts"],"names":[],"mappings":"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","sourcesContent":["import {expose} from \"threads/worker\"\r\nimport pdfMake from \"pdfmake/build/pdfmake\";\r\nimport {PageOrientation, TDocumentDefinitions} from \"pdfmake/interfaces\";\r\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\r\nimport moment from \"moment\";\r\nimport {Observable, Subject} from \"threads/observable\"\r\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\r\n\r\npdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\ninterface PageConfig {\r\n pageOrientation: PageOrientation\r\n}\r\n\r\ntype TableCell = string | { text: string, style: string }\r\n\r\nfunction getPdfConfig(tableData: TableCell[][], pageConfig: PageConfig): TDocumentDefinitions {\r\n // styling header\r\n tableData[0] = tableData[0].map((value) => {\r\n return {text: value as string, style: 'tableHeader'};\r\n });\r\n // escaping empty data\r\n tableData.forEach((row) => {\r\n row.forEach((value, index) => {\r\n if (value === undefined || value === null) {\r\n row[index] = \"\";\r\n }\r\n });\r\n });\r\n return {\r\n content: [{\r\n style: 'tableExample',\r\n table: {\r\n headerRows: 1,\r\n // dontBreakRows: true,\r\n // keepWithHeaderRows: 1,\r\n body: tableData\r\n }\r\n }],\r\n styles: {\r\n header: {\r\n fontSize: 10,\r\n bold: true,\r\n margin: [0, 0, 0, 10]\r\n },\r\n subheader: {\r\n fontSize: 9,\r\n bold: true,\r\n margin: [0, 10, 0, 5]\r\n },\r\n tableExample: {\r\n margin: [0, 5, 0, 15],\r\n\r\n },\r\n tableHeader: {\r\n bold: true,\r\n fontSize: 10,\r\n }\r\n },\r\n defaultStyle: {\r\n // alignment: 'justify',\r\n fontSize: 10,\r\n },\r\n footer: function (currentPage: number, pageCount: number) {\r\n return {\r\n table: {\r\n widths: ['*'],\r\n body: [\r\n [\r\n {text: `${currentPage}/${pageCount}`, alignment: 'center'},\r\n ]\r\n ]\r\n },\r\n layout: 'noBorders'\r\n };\r\n },\r\n info: {\r\n title: `Export ${moment().format(LocaleHolder.getDateTimeFormat(true, true))}`,\r\n author: 'D2000',\r\n },\r\n pageOrientation: pageConfig.pageOrientation\r\n };\r\n}\r\n\r\nconst subject = new Subject();\r\nconst pdfExport = {\r\n export(tableData: TableCell[][], pageConfig: PageConfig) {\r\n pdfMake.createPdf(getPdfConfig(tableData, pageConfig)).getBase64((data) => {\r\n subject.next(data);\r\n subject.complete();\r\n });\r\n },\r\n handler() {\r\n return Observable.from(subject);\r\n },\r\n};\r\n\r\nexpose(pdfExport);"]}
1
+ {"version":3,"file":"pdfExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/pdfExport.ts"],"names":[],"mappings":"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","sourcesContent":["import {expose} from \"threads/worker\"\nimport pdfMake from \"pdfmake/build/pdfmake\";\nimport {PageOrientation, TDocumentDefinitions} from \"pdfmake/interfaces\";\nimport pdfFonts from \"pdfmake/build/vfs_fonts\";\nimport moment from \"moment\";\nimport {Observable, Subject} from \"threads/observable\"\nimport {LocaleHolder} from \"d2core/i18n/localeHolder\";\n\npdfMake.vfs = pdfFonts.pdfMake.vfs;\n\ninterface PageConfig {\n pageOrientation: PageOrientation\n}\n\ntype TableCell = string | { text: string, style: string }\n\nfunction getPdfConfig(tableData: TableCell[][], pageConfig: PageConfig): TDocumentDefinitions {\n // styling header\n tableData[0] = tableData[0].map((value) => {\n return {text: value as string, style: 'tableHeader'};\n });\n // escaping empty data\n tableData.forEach((row) => {\n row.forEach((value, index) => {\n if (value === undefined || value === null) {\n row[index] = \"\";\n }\n });\n });\n return {\n content: [{\n style: 'tableExample',\n table: {\n headerRows: 1,\n // dontBreakRows: true,\n // keepWithHeaderRows: 1,\n body: tableData\n }\n }],\n styles: {\n header: {\n fontSize: 10,\n bold: true,\n margin: [0, 0, 0, 10]\n },\n subheader: {\n fontSize: 9,\n bold: true,\n margin: [0, 10, 0, 5]\n },\n tableExample: {\n margin: [0, 5, 0, 15],\n\n },\n tableHeader: {\n bold: true,\n fontSize: 10,\n }\n },\n defaultStyle: {\n // alignment: 'justify',\n fontSize: 10,\n },\n footer: function (currentPage: number, pageCount: number) {\n return {\n table: {\n widths: ['*'],\n body: [\n [\n {text: `${currentPage}/${pageCount}`, alignment: 'center'},\n ]\n ]\n },\n layout: 'noBorders'\n };\n },\n info: {\n title: `Export ${moment().format(LocaleHolder.getDateTimeFormat(true, true))}`,\n author: 'D2000',\n },\n pageOrientation: pageConfig.pageOrientation\n };\n}\n\nconst subject = new Subject();\nconst pdfExport = {\n export(tableData: TableCell[][], pageConfig: PageConfig) {\n pdfMake.createPdf(getPdfConfig(tableData, pageConfig)).getBase64((data) => {\n subject.next(data);\n subject.complete();\n });\n },\n handler() {\n return Observable.from(subject);\n },\n};\n\nexpose(pdfExport);"]}
@@ -1 +1 @@
1
- {"version":3,"file":"txtExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/txtExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,SAAS,SAAS,CAAC,SAAoB;IACnC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,WAAW,CAAC,CAAC;IAChB,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvC,OAAO,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,SAAS,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\r\nimport padEnd from \"lodash/padEnd\";\r\n\r\nfunction txtExport(tableData:string[][]) {\r\n let cellLengths = tableData[0].map((cell) => cell ? cell.length : 0);\r\n cellLengths = tableData.reduce((result, row) => {\r\n row.forEach((cell, index) => {\r\n result[index] = Math.max(result[index], cell ? cell.length : 0);\r\n });\r\n return result;\r\n }, cellLengths);\r\n const textContent = tableData.map((row, index) => {\r\n const rowContent = row.map((cell, index) => {\r\n return padEnd(cell, cellLengths[index] + 1);\r\n }).join(\"\");\r\n return index === 0 ? rowContent + \"\\r\\n\" + padEnd(\"\", cellLengths.reduce((total, cellLength) => total + cellLength + 1, 0), \"-\") : rowContent;\r\n }).join(\"\\r\\n\");\r\n return textContent;\r\n}\r\n\r\nexpose(txtExport);"]}
1
+ {"version":3,"file":"txtExport.js","sourceRoot":"","sources":["../../../../../../components/grid/export/worker/txtExport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,gBAAgB,CAAA;AACrC,OAAO,MAAM,MAAM,eAAe,CAAC;AAEnC,SAAS,SAAS,CAAC,SAAoB;IACnC,IAAI,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC3C,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAClB,CAAC,EAAE,WAAW,CAAC,CAAC;IAChB,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACvC,OAAO,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,CAAC,KAAK,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClJ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChB,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,SAAS,CAAC,CAAC","sourcesContent":["import {expose} from \"threads/worker\"\nimport padEnd from \"lodash/padEnd\";\n\nfunction txtExport(tableData:string[][]) {\n let cellLengths = tableData[0].map((cell) => cell ? cell.length : 0);\n cellLengths = tableData.reduce((result, row) => {\n row.forEach((cell, index) => {\n result[index] = Math.max(result[index], cell ? cell.length : 0);\n });\n return result;\n }, cellLengths);\n const textContent = tableData.map((row, index) => {\n const rowContent = row.map((cell, index) => {\n return padEnd(cell, cellLengths[index] + 1);\n }).join(\"\");\n return index === 0 ? rowContent + \"\\r\\n\" + padEnd(\"\", cellLengths.reduce((total, cellLength) => total + cellLength + 1, 0), \"-\") : rowContent;\n }).join(\"\\r\\n\");\n return textContent;\n}\n\nexpose(txtExport);"]}
@@ -88,6 +88,7 @@ export default class ExtendedDataGrid<T extends {
88
88
  };
89
89
  loadData(callback?: () => void): void;
90
90
  isActive(): boolean;
91
+ focus(): void;
91
92
  private _changeConfiguration;
92
93
  private _onGridReady;
93
94
  private _onLoadData;
@@ -174,6 +174,10 @@ export default class ExtendedDataGrid extends React.Component {
174
174
  isActive() {
175
175
  return !!this.dataGrid && this.dataGrid.isActive();
176
176
  }
177
+ focus() {
178
+ var _a;
179
+ (_a = this.dataGrid) === null || _a === void 0 ? void 0 : _a.focus();
180
+ }
177
181
  _changeConfiguration(configuration, callback) {
178
182
  if (this.props.disableConfigurationChange) {
179
183
  return;
@@ -645,7 +649,7 @@ export default class ExtendedDataGrid extends React.Component {
645
649
  return (React.createElement(FlexLayout.Layout, { ref: (flexLayout) => { this.flexLayout = flexLayout; }, model: this.state.layoutModel, onModelChange: (model) => {
646
650
  this._changeConfiguration({ layoutModel: model.toJson() });
647
651
  }, onAction: (action) => {
648
- var _a, _b;
652
+ var _a;
649
653
  const node1 = action.data.node1;
650
654
  const node2 = action.data.node2;
651
655
  let tabset;
@@ -657,7 +661,7 @@ export default class ExtendedDataGrid extends React.Component {
657
661
  tabset = this.state.layoutModel.getNodeById('#2');
658
662
  }
659
663
  if (tabset) {
660
- const width = (_b = (_a = tabset) === null || _a === void 0 ? void 0 : _a._attributes) === null || _b === void 0 ? void 0 : _b.width;
664
+ const width = (_a = tabset === null || tabset === void 0 ? void 0 : tabset._attributes) === null || _a === void 0 ? void 0 : _a.width;
661
665
  if (width === 0) {
662
666
  return undefined;
663
667
  }