datastake-daf 0.6.431 → 0.6.433

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.
@@ -13302,10 +13302,10 @@ DAFFooter.propTypes = {
13302
13302
  isViewMode: PropTypes__default["default"].bool
13303
13303
  };
13304
13304
 
13305
- const PAGE_HEIGHT = 1200; // Full page height
13305
+ const PAGE_HEIGHT = 1587; // full page height in px
13306
13306
  const FOOTER_HEIGHT = 70;
13307
13307
  const HEADER_HEIGHT = 100;
13308
- const SECTION_GAP = 24; // Spacing between sections on the same page
13308
+ const GAP = 24; // space between rows
13309
13309
 
13310
13310
  const Row = _ref => {
13311
13311
  let {
@@ -13335,90 +13335,73 @@ const Row = _ref => {
13335
13335
  return /*#__PURE__*/jsxRuntime.jsx("section", {
13336
13336
  ref: ref,
13337
13337
  style: widgets.style,
13338
- children: typeof widgets.render === 'function' ? widgets.render() : null
13338
+ children: typeof widgets.render === "function" ? widgets.render() : null
13339
13339
  });
13340
13340
  };
13341
13341
  function PdfView(_ref2) {
13342
13342
  let {
13343
13343
  config = [],
13344
13344
  customClassName,
13345
- title = 'Title',
13346
- imgSrc = '',
13347
- userId = 'IDD-0000000',
13348
- accountId = 'IDD-0000000',
13349
- documentId = 'IDD-0000000',
13350
- downloadId = 'DWL-00000123'
13345
+ title = "Title",
13346
+ imgSrc = "",
13347
+ userId = "IDD-0000000",
13348
+ accountId = "IDD-0000000",
13349
+ documentId = "IDD-0000000",
13350
+ downloadId = "DWL-00000123"
13351
13351
  } = _ref2;
13352
13352
  const [sectionsConfig, setSectionsConfig] = React.useState({});
13353
13353
  const [pages, setPages] = React.useState([1]);
13354
+ const onChangeHeight = React.useCallback((index, conf) => {
13355
+ setSectionsConfig(prev => _objectSpread2(_objectSpread2({}, prev), {}, {
13356
+ [index]: conf
13357
+ }));
13358
+ }, []);
13354
13359
  const doSizing = React.useCallback(() => {
13355
- const keys = Object.keys(sectionsConfig).sort((a, b) => Number(a) - Number(b));
13356
- const pageContentHeight = PAGE_HEIGHT - HEADER_HEIGHT - FOOTER_HEIGHT;
13357
- let computedPages = [1];
13360
+ const keys = Object.keys(sectionsConfig);
13361
+ if (keys.length !== config.length) return;
13362
+ let _pages = [1];
13358
13363
  let currentPage = 1;
13359
- let usedHeightOnPage = 0; // Height used within the current page's content area (excludes header/footer)
13360
-
13361
- if (keys.length === config.length) {
13362
- // Reset margins before recalculating
13363
- keys.forEach(k => {
13364
- const {
13365
- ref
13366
- } = sectionsConfig[k];
13367
- if (ref && ref.current) {
13368
- ref.current.style.marginTop = '0px';
13369
- ref.current.style.marginBottom = '0px';
13370
- }
13371
- });
13372
- keys.forEach((k, i) => {
13373
- const {
13374
- height,
13375
- ref
13376
- } = sectionsConfig[k];
13377
- const isFirstOnPage = usedHeightOnPage === 0;
13378
- const gapAbove = isFirstOnPage ? 0 : SECTION_GAP;
13379
-
13380
- // If adding this section would overflow the current page, move it to the next page
13381
- if (usedHeightOnPage + gapAbove + height > pageContentHeight && i > 0) {
13382
- const prevKey = keys[i - 1];
13383
- const {
13384
- ref: prevRef
13385
- } = sectionsConfig[prevKey];
13386
- const remainingOnPage = Math.max(0, pageContentHeight - usedHeightOnPage);
13364
+ let accumulatedHeight = HEADER_HEIGHT;
13387
13365
 
13388
- // Push the next section to start at the top of the next page (after the header)
13389
- if (prevRef && prevRef.current) {
13390
- // Only fill the remaining content area; the next section will add HEADER_HEIGHT as its top margin
13391
- prevRef.current.style.marginBottom = "".concat(remainingOnPage, "px");
13392
- }
13393
-
13394
- // Start new page
13395
- currentPage += 1;
13396
- computedPages.push(currentPage);
13397
- usedHeightOnPage = 0;
13398
- }
13399
-
13400
- // Apply top margin: header spacing if first on page, otherwise standard section gap
13401
- if (usedHeightOnPage === 0) {
13402
- ref.current.style.marginTop = "".concat(HEADER_HEIGHT, "px");
13403
- } else {
13404
- ref.current.style.marginTop = "".concat(SECTION_GAP, "px");
13405
- }
13366
+ // Reset margins before recalculation
13367
+ keys.forEach(k => {
13368
+ const {
13369
+ ref
13370
+ } = sectionsConfig[k];
13371
+ ref.current.style.marginTop = "0px";
13372
+ ref.current.style.marginBottom = "0px";
13373
+ ref.current.style.pageBreakBefore = "auto";
13374
+ });
13375
+ keys.forEach((k, i) => {
13376
+ const {
13377
+ height,
13378
+ ref
13379
+ } = sectionsConfig[k];
13380
+ const totalWithGap = accumulatedHeight + height + (i > 0 ? GAP : 0);
13381
+ const maxContentHeight = PAGE_HEIGHT - FOOTER_HEIGHT - HEADER_HEIGHT - 30;
13382
+ if (totalWithGap > maxContentHeight) {
13383
+ // start a new page
13384
+ currentPage += 1;
13385
+ _pages.push(currentPage);
13386
+ ref.current.style.marginTop = "".concat(120, "px");
13387
+
13388
+ // reset accumulated height for next page
13389
+ accumulatedHeight = HEADER_HEIGHT + height + GAP;
13390
+ } else {
13391
+ accumulatedHeight = totalWithGap;
13392
+ }
13406
13393
 
13407
- // Accumulate height used on the page
13408
- usedHeightOnPage += (usedHeightOnPage === 0 ? 0 : SECTION_GAP) + height;
13409
- });
13410
- setPages(computedPages);
13411
- }
13394
+ // Add bottom padding for last element
13395
+ if (i === keys.length - 1) {
13396
+ ref.current.style.paddingBottom = "30px";
13397
+ }
13398
+ });
13399
+ setPages(_pages);
13412
13400
  }, [sectionsConfig, config.length]);
13413
13401
  React.useEffect(() => {
13414
13402
  doSizing();
13415
13403
  }, [doSizing]);
13416
- const onChangeHeight = React.useCallback((index, conf) => {
13417
- setSectionsConfig(prev => _objectSpread2(_objectSpread2({}, prev), {}, {
13418
- [index]: conf
13419
- }));
13420
- }, []);
13421
- const contClassName = formatClassname(['daf-analysis daf-pdf-view', customClassName]);
13404
+ const contClassName = formatClassname(["daf-analysis daf-pdf-view", customClassName]);
13422
13405
  const renderDashboard = React.useCallback(() => {
13423
13406
  return /*#__PURE__*/jsxRuntime.jsx("div", {
13424
13407
  className: "view-content",
@@ -13430,34 +13413,23 @@ function PdfView(_ref2) {
13430
13413
  widgets: widgets,
13431
13414
  i: i,
13432
13415
  onChangeHeight: onChangeHeight
13433
- }, "dashboard-sections=".concat(i + 1)))
13416
+ }, "dashboard-section-".concat(i)))
13434
13417
  })
