@lighthouse/common 6.4.0-canary.5 → 6.5.0

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 (243) hide show
  1. package/dist/constants.js +13 -7
  2. package/dist/errors/DomainError.js +4 -2
  3. package/dist/errors/ValidationError.js +8 -0
  4. package/dist/errors/index.js +5 -1
  5. package/dist/helpers/build-fetch-url/index.js +5 -0
  6. package/dist/helpers/fetch-image/index.js +32 -16
  7. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +44 -22
  8. package/dist/helpers/fetch-image-for-web/index.js +9 -0
  9. package/dist/helpers/fetch-lighthouse-logo/index.js +13 -2
  10. package/dist/helpers/floatify/index.js +1 -0
  11. package/dist/helpers/get-assignees-full-names/index.js +4 -0
  12. package/dist/helpers/get-audit-entry-details/index.js +3 -0
  13. package/dist/helpers/get-audit-items-data/index.js +6 -2
  14. package/dist/helpers/get-geometry-geocoded-string/index.js +3 -0
  15. package/dist/helpers/get-issue-details/index.js +9 -0
  16. package/dist/helpers/get-job-details/index.js +7 -0
  17. package/dist/helpers/get-location-reference/index.js +21 -18
  18. package/dist/helpers/get-pretty-duration/index.js +5 -0
  19. package/dist/helpers/get-reference-details/index.js +4 -0
  20. package/dist/helpers/get-status-details/index.js +9 -2
  21. package/dist/helpers/get-task-entry-details/index.js +3 -0
  22. package/dist/helpers/get-timezone-abbr/index.js +4 -0
  23. package/dist/helpers/get-timezone-datetime/index.js +5 -0
  24. package/dist/helpers/get-user-full-name/index.js +1 -0
  25. package/dist/helpers/get-value-as-percentage/index.js +1 -0
  26. package/dist/helpers/image-validators/index.js +9 -8
  27. package/dist/helpers/index.js +33 -16
  28. package/dist/images/index.js +9 -5
  29. package/dist/index.js +20 -4
  30. package/dist/pdf/activity-report/index.js +62 -41
  31. package/dist/pdf/audit/index.js +14 -0
  32. package/dist/pdf/helpers/build-audit-content/index.js +15 -4
  33. package/dist/pdf/helpers/build-audit-follow-ups/index.js +14 -4
  34. package/dist/pdf/helpers/build-location-scans-content/index.js +17 -4
  35. package/dist/pdf/helpers/build-template-content/index.js +14 -5
  36. package/dist/pdf/helpers/default-footer/index.js +3 -2
  37. package/dist/pdf/helpers/default-header/index.js +2 -0
  38. package/dist/pdf/helpers/default-styles/index.js +3 -2
  39. package/dist/pdf/helpers/fields/index.js +51 -21
  40. package/dist/pdf/helpers/format-location-address/index.js +3 -0
  41. package/dist/pdf/helpers/generate-definition/index.js +12 -0
  42. package/dist/pdf/helpers/horizontal-line/index.js +1 -0
  43. package/dist/pdf/helpers/html-transformer/index.js +23 -11
  44. package/dist/pdf/helpers/index.js +55 -40
  45. package/dist/pdf/helpers/parse-value/index.js +6 -2
  46. package/dist/pdf/helpers/table/index.js +31 -13
  47. package/dist/pdf/helpers/text/index.js +1 -0
  48. package/dist/pdf/icons/index.js +5 -3
  49. package/dist/pdf/index.js +10 -4
  50. package/dist/pdf/issue/index.js +14 -0
  51. package/dist/pdf/job/index.js +13 -1
  52. package/dist/pdf/shift-report/emptyFixtures.js +6 -4
  53. package/dist/pdf/shift-report/index.js +25 -2
  54. package/dist/pdf/task/index.js +13 -0
  55. package/dist/scheduling/generators/index.js +6 -0
  56. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +6 -1
  57. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +5 -0
  58. package/dist/scheduling/generators/serviceIntervalsGenerator.js +27 -13
  59. package/dist/scheduling/helpers/convertToTimezone.js +6 -1
  60. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +9 -3
  61. package/dist/scheduling/helpers/generateRepeatingSchedule.js +18 -11
  62. package/dist/scheduling/helpers/generateScheduleEnd.js +8 -2
  63. package/dist/scheduling/helpers/hasValidStartAndEnd.js +6 -0
  64. package/dist/scheduling/helpers/index.js +28 -0
  65. package/dist/scheduling/helpers/intervalCovers.js +1 -0
  66. package/dist/scheduling/helpers/intervalIntersectsEnd.js +1 -0
  67. package/dist/scheduling/helpers/intervalIntersectsStart.js +1 -0
  68. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +3 -1
  69. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +3 -0
  70. package/dist/scheduling/helpers/intervalOutside.js +1 -0
  71. package/dist/scheduling/helpers/intervalWithin.js +1 -0
  72. package/dist/scheduling/helpers/mergeIntervals.js +4 -0
  73. package/dist/scheduling/helpers/splitIntervals.js +3 -0
  74. package/dist/scheduling/index.js +6 -0
  75. package/dist/scheduling/scheduling.types.js +18 -10
  76. package/dist/scheduling/strategies/getNext.js +13 -2
  77. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +12 -0
  78. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +10 -0
  79. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +11 -0
  80. package/dist/scheduling/strategies/getNextNoRepeat.js +7 -0
  81. package/dist/scheduling/strategies/getNextWeekday.js +10 -0
  82. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +12 -0
  83. package/dist/scheduling/strategies/index.js +14 -0
  84. package/dist/schema/index.js +2 -0
  85. package/dist/schema/schema.js +7 -2
  86. package/dist/service-hours/__helpers__/calculate-hours.js +13 -4
  87. package/dist/service-hours/__helpers__/isOpen.js +9 -0
  88. package/dist/service-hours/index.js +4 -0
  89. package/dist/service-hours/schema.js +43 -20
  90. package/lib/constants.js.map +1 -1
  91. package/lib/errors/DomainError.js +47 -11
  92. package/lib/errors/DomainError.js.map +1 -1
  93. package/lib/errors/ValidationError.js +52 -15
  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 +20 -14
  97. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  98. package/lib/helpers/fetch-image/index.js +27 -20
  99. package/lib/helpers/fetch-image/index.js.map +1 -1
  100. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +242 -201
  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 +66 -50
  103. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  104. package/lib/helpers/fetch-lighthouse-logo/index.js +59 -47
  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 +1 -0
  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 +19 -16
  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 +12 -9
  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 +36 -32
  119. package/lib/helpers/get-location-reference/index.js.map +1 -1
  120. package/lib/helpers/get-pretty-duration/index.js +4 -0
  121. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  122. package/lib/helpers/get-reference-details/index.js +3 -1
  123. package/lib/helpers/get-reference-details/index.js.map +1 -1
  124. package/lib/helpers/get-status-details/index.js +4 -0
  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 +7 -8
  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 +416 -360
  139. package/lib/pdf/activity-report/index.js.map +1 -1
  140. package/lib/pdf/audit/index.js +36 -25
  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 +5 -3
  144. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  145. package/lib/pdf/helpers/build-audit-follow-ups/index.js +12 -5
  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 +9 -4
  148. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  149. package/lib/pdf/helpers/build-template-content/index.js +9 -7
  150. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  151. package/lib/pdf/helpers/default-footer/index.js +8 -9
  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 +81 -48
  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 +29 -22
  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 +30 -19
  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 +4 -2
  167. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  168. package/lib/pdf/helpers/table/index.js +84 -78
  169. package/lib/pdf/helpers/table/index.js.map +1 -1
  170. package/lib/pdf/helpers/text/index.js +5 -2
  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 +28 -19
  175. package/lib/pdf/issue/index.js.map +1 -1
  176. package/lib/pdf/job/index.js +19 -12
  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 +374 -308
  180. package/lib/pdf/shift-report/index.js.map +1 -1
  181. package/lib/pdf/task/index.js +19 -11
  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 +38 -27
  185. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  186. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +30 -19
  187. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  188. package/lib/scheduling/generators/serviceIntervalsGenerator.js +181 -139
  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 +124 -84
  193. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  194. package/lib/scheduling/helpers/generateRepeatingSchedule.js +175 -107
  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 +2 -1
  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 +0 -1
  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 +3 -0
  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 +14 -9
  216. package/lib/scheduling/scheduling.types.js.map +1 -1
  217. package/lib/scheduling/strategies/getNext.js +30 -22
  218. package/lib/scheduling/strategies/getNext.js.map +1 -1
  219. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +31 -22
  220. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  221. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +28 -21
  222. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  223. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +28 -21
  224. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  225. package/lib/scheduling/strategies/getNextNoRepeat.js +23 -15
  226. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  227. package/lib/scheduling/strategies/getNextWeekday.js +78 -43
  228. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  229. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +28 -21
  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 +30 -22
  234. package/lib/schema/schema.js.map +1 -1
  235. package/lib/service-hours/__helpers__/calculate-hours.js +13 -4
  236. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  237. package/lib/service-hours/__helpers__/isOpen.js +7 -3
  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 +36 -21
  241. package/lib/service-hours/schema.js.map +1 -1
  242. package/package.json +4 -5
  243. package/mise.toml +0 -6
