@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.
- package/.mise.toml +6 -6
- package/CHANGELOG.md +758 -758
- package/README.md +1 -1
- package/dist/errors/FetchImageError.js +3 -3
- package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
- package/dist/helpers/floatify/index.js +6 -6
- package/dist/helpers/get-audit-items-data/index.js +47 -36
- package/dist/helpers/validate-url/index.js +4 -4
- package/dist/pdf/activity-report/index.js +32 -32
- package/dist/pdf/audit/index.js +23 -23
- package/dist/pdf/helpers/fields/index.js +47 -27
- package/dist/pdf/issue/index.js +23 -23
- package/dist/pdf/job/index.js +22 -22
- package/dist/pdf/shift-report/index.js +28 -28
- package/dist/pdf/task/index.js +23 -23
- package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
- package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
- package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
- package/dist/scheduling/helpers/convertToTimezone.js +6 -6
- package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
- package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
- package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
- package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
- package/dist/scheduling/helpers/intervalCovers.js +6 -6
- package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
- package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
- package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
- package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
- package/dist/scheduling/helpers/intervalOutside.js +6 -6
- package/dist/scheduling/helpers/intervalWithin.js +6 -6
- package/dist/scheduling/helpers/mergeIntervals.js +6 -6
- package/dist/scheduling/helpers/splitIntervals.js +6 -6
- package/dist/scheduling/strategies/getNext.js +2 -2
- package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
- package/dist/scheduling/strategies/getNextWeekday.js +2 -2
- package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
- package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
- package/dist/service-hours/__helpers__/isOpen.js +2 -2
- package/dist/service-hours/schema.js +4 -4
- package/lib/constants.js +12 -6
- package/lib/constants.js.map +1 -1
- package/lib/errors/DomainError.js +14 -21
- package/lib/errors/DomainError.js.map +1 -1
- package/lib/errors/FetchImageError.js +17 -24
- package/lib/errors/FetchImageError.js.map +1 -1
- package/lib/errors/ValidationError.js +30 -36
- package/lib/errors/ValidationError.js.map +1 -1
- package/lib/errors/index.js +23 -5
- package/lib/errors/index.js.map +1 -1
- package/lib/helpers/build-fetch-url/index.js +43 -47
- package/lib/helpers/build-fetch-url/index.js.map +1 -1
- package/lib/helpers/fetch-image/index.js +83 -82
- package/lib/helpers/fetch-image/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-web/index.js +71 -94
- package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
- package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
- package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
- package/lib/helpers/floatify/index.js +13 -7
- package/lib/helpers/floatify/index.js.map +1 -1
- package/lib/helpers/get-assignees-full-names/index.js +11 -7
- package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
- package/lib/helpers/get-audit-entry-details/index.js +42 -32
- package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
- package/lib/helpers/get-audit-items-data/index.js +104 -83
- package/lib/helpers/get-audit-items-data/index.js.map +1 -1
- package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
- package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
- package/lib/helpers/get-issue-details/index.js +53 -43
- package/lib/helpers/get-issue-details/index.js.map +1 -1
- package/lib/helpers/get-job-details/index.js +49 -41
- package/lib/helpers/get-job-details/index.js.map +1 -1
- package/lib/helpers/get-location-reference/index.js +32 -34
- package/lib/helpers/get-location-reference/index.js.map +1 -1
- package/lib/helpers/get-pretty-duration/index.js +16 -10
- package/lib/helpers/get-pretty-duration/index.js.map +1 -1
- package/lib/helpers/get-reference-details/index.js +20 -10
- package/lib/helpers/get-reference-details/index.js.map +1 -1
- package/lib/helpers/get-status-details/index.js +8 -2
- package/lib/helpers/get-status-details/index.js.map +1 -1
- package/lib/helpers/get-task-entry-details/index.js +32 -23
- package/lib/helpers/get-task-entry-details/index.js.map +1 -1
- package/lib/helpers/get-timezone-abbr/index.js +11 -4
- package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
- package/lib/helpers/get-timezone-datetime/index.js +20 -13
- package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
- package/lib/helpers/get-user-full-name/index.js +9 -3
- package/lib/helpers/get-user-full-name/index.js.map +1 -1
- package/lib/helpers/get-value-as-percentage/index.js +9 -4
- package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
- package/lib/helpers/image-validators/index.js +18 -12
- package/lib/helpers/image-validators/index.js.map +1 -1
- package/lib/helpers/index.js +130 -18
- package/lib/helpers/index.js.map +1 -1
- package/lib/helpers/validate-url/index.js +11 -5
- package/lib/helpers/validate-url/index.js.map +1 -1
- package/lib/images/index.js +10 -4
- package/lib/images/index.js.map +1 -1
- package/lib/index.js +66 -10
- package/lib/index.js.map +1 -1
- package/lib/pdf/activity-report/index.js +407 -537
- package/lib/pdf/activity-report/index.js.map +1 -1
- package/lib/pdf/audit/index.js +137 -134
- package/lib/pdf/audit/index.js.map +1 -1
- package/lib/pdf/fonts/index.js +4 -2
- package/lib/pdf/fonts/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-content/index.js +57 -51
- package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
- package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
- package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
- package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-template-content/index.js +52 -51
- package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
- package/lib/pdf/helpers/default-footer/index.js +38 -35
- package/lib/pdf/helpers/default-footer/index.js.map +1 -1
- package/lib/pdf/helpers/default-header/index.js +40 -35
- package/lib/pdf/helpers/default-header/index.js.map +1 -1
- package/lib/pdf/helpers/default-styles/index.js +7 -1
- package/lib/pdf/helpers/default-styles/index.js.map +1 -1
- package/lib/pdf/helpers/fields/index.js +225 -214
- package/lib/pdf/helpers/fields/index.js.map +1 -1
- package/lib/pdf/helpers/format-location-address/index.js +14 -8
- package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
- package/lib/pdf/helpers/generate-definition/index.js +60 -65
- package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js +14 -14
- package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
- package/lib/pdf/helpers/html-transformer/index.js +45 -35
- package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
- package/lib/pdf/helpers/index.js +194 -15
- package/lib/pdf/helpers/index.js.map +1 -1
- package/lib/pdf/helpers/parse-value/index.js +10 -4
- package/lib/pdf/helpers/parse-value/index.js.map +1 -1
- package/lib/pdf/helpers/table/index.js +136 -205
- package/lib/pdf/helpers/table/index.js.map +1 -1
- package/lib/pdf/helpers/text/index.js +11 -8
- package/lib/pdf/helpers/text/index.js.map +1 -1
- package/lib/pdf/icons/index.js +8 -2
- package/lib/pdf/icons/index.js.map +1 -1
- package/lib/pdf/index.js +47 -6
- package/lib/pdf/index.js.map +1 -1
- package/lib/pdf/issue/index.js +141 -135
- package/lib/pdf/issue/index.js.map +1 -1
- package/lib/pdf/job/index.js +95 -81
- package/lib/pdf/job/index.js.map +1 -1
- package/lib/pdf/shift-report/emptyFixtures.js +8 -2
- package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
- package/lib/pdf/shift-report/index.js +399 -521
- package/lib/pdf/shift-report/index.js.map +1 -1
- package/lib/pdf/task/index.js +89 -83
- package/lib/pdf/task/index.js.map +1 -1
- package/lib/scheduling/generators/index.js +38 -3
- package/lib/scheduling/generators/index.js.map +1 -1
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
- package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js +18 -11
- package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
- package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
- package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
- package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
- package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
- package/lib/scheduling/helpers/index.js +159 -14
- package/lib/scheduling/helpers/index.js.map +1 -1
- package/lib/scheduling/helpers/intervalCovers.js +13 -7
- package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
- package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
- package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOutside.js +15 -9
- package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
- package/lib/scheduling/helpers/intervalWithin.js +13 -7
- package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
- package/lib/scheduling/helpers/mergeIntervals.js +21 -17
- package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
- package/lib/scheduling/helpers/splitIntervals.js +24 -23
- package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
- package/lib/scheduling/index.js +38 -3
- package/lib/scheduling/index.js.map +1 -1
- package/lib/scheduling/scheduling.types.js +9 -3
- package/lib/scheduling/scheduling.types.js.map +1 -1
- package/lib/scheduling/strategies/getNext.js +57 -63
- package/lib/scheduling/strategies/getNext.js.map +1 -1
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
- package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
- package/lib/scheduling/strategies/getNextWeekday.js +47 -79
- package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/index.js +82 -7
- package/lib/scheduling/strategies/index.js.map +1 -1
- package/lib/schema/index.js +16 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/schema.js +28 -34
- package/lib/schema/schema.js.map +1 -1
- package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
- package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
- package/lib/service-hours/__helpers__/isOpen.js +25 -24
- package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
- package/lib/service-hours/index.js +27 -2
- package/lib/service-hours/index.js.map +1 -1
- package/lib/service-hours/schema.js +68 -55
- package/lib/service-hours/schema.js.map +1 -1
- package/package.json +86 -86
- package/vitest.config.ts +23 -23
- package/vitest.setup.js +7 -7
|
@@ -1,108 +1,135 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
29
|
-
alignment =
|
|
30
|
-
filepath
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
|
58
|
+
alignment,
|
|
50
59
|
fit: [width, height],
|
|
51
|
-
image: videoIcon,
|
|
52
|
-
link
|
|
60
|
+
image: _images.videoIcon,
|
|
61
|
+
link
|
|
53
62
|
};
|
|
54
63
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
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
|
|
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
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
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
|
|
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
|
-
})
|
|
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
|
-
|
|
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 (!
|
|
171
|
+
if (!rawFilepath) {
|
|
144
172
|
return {
|
|
145
173
|
text: ''
|
|
146
174
|
};
|
|
147
175
|
}
|
|
148
|
-
|
|
176
|
+
const filepath = typeof rawFilepath === 'object' && rawFilepath !== null ? rawFilepath.path || rawFilepath.url || rawFilepath : rawFilepath;
|
|
177
|
+
const image = buildImage({
|
|
149
178
|
alignment: 'left',
|
|
150
|
-
filepath
|
|
179
|
+
filepath,
|
|
151
180
|
height: 140,
|
|
152
181
|
width: 140,
|
|
153
|
-
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
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
|
-
|
|
173
|
-
|
|
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
|
-
|
|
184
|
-
|
|
185
|
-
text:
|
|
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:
|
|
215
|
+
text: parsedValue.label,
|
|
193
216
|
fontSize: 7
|
|
194
217
|
};
|
|
195
|
-
return
|
|
218
|
+
return displayValue;
|
|
196
219
|
}
|
|
197
220
|
if (isStarField) {
|
|
198
221
|
if (!value) return '';
|
|
199
|
-
|
|
200
|
-
return
|
|
222
|
+
const displayValue = value === '1' ? `${value} star` : `${value} stars`;
|
|
223
|
+
return displayValue;
|
|
201
224
|
}
|
|
202
225
|
if (isDayFirstDateField || isMonthFirstDateField || is12HourTimeField || is24HourTimeField) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return
|
|
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
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
})
|
|
265
|
-
|
|
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
|
-
|
|
281
|
-
return
|
|
282
|
-
|
|
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
|
|
285
|
-
settings
|
|
312
|
+
filepath,
|
|
313
|
+
settings,
|
|
286
314
|
signedAsset: signedAssetValue,
|
|
287
315
|
fieldLabel: label,
|
|
288
316
|
fieldType: 'image-display'
|
|
289
317
|
});
|
|
290
|
-
}).then(
|
|
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
|
|
302
|
-
|
|
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
|
|
305
|
-
settings
|
|
331
|
+
filepath,
|
|
332
|
+
settings,
|
|
306
333
|
signedAsset: signedAssetValue,
|
|
307
334
|
fieldLabel: label,
|
|
308
335
|
fieldType: 'media'
|
|
309
336
|
});
|
|
310
|
-
}).then(
|
|
311
|
-
|
|
312
|
-
|
|
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:
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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]
|
|
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
|
-
|
|
349
|
-
|
|
363
|
+
const fileList = (0, _lodash.map)(value, (file, index) => {
|
|
364
|
+
const signedAsset = signedAssets?.[index];
|
|
350
365
|
return buildFile({
|
|
351
|
-
file
|
|
352
|
-
settings
|
|
353
|
-
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
|
-
|
|
362
|
-
|
|
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
|
-
|
|
371
|
-
|
|
372
|
-
text:
|
|
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:
|
|
390
|
+
text: parsedValue.label,
|
|
380
391
|
fontSize: 7
|
|
381
392
|
};
|
|
382
|
-
return [labelText,
|
|
393
|
+
return [labelText, displayValue];
|
|
383
394
|
}
|
|
384
395
|
if (isStarField) {
|
|
385
396
|
if (!value) return [labelText, ''];
|
|
386
|
-
|
|
387
|
-
return [labelText,
|
|
397
|
+
const displayValue = value === '1' ? `${value} star` : `${value} stars`;
|
|
398
|
+
return [labelText, displayValue];
|
|
388
399
|
}
|
|
389
400
|
if (isDayFirstDateField || isMonthFirstDateField || is12HourTimeField || is24HourTimeField) {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
return [labelText,
|
|
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
|