13435
13418
  })
13436
13419
  });
13437
13420
  }, [config, onChangeHeight]);
13438
-
13439
- // <div className="daf-analysis">
13440
- // <Header title={t('Dashboard Title')} />
13441
-
13442
- // <div className="content">
13443
- // <div className="view-content">
13444
- // <div className="daf-analysis-layout">
13445
- // <div className='sections-cont w-pt'>
13446
- // <section>
13447
-
13448
13421
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
13449
13422
  className: contClassName,
13450
13423
  style: {
13451
- position: 'relative',
13452
- minHeight: pages.length * PAGE_HEIGHT
13424
+ position: "relative"
13453
13425
  },
13454
- children: [renderDashboard(), pages.map(page => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
13426
+ children: [renderDashboard(), pages.map(page => /*#__PURE__*/jsxRuntime.jsxs("div", {
13455
13427
  children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
13456
13428
  style: {
13457
13429
  top: (page - 1) * PAGE_HEIGHT,
13458
- width: '100%',
13459
- height: HEADER_HEIGHT - 24,
13460
- position: 'absolute',
13430
+ width: "100%",
13431
+ height: HEADER_HEIGHT,
13432
+ position: "absolute",
13461
13433
  left: 0,
13462
13434
  zIndex: 1000000
13463
13435
  },
@@ -13474,12 +13446,12 @@ function PdfView(_ref2) {
13474
13446
  alt: "logo"
13475
13447
  })
13476
13448
  })]
13477
- }, "headers-".concat(page)), /*#__PURE__*/jsxRuntime.jsxs("div", {
13449
+ }), /*#__PURE__*/jsxRuntime.jsxs("div", {
13478
13450
  style: {
13479
13451
  top: page * PAGE_HEIGHT - FOOTER_HEIGHT,
13480
- width: '100%',
13452
+ width: "100%",
13481
13453
  height: FOOTER_HEIGHT,
13482
- position: 'absolute',
13454
+ position: "absolute",
13483
13455
  left: 0,
13484
13456
  zIndex: 1000000
13485
13457
  },
@@ -13487,26 +13459,26 @@ function PdfView(_ref2) {
13487
13459
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {
13488
13460
  className: "flex flex-column justify-center",
13489
13461
  children: /*#__PURE__*/jsxRuntime.jsx("h5", {
13490
- children: moment__default["default"]().format('DD MMM YYYY')
13462
+ children: moment__default["default"]().format("DD MMM YYYY")
13491
13463
  })
13492
13464
  }), /*#__PURE__*/jsxRuntime.jsx("div", {
13493
13465
  className: "flex flex-column justify-center",
13494
13466
  children: /*#__PURE__*/jsxRuntime.jsxs("div", {
13495
13467
  className: "flex gap-2",
13496
13468
  children: [/*#__PURE__*/jsxRuntime.jsxs("h5", {
13497
- children: ["User ID:", ' ', /*#__PURE__*/jsxRuntime.jsx("strong", {
13469
+ children: ["User ID: ", /*#__PURE__*/jsxRuntime.jsx("strong", {
13498
13470
  children: userId
13499
13471
  })]
13500
13472
  }), /*#__PURE__*/jsxRuntime.jsxs("h5", {
13501
- children: ["Account ID:", ' ', /*#__PURE__*/jsxRuntime.jsx("strong", {
13473
+ children: ["Account ID: ", /*#__PURE__*/jsxRuntime.jsx("strong", {
13502
13474
  children: accountId
13503
13475
  })]
13504
13476
  }), /*#__PURE__*/jsxRuntime.jsxs("h5", {
13505
- children: ["Document ID:", ' ', /*#__PURE__*/jsxRuntime.jsx("strong", {
13477
+ children: ["Document ID: ", /*#__PURE__*/jsxRuntime.jsx("strong", {
13506
13478
  children: documentId
13507
13479
  })]
13508
13480
  }), /*#__PURE__*/jsxRuntime.jsxs("h5", {
13509
- children: ["Download ID:", ' ', /*#__PURE__*/jsxRuntime.jsx("strong", {
13481
+ children: ["Download ID: ", /*#__PURE__*/jsxRuntime.jsx("strong", {
13510
13482
  children: downloadId
13511
13483
  })]
13512
13484
  })]
@@ -13517,8 +13489,8 @@ function PdfView(_ref2) {
13517
13489
  children: page
13518
13490
  })
13519
13491
  })]
13520
- }, "footers-".concat(page))]
13521
- }))]
13492
+ })]
13493
+ }, "page-".concat(page)))]
13522
13494
  });
