@lighthouse/common 6.5.0 → 6.6.0-canary.1

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 (242) hide show
  1. package/dist/constants.js +7 -13
  2. package/dist/errors/DomainError.js +2 -4
  3. package/dist/errors/ValidationError.js +0 -8
  4. package/dist/errors/index.js +1 -5
  5. package/dist/helpers/build-fetch-url/index.js +0 -5
  6. package/dist/helpers/fetch-image/index.js +16 -32
  7. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -40
  8. package/dist/helpers/fetch-image-for-web/index.js +0 -9
  9. package/dist/helpers/fetch-lighthouse-logo/index.js +2 -13
  10. package/dist/helpers/floatify/index.js +0 -1
  11. package/dist/helpers/get-assignees-full-names/index.js +0 -4
  12. package/dist/helpers/get-audit-entry-details/index.js +0 -3
  13. package/dist/helpers/get-audit-items-data/index.js +2 -6
  14. package/dist/helpers/get-geometry-geocoded-string/index.js +0 -3
  15. package/dist/helpers/get-issue-details/index.js +0 -7
  16. package/dist/helpers/get-job-details/index.js +0 -7
  17. package/dist/helpers/get-location-reference/index.js +18 -21
  18. package/dist/helpers/get-pretty-duration/index.js +0 -5
  19. package/dist/helpers/get-reference-details/index.js +0 -4
  20. package/dist/helpers/get-status-details/index.js +2 -9
  21. package/dist/helpers/get-task-entry-details/index.js +0 -3
  22. package/dist/helpers/get-timezone-abbr/index.js +0 -4
  23. package/dist/helpers/get-timezone-datetime/index.js +0 -5
  24. package/dist/helpers/get-user-full-name/index.js +0 -1
  25. package/dist/helpers/get-value-as-percentage/index.js +0 -1
  26. package/dist/helpers/image-validators/index.js +8 -9
  27. package/dist/helpers/index.js +16 -33
  28. package/dist/images/index.js +5 -9
  29. package/dist/index.js +4 -20
  30. package/dist/pdf/activity-report/index.js +41 -62
  31. package/dist/pdf/audit/index.js +0 -14
  32. package/dist/pdf/helpers/build-audit-content/index.js +4 -15
  33. package/dist/pdf/helpers/build-audit-follow-ups/index.js +4 -14
  34. package/dist/pdf/helpers/build-location-scans-content/index.js +4 -17
  35. package/dist/pdf/helpers/build-template-content/index.js +5 -14
  36. package/dist/pdf/helpers/default-footer/index.js +2 -3
  37. package/dist/pdf/helpers/default-header/index.js +0 -2
  38. package/dist/pdf/helpers/default-styles/index.js +2 -3
  39. package/dist/pdf/helpers/fields/index.js +21 -51
  40. package/dist/pdf/helpers/format-location-address/index.js +0 -3
  41. package/dist/pdf/helpers/generate-definition/index.js +0 -12
  42. package/dist/pdf/helpers/horizontal-line/index.js +0 -1
  43. package/dist/pdf/helpers/html-transformer/index.js +11 -23
  44. package/dist/pdf/helpers/index.js +40 -55
  45. package/dist/pdf/helpers/parse-value/index.js +2 -6
  46. package/dist/pdf/helpers/table/index.js +13 -31
  47. package/dist/pdf/helpers/text/index.js +0 -1
  48. package/dist/pdf/icons/index.js +3 -5
  49. package/dist/pdf/index.js +4 -10
  50. package/dist/pdf/issue/index.js +17 -16
  51. package/dist/pdf/job/index.js +1 -13
  52. package/dist/pdf/shift-report/emptyFixtures.js +4 -6
  53. package/dist/pdf/shift-report/index.js +2 -25
  54. package/dist/pdf/task/index.js +0 -13
  55. package/dist/scheduling/generators/index.js +0 -6
  56. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +1 -6
  57. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +0 -5
  58. package/dist/scheduling/generators/serviceIntervalsGenerator.js +13 -27
  59. package/dist/scheduling/helpers/convertToTimezone.js +1 -6
  60. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +3 -9
  61. package/dist/scheduling/helpers/generateRepeatingSchedule.js +11 -18
  62. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -8
  63. package/dist/scheduling/helpers/hasValidStartAndEnd.js +0 -6
  64. package/dist/scheduling/helpers/index.js +0 -28
  65. package/dist/scheduling/helpers/intervalCovers.js +0 -1
  66. package/dist/scheduling/helpers/intervalIntersectsEnd.js +0 -1
  67. package/dist/scheduling/helpers/intervalIntersectsStart.js +0 -1
  68. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -3
  69. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +0 -3
  70. package/dist/scheduling/helpers/intervalOutside.js +0 -1
  71. package/dist/scheduling/helpers/intervalWithin.js +0 -1
  72. package/dist/scheduling/helpers/mergeIntervals.js +0 -4
  73. package/dist/scheduling/helpers/splitIntervals.js +0 -3
  74. package/dist/scheduling/index.js +0 -6
  75. package/dist/scheduling/scheduling.types.js +10 -18
  76. package/dist/scheduling/strategies/getNext.js +2 -13
  77. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +0 -12
  78. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +0 -10
  79. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +0 -11
  80. package/dist/scheduling/strategies/getNextNoRepeat.js +0 -7
  81. package/dist/scheduling/strategies/getNextWeekday.js +0 -10
  82. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +0 -12
  83. package/dist/scheduling/strategies/index.js +0 -14
  84. package/dist/schema/index.js +0 -2
  85. package/dist/schema/schema.js +2 -7
  86. package/dist/service-hours/__helpers__/calculate-hours.js +4 -13
  87. package/dist/service-hours/__helpers__/isOpen.js +0 -9
  88. package/dist/service-hours/index.js +0 -4
  89. package/dist/service-hours/schema.js +20 -43
  90. package/lib/constants.js.map +1 -1
  91. package/lib/errors/DomainError.js +11 -47
  92. package/lib/errors/DomainError.js.map +1 -1
  93. package/lib/errors/ValidationError.js +15 -52
  94. package/lib/errors/ValidationError.js.map +1 -1
  95. package/lib/errors/index.js.map +1 -1
  96. package/lib/helpers/build-fetch-url/index.js +14 -20
  97. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  98. package/lib/helpers/fetch-image/index.js +20 -27
  99. package/lib/helpers/fetch-image/index.js.map +1 -1
  100. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +187 -239
  101. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  102. package/lib/helpers/fetch-image-for-web/index.js +50 -66
  103. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  104. package/lib/helpers/fetch-lighthouse-logo/index.js +47 -59
  105. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  106. package/lib/helpers/floatify/index.js.map +1 -1
  107. package/lib/helpers/get-assignees-full-names/index.js +0 -1
  108. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  109. package/lib/helpers/get-audit-entry-details/index.js +8 -8
  110. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  111. package/lib/helpers/get-audit-items-data/index.js +16 -19
  112. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  113. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  114. package/lib/helpers/get-issue-details/index.js +11 -11
  115. package/lib/helpers/get-issue-details/index.js.map +1 -1
  116. package/lib/helpers/get-job-details/index.js +12 -12
  117. package/lib/helpers/get-job-details/index.js.map +1 -1
  118. package/lib/helpers/get-location-reference/index.js +32 -36
  119. package/lib/helpers/get-location-reference/index.js.map +1 -1
  120. package/lib/helpers/get-pretty-duration/index.js +0 -4
  121. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  122. package/lib/helpers/get-reference-details/index.js +1 -3
  123. package/lib/helpers/get-reference-details/index.js.map +1 -1
  124. package/lib/helpers/get-status-details/index.js +0 -4
  125. package/lib/helpers/get-status-details/index.js.map +1 -1
  126. package/lib/helpers/get-task-entry-details/index.js +5 -5
  127. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  128. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  129. package/lib/helpers/get-timezone-datetime/index.js +6 -6
  130. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  131. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  132. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  133. package/lib/helpers/image-validators/index.js +8 -7
  134. package/lib/helpers/image-validators/index.js.map +1 -1
  135. package/lib/helpers/index.js.map +1 -1
  136. package/lib/images/index.js.map +1 -1
  137. package/lib/index.js.map +1 -1
  138. package/lib/pdf/activity-report/index.js +360 -416
  139. package/lib/pdf/activity-report/index.js.map +1 -1
  140. package/lib/pdf/audit/index.js +25 -36
  141. package/lib/pdf/audit/index.js.map +1 -1
  142. package/lib/pdf/fonts/index.js.map +1 -1
  143. package/lib/pdf/helpers/build-audit-content/index.js +3 -5
  144. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  145. package/lib/pdf/helpers/build-audit-follow-ups/index.js +5 -12
  146. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  147. package/lib/pdf/helpers/build-location-scans-content/index.js +4 -9
  148. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  149. package/lib/pdf/helpers/build-template-content/index.js +7 -9
  150. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  151. package/lib/pdf/helpers/default-footer/index.js +9 -8
  152. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  153. package/lib/pdf/helpers/default-header/index.js +5 -5
  154. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  155. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  156. package/lib/pdf/helpers/fields/index.js +48 -81
  157. package/lib/pdf/helpers/fields/index.js.map +1 -1
  158. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  159. package/lib/pdf/helpers/generate-definition/index.js +22 -29
  160. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  161. package/lib/pdf/helpers/horizontal-line/index.js +1 -1
  162. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  163. package/lib/pdf/helpers/html-transformer/index.js +19 -30
  164. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  165. package/lib/pdf/helpers/index.js.map +1 -1
  166. package/lib/pdf/helpers/parse-value/index.js +2 -4
  167. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  168. package/lib/pdf/helpers/table/index.js +78 -84
  169. package/lib/pdf/helpers/table/index.js.map +1 -1
  170. package/lib/pdf/helpers/text/index.js +2 -5
  171. package/lib/pdf/helpers/text/index.js.map +1 -1
  172. package/lib/pdf/icons/index.js.map +1 -1
  173. package/lib/pdf/index.js.map +1 -1
  174. package/lib/pdf/issue/index.js +36 -30
  175. package/lib/pdf/issue/index.js.map +1 -1
  176. package/lib/pdf/job/index.js +12 -19
  177. package/lib/pdf/job/index.js.map +1 -1
  178. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  179. package/lib/pdf/shift-report/index.js +308 -374
  180. package/lib/pdf/shift-report/index.js.map +1 -1
  181. package/lib/pdf/task/index.js +11 -19
  182. package/lib/pdf/task/index.js.map +1 -1
  183. package/lib/scheduling/generators/index.js.map +1 -1
  184. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -38
  185. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  186. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -30
  187. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  188. package/lib/scheduling/generators/serviceIntervalsGenerator.js +139 -181
  189. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  190. package/lib/scheduling/helpers/convertToTimezone.js +1 -1
  191. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  192. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +84 -124
  193. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  194. package/lib/scheduling/helpers/generateRepeatingSchedule.js +107 -175
  195. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  196. package/lib/scheduling/helpers/generateScheduleEnd.js +6 -6
  197. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  198. package/lib/scheduling/helpers/hasValidStartAndEnd.js +1 -2
  199. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  200. package/lib/scheduling/helpers/index.js.map +1 -1
  201. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  202. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  203. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  204. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +1 -0
  205. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  206. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +1 -1
  207. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  208. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  209. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  210. package/lib/scheduling/helpers/mergeIntervals.js +0 -3
  211. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  212. package/lib/scheduling/helpers/splitIntervals.js +1 -1
  213. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  214. package/lib/scheduling/index.js.map +1 -1
  215. package/lib/scheduling/scheduling.types.js +9 -14
  216. package/lib/scheduling/scheduling.types.js.map +1 -1
  217. package/lib/scheduling/strategies/getNext.js +22 -30
  218. package/lib/scheduling/strategies/getNext.js.map +1 -1
  219. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +22 -31
  220. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  221. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +21 -28
  222. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  223. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +21 -28
  224. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  225. package/lib/scheduling/strategies/getNextNoRepeat.js +15 -23
  226. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  227. package/lib/scheduling/strategies/getNextWeekday.js +43 -78
  228. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  229. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +21 -28
  230. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  231. package/lib/scheduling/strategies/index.js.map +1 -1
  232. package/lib/schema/index.js.map +1 -1
  233. package/lib/schema/schema.js +22 -30
  234. package/lib/schema/schema.js.map +1 -1
  235. package/lib/service-hours/__helpers__/calculate-hours.js +4 -13
  236. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  237. package/lib/service-hours/__helpers__/isOpen.js +3 -7
  238. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  239. package/lib/service-hours/index.js.map +1 -1
  240. package/lib/service-hours/schema.js +21 -36
  241. package/lib/service-hours/schema.js.map +1 -1
  242. package/package.json +1 -1
