@lighthouse/common 6.10.0 → 6.10.1-canary.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 (229) hide show
  1. package/.mise.toml +6 -6
  2. package/CHANGELOG.md +758 -758
  3. package/README.md +1 -1
  4. package/dist/errors/FetchImageError.js +3 -3
  5. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
  6. package/dist/helpers/floatify/index.js +6 -6
  7. package/dist/helpers/get-audit-items-data/index.js +47 -36
  8. package/dist/helpers/validate-url/index.js +4 -4
  9. package/dist/pdf/activity-report/index.js +32 -32
  10. package/dist/pdf/audit/index.js +23 -23
  11. package/dist/pdf/helpers/fields/index.js +47 -27
  12. package/dist/pdf/issue/index.js +23 -23
  13. package/dist/pdf/job/index.js +22 -22
  14. package/dist/pdf/shift-report/index.js +28 -28
  15. package/dist/pdf/task/index.js +23 -23
  16. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
  17. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
  18. package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
  19. package/dist/scheduling/helpers/convertToTimezone.js +6 -6
  20. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
  21. package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
  22. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
  23. package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
  24. package/dist/scheduling/helpers/intervalCovers.js +6 -6
  25. package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
  26. package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
  27. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
  28. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
  29. package/dist/scheduling/helpers/intervalOutside.js +6 -6
  30. package/dist/scheduling/helpers/intervalWithin.js +6 -6
  31. package/dist/scheduling/helpers/mergeIntervals.js +6 -6
  32. package/dist/scheduling/helpers/splitIntervals.js +6 -6
  33. package/dist/scheduling/strategies/getNext.js +2 -2
  34. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
  35. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
  36. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
  37. package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
  38. package/dist/scheduling/strategies/getNextWeekday.js +2 -2
  39. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
  40. package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
  41. package/dist/service-hours/__helpers__/isOpen.js +2 -2
  42. package/dist/service-hours/schema.js +4 -4
  43. package/lib/constants.js +12 -6
  44. package/lib/constants.js.map +1 -1
  45. package/lib/errors/DomainError.js +14 -21
  46. package/lib/errors/DomainError.js.map +1 -1
  47. package/lib/errors/FetchImageError.js +17 -24
  48. package/lib/errors/FetchImageError.js.map +1 -1
  49. package/lib/errors/ValidationError.js +30 -36
  50. package/lib/errors/ValidationError.js.map +1 -1
  51. package/lib/errors/index.js +23 -5
  52. package/lib/errors/index.js.map +1 -1
  53. package/lib/helpers/build-fetch-url/index.js +43 -47
  54. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  55. package/lib/helpers/fetch-image/index.js +83 -82
  56. package/lib/helpers/fetch-image/index.js.map +1 -1
  57. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
  58. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  59. package/lib/helpers/fetch-image-for-web/index.js +71 -94
  60. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  61. package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
  62. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  63. package/lib/helpers/floatify/index.js +13 -7
  64. package/lib/helpers/floatify/index.js.map +1 -1
  65. package/lib/helpers/get-assignees-full-names/index.js +11 -7
  66. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  67. package/lib/helpers/get-audit-entry-details/index.js +42 -32
  68. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  69. package/lib/helpers/get-audit-items-data/index.js +104 -83
  70. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  71. package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
  72. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  73. package/lib/helpers/get-issue-details/index.js +53 -43
  74. package/lib/helpers/get-issue-details/index.js.map +1 -1
  75. package/lib/helpers/get-job-details/index.js +49 -41
  76. package/lib/helpers/get-job-details/index.js.map +1 -1
  77. package/lib/helpers/get-location-reference/index.js +32 -34
  78. package/lib/helpers/get-location-reference/index.js.map +1 -1
  79. package/lib/helpers/get-pretty-duration/index.js +16 -10
  80. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  81. package/lib/helpers/get-reference-details/index.js +20 -10
  82. package/lib/helpers/get-reference-details/index.js.map +1 -1
  83. package/lib/helpers/get-status-details/index.js +8 -2
  84. package/lib/helpers/get-status-details/index.js.map +1 -1
  85. package/lib/helpers/get-task-entry-details/index.js +32 -23
  86. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  87. package/lib/helpers/get-timezone-abbr/index.js +11 -4
  88. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  89. package/lib/helpers/get-timezone-datetime/index.js +20 -13
  90. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  91. package/lib/helpers/get-user-full-name/index.js +9 -3
  92. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  93. package/lib/helpers/get-value-as-percentage/index.js +9 -4
  94. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  95. package/lib/helpers/image-validators/index.js +18 -12
  96. package/lib/helpers/image-validators/index.js.map +1 -1
  97. package/lib/helpers/index.js +130 -18
  98. package/lib/helpers/index.js.map +1 -1
  99. package/lib/helpers/validate-url/index.js +11 -5
  100. package/lib/helpers/validate-url/index.js.map +1 -1
  101. package/lib/images/index.js +10 -4
  102. package/lib/images/index.js.map +1 -1
  103. package/lib/index.js +66 -10
  104. package/lib/index.js.map +1 -1
  105. package/lib/pdf/activity-report/index.js +407 -537
  106. package/lib/pdf/activity-report/index.js.map +1 -1
  107. package/lib/pdf/audit/index.js +137 -134
  108. package/lib/pdf/audit/index.js.map +1 -1
  109. package/lib/pdf/fonts/index.js +4 -2
  110. package/lib/pdf/fonts/index.js.map +1 -1
  111. package/lib/pdf/helpers/build-audit-content/index.js +57 -51
  112. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  113. package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
  114. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  115. package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
  116. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  117. package/lib/pdf/helpers/build-template-content/index.js +52 -51
  118. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  119. package/lib/pdf/helpers/default-footer/index.js +38 -35
  120. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  121. package/lib/pdf/helpers/default-header/index.js +40 -35
  122. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  123. package/lib/pdf/helpers/default-styles/index.js +7 -1
  124. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  125. package/lib/pdf/helpers/fields/index.js +225 -214
  126. package/lib/pdf/helpers/fields/index.js.map +1 -1
  127. package/lib/pdf/helpers/format-location-address/index.js +14 -8
  128. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  129. package/lib/pdf/helpers/generate-definition/index.js +60 -65
  130. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  131. package/lib/pdf/helpers/horizontal-line/index.js +14 -14
  132. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  133. package/lib/pdf/helpers/html-transformer/index.js +45 -35
  134. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  135. package/lib/pdf/helpers/index.js +194 -15
  136. package/lib/pdf/helpers/index.js.map +1 -1
  137. package/lib/pdf/helpers/parse-value/index.js +10 -4
  138. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  139. package/lib/pdf/helpers/table/index.js +136 -205
  140. package/lib/pdf/helpers/table/index.js.map +1 -1
  141. package/lib/pdf/helpers/text/index.js +11 -8
  142. package/lib/pdf/helpers/text/index.js.map +1 -1
  143. package/lib/pdf/icons/index.js +8 -2
  144. package/lib/pdf/icons/index.js.map +1 -1
  145. package/lib/pdf/index.js +47 -6
  146. package/lib/pdf/index.js.map +1 -1
  147. package/lib/pdf/issue/index.js +141 -135
  148. package/lib/pdf/issue/index.js.map +1 -1
  149. package/lib/pdf/job/index.js +95 -81
  150. package/lib/pdf/job/index.js.map +1 -1
  151. package/lib/pdf/shift-report/emptyFixtures.js +8 -2
  152. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  153. package/lib/pdf/shift-report/index.js +399 -521
  154. package/lib/pdf/shift-report/index.js.map +1 -1
  155. package/lib/pdf/task/index.js +89 -83
  156. package/lib/pdf/task/index.js.map +1 -1
  157. package/lib/scheduling/generators/index.js +38 -3
  158. package/lib/scheduling/generators/index.js.map +1 -1
  159. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
  160. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  161. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
  162. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  163. package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
  164. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  165. package/lib/scheduling/helpers/convertToTimezone.js +18 -11
  166. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  167. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
  168. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  169. package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
  170. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  171. package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
  172. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  173. package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
  174. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  175. package/lib/scheduling/helpers/index.js +159 -14
  176. package/lib/scheduling/helpers/index.js.map +1 -1
  177. package/lib/scheduling/helpers/intervalCovers.js +13 -7
  178. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  179. package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
  180. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  181. package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
  182. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  183. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
  184. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  185. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
  186. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  187. package/lib/scheduling/helpers/intervalOutside.js +15 -9
  188. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  189. package/lib/scheduling/helpers/intervalWithin.js +13 -7
  190. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  191. package/lib/scheduling/helpers/mergeIntervals.js +21 -17
  192. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  193. package/lib/scheduling/helpers/splitIntervals.js +24 -23
  194. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  195. package/lib/scheduling/index.js +38 -3
  196. package/lib/scheduling/index.js.map +1 -1
  197. package/lib/scheduling/scheduling.types.js +9 -3
  198. package/lib/scheduling/scheduling.types.js.map +1 -1
  199. package/lib/scheduling/strategies/getNext.js +57 -63
  200. package/lib/scheduling/strategies/getNext.js.map +1 -1
  201. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
  202. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  203. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
  204. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  205. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
  206. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  207. package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
  208. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  209. package/lib/scheduling/strategies/getNextWeekday.js +47 -79
  210. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  211. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
  212. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  213. package/lib/scheduling/strategies/index.js +82 -7
  214. package/lib/scheduling/strategies/index.js.map +1 -1
  215. package/lib/schema/index.js +16 -1
  216. package/lib/schema/index.js.map +1 -1
  217. package/lib/schema/schema.js +28 -34
  218. package/lib/schema/schema.js.map +1 -1
  219. package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
  220. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  221. package/lib/service-hours/__helpers__/isOpen.js +25 -24
  222. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  223. package/lib/service-hours/index.js +27 -2
  224. package/lib/service-hours/index.js.map +1 -1
  225. package/lib/service-hours/schema.js +68 -55
  226. package/lib/service-hours/schema.js.map +1 -1
  227. package/package.json +86 -86
  228. package/vitest.config.ts +23 -23
  229. package/vitest.setup.js +7 -7