13523
13495
  }
13524
13496
  PdfView.propTypes = {
@@ -13528,7 +13500,8 @@ PdfView.propTypes = {
13528
13500
  imgSrc: PropTypes__default["default"].string,
13529
13501
  userId: PropTypes__default["default"].string,
13530
13502
  accountId: PropTypes__default["default"].string,
13531
- documentId: PropTypes__default["default"].string
13503
+ documentId: PropTypes__default["default"].string,
13504
+ downloadId: PropTypes__default["default"].string
13532
13505
  };
13533
13506
 
13534
13507
  const ajaxSelectFieldData = async (value, config, getApiBaseUrl = () => {}, getAppHeader = () => {}, app, formValues = {}) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "datastake-daf",
3
- "version": "0.6.431",
3
+ "version": "0.6.433",
4
4
  "dependencies": {
5
5
  "@ant-design/icons": "^5.2.5",
6
6
  "@antv/g2": "^5.1.1",
@@ -1,14 +1,14 @@
1
1
  import moment from "moment";
2
- import PropTypes from 'prop-types';
2
+ import PropTypes from "prop-types";
3
3
  import { useCallback, useEffect, useRef, useState } from "react";
4
4
  import { formatClassname } from "../../../../../helpers/ClassesHelper";
5
5
 
6
- const PAGE_HEIGHT = 1200; // Full page height
6
+ const PAGE_HEIGHT = 1587; // full page height in px
7
7
  const FOOTER_HEIGHT = 70;
8
8
  const HEADER_HEIGHT = 100;
9
- const SECTION_GAP = 24; // Spacing between sections on the same page
9
+ const GAP = 24; // space between rows
10
10
 
11
- const Row = ({ widgets, i, onChangeHeight = () => { } }) => {
11
+ const Row = ({ widgets, i, onChangeHeight = () => {} }) => {
12
12
  const ref = useRef();
13
13
  const [height, setHeight] = useState(0);
14
14
 
@@ -20,7 +20,6 @@ const Row = ({ widgets, i, onChangeHeight = () => { } }) => {
20
20
  });
21
21
 
22
22
  observer.observe(ref.current);
23
-
24
23
  return () => observer.disconnect();
25
24
  }, []);
26
25
 
@@ -28,103 +27,95 @@ const Row = ({ widgets, i, onChangeHeight = () => { } }) => {
28
27
  if (height) {
29
28
  onChangeHeight(i, { height, ref });
30
29
  }
31
- }, [height])
30
+ }, [height]);
32
31
 