@@ -15,22 +15,16 @@ Object.defineProperty(exports, "buildAuditFollowUps", {
15
15
  return _buildAuditFollowUps.buildAuditFollowUps;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "buildLocationScansBoundaries", {
19
- enumerable: true,
20
- get: function () {
21
- return _buildLocationScansContent.buildLocationScansBoundaries;
22
- }
23
- });
24
18
  Object.defineProperty(exports, "buildLocationScansContent", {
25
19
  enumerable: true,
26
20
  get: function () {
27
21
  return _buildLocationScansContent.buildLocationScansContent;
28
22
  }
29
23
  });
30
- Object.defineProperty(exports, "buildSummaryField", {
24
+ Object.defineProperty(exports, "buildLocationScansBoundaries", {
31
25
  enumerable: true,
32
26
  get: function () {
33
- return _fields.buildSummaryField;
27
+ return _buildLocationScansContent.buildLocationScansBoundaries;
34
28
  }
35
29
  });
36
30
  Object.defineProperty(exports, "buildTemplateContent", {
@@ -39,18 +33,6 @@ Object.defineProperty(exports, "buildTemplateContent", {
39
33
  return _buildTemplateContent.buildTemplateContent;
40
34
  }
41
35
  });
42
- Object.defineProperty(exports, "buildTemplateFieldRow", {
43
- enumerable: true,
44
- get: function () {
45
- return _fields.buildTemplateFieldRow;
46
- }
47
- });
48
- Object.defineProperty(exports, "convertToPdfMake", {
49
- enumerable: true,
50
- get: function () {
51
- return _htmlTransformer.convertToPdfMake;
52
- }
53
- });
54
36
  Object.defineProperty(exports, "defaultFooter", {
55
37
  enumerable: true,
56
38
  get: function () {
@@ -69,16 +51,16 @@ Object.defineProperty(exports, "defaultStyles", {
69
51
  return _defaultStyles.defaultStyles;
70
52
  }
71
53
  });
72
- Object.defineProperty(exports, "fourColumnTable", {
54
+ Object.defineProperty(exports, "buildSummaryField", {
73
55
  enumerable: true,
74
56
  get: function () {
75
- return _table.fourColumnTable;
57
+ return _fields.buildSummaryField;
76
58
  }
77
59
  });
78
- Object.defineProperty(exports, "generateDefinition", {
60
+ Object.defineProperty(exports, "buildTemplateFieldRow", {
79
61
  enumerable: true,
80
62
  get: function () {
81
- return _generateDefinition.generateDefinition;
63
+ return _fields.buildTemplateFieldRow;
82
64
  }
83
65
  });
84
66
  Object.defineProperty(exports, "getFormattedAddress", {
@@ -87,10 +69,10 @@ Object.defineProperty(exports, "getFormattedAddress", {
87
69
  return _formatLocationAddress.getFormattedAddress;
88
70
  }
89
71
  });
90
- Object.defineProperty(exports, "getStyleAttributes", {
72
+ Object.defineProperty(exports, "generateDefinition", {
91
73
  enumerable: true,
92
74
  get: function () {
93
- return _htmlTransformer.getStyleAttributes;
75
+ return _generateDefinition.generateDefinition;
94
76
  }
95
77
  });
96
78
  Object.defineProperty(exports, "horizontalLine", {
@@ -99,10 +81,16 @@ Object.defineProperty(exports, "horizontalLine", {
99
81
  return _horizontalLine.horizontalLine;
100
82
  }
101
83
  });
102
- Object.defineProperty(exports, "imageTables", {
84
+ Object.defineProperty(exports, "convertToPdfMake", {
103
85
  enumerable: true,
104
86
  get: function () {
105
- return _table.imageTables;
87
+ return _htmlTransformer.convertToPdfMake;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "getStyleAttributes", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _htmlTransformer.getStyleAttributes;
106
94
  }
107
95
  });
108
96
  Object.defineProperty(exports, "parseHtml", {
@@ -111,12 +99,30 @@ Object.defineProperty(exports, "parseHtml", {
111
99
  return _htmlTransformer.parseHtml;
112
100
  }
113
101
  });
102
+ Object.defineProperty(exports, "toPdf", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _htmlTransformer.toPdf;
106
+ }
107
+ });
114
108
  Object.defineProperty(exports, "parseValue", {
115
109
  enumerable: true,
116
110
  get: function () {
117
111
  return _parseValue.parseValue;
118
112
  }
119
113
  });
114
+ Object.defineProperty(exports, "fourColumnTable", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _table.fourColumnTable;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "imageTables", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _table.imageTables;
124
+ }
125
+ });
120
126
  Object.defineProperty(exports, "sixColumnTable", {
121
127
  enumerable: true,
122
128
  get: function () {
@@ -147,24 +153,12 @@ Object.defineProperty(exports, "table", {
147
153
  return _table.table;
148
154
  }
149
155
  });
150
- Object.defineProperty(exports, "text", {
151
- enumerable: true,
152
- get: function () {
153
- return _text.text;
154
- }
155
- });
156
156
  Object.defineProperty(exports, "threeColumnTable", {
157
157
  enumerable: true,
158
158
  get: function () {
159
159
  return _table.threeColumnTable;
160
160
  }
161
161
  });
162
- Object.defineProperty(exports, "toPdf", {
163
- enumerable: true,
164
- get: function () {
165
- return _htmlTransformer.toPdf;
166
- }
167
- });
168
162
  Object.defineProperty(exports, "twoColumnTable", {
169
163
  enumerable: true,
170
164
  get: function () {
@@ -177,18 +171,39 @@ Object.defineProperty(exports, "zebraFillColor", {
177
171
  return _table.zebraFillColor;
178
172
  }
179
173
  });
174
+ Object.defineProperty(exports, "text", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _text.text;
178
+ }
179
+ });
180
+
180
181
  var _buildAuditContent = require("./build-audit-content");
182
+
181
183
  var _buildAuditFollowUps = require("./build-audit-follow-ups");
184
+
182
185
  var _buildLocationScansContent = require("./build-location-scans-content");
186
+
183
187
  var _buildTemplateContent = require("./build-template-content");
188
+
184
189
  var _defaultFooter = require("./default-footer");
190
+
185
191
  var _defaultHeader = require("./default-header");
192
+
186
193
  var _defaultStyles = require("./default-styles");
194
+
187
195
  var _fields = require("./fields");
196
+
188
197
  var _formatLocationAddress = require("./format-location-address");
198
+
189
199
  var _generateDefinition = require("./generate-definition");
200
+
190
201
  var _horizontalLine = require("./horizontal-line");
202
+
191
203
  var _htmlTransformer = require("./html-transformer");
204
+
192
205
  var _parseValue = require("./parse-value");
206
+
193
207
  var _table = require("./table");
208
+
194
209
  var _text = require("./text");
@@ -4,15 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.parseValue = parseValue;
7
+
7
8
  var _lodash = require("lodash");
9
+
8
10
  function parseValue(value) {
9
11
  // map switches to text
10
12
  if ((0, _lodash.isBoolean)(value)) {
11
13
  return value ? 'Yes' : 'No';
12
- }
13
- // handle empty arrays & objects
14
+ } // handle empty arrays & objects
15
+
16
+
14
17
  if ((0, _lodash.isObjectLike)(value) && (0, _lodash.isEmpty)(value)) {
15
18
  return '';
16
19
  }
20
+
17
21
  return value || '';
18
22
  }
@@ -1,24 +1,30 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
- exports.WHITE = exports.LIGHT_BLUE = exports.GRAY = void 0;
8
- exports.fourColumnTable = fourColumnTable;
9
8
  exports.imageTables = imageTables;
10
- exports.sixColumnTable = sixColumnTable;
11
9
  exports.summaryFieldsTable = summaryFieldsTable;
12
10
  exports.summaryStatTable = summaryStatTable;
13
11
  exports.summaryWrapperTable = summaryWrapperTable;
14
12
  exports.table = table;
15
- exports.threeColumnTable = threeColumnTable;
16
13
  exports.twoColumnTable = twoColumnTable;
14
+ exports.threeColumnTable = threeColumnTable;
15
+ exports.fourColumnTable = fourColumnTable;
16
+ exports.sixColumnTable = sixColumnTable;
17
17
  exports.zebraFillColor = zebraFillColor;
18
+ exports.WHITE = exports.LIGHT_BLUE = exports.GRAY = void 0;
19
+
18
20
  var _lodash = require("lodash");
21
+
19
22
  var _bluebird = _interopRequireDefault(require("bluebird"));
23
+
20
24
  var _constants = require("../../../constants");
25
+
21
26
  var _ = require("../");
27
+
22
28
  const defaultLayout = {
23
29
  fillColor: zebraFillColor,
24
30
  hLineWidth: () => 0,
@@ -28,9 +34,13 @@ const defaultLayout = {
28
34
  paddingBottom: () => 5,
29
35
  vLineWidth: () => 0
30
36
  };
31
- const GRAY = exports.GRAY = '#DDDDDD';
32
- const LIGHT_BLUE = exports.LIGHT_BLUE = '#F0FBFF';
33
- const WHITE = exports.WHITE = '#FFFFFF';
37
+ const GRAY = '#DDDDDD';
38
+ exports.GRAY = GRAY;
39
+ const LIGHT_BLUE = '#F0FBFF';
40
+ exports.LIGHT_BLUE = LIGHT_BLUE;
41
+ const WHITE = '#FFFFFF';
42
+ exports.WHITE = WHITE;
43
+
34
44
  function imageTables(images) {
35
45
  const imageRows = (0, _lodash.chunk)(images, _constants.DEFAULT_IMAGE_COLUMN_LENGTH);
36
46
  const tables = (0, _lodash.map)(imageRows, (imageRow, index) => {
@@ -61,6 +71,7 @@ function imageTables(images) {
61
71
  });
62
72
  return tables;
63
73
  }
74
+
64
75
  async function summaryFieldsTable({
65
76
  fields,
66
77
  settings,
@@ -82,11 +93,10 @@ async function summaryFieldsTable({
82
93
  field,
83
94
  settings,
84
95
  timezone
85
- }));
86
-
87
- // NOTE: a user can only select three summary fields on the template however
96
+ })); // NOTE: a user can only select three summary fields on the template however
88
97
  // if the form group is repeatable we could have more than the default
89
98
  // summary field column length so cap otherwise pdf will fail to generate
99
+
90
100
  const headers = (0, _lodash.take)((0, _lodash.concat)(tableHeader, (0, _lodash.slice)(defaultHeaders, tableHeader.length)), _constants.DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH);
91
101
  const row = (0, _lodash.take)((0, _lodash.concat)(tableRow, (0, _lodash.slice)(defaultRow, tableRow.length)), _constants.DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH);
92
102
  const summaryFieldTable = table({
@@ -108,6 +118,7 @@ async function summaryFieldsTable({
108
118
  });
109
119
  return summaryFieldTable;
110
120
  }
121
+
111
122
  function summaryStatTable(options) {
112
123
  const tableOptions = (0, _lodash.defaults)({}, options, {
113
124
  layout: {
@@ -123,6 +134,7 @@ function summaryStatTable(options) {
123
134
  });
124
135
  return table(tableOptions);
125
136
  }
137
+
126
138
  function summaryWrapperTable(options) {
127
139
  const tableOptions = (0, _lodash.defaults)({}, options, {
128
140
  layout: {
@@ -138,6 +150,7 @@ function summaryWrapperTable(options) {
138
150
  });
139
151
  return table(tableOptions);
140
152
  }
153
+
141
154
  function table(options) {
142
155
  const {
143
156
  body,
@@ -162,40 +175,45 @@ function table(options) {
162
175
  headerRows
163
176
  },
164
177
  margin
165
- };
166
-
167
- // NOTE: only adds widths if passed
178
+ }; // NOTE: only adds widths if passed
168
179
  // as otherwise pdfmake will error!
169
180
  // if none defined it auto calculates
181
+
170
182
  if (widths) {
171
183
  definition.table.widths = widths;
172
184
  }
185
+
173
186
  return definition;
174
187
  }
188
+
175
189
  function twoColumnTable(options) {
176
190
  const tableOptions = (0, _lodash.defaults)({}, options, {
177
191
  widths: ['50%', '50%']
178
192
  });
179
193
  return table(tableOptions);
180
194
  }
195
+
181
196
  function threeColumnTable(options) {
182
197
  const tableOptions = (0, _lodash.defaults)({}, options, {
183
198
  widths: ['33%', '33%', '*']
184
199
  });
185
200
  return table(tableOptions);
186
201
  }
202
+
187
203
  function fourColumnTable(options) {
188
204
  const tableOptions = (0, _lodash.defaults)({}, options, {
189
205
  widths: ['25%', '25%', '25%', '25%']
190
206
  });
191
207
  return table(tableOptions);
192
208
  }
209
+
193
210
  function sixColumnTable(options) {
194
211
  const tableOptions = (0, _lodash.defaults)({}, options, {
195
212
  widths: ['16.7%', '16.66%', '16.66%', '16.66%', '16.66%', '16.66%']
196
213
  });
197
214
  return table(tableOptions);
198
215
  }
216
+
199
217
  function zebraFillColor(index) {
200
218
  return index % 2 === 0 ? WHITE : LIGHT_BLUE;
201
219
  }
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.text = text;
7
+
7
8
  function text(text, options = {}) {
8
9
  text = text || 'Unknown';
9
10
  return {
@@ -3,6 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.launchIcon = exports.imageNotFound = void 0;
7
- const launchIcon = exports.launchIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAABGdBTUEAALGPC/xhBQAAAsdJREFUWAntmE1oE0EUx9/bbiQxmIAIFhXsQUQQ2oLeDJjqwYsHPYi1aBWEnq0IXnNUL8WDFy8GrTQqePEsVZKDF5FaDyIIVkSPpYV8mG1mnNdl003Z7MfMbLYHB8JMZub93483O7NvByHGkjt3c69Vry9yzkfl3aCFyOcMeYFgS9ZqjqlBkg+e4hxnzWB38jPuTBx9f//t19sIMBZFhTMocuCHt2x4SmjsrJIuTF4DDmURyZ7V7vmTNHK6MDW9BYkMAVccpiGnkXRtR5KX7UgiA4QbhgEG5zBObDsior3LbUO2apVn7uBtbqZc8eoRxqyUeyBKO5fPr/x+87gRxcaZGwaS5pqZwuTrtmVddAxl6tXVtbVMYXq0WXv6M4p9WEjSFM8AvxBF3GuueI7ywDsHvMb69UWBJA1a+s0jChE/AuLLfsJ+/QbgUr36/IPfHPdYVEiy7R74iPClUV144BaMoy0DSRwD3fWykAMFVYEcGKgq5EBAdUDGDqoLMlZQHZAcYIkgxdH5OZZdvz0LogRj+7ubAILK3bPHHprm0JlUNjvRPUeDjMKO25FkT9xZkAwk+SuVSkxUi9TWGlEdy01QXkUbqK7l9oKkPi2gNqSe5Y4NVBUyW5wa31O8sq8foNOvFFFVyN2Fy+c7VufTxgZbPjEz45u4S4OqQtqRwpNUi3x2+Pu39YNO9LxqKVA9kF44/fsigyYBSfiRQJOCjASaJGRo0KQhQ4HqfHeTQ9ni+4weujSbEWfHIx0JhiygY+cL+uvVXFPkgssiI1wHA6/LZkGOM5XaF5SEm7XKqeFUen+rujCv4kjVNhCUHPx4V26pOlK1DwWq6kSH/X9QHVF0a3S/mRiD0+IK8oV7MO62+CA6HtYHgbbFb5c4K0dEujUS1lD3vHbH/OunaYpr8nsM+C0B6pu4+okojaG4CgeoNKrzf/x0/gGoGnZzJLiv/wAAAABJRU5ErkJggg==';
8
- const imageNotFound = exports.imageNotFound = 'data:image/png;base64,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';
6
+ exports.imageNotFound = exports.launchIcon = void 0;
7
+ const launchIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAABGdBTUEAALGPC/xhBQAAAsdJREFUWAntmE1oE0EUx9/bbiQxmIAIFhXsQUQQ2oLeDJjqwYsHPYi1aBWEnq0IXnNUL8WDFy8GrTQqePEsVZKDF5FaDyIIVkSPpYV8mG1mnNdl003Z7MfMbLYHB8JMZub93483O7NvByHGkjt3c69Vry9yzkfl3aCFyOcMeYFgS9ZqjqlBkg+e4hxnzWB38jPuTBx9f//t19sIMBZFhTMocuCHt2x4SmjsrJIuTF4DDmURyZ7V7vmTNHK6MDW9BYkMAVccpiGnkXRtR5KX7UgiA4QbhgEG5zBObDsior3LbUO2apVn7uBtbqZc8eoRxqyUeyBKO5fPr/x+87gRxcaZGwaS5pqZwuTrtmVddAxl6tXVtbVMYXq0WXv6M4p9WEjSFM8AvxBF3GuueI7ywDsHvMb69UWBJA1a+s0jChE/AuLLfsJ+/QbgUr36/IPfHPdYVEiy7R74iPClUV144BaMoy0DSRwD3fWykAMFVYEcGKgq5EBAdUDGDqoLMlZQHZAcYIkgxdH5OZZdvz0LogRj+7ubAILK3bPHHprm0JlUNjvRPUeDjMKO25FkT9xZkAwk+SuVSkxUi9TWGlEdy01QXkUbqK7l9oKkPi2gNqSe5Y4NVBUyW5wa31O8sq8foNOvFFFVyN2Fy+c7VufTxgZbPjEz45u4S4OqQtqRwpNUi3x2+Pu39YNO9LxqKVA9kF44/fsigyYBSfiRQJOCjASaJGRo0KQhQ4HqfHeTQ9ni+4weujSbEWfHIx0JhiygY+cL+uvVXFPkgssiI1wHA6/LZkGOM5XaF5SEm7XKqeFUen+rujCv4kjVNhCUHPx4V26pOlK1DwWq6kSH/X9QHVF0a3S/mRiD0+IK8oV7MO62+CA6HtYHgbbFb5c4K0dEujUS1lD3vHbH/OunaYpr8nsM+C0B6pu4+okojaG4CgeoNKrzf/x0/gGoGnZzJLiv/wAAAABJRU5ErkJggg==';
8
+ exports.launchIcon = launchIcon;
9
+ const imageNotFound = 'data:image/png;base64,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';
10
+ exports.imageNotFound = imageNotFound;
package/dist/pdf/index.js CHANGED
@@ -27,21 +27,27 @@ Object.defineProperty(exports, "buildJobPdf", {
27
27
  return _job.buildJobPdf;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "buildShiftPdf", {
30
+ Object.defineProperty(exports, "buildTaskPdf", {
31
31
  enumerable: true,
32
32
  get: function () {
33
- return _shiftReport.buildShiftPdf;
33
+ return _task.buildTaskPdf;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "buildTaskPdf", {
36
+ Object.defineProperty(exports, "buildShiftPdf", {
37
37
  enumerable: true,
38
38
  get: function () {
39
- return _task.buildTaskPdf;
39
+ return _shiftReport.buildShiftPdf;
40
40
  }
41
41
  });
42
+
42
43
  var _activityReport = require("./activity-report");
44
+
43
45
  var _audit = require("./audit");
46
+
44
47
  var _issue = require("./issue");
48
+
45
49
  var _job = require("./job");
50
+
46
51
  var _task = require("./task");
52
+
47
53
  var _shiftReport = require("./shift-report");
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.buildIssuePdf = buildIssuePdf;
9
+
8
10
  var _lodash = require("lodash");
11
+
9
12
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
+
10
14
  var _helpers = require("../helpers");
15
+
11
16
  var _helpers2 = require("../../helpers");
17
+
12
18
  /**
13
19
  * buildIssuePdf
14
20
  *
@@ -52,6 +58,7 @@ function buildIssuePdf(pdfOptions, data) {
52
58
  ...pdfOptions
53
59
  }));
54
60
  }
61
+
55
62
  function generateContent(data) {
56
63
  const {
57
64
  entity,
@@ -89,6 +96,7 @@ function generateContent(data) {
89
96
  const submittedAt = (0, _helpers.text)(`Submitted: ${submittedAtInTimezone}`, {
90
97
  style: 'small'
91
98
  });
99
+
92
100
  if (entity.showSimplifiedDuration) {
93
101
  body.push([submittedAt]);
94
102
  } else {
@@ -96,7 +104,9 @@ function generateContent(data) {
96
104
  const startedAt = (0, _helpers.text)(`Started: ${startedAtInTimezone}`, {
97
105
  style: 'small'
98
106
  });
107
+
99
108
  const momentDuration = _momentTimezone.default.duration(Math.abs(entity.formDuration));
109
+
100
110
  const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0');
101
111
  const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0');
102
112
  const minutes = momentDuration.minutes().toString().padStart(2, '0');
@@ -109,6 +119,7 @@ function generateContent(data) {
109
119
  body.push([submittedAt]);
110
120
  body.push([formDuration]);
111
121
  }
122
+
112
123
  const titleTable = (0, _helpers.table)({
113
124
  body,
114
125
  layout: 'noBorders',
@@ -125,6 +136,7 @@ function generateContent(data) {
125
136
  layout: 'noBorders',
126
137
  style: 'metaTable'
127
138
  });
139
+
128
140
  if (statusText === 'CLOSED') {
129
141
  const durationLabelText = (0, _helpers.text)('Duration', {
130
142
  bold: true
@@ -132,6 +144,7 @@ function generateContent(data) {
132
144
  const durationValueText = (0, _helpers.text)(durationText);
133
145
  metaTable.table.body.push([durationLabelText, durationValueText]);
134
146
  }
147
+
135
148
  const assigneeLabelText = (0, _helpers.text)('Assignees', {
136
149
  bold: true
137
150
  });
@@ -144,6 +157,7 @@ function generateContent(data) {
144
157
  const timelineTable = createTimelineTable(timeline, timezone);
145
158
  return (0, _helpers.buildTemplateContent)(entry.formGroups, data).then(entry => [titleTable, metaTable, timelineTitle, timelineHorizontalLine, timelineTable, ...entry]);
146
159
  }
160
+
147
161
  function createTimelineTable(timeline, timezone) {
148
162
  const timezoneAbbr = (0, _helpers2.getTimezoneAbbr)(timezone);
149
163
  const timelineHeaderRow = [(0, _helpers.text)('Activity', {
@@ -1,14 +1,20 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.buildJobPdf = buildJobPdf;
9
+
8
10
  var _lodash = require("lodash");
11
+
9
12
  var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
+
10
14
  var _helpers = require("../helpers");
15
+
11
16
  var _helpers2 = require("../../helpers");
17
+
12
18
  const ACTIVITY_COLUMN_HEADERS = [{
13
19
  text: 'Type',
14
20
  bold: true
@@ -31,7 +37,6 @@ const ACTIVITY_COLUMN_HEADERS = [{
31
37
  text: 'Duration',
32
38
  bold: true
33
39
  }];
34
-
35
40
  /**
36
41
  * buildJobPdf
37
42
  *
@@ -55,6 +60,7 @@ const ACTIVITY_COLUMN_HEADERS = [{
55
60
  * @param {object} data.users - application user documents
56
61
  * @returns {Promise} returns pdfmake definition object
57
62
  */
63
+
58
64
  function buildJobPdf(pdfOptions, data) {
59
65
  const {
60
66
  entity,
@@ -74,6 +80,7 @@ function buildJobPdf(pdfOptions, data) {
74
80
  ...pdfOptions
75
81
  });
76
82
  }
83
+
77
84
  function generateContent(data) {
78
85
  const {
79
86
  entity
@@ -135,18 +142,21 @@ function generateContent(data) {
135
142
  const hLine = (0, _helpers.horizontalLine)();
136
143
  return [titleTable, metaDataTable, activitiesTitleTable, hLine, activityTable, hLine];
137
144
  }
145
+
138
146
  function buildActivitiesContent(data) {
139
147
  const {
140
148
  jobActivities,
141
149
  timezone,
142
150
  users
143
151
  } = data;
152
+
144
153
  if ((0, _lodash.isEmpty)(jobActivities)) {
145
154
  return {
146
155
  body: [['No Job Activities']],
147
156
  widths: '*'
148
157
  };
149
158
  }
159
+
150
160
  const activityRows = (0, _lodash.map)(jobActivities, activity => {
151
161
  const {
152
162
  entity
@@ -159,7 +169,9 @@ function buildActivitiesContent(data) {
159
169
  end = {}
160
170
  } = entity;
161
171
  const authorText = (0, _helpers2.getUserFullName)(users, user);
172
+
162
173
  const mDuration = _momentTimezone.default.duration(duration, 'minutes');
174
+
163
175
  const durationText = duration ? (0, _helpers2.getPrettyDuration)(mDuration) : '';
164
176
  const startTime = start.time;
165
177
  const startLocation = (0, _lodash.get)(start, 'geometryReverseGeocoded.label', '');
@@ -3,17 +3,19 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.user = exports.shift = void 0;
7
- const user = exports.user = {
6
+ exports.shift = exports.user = void 0;
7
+ const user = {
8
8
  _id: '5bb7d1c618c1bb0001e8028a',
9
9
  firstName: 'John',
10
10
  lastName: 'Doe'
11
11
  };
12
- const shift = exports.shift = {
12
+ exports.user = user;
13
+ const shift = {
13
14
  end: {
14
15
  time: '2019-09-19T20:00:00.000+0000'
15
16
  },
16
17
  start: {
17
18
  time: '2019-09-19T14:00:00.000+0000'
18
19
  }
19
- };
20
+ };
21
+ exports.shift = shift;