@@ -1,108 +1,135 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
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; }
5
- import { isArray, isEmpty, join, first, map, startsWith } from 'lodash';
6
- import Promise from 'bluebird';
7
- import moment from 'moment-timezone';
8
- import { buildFetchUrl, fetchImage } from '../../../helpers';
9
- import { videoIcon } from '../../../images';
10
- import { imageTables, parseValue, text, toPdf } from '../';
11
- export function buildFile(_ref) {
12
- var file = _ref.file,
13
- settings = _ref.settings,
14
- signedAsset = _ref.signedAsset;
15
- var extension = file.extension,
16
- name = file.name,
17
- path = file.path;
18
- var awsS3BaseUrl = settings.awsS3BaseUrl,
19
- shouldUseCloudfront = settings.shouldUseCloudfront,
20
- cloudfrontBaseUrl = settings.cloudfrontBaseUrl;
21
- var link = shouldUseCloudfront ? "".concat(cloudfrontBaseUrl, "/").concat(signedAsset) : "".concat(awsS3BaseUrl, "/").concat(path);
22
- return text("".concat(name, ".").concat(extension), {
23
- link: link,
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.buildFile = buildFile;
8
+ exports.buildSummaryField = buildSummaryField;
9
+ exports.buildTemplateFieldRow = buildTemplateFieldRow;
10
+ var _lodash = require("lodash");
11
+ var _bluebird = _interopRequireDefault(require("bluebird"));
12
+ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
+ var _helpers = require("../../../helpers");
14
+ var _images = require("../../../images");
15
+ var _ = require("../");
16
+ function buildFile({
17
+ file,
18
+ settings,
19
+ signedAsset
20
+ }) {
21
+ const {
22
+ extension,
23
+ name,
24
+ path
25
+ } = file;
26
+ const {
27
+ awsS3BaseUrl,
28
+ shouldUseCloudfront,
29
+ cloudfrontBaseUrl
30
+ } = settings;
31
+ const link = shouldUseCloudfront ? `${cloudfrontBaseUrl}/${signedAsset}` : `${awsS3BaseUrl}/${path}`;
32
+ return (0, _.text)(`${name}.${extension}`, {
33
+ link,
24
34
  margin: [0, 0, 0, 10]
25
35
  });
26
36
  }
27
37
  function buildImage(options) {
28
- var _options$alignment = options.alignment,
29
- alignment = _options$alignment === void 0 ? 'center' : _options$alignment,
30
- filepath = options.filepath,
31
- _options$height = options.height,
32
- height = _options$height === void 0 ? 210 : _options$height,
33
- _options$settings = options.settings,
34
- settings = _options$settings === void 0 ? {} : _options$settings,
35
- signedAsset = options.signedAsset,
36
- _options$width = options.width,
37
- width = _options$width === void 0 ? 210 : _options$width,
38
- fieldLabel = options.fieldLabel,
39
- _options$fieldType = options.fieldType,
40
- fieldType = _options$fieldType === void 0 ? 'image' : _options$fieldType;
41
- var awsS3BaseUrl = settings.awsS3BaseUrl,
42
- cloudinaryBaseUrl = settings.cloudinaryBaseUrl,
43
- cloudfrontBaseUrl = settings.cloudfrontBaseUrl,
44
- shouldUseCloudfront = settings.shouldUseCloudfront;
45
- var isVideoType = new RegExp('.mp4$').test(filepath);
46
- var link = shouldUseCloudfront ? "".concat(cloudfrontBaseUrl, "/").concat(signedAsset || filepath) : "".concat(awsS3BaseUrl, "/").concat(filepath);
38
+ const {
39
+ alignment = 'center',
40
+ filepath,
41
+ height = 210,
42
+ settings = {},
43
+ signedAsset,
44
+ width = 210,
45
+ fieldLabel,
46
+ fieldType = 'image'
47
+ } = options;
48
+ const {
49
+ awsS3BaseUrl,
50
+ cloudinaryBaseUrl,
51
+ cloudfrontBaseUrl,
52
+ shouldUseCloudfront
53
+ } = settings;
54
+ const isVideoType = new RegExp('.mp4$').test(filepath);
55
+ const link = shouldUseCloudfront ? `${cloudfrontBaseUrl}/${signedAsset || filepath}` : `${awsS3BaseUrl}/${filepath}`;
47
56
  if (isVideoType) {
48
57
  return {
49
- alignment: alignment,
58
+ alignment,
50
59
  fit: [width, height],
51
- image: videoIcon,
52
- link: link
60
+ image: _images.videoIcon,
61
+ link
53
62
  };
54
63
  }
55
- var url = buildFetchUrl(filepath, {
56
- awsS3BaseUrl: awsS3BaseUrl,
57
- cloudfrontBaseUrl: cloudfrontBaseUrl,
58
- cloudinaryBaseUrl: cloudinaryBaseUrl,
59
- fit: true,
60
- height: 400,
61
- width: 600,
62
- quality: 50,
63
- shouldUseCloudfront: shouldUseCloudfront
64
- });
64
+ const normalizedPath = typeof filepath === 'object' && filepath !== null ? filepath.path || filepath.url || String(filepath) : filepath;
65
+ try {
66
+ const url = (0, _helpers.buildFetchUrl)(normalizedPath, {
67
+ awsS3BaseUrl,
68
+ cloudfrontBaseUrl,
69
+ cloudinaryBaseUrl,
70
+ fit: true,
71
+ height: 400,
72
+ width: 600,
73
+ quality: 50,
74
+ shouldUseCloudfront
75
+ });
65
76
 
66
- // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
67
- return fetchImage(url, _objectSpread(_objectSpread({}, settings), {}, {
68
- context: {
69
- stage: 'field',
70
- fieldLabel: fieldLabel,
71
- fieldType: fieldType,
72
- filepath: filepath
73
- }
74
- })).then(function (base64String) {
75
- return {
76
- alignment: alignment,
77
+ // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
78
+ return (0, _helpers.fetchImage)(url, {
79
+ ...settings,
80
+ context: {
81
+ stage: 'field',
82
+ fieldLabel,
83
+ fieldType,
84
+ filepath: normalizedPath
85
+ }
86
+ }).then(base64String => ({
87
+ alignment,
77
88
  fit: [width, height],
78
89
  image: base64String,
79
- link: link
90
+ link
91
+ }));
92
+ } catch (error) {
93
+ console.error({
94
+ message: 'Failed to build image URL',
95
+ filepath,
96
+ fieldLabel,
97
+ fieldType,
98
+ error: error.message
99
+ });
100
+ return {
101
+ alignment,
102
+ fit: [width, height],
103
+ image: _images.imageNotFound,
104
+ link: ''
80
105
  };
81
- });
106
+ }
82
107
  }
83
- export function buildSummaryField(_ref2) {
84
- var field = _ref2.field,
85
- settings = _ref2.settings,
86
- timezone = _ref2.timezone;
87
- var fieldtype = field.fieldtype,
88
- _field$options = field.options,
89
- options = _field$options === void 0 ? {} : _field$options,
90
- value = field.value,
91
- signedAssets = field.signedAssets;
92
- var isDayFirstDateField = fieldtype === 'date' && options.format === 'DD/MM/YY';
93
- var isMonthFirstDateField = fieldtype === 'date' && options.format === 'MM/DD/YY';
94
- var isFileField = fieldtype === 'file';
95
- var isHtmlField = fieldtype === 'text' && options.type === 'html';
96
- var isNumberField = fieldtype === 'number';
97
- var isPhotoField = fieldtype === 'list' && options.type === 'media';
98
- var isReferenceField = fieldtype === 'reference';
99
- var isSelectField = fieldtype === 'select' && options.type !== 'stars';
100
- var isSignatureField = fieldtype === 'text' && options.type === 'signature';
101
- var isStarField = fieldtype === 'select' && options.type === 'stars';
102
- var isSwitchField = fieldtype === 'switch';
103
- var isTextField = fieldtype === 'text';
104
- var is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a';
105
- var is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm';
108
+ function buildSummaryField({
109
+ field,
110
+ settings,
111
+ timezone
112
+ }) {
113
+ const {
114
+ fieldtype,
115
+ options = {},
116
+ value,
117
+ signedAssets
118
+ } = field;
119
+ const isDayFirstDateField = fieldtype === 'date' && options.format === 'DD/MM/YY';
120
+ const isMonthFirstDateField = fieldtype === 'date' && options.format === 'MM/DD/YY';
121
+ const isFileField = fieldtype === 'file';
122
+ const isHtmlField = fieldtype === 'text' && options.type === 'html';
123
+ const isNumberField = fieldtype === 'number';
124
+ const isPhotoField = fieldtype === 'list' && options.type === 'media';
125
+ const isReferenceField = fieldtype === 'reference';
126
+ const isSelectField = fieldtype === 'select' && options.type !== 'stars';
127
+ const isSignatureField = fieldtype === 'text' && options.type === 'signature';
128
+ const isStarField = fieldtype === 'select' && options.type === 'stars';
129
+ const isSwitchField = fieldtype === 'switch';
130
+ const isTextField = fieldtype === 'text';
131
+ const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a';
132
+ const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm';
106
133
 
107
134
  // NOTE: html field is not supported for the summary fields but adding
108
135
  // logic to catch this and return empty text for completeness
@@ -121,13 +148,14 @@ export function buildSummaryField(_ref2) {
121
148
  };
122
149
  }
123
150
  // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
124
- return fetchImage(value, _objectSpread(_objectSpread({}, settings), {}, {
151
+ return (0, _helpers.fetchImage)(value, {
152
+ ...settings,
125
153
  context: {
126
154
  stage: 'field',
127
155
  fieldLabel: field.label,
128
156
  fieldType: 'signature'
129
157
  }
130
- })).then(function (base64String) {
158
+ }).then(base64String => {
131
159
  return {
132
160
  alignment: 'left',
133
161
  image: base64String,
@@ -136,42 +164,41 @@ export function buildSummaryField(_ref2) {
136
164
  });
137
165
  }
138
166
  if (isPhotoField) {
139
- var filepath = first(value);
167
+ const rawFilepath = (0, _lodash.first)(value);
140
168
 
141
169
  // NOTE: if no filepath return empty text as user has not uploaded an image
142
170
  // for this field
143
- if (!filepath) {
171
+ if (!rawFilepath) {
144
172
  return {
145
173
  text: ''
146
174
  };
147
175
  }
148
- var image = buildImage({
176
+ const filepath = typeof rawFilepath === 'object' && rawFilepath !== null ? rawFilepath.path || rawFilepath.url || rawFilepath : rawFilepath;
177
+ const image = buildImage({
149
178
  alignment: 'left',
150
- filepath: filepath,
179
+ filepath,
151
180
  height: 140,
152
181
  width: 140,
153
- settings: settings,
154
- signedAsset: signedAssets && isArray(signedAssets) ? signedAssets[0] : null,
182
+ settings,
183
+ signedAsset: signedAssets && (0, _lodash.isArray)(signedAssets) ? signedAssets[0] : null,
155
184
  fieldLabel: field.label,
156
185
  fieldType: 'media'
157
186
  });
158
187
  return image;
159
188
  }
160
189
  if (isFileField) {
161
- var fileList = map(value, function (file) {
162
- return buildFile({
163
- file: file,
164
- settings: settings
165
- });
166
- });
190
+ const fileList = (0, _lodash.map)(value, file => buildFile({
191
+ file,
192
+ settings
193
+ }));
167
194
  return {
168
195
  ol: fileList
169
196
  };
170
197
  }
171
198
  if (isNumberField || isSelectField || isSwitchField || isTextField) {
172
- var parsedValue = parseValue(value);
173
- var displayValue = isArray(parsedValue) ? {
174
- text: join(parsedValue, ', '),
199
+ const parsedValue = (0, _.parseValue)(value);
200
+ const displayValue = (0, _lodash.isArray)(parsedValue) ? {
201
+ text: (0, _lodash.join)(parsedValue, ', '),
175
202
  fontSize: 7
176
203
  } : {
177
204
  text: parsedValue,
@@ -180,29 +207,25 @@ export function buildSummaryField(_ref2) {
180
207
  return displayValue;
181
208
  }
182
209
  if (isReferenceField) {
183
- var _parsedValue = parseValue(value);
184
- var _displayValue = isArray(_parsedValue) ? {
185
- text: _parsedValue.filter(function (val) {
186
- return val && val.label;
187
- }).map(function (val) {
188
- return val.label;
189
- }).join(', '),
210
+ const parsedValue = (0, _.parseValue)(value);
211
+ const displayValue = (0, _lodash.isArray)(parsedValue) ? {
212
+ text: parsedValue.filter(val => val && val.label).map(val => val.label).join(', '),
190
213
  fontSize: 7
191
214
  } : {
192
- text: _parsedValue.label,
215
+ text: parsedValue.label,
193
216
  fontSize: 7
194
217
  };
195
- return _displayValue;
218
+ return displayValue;
196
219
  }
197
220
  if (isStarField) {
198
221
  if (!value) return '';
199
- var _displayValue2 = value === '1' ? "".concat(value, " star") : "".concat(value, " stars");
200
- return _displayValue2;
222
+ const displayValue = value === '1' ? `${value} star` : `${value} stars`;
223
+ return displayValue;
201
224
  }
202
225
  if (isDayFirstDateField || isMonthFirstDateField || is12HourTimeField || is24HourTimeField) {
203
- var format = options.format;
204
- var _displayValue3 = moment(value).tz(timezone).format(format);
205
- return _displayValue3;
226
+ const format = options.format;
227
+ const displayValue = (0, _momentTimezone.default)(value).tz(timezone).format(format);
228
+ return displayValue;
206
229
  }
207
230
 
208
231
  // NOTE: return empty text fallback value when no match
@@ -210,37 +233,40 @@ export function buildSummaryField(_ref2) {
210
233
  text: ''
211
234
  };
212
235
  }
213
- export function buildTemplateFieldRow(_ref3) {
214
- var field = _ref3.field,
215
- settings = _ref3.settings,
216
- timezone = _ref3.timezone,
217
- skipped = _ref3.skipped;
218
- var fieldtype = field.fieldtype,
219
- label = field.label,
220
- _field$options2 = field.options,
221
- options = _field$options2 === void 0 ? {} : _field$options2,
222
- value = field.value,
223
- signedAssets = field.signedAssets;
224
- var _options$showOnRead = options.showOnRead,
225
- showOnRead = _options$showOnRead === void 0 ? true : _options$showOnRead;
226
- var isDayFirstDateField = fieldtype === 'date' && options.format === 'DD/MM/YY';
227
- var isMonthFirstDateField = fieldtype === 'date' && options.format === 'MM/DD/YY';
228
- var isFileField = fieldtype === 'file';
229
- var isHtmlField = fieldtype === 'text' && options.type === 'html';
230
- var isNumberField = fieldtype === 'number';
231
- var isPhotoField = fieldtype === 'list' && options.type === 'media';
232
- var isSelectField = fieldtype === 'select' && options.type !== 'stars';
233
- var isSignatureField = fieldtype === 'text' && options.type === 'signature';
234
- var isStarField = fieldtype === 'select' && options.type === 'stars';
235
- var isSwitchField = fieldtype === 'switch';
236
- var isTextField = fieldtype === 'text';
237
- var is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a';
238
- var is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm';
239
- var isDisplayImageField = fieldtype === 'image-display' && showOnRead && !(isArray(value) && value.length === 0);
240
- var isReferenceField = fieldtype === 'reference';
236
+ function buildTemplateFieldRow({
237
+ field,
238
+ settings,
239
+ timezone,
240
+ skipped
241
+ }) {
242
+ const {
243
+ fieldtype,
244
+ label,
245
+ options = {},
246
+ value,
247
+ signedAssets
248
+ } = field;
249
+ const {
250
+ showOnRead = true
251
+ } = options;
252
+ const isDayFirstDateField = fieldtype === 'date' && options.format === 'DD/MM/YY';
253
+ const isMonthFirstDateField = fieldtype === 'date' && options.format === 'MM/DD/YY';
254
+ const isFileField = fieldtype === 'file';
255
+ const isHtmlField = fieldtype === 'text' && options.type === 'html';
256
+ const isNumberField = fieldtype === 'number';
257
+ const isPhotoField = fieldtype === 'list' && options.type === 'media';
258
+ const isSelectField = fieldtype === 'select' && options.type !== 'stars';
259
+ const isSignatureField = fieldtype === 'text' && options.type === 'signature';
260
+ const isStarField = fieldtype === 'select' && options.type === 'stars';
261
+ const isSwitchField = fieldtype === 'switch';
262
+ const isTextField = fieldtype === 'text';
263
+ const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a';
264
+ const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm';
265
+ const isDisplayImageField = fieldtype === 'image-display' && showOnRead && !((0, _lodash.isArray)(value) && value.length === 0);
266
+ const isReferenceField = fieldtype === 'reference';
241
267
  // NOTE: only show field when show on read is true
242
268
  if (!showOnRead) return null;
243
- var labelText = [{
269
+ const labelText = [{
244
270
  text: label
245
271
  }];
246
272
  if (skipped) {
@@ -249,20 +275,21 @@ export function buildTemplateFieldRow(_ref3) {
249
275
  }]];
250
276
  }
251
277
  if (isHtmlField) {
252
- var parsed = value.replace(/<p><\/p>/g, '');
253
- return [labelText, toPdf(parsed)];
278
+ const parsed = value.replace(/<p><\/p>/g, '');
279
+ return [labelText, (0, _.toPdf)(parsed)];
254
280
  }
255
281
  if (isSignatureField) {
256
282
  if (!value) return [labelText, ''];
257
283
  // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
258
- return fetchImage(value, _objectSpread(_objectSpread({}, settings), {}, {
284
+ return (0, _helpers.fetchImage)(value, {
285
+ ...settings,
259
286
  context: {
260
287
  stage: 'field',
261
288
  fieldLabel: label,
262
289
  fieldType: 'signature'
263
290
  }
264
- })).then(function (base64String) {
265
- var values = {
291
+ }).then(base64String => {
292
+ const values = {
266
293
  alignment: 'left',
267
294
  image: base64String,
268
295
  width: 140
@@ -277,62 +304,50 @@ export function buildTemplateFieldRow(_ref3) {
277
304
  }
278
305
 
279
306
  // Ensure value is always treated as an array of filepaths
280
- var filepaths = isArray(value) ? value : [value];
281
- return Promise.map(filepaths, function (filepath, index) {
282
- var signedAssetValue = isArray(signedAssets) ? signedAssets[index] : signedAssets;
307
+ const filepaths = (0, _lodash.isArray)(value) ? value : [value];
308
+ return _bluebird.default.map(filepaths, (rawFilepath, index) => {
309
+ const filepath = typeof rawFilepath === 'object' && rawFilepath !== null ? rawFilepath.path || rawFilepath.url || rawFilepath : rawFilepath;
310
+ const signedAssetValue = (0, _lodash.isArray)(signedAssets) ? signedAssets[index] : signedAssets;
283
311
  return buildImage({
284
- filepath: filepath,
285
- settings: settings,
312
+ filepath,
313
+ settings,
286
314
  signedAsset: signedAssetValue,
287
315
  fieldLabel: label,
288
316
  fieldType: 'image-display'
289
317
  });
290
- }).then(function (fieldImages) {
291
- return [fieldImages, {}];
292
- });
318
+ }).then(fieldImages => [fieldImages, {}]);
293
319
  }
294
320
  if (isPhotoField) {
295
321
  // Guard against nullish values
296
- if (!value || isArray(value) && value.length === 0) {
322
+ if (!value || (0, _lodash.isArray)(value) && value.length === 0) {
297
323
  return [labelText, {
298
324
  text: ''
299
325
  }];
300
326
  }
301
- return Promise.map(value, function (filepath, index) {
302
- var signedAssetValue = isArray(signedAssets) ? signedAssets[index] : signedAssets;
327
+ return _bluebird.default.map(value, (rawFilepath, index) => {
328
+ const filepath = typeof rawFilepath === 'object' && rawFilepath !== null ? rawFilepath.path || rawFilepath.url || rawFilepath : rawFilepath;
329
+ const signedAssetValue = (0, _lodash.isArray)(signedAssets) ? signedAssets[index] : signedAssets;
303
330
  return buildImage({
304
- filepath: filepath,
305
- settings: settings,
331
+ filepath,
332
+ settings,
306
333
  signedAsset: signedAssetValue,
307
334
  fieldLabel: label,
308
335
  fieldType: 'media'
309
336
  });
310
- }).then(function (fieldImages) {
311
- var tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : [];
312
- var imagesRow = {
337
+ }).then(fieldImages => {
338
+ const tables = !(0, _lodash.isEmpty)(fieldImages) ? (0, _.imageTables)(fieldImages) : [];
339
+ const imagesRow = {
313
340
  colSpan: 2,
314
341
  layout: {
315
- hLineWidth: function hLineWidth() {
316
- return 0;
317
- },
318
- paddingLeft: function paddingLeft() {
319
- return 0;
320
- },
321
- paddingRight: function paddingRight() {
322
- return 0;
323
- },
324
- paddingTop: function paddingTop() {
325
- return 0;
326
- },
327
- paddingBottom: function paddingBottom() {
328
- return 0;
329
- },
330
- vLineWidth: function vLineWidth() {
331
- return 0;
332
- }
342
+ hLineWidth: () => 0,
343
+ paddingLeft: () => 0,
344
+ paddingRight: () => 0,
345
+ paddingTop: () => 0,
346
+ paddingBottom: () => 0,
347
+ vLineWidth: () => 0
333
348
  },
334
349
  table: {
335
- body: [labelText].concat(_toConsumableArray(tables)),
350
+ body: [labelText, ...tables],
336
351
  widths: ['*']
337
352
  }
338
353
  };
@@ -345,12 +360,12 @@ export function buildTemplateFieldRow(_ref3) {
345
360
  });
346
361
  }
347
362
  if (isFileField) {
348
- var fileList = map(value, function (file, index) {
349
- var signedAsset = signedAssets === null || signedAssets === void 0 ? void 0 : signedAssets[index];
363
+ const fileList = (0, _lodash.map)(value, (file, index) => {
364
+ const signedAsset = signedAssets?.[index];
350
365
  return buildFile({
351
- file: file,
352
- settings: settings,
353
- signedAsset: signedAsset
366
+ file,
367
+ settings,
368
+ signedAsset
354
369
  });
355
370
  });
356
371
  return [labelText, {
@@ -358,44 +373,40 @@ export function buildTemplateFieldRow(_ref3) {
358
373
  }];
359
374
  }
360
375
  if (isNumberField || isSelectField || isSwitchField || isTextField) {
361
- var parsedValue = parseValue(value);
362
- var displayValue = isArray(parsedValue) ? {
363
- text: join(parsedValue, ', ')
376
+ const parsedValue = (0, _.parseValue)(value);
377
+ const displayValue = (0, _lodash.isArray)(parsedValue) ? {
378
+ text: (0, _lodash.join)(parsedValue, ', ')
364
379
  } : {
365
380
  text: parsedValue
366
381
  };
367
382
  return [labelText, displayValue];
368
383
  }
369
384
  if (isReferenceField) {
370
- var _parsedValue2 = parseValue(value);
371
- var _displayValue4 = isArray(_parsedValue2) ? {
372
- text: _parsedValue2.filter(function (val) {
373
- return val && val.label;
374
- }).map(function (val) {
375
- return val.label;
376
- }).join(', '),
385
+ const parsedValue = (0, _.parseValue)(value);
386
+ const displayValue = (0, _lodash.isArray)(parsedValue) ? {
387
+ text: parsedValue.filter(val => val && val.label).map(val => val.label).join(', '),
377
388
  fontSize: 7
378
389
  } : {
379
- text: _parsedValue2.label,
390
+ text: parsedValue.label,
380
391
  fontSize: 7
381
392
  };
382
- return [labelText, _displayValue4];
393
+ return [labelText, displayValue];
383
394
  }
384
395
  if (isStarField) {
385
396
  if (!value) return [labelText, ''];
386
- var _displayValue5 = value === '1' ? "".concat(value, " star") : "".concat(value, " stars");
387
- return [labelText, _displayValue5];
397
+ const displayValue = value === '1' ? `${value} star` : `${value} stars`;
398
+ return [labelText, displayValue];
388
399
  }
389
400
  if (isDayFirstDateField || isMonthFirstDateField || is12HourTimeField || is24HourTimeField) {
390
- var format = options.format;
391
- var _displayValue6 = value ? moment(value).tz(timezone).format(format) : '';
392
- return [labelText, _displayValue6];
401
+ const format = options.format;
402
+ const displayValue = value ? (0, _momentTimezone.default)(value).tz(timezone).format(format) : '';
403
+ return [labelText, displayValue];
393
404
  }
394
405
 
395
406
  // NOTE: if no match above null values will be stripped within calling fn
396
407
  return null;
397
408
  }
398
409
  function isDataImage(string) {
399
- return startsWith(string, 'data:image/png;');
410
+ return (0, _lodash.startsWith)(string, 'data:image/png;');
400
411
  }
401
412
  //# sourceMappingURL=index.js.map