33
32
  return (
34
33
  <section ref={ref} style={widgets.style}>
35
- {typeof widgets.render === 'function' ? widgets.render() : null}
34
+ {typeof widgets.render === "function" ? widgets.render() : null}
36
35
  </section>
37
- )
36
+ );
38
37
  };
39
38
 
40
39
  export default function PdfView({
41
40
  config = [],
42
41
  customClassName,
43
- title = 'Title',
44
- imgSrc = '',
45
- userId = 'IDD-0000000',
46
- accountId = 'IDD-0000000',
47
- documentId = 'IDD-0000000',
48
- downloadId = 'DWL-00000123',
42
+ title = "Title",
43
+ imgSrc = "",
44
+ userId = "IDD-0000000",
45
+ accountId = "IDD-0000000",
46
+ documentId = "IDD-0000000",
47
+ downloadId = "DWL-00000123",
49
48
  }) {
50
49
  const [sectionsConfig, setSectionsConfig] = useState({});
51
50
  const [pages, setPages] = useState([1]);
52
51
 
52
+ const onChangeHeight = useCallback((index, conf) => {
53
+ setSectionsConfig((prev) => ({ ...prev, [index]: conf }));
54
+ }, []);
55
+
53
56
  const doSizing = useCallback(() => {
54
- const keys = Object.keys(sectionsConfig).sort((a, b) => Number(a) - Number(b));
55
- const pageContentHeight = PAGE_HEIGHT - HEADER_HEIGHT - FOOTER_HEIGHT;
57
+ const keys = Object.keys(sectionsConfig);
58
+ if (keys.length !== config.length) return;
56
59
 
57
- let computedPages = [1];
60
+ let _pages = [1];
58
61
  let currentPage = 1;
59
- let usedHeightOnPage = 0; // Height used within the current page's content area (excludes header/footer)
60
-
61
- if (keys.length === config.length) {
62
- // Reset margins before recalculating
63
- keys.forEach(k => {
64
- const { ref } = sectionsConfig[k];
65
- if (ref && ref.current) {
66
- ref.current.style.marginTop = '0px';
67
- ref.current.style.marginBottom = '0px';
68
- }
69
- });
70
-
71
- keys.forEach((k, i) => {
72
- const { height, ref } = sectionsConfig[k];
73
- const isFirstOnPage = usedHeightOnPage === 0;
74
- const gapAbove = isFirstOnPage ? 0 : SECTION_GAP;
75
-
76
- // If adding this section would overflow the current page, move it to the next page
77
- if (usedHeightOnPage + gapAbove + height > pageContentHeight && i > 0) {
78
- const prevKey = keys[i - 1];
79
- const { ref: prevRef } = sectionsConfig[prevKey];
80
- const remainingOnPage = Math.max(0, pageContentHeight - usedHeightOnPage);
81
-
82
- // Push the next section to start at the top of the next page (after the header)
83
- if (prevRef && prevRef.current) {
84
- // Only fill the remaining content area; the next section will add HEADER_HEIGHT as its top margin
85
- prevRef.current.style.marginBottom = `${remainingOnPage}px`;
86
- }
87
-
88
- // Start new page
89
- currentPage += 1;
90
- computedPages.push(currentPage);
91
- usedHeightOnPage = 0;
92
- }
93
-
94
- // Apply top margin: header spacing if first on page, otherwise standard section gap
95
- if (usedHeightOnPage === 0) {
96
- ref.current.style.marginTop = `${HEADER_HEIGHT}px`;
97
- } else {
98
- ref.current.style.marginTop = `${SECTION_GAP}px`;
99
- }
100
-
101
- // Accumulate height used on the page
102
- usedHeightOnPage += (usedHeightOnPage === 0 ? 0 : SECTION_GAP) + height;
103
- });
104
-
105
- setPages(computedPages);
106
- }
62
+ let accumulatedHeight = HEADER_HEIGHT;
63
+
64
+ // Reset margins before recalculation
65
+ keys.forEach((k) => {
66
+ const { ref } = sectionsConfig[k];
67
+ ref.current.style.marginTop = "0px";
68
+ ref.current.style.marginBottom = "0px";
69
+ ref.current.style.pageBreakBefore = "auto";
70
+ });
71
+
72
+ keys.forEach((k, i) => {
73
+ const { height, ref } = sectionsConfig[k];
74
+ const totalWithGap = accumulatedHeight + height + (i > 0 ? GAP : 0);
75
+ const maxContentHeight = PAGE_HEIGHT - FOOTER_HEIGHT - HEADER_HEIGHT - 30;
76
+
77
+ if (totalWithGap > maxContentHeight) {
78
+ // start a new page
79
+ currentPage += 1;
80
+ _pages.push(currentPage);
81
+
82
+ // push element down to next page visually
83
+ const overflow = PAGE_HEIGHT - accumulatedHeight;
84
+ ref.current.style.marginTop = `${120}px`;
85
+
86
+ // reset accumulated height for next page
87
+ accumulatedHeight = HEADER_HEIGHT + height + GAP;
88
+ } else {
89
+ accumulatedHeight = totalWithGap;
90
+ }
91
+
92
+ // Add bottom padding for last element
93
+ if (i === keys.length - 1) {
94
+ ref.current.style.paddingBottom = "30px";
95
+ }
96
+ });
97
+
98
+ setPages(_pages);
107
99
  }, [sectionsConfig, config.length]);
108
100
 
109
101
  useEffect(() => {
110
102
  doSizing();
111
103
  }, [doSizing]);
112
104
 
113
- const onChangeHeight = useCallback((index, conf) => {
114
- setSectionsConfig((prev) => ({ ...prev, [index]: conf }))
115
- }, []);
116
-
117
- const contClassName = formatClassname(['daf-analysis daf-pdf-view', customClassName]);
105
+ const contClassName = formatClassname([
106
+ "daf-analysis daf-pdf-view",
107
+ customClassName,
108
+ ]);
118
109
 
119
110
  const renderDashboard = useCallback(() => {
120
111
  return (
121
112
  <div className="view-content">
122
113
  <div className="daf-analysis-layout">
123
- <div className='sections-cont'>
114
+ <div className="sections-cont">
124
115
  {config.map((widgets, i) => (
125
116
  <Row
126
117
  widgets={widgets}
127
- key={`dashboard-sections=${i + 1}`}
118
+ key={`dashboard-section-${i}`}
128
119
  i={i}
129
120
  onChangeHeight={onChangeHeight}
130
121
  />
@@ -135,23 +126,22 @@ export default function PdfView({
135
126
  );
136
127
  }, [config, onChangeHeight]);
137
128
 
138
- // <div className="daf-analysis">
139
- // <Header title={t('Dashboard Title')} />
140
-
141
- // <div className="content">
142
- // <div className="view-content">
143
- // <div className="daf-analysis-layout">
144
- // <div className='sections-cont w-pt'>
145
- // <section>
146
-
147
129
  return (
148
- <div className={contClassName} style={{ position: 'relative', minHeight: pages.length * PAGE_HEIGHT }}>
130
+ <div className={contClassName} style={{ position: "relative" }}>
149
131
  {renderDashboard()}
132
+
150
133
  {pages.map((page) => (
151
- <>
134
+ <div key={`page-${page}`}>
135
+ {/* HEADER */}
152
136
  <div
153
- style={{ top: ((page - 1) * PAGE_HEIGHT), width: '100%', height: HEADER_HEIGHT - 24, position: 'absolute', left: 0, zIndex: 1000000 }}
154
- key={`headers-${page}`}
137
+ style={{
138
+ top: (page - 1) * PAGE_HEIGHT,
139
+ width: "100%",
140
+ height: HEADER_HEIGHT,
141
+ position: "absolute",
142
+ left: 0,
143
+ zIndex: 1000000,
144
+ }}
155
145
  className="flex-row dashboard-header"
156
146
  >
157
147
  <div className="flex flex-column justify-center flex-1">
@@ -161,35 +151,35 @@ export default function PdfView({
161
151
  <img src={imgSrc} alt="logo" />
162
152
  </div>
163
153
  </div>
154
+
155
+ {/* FOOTER */}
164
156
  <div
165
- style={{ top: (page * PAGE_HEIGHT) - FOOTER_HEIGHT, width: '100%', height: FOOTER_HEIGHT, position: 'absolute', left: 0, zIndex: 1000000 }}
166
- key={`footers-${page}`}
157
+ style={{
158
+ top: page * PAGE_HEIGHT - FOOTER_HEIGHT,
159
+ width: "100%",
160
+ height: FOOTER_HEIGHT,
161
+ position: "absolute",
162
+ left: 0,
163
+ zIndex: 1000000,
164
+ }}
167
165
  className="dashboard-footer flex-row"
168
166
  >
169
167
  <div className="flex flex-column justify-center">
170
- <h5>{moment().format('DD MMM YYYY')}</h5>
168
+ <h5>{moment().format("DD MMM YYYY")}</h5>
171
169
  </div>
172
170
  <div className="flex flex-column justify-center">
173
171
  <div className="flex gap-2">
174
172
  <h5>
175
- User ID:
176
- {' '}
177
- <strong>{userId}</strong>
173
+ User ID: <strong>{userId}</strong>
178
174
  </h5>
179
175
  <h5>
180
- Account ID:
181
- {' '}
182
- <strong>{accountId}</strong>
176
+ Account ID: <strong>{accountId}</strong>
183
177
  </h5>
184
178
  <h5>
185
- Document ID:
186
- {' '}
187
- <strong>{documentId}</strong>
179
+ Document ID: <strong>{documentId}</strong>
188
180
  </h5>
189
181
  <h5>
190
- Download ID:
191
- {' '}
192
- <strong>{downloadId}</strong>
182
+ Download ID: <strong>{downloadId}</strong>
193
183
  </h5>
194
184
  </div>
195
185
  </div>
@@ -197,7 +187,7 @@ export default function PdfView({
197
187
  <h5>{page}</h5>
198
188
  </div>
199
189
  </div>
200
- </>
190
+ </div>
201
191
  ))}
202
192
  </div>
203
193
  );
@@ -211,4 +201,5 @@ PdfView.propTypes = {
211
201
  userId: PropTypes.string,
212
202
  accountId: PropTypes.string,
213
203
  documentId: PropTypes.string,
214
- }
204
+ downloadId: PropTypes.string,
205
+ };