@@ -1,14 +1,12 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5
-
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
-
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
5
  import { get, filter, isEmpty, map } from 'lodash';
9
6
  import moment from 'moment-timezone';
10
7
  import { buildTemplateContent, generateDefinition, getFormattedAddress, horizontalLine, table, text, threeColumnTable } from '../helpers';
11
8
  import { getIssueDetails, getStatusDetails, getTimezoneAbbr, getTimezoneDatetime } from '../../helpers';
9
+
12
10
  /**
13
11
  * buildIssuePdf
14
12
  *
@@ -33,15 +31,16 @@ import { getIssueDetails, getStatusDetails, getTimezoneAbbr, getTimezoneDatetime
33
31
  * @param {object} data.zones - zone documents
34
32
  * @returns {Promise} returns pdfmake definition object
35
33
  */
36
-
37
34
  export function buildIssuePdf(pdfOptions, data) {
38
35
  var entity = data.entity,
39
- timezone = data.timezone;
36
+ timezone = data.timezone;
37
+ var _pdfOptions$plugins = pdfOptions.plugins,
38
+ plugins = _pdfOptions$plugins === void 0 ? {} : _pdfOptions$plugins;
40
39
  var sequenceId = entity.sequenceId;
41
40
  var timestamp = entity.createdAt;
42
41
  var title = entity.title || 'Unknown';
43
42
  var fileTitle = "Issue Report - ".concat(title);
44
- return generateContent(data).then(function (content) {
43
+ return generateContent(data, plugins).then(function (content) {
45
44
  return generateDefinition(_objectSpread({
46
45
  content: content,
47
46
  fileTitle: fileTitle,
@@ -52,23 +51,24 @@ export function buildIssuePdf(pdfOptions, data) {
52
51
  }, pdfOptions));
53
52
  });
54
53
  }
55
-
56
- function generateContent(data) {
54
+ function generateContent(data, plugins) {
55
+ var _plugins$publicForms;
57
56
  var entity = data.entity,
58
- timezone = data.timezone;
57
+ timezone = data.timezone;
59
58
  var entry = entity.entry,
60
- _entity$gps = entity.gps,
61
- gps = _entity$gps === void 0 ? {} : _entity$gps,
62
- _entity$timeline = entity.timeline,
63
- timeline = _entity$timeline === void 0 ? [] : _entity$timeline,
64
- title = entity.title;
59
+ _entity$gps = entity.gps,
60
+ gps = _entity$gps === void 0 ? {} : _entity$gps,
61
+ _entity$timeline = entity.timeline,
62
+ timeline = _entity$timeline === void 0 ? [] : _entity$timeline,
63
+ title = entity.title;
65
64
  var entityDetails = getIssueDetails(data);
66
65
  var assigneeNames = entityDetails.assigneeNames,
67
- durationText = entityDetails.durationText,
68
- gpsText = entityDetails.gpsText,
69
- locationText = entityDetails.locationText,
70
- statusColor = entityDetails.statusColor,
71
- statusText = entityDetails.statusText;
66
+ durationText = entityDetails.durationText,
67
+ gpsText = entityDetails.gpsText,
68
+ isPublicSubmission = entityDetails.isPublicSubmission,
69
+ locationText = entityDetails.locationText,
70
+ statusColor = entityDetails.statusColor,
71
+ statusText = entityDetails.statusText;
72
72
  var reverseGeocoded = gps.reverseGeocoded;
73
73
  var subTitle = "".concat(locationText || gpsText);
74
74
  var headerTitle = text(title, {
@@ -86,7 +86,6 @@ function generateContent(data) {
86
86
  var submittedAt = text("Submitted: ".concat(submittedAtInTimezone), {
87
87
  style: 'small'
88
88
  });
89
-
90
89
  if (entity.showSimplifiedDuration) {
91
90
  body.push([submittedAt]);
92
91
  } else {
@@ -107,7 +106,6 @@ function generateContent(data) {
107
106
  body.push([submittedAt]);
108
107
  body.push([formDuration]);
109
108
  }
110
-
111
109
  var titleTable = table({
112
110
  body: body,
113
111
  layout: 'noBorders',
@@ -124,7 +122,6 @@ function generateContent(data) {
124
122
  layout: 'noBorders',
125
123
  style: 'metaTable'
126
124
  });
127
-
128
125
  if (statusText === 'CLOSED') {
129
126
  var durationLabelText = text('Duration', {
130
127
  bold: true
@@ -132,12 +129,22 @@ function generateContent(data) {
132
129
  var durationValueText = text(durationText);
133
130
  metaTable.table.body.push([durationLabelText, durationValueText]);
134
131
  }
135
-
136
132
  var assigneeLabelText = text('Assignees', {
137
133
  bold: true
138
134
  });
139
135
  var assigneeValueText = text(assigneeNames);
140
136
  metaTable.table.body.push([assigneeLabelText, assigneeValueText]);
137
+ if ((_plugins$publicForms = plugins.publicForms) !== null && _plugins$publicForms !== void 0 && _plugins$publicForms.enabled) {
138
+ var sourceText = isPublicSubmission ? 'PUBLIC SUBMISSION' : 'STAFF SUBMISSION';
139
+ var sourceColor = isPublicSubmission ? '#FF8C2F' : '#000000';
140
+ var sourceLabelText = text('Source', {
141
+ bold: true
142
+ });
143
+ var sourceValueText = text(sourceText, {
144
+ color: sourceColor
145
+ });
146
+ metaTable.table.body.push([sourceLabelText, sourceValueText]);
147
+ }
141
148
  var timelineTitle = text('Timeline', {
142
149
  style: 'timelineTitle'
143
150
  });
@@ -147,7 +154,6 @@ function generateContent(data) {
147
154
  return [titleTable, metaTable, timelineTitle, timelineHorizontalLine, timelineTable].concat(_toConsumableArray(entry));
148
155
  });
149
156
  }
150
-
151
157
  function createTimelineTable(timeline, timezone) {
152
158
  var timezoneAbbr = getTimezoneAbbr(timezone);
153
159
  var timelineHeaderRow = [text('Activity', {
@@ -163,10 +169,10 @@ function createTimelineTable(timeline, timezone) {
163
169
  colSpan: 3
164
170
  })] : map(statusUpdates, function (item) {
165
171
  var _item$meta = item.meta,
166
- meta = _item$meta === void 0 ? {} : _item$meta,
167
- source = item.source,
168
- timestamp = item.timestamp,
169
- type = item.type;
172
+ meta = _item$meta === void 0 ? {} : _item$meta,
173
+ source = item.source,
174
+ timestamp = item.timestamp,
175
+ type = item.type;
170
176
  var next = get(meta, 'next');
171
177
  var firstName = get(source, 'meta.firstName');
172
178
  var lastName = get(source, 'meta.lastName');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pdf/issue/index.js"],"names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","generateContent","then","content","type","entry","gps","timeline","entityDetails","assigneeNames","durationText","gpsText","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"mappings":"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","sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data).then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays())\n .toString()\n .padStart(2, '0')\n const hours = Math.floor(momentDuration.hours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then(entry => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, item => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","buildIssuePdf","pdfOptions","data","entity","timezone","_pdfOptions$plugins","plugins","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","_plugins$publicForms","entry","_entity$gps","gps","_entity$timeline","timeline","entityDetails","assigneeNames","durationText","gpsText","isPublicSubmission","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","publicForms","enabled","sourceText","sourceColor","sourceLabelText","sourceValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n const { plugins = {} } = pdfOptions\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data, plugins).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data, plugins) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n isPublicSubmission,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n if (plugins.publicForms?.enabled) {\n const sourceText = isPublicSubmission\n ? 'PUBLIC SUBMISSION'\n : 'STAFF SUBMISSION'\n\n const sourceColor = isPublicSubmission ? '#FF8C2F' : '#000000'\n const sourceLabelText = text('Source', { bold: true })\n const sourceValueText = text(sourceText, { color: sourceColor })\n metaTable.table.body.push([sourceLabelText, sourceValueText])\n }\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, (item) => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,7 @@
1
1
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
-
4
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
5
-
6
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
7
-
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
8
5
  import { get, isEmpty, map } from 'lodash';
9
6
  import moment from 'moment-timezone';
10
7
  import { generateDefinition, horizontalLine, table, text, twoColumnTable } from '../helpers';
@@ -31,6 +28,7 @@ var ACTIVITY_COLUMN_HEADERS = [{
31
28
  text: 'Duration',
32
29
  bold: true
33
30
  }];
31
+
34
32
  /**
35
33
  * buildJobPdf
36
34
  *
@@ -54,10 +52,9 @@ var ACTIVITY_COLUMN_HEADERS = [{
54
52
  * @param {object} data.users - application user documents
55
53
  * @returns {Promise} returns pdfmake definition object
56
54
  */
57
-
58
55
  export function buildJobPdf(pdfOptions, data) {
59
56
  var entity = data.entity,
60
- timezone = data.timezone;
57
+ timezone = data.timezone;
61
58
  var timestamp = entity.createdAt;
62
59
  var title = entity.title || 'Unknown';
63
60
  var fileTitle = "Job Report - ".concat(title);
@@ -71,7 +68,6 @@ export function buildJobPdf(pdfOptions, data) {
71
68
  type: 'Job'
72
69
  }, pdfOptions));
73
70
  }
74
-
75
71
  function generateContent(data) {
76
72
  var entity = data.entity;
77
73
  var title = entity.title;
@@ -129,28 +125,25 @@ function generateContent(data) {
129
125
  var hLine = horizontalLine();
130
126
  return [titleTable, metaDataTable, activitiesTitleTable, hLine, activityTable, hLine];
131
127
  }
132
-
133
128
  function buildActivitiesContent(data) {
134
129
  var jobActivities = data.jobActivities,
135
- timezone = data.timezone,
136
- users = data.users;
137
-
130
+ timezone = data.timezone,
131
+ users = data.users;
138
132
  if (isEmpty(jobActivities)) {
139
133
  return {
140
134
  body: [['No Job Activities']],
141
135
  widths: '*'
142
136
  };
143
137
  }
144
-
145
138
  var activityRows = map(jobActivities, function (activity) {
146
139
  var entity = activity.entity;
147
140
  var type = entity.type,
148
- duration = entity.duration,
149
- user = entity.user,
150
- _entity$start = entity.start,
151
- start = _entity$start === void 0 ? {} : _entity$start,
152
- _entity$end = entity.end,
153
- end = _entity$end === void 0 ? {} : _entity$end;
141
+ duration = entity.duration,
142
+ user = entity.user,
143
+ _entity$start = entity.start,
144
+ start = _entity$start === void 0 ? {} : _entity$start,
145
+ _entity$end = entity.end,
146
+ end = _entity$end === void 0 ? {} : _entity$end;
154
147
  var authorText = getUserFullName(users, user);
155
148
  var mDuration = moment.duration(duration, 'minutes');
156
149
  var durationText = duration ? getPrettyDuration(mDuration) : '';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pdf/job/index.js"],"names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","content","generateContent","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","start","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText"],"mappings":"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","sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, activity => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","concat","content","generateContent","_objectSpread","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","_entity$start","start","_entity$end","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText","_toConsumableArray"],"sources":["../../../src/pdf/job/index.js"],"sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, activity => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/pdf/shift-report/emptyFixtures.js"],"names":["user","_id","firstName","lastName","shift","end","time","start"],"mappings":"AAAA,OAAO,IAAMA,IAAI,GAAG;AAClBC,EAAAA,GAAG,EAAE,0BADa;AAElBC,EAAAA,SAAS,EAAE,MAFO;AAGlBC,EAAAA,QAAQ,EAAE;AAHQ,CAAb;AAMP,OAAO,IAAMC,KAAK,GAAG;AACnBC,EAAAA,GAAG,EAAE;AACHC,IAAAA,IAAI,EAAE;AADH,GADc;AAInBC,EAAAA,KAAK,EAAE;AACLD,IAAAA,IAAI,EAAE;AADD;AAJY,CAAd","sourcesContent":["export const user = {\n _id: '5bb7d1c618c1bb0001e8028a',\n firstName: 'John',\n lastName: 'Doe',\n}\n\nexport const shift = {\n end: {\n time: '2019-09-19T20:00:00.000+0000',\n },\n start: {\n time: '2019-09-19T14:00:00.000+0000',\n },\n}\n"],"file":"emptyFixtures.js"}
1
+ {"version":3,"file":"emptyFixtures.js","names":["user","_id","firstName","lastName","shift","end","time","start"],"sources":["../../../src/pdf/shift-report/emptyFixtures.js"],"sourcesContent":["export const user = {\n _id: '5bb7d1c618c1bb0001e8028a',\n firstName: 'John',\n lastName: 'Doe',\n}\n\nexport const shift = {\n end: {\n time: '2019-09-19T20:00:00.000+0000',\n },\n start: {\n time: '2019-09-19T14:00:00.000+0000',\n },\n}\n"],"mappings":"AAAA,OAAO,IAAMA,IAAI,GAAG;EAClBC,GAAG,EAAE,0BAA0B;EAC/BC,SAAS,EAAE,MAAM;EACjBC,QAAQ,EAAE;AACZ,CAAC;AAED,OAAO,IAAMC,KAAK,GAAG;EACnBC,GAAG,EAAE;IACHC,IAAI,EAAE;EACR,CAAC;EACDC,KAAK,EAAE;IACLD,IAAI,EAAE;EACR;AACF,CAAC","ignoreList":[]}