@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,107 +1,128 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getAuditItemsData = getAuditItemsData;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
var _ = require("../");
|
|
9
|
+
function getAuditItemsData(items, data) {
|
|
10
|
+
const {
|
|
11
|
+
settings: {
|
|
12
|
+
awsS3BaseUrl,
|
|
13
|
+
cloudinaryBaseUrl,
|
|
14
|
+
cloudfrontBaseUrl,
|
|
15
|
+
Policy,
|
|
16
|
+
KeyPairId,
|
|
17
|
+
Signature,
|
|
18
|
+
shouldUseCloudfront
|
|
19
|
+
} = {},
|
|
20
|
+
entity: {
|
|
21
|
+
groupScores
|
|
22
|
+
} = {}
|
|
23
|
+
} = data;
|
|
24
|
+
const groupedItems = (0, _lodash.groupBy)(items, 'group.id');
|
|
25
|
+
const auditData = {
|
|
19
26
|
overallActualScore: 0,
|
|
20
27
|
overallMaximumScore: 0
|
|
21
28
|
};
|
|
22
|
-
auditData.items = map(groupedItems,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
key
|
|
29
|
+
auditData.items = (0, _lodash.map)(groupedItems, (items, groupIndex) => {
|
|
30
|
+
const key = groupIndex;
|
|
31
|
+
const skipped = !!items[0].group.skipped;
|
|
32
|
+
const title = items[0].group.label;
|
|
33
|
+
const groupData = {
|
|
34
|
+
key,
|
|
28
35
|
groupMaximumScore: 0,
|
|
29
36
|
groupActualScore: 0,
|
|
30
37
|
groupResultScore: 0,
|
|
31
38
|
groupPercentageResultScore: 0,
|
|
32
|
-
skipped
|
|
33
|
-
title
|
|
39
|
+
skipped,
|
|
40
|
+
title
|
|
34
41
|
};
|
|
35
|
-
|
|
42
|
+
const currentGroupScores = (0, _lodash.get)(groupScores, key);
|
|
36
43
|
if (currentGroupScores) {
|
|
37
|
-
groupData.groupMaximumScore = round(currentGroupScores.max, 2);
|
|
38
|
-
groupData.groupActualScore = round(currentGroupScores.actual, 2);
|
|
44
|
+
groupData.groupMaximumScore = (0, _lodash.round)(currentGroupScores.max, 2);
|
|
45
|
+
groupData.groupActualScore = (0, _lodash.round)(currentGroupScores.actual, 2);
|
|
39
46
|
groupData.groupResultScore = currentGroupScores.result;
|
|
40
47
|
groupData.groupPercentageResultScore = currentGroupScores.percentageResult;
|
|
41
48
|
}
|
|
42
|
-
groupData.items = items.map(
|
|
49
|
+
groupData.items = items.map((item, itemIndex) => {
|
|
43
50
|
// NOTE: we handle scores of -1, 0 and 1
|
|
44
51
|
// -1 scores are skipped from group max and actual score
|
|
45
52
|
// 0 and 1 must be included in the final scores
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
53
|
+
const hasScore = item.score !== null && item.score !== -1;
|
|
54
|
+
const rawAssets = item.assets || [];
|
|
55
|
+
const assetCount = rawAssets.length;
|
|
56
|
+
const assets = rawAssets.reduce((acc, asset, assetIndex) => {
|
|
57
|
+
try {
|
|
58
|
+
const assetUrl = (0, _.buildFetchUrl)(asset, {
|
|
59
|
+
awsS3BaseUrl,
|
|
60
|
+
cloudfrontBaseUrl,
|
|
61
|
+
cloudinaryBaseUrl,
|
|
62
|
+
height: 400,
|
|
63
|
+
width: 600,
|
|
64
|
+
quality: 50,
|
|
65
|
+
fit: true,
|
|
66
|
+
shouldUseCloudfront,
|
|
67
|
+
Policy,
|
|
68
|
+
KeyPairId,
|
|
69
|
+
Signature
|
|
70
|
+
});
|
|
71
|
+
const link = shouldUseCloudfront ? `${cloudfrontBaseUrl}/${item.signedAssets[assetIndex]}` : `${awsS3BaseUrl}/${asset}`;
|
|
72
|
+
const thumbnailUrl = (0, _.buildFetchUrl)(asset, {
|
|
73
|
+
awsS3BaseUrl,
|
|
74
|
+
cloudfrontBaseUrl,
|
|
75
|
+
cloudinaryBaseUrl,
|
|
76
|
+
shouldUseCloudfront,
|
|
77
|
+
width: 100,
|
|
78
|
+
quality: 50,
|
|
79
|
+
fit: true,
|
|
80
|
+
shouldUseCloudfront,
|
|
81
|
+
Policy,
|
|
82
|
+
KeyPairId,
|
|
83
|
+
Signature
|
|
84
|
+
});
|
|
85
|
+
const key = `${groupIndex}-item-asset-${assetIndex}`;
|
|
86
|
+
acc.push({
|
|
87
|
+
assetUrl,
|
|
88
|
+
key,
|
|
89
|
+
link,
|
|
90
|
+
thumbnailUrl
|
|
91
|
+
});
|
|
92
|
+
} catch (error) {
|
|
93
|
+
console.error({
|
|
94
|
+
message: 'Failed to build asset URL',
|
|
95
|
+
asset,
|
|
96
|
+
assetIndex,
|
|
97
|
+
groupIndex,
|
|
98
|
+
error: error.message
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
return acc;
|
|
102
|
+
}, []);
|
|
103
|
+
const comments = item.comments;
|
|
104
|
+
const label = item.label;
|
|
105
|
+
const score = item.score;
|
|
106
|
+
const key = `${groupIndex}-item-${itemIndex}`;
|
|
107
|
+
const matchingScore = (0, _lodash.find)(item.scores, {
|
|
87
108
|
value: score
|
|
88
109
|
});
|
|
89
110
|
|
|
90
111
|
// NOTE: ensure we have a score otherwise fallback to - value
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
112
|
+
const scoreLabel = hasScore && matchingScore && !skipped ? matchingScore.label : '-';
|
|
113
|
+
const scoreWeight = hasScore && !skipped ? item.scoreWeight : '-';
|
|
114
|
+
const weight = hasScore ? item.weight : '-';
|
|
94
115
|
return {
|
|
95
|
-
assetCount
|
|
96
|
-
assets
|
|
97
|
-
comments
|
|
98
|
-
key
|
|
99
|
-
label
|
|
116
|
+
assetCount,
|
|
117
|
+
assets,
|
|
118
|
+
comments,
|
|
119
|
+
key,
|
|
120
|
+
label,
|
|
100
121
|
questionId: item._id,
|
|
101
|
-
score
|
|
102
|
-
scoreLabel
|
|
103
|
-
scoreWeight
|
|
104
|
-
weight
|
|
122
|
+
score,
|
|
123
|
+
scoreLabel,
|
|
124
|
+
scoreWeight,
|
|
125
|
+
weight
|
|
105
126
|
};
|
|
106
127
|
});
|
|
107
128
|
return groupData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_","getAuditItemsData","items","data","settings","awsS3BaseUrl","cloudinaryBaseUrl","cloudfrontBaseUrl","Policy","KeyPairId","Signature","shouldUseCloudfront","entity","groupScores","groupedItems","groupBy","auditData","overallActualScore","overallMaximumScore","map","groupIndex","key","skipped","group","title","label","groupData","groupMaximumScore","groupActualScore","groupResultScore","groupPercentageResultScore","currentGroupScores","get","round","max","actual","result","percentageResult","item","itemIndex","hasScore","score","rawAssets","assets","assetCount","length","reduce","acc","asset","assetIndex","assetUrl","buildFetchUrl","height","width","quality","fit","link","signedAssets","thumbnailUrl","push","error","console","message","comments","matchingScore","find","scores","value","scoreLabel","scoreWeight","weight","questionId","_id"],"sources":["../../../src/helpers/get-audit-items-data/index.js"],"sourcesContent":["import { find, groupBy, map, get, round } from 'lodash'\r\n\r\nimport { buildFetchUrl } from '../'\r\n\r\nexport function getAuditItemsData(items, data) {\r\n const {\r\n settings: {\r\n awsS3BaseUrl,\r\n cloudinaryBaseUrl,\r\n cloudfrontBaseUrl,\r\n Policy,\r\n KeyPairId,\r\n Signature,\r\n shouldUseCloudfront,\r\n } = {},\r\n entity: { groupScores } = {},\r\n } = data\r\n\r\n const groupedItems = groupBy(items, 'group.id')\r\n\r\n const auditData = {\r\n overallActualScore: 0,\r\n overallMaximumScore: 0,\r\n }\r\n\r\n auditData.items = map(groupedItems, (items, groupIndex) => {\r\n const key = groupIndex\r\n const skipped = !!items[0].group.skipped\r\n const title = items[0].group.label\r\n\r\n const groupData = {\r\n key,\r\n groupMaximumScore: 0,\r\n groupActualScore: 0,\r\n groupResultScore: 0,\r\n groupPercentageResultScore: 0,\r\n skipped,\r\n title,\r\n }\r\n\r\n const currentGroupScores = get(groupScores, key)\r\n\r\n if (currentGroupScores) {\r\n groupData.groupMaximumScore = round(currentGroupScores.max, 2)\r\n groupData.groupActualScore = round(currentGroupScores.actual, 2)\r\n groupData.groupResultScore = currentGroupScores.result\r\n groupData.groupPercentageResultScore = currentGroupScores.percentageResult\r\n }\r\n\r\n groupData.items = items.map((item, itemIndex) => {\r\n // NOTE: we handle scores of -1, 0 and 1\r\n // -1 scores are skipped from group max and actual score\r\n // 0 and 1 must be included in the final scores\r\n const hasScore = item.score !== null && item.score !== -1\r\n const rawAssets = item.assets || []\r\n const assetCount = rawAssets.length\r\n\r\n const assets = rawAssets.reduce((acc, asset, assetIndex) => {\r\n try {\r\n const assetUrl = buildFetchUrl(asset, {\r\n awsS3BaseUrl,\r\n cloudfrontBaseUrl,\r\n cloudinaryBaseUrl,\r\n height: 400,\r\n width: 600,\r\n quality: 50,\r\n fit: true,\r\n shouldUseCloudfront,\r\n Policy,\r\n KeyPairId,\r\n Signature,\r\n })\r\n\r\n const link = shouldUseCloudfront\r\n ? `${cloudfrontBaseUrl}/${item.signedAssets[assetIndex]}`\r\n : `${awsS3BaseUrl}/${asset}`\r\n\r\n const thumbnailUrl = buildFetchUrl(asset, {\r\n awsS3BaseUrl,\r\n cloudfrontBaseUrl,\r\n cloudinaryBaseUrl,\r\n shouldUseCloudfront,\r\n width: 100,\r\n quality: 50,\r\n fit: true,\r\n shouldUseCloudfront,\r\n Policy,\r\n KeyPairId,\r\n Signature,\r\n })\r\n\r\n const key = `${groupIndex}-item-asset-${assetIndex}`\r\n\r\n acc.push({\r\n assetUrl,\r\n key,\r\n link,\r\n thumbnailUrl,\r\n })\r\n } catch (error) {\r\n console.error({\r\n message: 'Failed to build asset URL',\r\n asset,\r\n assetIndex,\r\n groupIndex,\r\n error: error.message,\r\n })\r\n }\r\n return acc \r\n },[])\r\n\r\n const comments = item.comments\r\n const label = item.label\r\n const score = item.score\r\n const key = `${groupIndex}-item-${itemIndex}`\r\n const matchingScore = find(item.scores, { value: score })\r\n\r\n // NOTE: ensure we have a score otherwise fallback to - value\r\n const scoreLabel =\r\n hasScore && matchingScore && !skipped ? matchingScore.label : '-'\r\n const scoreWeight = hasScore && !skipped ? item.scoreWeight : '-'\r\n const weight = hasScore ? item.weight : '-'\r\n\r\n return {\r\n assetCount,\r\n assets,\r\n comments,\r\n key,\r\n label,\r\n questionId: item._id,\r\n score,\r\n scoreLabel,\r\n scoreWeight,\r\n weight,\r\n }\r\n })\r\n\r\n return groupData\r\n })\r\n\r\n return auditData\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getGeometryGeocodedString = getGeometryGeocodedString;
|
|
7
|
+
var _lodash = require("lodash");
|
|
8
|
+
const DEFAULT_PROPERTIES = ['label', 'postalcode', 'postcode'];
|
|
9
|
+
function getGeometryGeocodedString(geometryReverseGeocoded, properties = DEFAULT_PROPERTIES) {
|
|
5
10
|
if (!geometryReverseGeocoded) return 'Unknown Location';
|
|
6
|
-
return chain(geometryReverseGeocoded).pick(properties).values().compact().join(', ').value();
|
|
11
|
+
return (0, _lodash.chain)(geometryReverseGeocoded).pick(properties).values().compact().join(', ').value();
|
|
7
12
|
}
|
|
8
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","DEFAULT_PROPERTIES","getGeometryGeocodedString","geometryReverseGeocoded","properties","chain","pick","values","compact","join","value"],"sources":["../../../src/helpers/get-geometry-geocoded-string/index.js"],"sourcesContent":["import { chain } from 'lodash'\r\n\r\nconst DEFAULT_PROPERTIES = ['label', 'postalcode', 'postcode']\r\n\r\nexport function getGeometryGeocodedString(\r\n geometryReverseGeocoded,\r\n properties = DEFAULT_PROPERTIES\r\n) {\r\n if (!geometryReverseGeocoded) return 'Unknown Location'\r\n\r\n return chain(geometryReverseGeocoded)\r\n .pick(properties)\r\n .values()\r\n .compact()\r\n .join(', ')\r\n .value()\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,MAAMC,kBAAkB,GAAG,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,CAAC;AAEvD,SAASC,yBAAyBA,CACvCC,uBAAuB,EACvBC,UAAU,GAAGH,kBAAkB,EAC/B;EACA,IAAI,CAACE,uBAAuB,EAAE,OAAO,kBAAkB;EAEvD,OAAO,IAAAE,aAAK,EAACF,uBAAuB,CAAC,CAClCG,IAAI,CAACF,UAAU,CAAC,CAChBG,MAAM,CAAC,CAAC,CACRC,OAAO,CAAC,CAAC,CACTC,IAAI,CAAC,IAAI,CAAC,CACVC,KAAK,CAAC,CAAC;AACZ","ignoreList":[]}
|
|
@@ -1,49 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getIssueDetails = getIssueDetails;
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
10
|
+
var _ = require("../");
|
|
11
|
+
function getIssueDetails(data) {
|
|
12
|
+
const {
|
|
13
|
+
entity,
|
|
14
|
+
timezone,
|
|
15
|
+
users
|
|
16
|
+
} = data;
|
|
17
|
+
const {
|
|
18
|
+
assignees,
|
|
19
|
+
createdAt,
|
|
20
|
+
duration,
|
|
21
|
+
isPublicSubmission = false,
|
|
22
|
+
gps,
|
|
23
|
+
templateRevision,
|
|
24
|
+
sequenceId,
|
|
25
|
+
status,
|
|
26
|
+
user
|
|
27
|
+
} = entity;
|
|
28
|
+
const assigneeNames = (0, _.getAssigneesFullNames)(users, assignees);
|
|
29
|
+
const durationInMins = _momentTimezone.default.duration(duration, 'minutes');
|
|
30
|
+
const durationText = (0, _.getPrettyDuration)(durationInMins);
|
|
31
|
+
const fullName = (0, _.getUserFullName)(users, user);
|
|
32
|
+
const gpsText = (0, _lodash.get)(gps, 'reverseGeocoded.label', 'Unknown Location');
|
|
33
|
+
const isClosedStatus = status === 'closed';
|
|
34
|
+
const locationText = (0, _.getLocationReference)(data);
|
|
35
|
+
const statusDetails = (0, _.getStatusDetails)(status);
|
|
36
|
+
const statusStyle = statusDetails.style;
|
|
37
|
+
const statusColor = statusStyle.color;
|
|
38
|
+
const statusText = (0, _lodash.upperCase)(statusDetails.text);
|
|
39
|
+
const timezoneDatetime = (0, _.getTimezoneDatetime)({
|
|
30
40
|
timestamp: createdAt,
|
|
31
|
-
timezone
|
|
41
|
+
timezone
|
|
32
42
|
});
|
|
33
43
|
return {
|
|
34
|
-
assigneeNames
|
|
35
|
-
durationText
|
|
36
|
-
gpsText
|
|
37
|
-
fullName
|
|
38
|
-
isClosedStatus
|
|
39
|
-
isPublicSubmission
|
|
40
|
-
locationText
|
|
41
|
-
templateRevision
|
|
42
|
-
sequenceId
|
|
43
|
-
statusStyle
|
|
44
|
-
statusColor
|
|
45
|
-
statusText
|
|
46
|
-
timezoneDatetime
|
|
44
|
+
assigneeNames,
|
|
45
|
+
durationText,
|
|
46
|
+
gpsText,
|
|
47
|
+
fullName,
|
|
48
|
+
isClosedStatus,
|
|
49
|
+
isPublicSubmission,
|
|
50
|
+
locationText,
|
|
51
|
+
templateRevision,
|
|
52
|
+
sequenceId,
|
|
53
|
+
statusStyle,
|
|
54
|
+
statusColor,
|
|
55
|
+
statusText,
|
|
56
|
+
timezoneDatetime
|
|
47
57
|
};
|
|
48
58
|
}
|
|
49
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_momentTimezone","_interopRequireDefault","_","getIssueDetails","data","entity","timezone","users","assignees","createdAt","duration","isPublicSubmission","gps","templateRevision","sequenceId","status","user","assigneeNames","getAssigneesFullNames","durationInMins","moment","durationText","getPrettyDuration","fullName","getUserFullName","gpsText","get","isClosedStatus","locationText","getLocationReference","statusDetails","getStatusDetails","statusStyle","style","statusColor","color","statusText","upperCase","text","timezoneDatetime","getTimezoneDatetime","timestamp"],"sources":["../../../src/helpers/get-issue-details/index.js"],"sourcesContent":["import { get, upperCase } from 'lodash'\r\nimport moment from 'moment-timezone'\r\n\r\nimport {\r\n getAssigneesFullNames,\r\n getLocationReference,\r\n getPrettyDuration,\r\n getStatusDetails,\r\n getTimezoneDatetime,\r\n getUserFullName,\r\n} from '../'\r\n\r\nexport function getIssueDetails(data) {\r\n const { entity, timezone, users } = data\r\n\r\n const {\r\n assignees,\r\n createdAt,\r\n duration,\r\n isPublicSubmission = false,\r\n gps,\r\n templateRevision,\r\n sequenceId,\r\n status,\r\n user,\r\n } = entity\r\n\r\n const assigneeNames = getAssigneesFullNames(users, assignees)\r\n const durationInMins = moment.duration(duration, 'minutes')\r\n const durationText = getPrettyDuration(durationInMins)\r\n const fullName = getUserFullName(users, user)\r\n const gpsText = get(gps, 'reverseGeocoded.label', 'Unknown Location')\r\n const isClosedStatus = status === 'closed'\r\n const locationText = getLocationReference(data)\r\n const statusDetails = getStatusDetails(status)\r\n const statusStyle = statusDetails.style\r\n const statusColor = statusStyle.color\r\n const statusText = upperCase(statusDetails.text)\r\n const timezoneDatetime = getTimezoneDatetime({\r\n timestamp: createdAt,\r\n timezone,\r\n })\r\n\r\n return {\r\n assigneeNames,\r\n durationText,\r\n gpsText,\r\n fullName,\r\n isClosedStatus,\r\n isPublicSubmission,\r\n locationText,\r\n templateRevision,\r\n sequenceId,\r\n statusStyle,\r\n statusColor,\r\n statusText,\r\n timezoneDatetime,\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,CAAA,GAAAH,OAAA;AASO,SAASI,eAAeA,CAACC,IAAI,EAAE;EACpC,MAAM;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,IAAI;EAExC,MAAM;IACJI,SAAS;IACTC,SAAS;IACTC,QAAQ;IACRC,kBAAkB,GAAG,KAAK;IAC1BC,GAAG;IACHC,gBAAgB;IAChBC,UAAU;IACVC,MAAM;IACNC;EACF,CAAC,GAAGX,MAAM;EAEV,MAAMY,aAAa,GAAG,IAAAC,uBAAqB,EAACX,KAAK,EAAEC,SAAS,CAAC;EAC7D,MAAMW,cAAc,GAAGC,uBAAM,CAACV,QAAQ,CAACA,QAAQ,EAAE,SAAS,CAAC;EAC3D,MAAMW,YAAY,GAAG,IAAAC,mBAAiB,EAACH,cAAc,CAAC;EACtD,MAAMI,QAAQ,GAAG,IAAAC,iBAAe,EAACjB,KAAK,EAAES,IAAI,CAAC;EAC7C,MAAMS,OAAO,GAAG,IAAAC,WAAG,EAACd,GAAG,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;EACrE,MAAMe,cAAc,GAAGZ,MAAM,KAAK,QAAQ;EAC1C,MAAMa,YAAY,GAAG,IAAAC,sBAAoB,EAACzB,IAAI,CAAC;EAC/C,MAAM0B,aAAa,GAAG,IAAAC,kBAAgB,EAAChB,MAAM,CAAC;EAC9C,MAAMiB,WAAW,GAAGF,aAAa,CAACG,KAAK;EACvC,MAAMC,WAAW,GAAGF,WAAW,CAACG,KAAK;EACrC,MAAMC,UAAU,GAAG,IAAAC,iBAAS,EAACP,aAAa,CAACQ,IAAI,CAAC;EAChD,MAAMC,gBAAgB,GAAG,IAAAC,qBAAmB,EAAC;IAC3CC,SAAS,EAAEhC,SAAS;IACpBH;EACF,CAAC,CAAC;EAEF,OAAO;IACLW,aAAa;IACbI,YAAY;IACZI,OAAO;IACPF,QAAQ;IACRI,cAAc;IACdhB,kBAAkB;IAClBiB,YAAY;IACZf,gBAAgB;IAChBC,UAAU;IACVkB,WAAW;IACXE,WAAW;IACXE,UAAU;IACVG;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,49 +1,57 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getJobDetails = getJobDetails;
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
10
|
+
var _ = require("../");
|
|
11
|
+
function getJobDetails(data) {
|
|
12
|
+
const {
|
|
13
|
+
entity = {},
|
|
14
|
+
timezone,
|
|
15
|
+
users
|
|
16
|
+
} = data;
|
|
17
|
+
const {
|
|
18
|
+
assignees,
|
|
19
|
+
author,
|
|
20
|
+
createdAt,
|
|
21
|
+
description = '',
|
|
22
|
+
due,
|
|
23
|
+
geometryReverseGeocoded,
|
|
24
|
+
reference = '',
|
|
25
|
+
status
|
|
26
|
+
} = entity;
|
|
27
|
+
const assigneeNames = (0, _.getAssigneesFullNames)(users, assignees);
|
|
28
|
+
const authorFullName = (0, _.getUserFullName)(users, author);
|
|
29
|
+
const locationText = (0, _.getGeometryGeocodedString)(geometryReverseGeocoded);
|
|
30
|
+
const statusProps = (0, _.getStatusDetails)(status);
|
|
31
|
+
const statusStyle = statusProps.style;
|
|
32
|
+
const statusColor = statusStyle.color;
|
|
33
|
+
const statusText = (0, _lodash.upperCase)(statusProps.text);
|
|
34
|
+
const createdTimezoneDateTime = (0, _.getTimezoneDatetime)({
|
|
27
35
|
timestamp: createdAt,
|
|
28
|
-
timezone
|
|
36
|
+
timezone
|
|
29
37
|
});
|
|
30
|
-
|
|
38
|
+
const dueDateTimezoneDateTime = (0, _.getTimezoneDatetime)({
|
|
31
39
|
timestamp: due,
|
|
32
|
-
timezone
|
|
40
|
+
timezone
|
|
33
41
|
});
|
|
34
|
-
|
|
42
|
+
const timezoneAbbrText = _momentTimezone.default.tz(timezone).format('z');
|
|
35
43
|
return {
|
|
36
|
-
assigneeNames
|
|
37
|
-
authorFullName
|
|
38
|
-
createdTimezoneDateTime
|
|
39
|
-
description
|
|
40
|
-
dueDateTimezoneDateTime
|
|
41
|
-
locationText
|
|
42
|
-
statusStyle
|
|
43
|
-
statusColor
|
|
44
|
-
statusText
|
|
45
|
-
reference
|
|
46
|
-
timezoneAbbrText
|
|
44
|
+
assigneeNames,
|
|
45
|
+
authorFullName,
|
|
46
|
+
createdTimezoneDateTime,
|
|
47
|
+
description,
|
|
48
|
+
dueDateTimezoneDateTime,
|
|
49
|
+
locationText,
|
|
50
|
+
statusStyle,
|
|
51
|
+
statusColor,
|
|
52
|
+
statusText,
|
|
53
|
+
reference,
|
|
54
|
+
timezoneAbbrText
|
|
47
55
|
};
|
|
48
56
|
}
|
|
49
57
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_momentTimezone","_interopRequireDefault","_","getJobDetails","data","entity","timezone","users","assignees","author","createdAt","description","due","geometryReverseGeocoded","reference","status","assigneeNames","getAssigneesFullNames","authorFullName","getUserFullName","locationText","getGeometryGeocodedString","statusProps","getStatusDetails","statusStyle","style","statusColor","color","statusText","upperCase","text","createdTimezoneDateTime","getTimezoneDatetime","timestamp","dueDateTimezoneDateTime","timezoneAbbrText","moment","tz","format"],"sources":["../../../src/helpers/get-job-details/index.js"],"sourcesContent":["import { upperCase } from 'lodash'\r\nimport moment from 'moment-timezone'\r\n\r\nimport {\r\n getAssigneesFullNames,\r\n getGeometryGeocodedString,\r\n getStatusDetails,\r\n getUserFullName,\r\n getTimezoneDatetime,\r\n} from '../'\r\n\r\nexport function getJobDetails(data) {\r\n const { entity = {}, timezone, users } = data\r\n\r\n const {\r\n assignees,\r\n author,\r\n createdAt,\r\n description = '',\r\n due,\r\n geometryReverseGeocoded,\r\n reference = '',\r\n status,\r\n } = entity\r\n\r\n const assigneeNames = getAssigneesFullNames(users, assignees)\r\n const authorFullName = getUserFullName(users, author)\r\n const locationText = getGeometryGeocodedString(geometryReverseGeocoded)\r\n\r\n const statusProps = getStatusDetails(status)\r\n const statusStyle = statusProps.style\r\n const statusColor = statusStyle.color\r\n const statusText = upperCase(statusProps.text)\r\n\r\n const createdTimezoneDateTime = getTimezoneDatetime({\r\n timestamp: createdAt,\r\n timezone,\r\n })\r\n const dueDateTimezoneDateTime = getTimezoneDatetime({\r\n timestamp: due,\r\n timezone,\r\n })\r\n const timezoneAbbrText = moment.tz(timezone).format('z')\r\n\r\n return {\r\n assigneeNames,\r\n authorFullName,\r\n createdTimezoneDateTime,\r\n description,\r\n dueDateTimezoneDateTime,\r\n locationText,\r\n statusStyle,\r\n statusColor,\r\n statusText,\r\n reference,\r\n timezoneAbbrText,\r\n }\r\n}\r\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,CAAA,GAAAH,OAAA;AAQO,SAASI,aAAaA,CAACC,IAAI,EAAE;EAClC,MAAM;IAAEC,MAAM,GAAG,CAAC,CAAC;IAAEC,QAAQ;IAAEC;EAAM,CAAC,GAAGH,IAAI;EAE7C,MAAM;IACJI,SAAS;IACTC,MAAM;IACNC,SAAS;IACTC,WAAW,GAAG,EAAE;IAChBC,GAAG;IACHC,uBAAuB;IACvBC,SAAS,GAAG,EAAE;IACdC;EACF,CAAC,GAAGV,MAAM;EAEV,MAAMW,aAAa,GAAG,IAAAC,uBAAqB,EAACV,KAAK,EAAEC,SAAS,CAAC;EAC7D,MAAMU,cAAc,GAAG,IAAAC,iBAAe,EAACZ,KAAK,EAAEE,MAAM,CAAC;EACrD,MAAMW,YAAY,GAAG,IAAAC,2BAAyB,EAACR,uBAAuB,CAAC;EAEvE,MAAMS,WAAW,GAAG,IAAAC,kBAAgB,EAACR,MAAM,CAAC;EAC5C,MAAMS,WAAW,GAAGF,WAAW,CAACG,KAAK;EACrC,MAAMC,WAAW,GAAGF,WAAW,CAACG,KAAK;EACrC,MAAMC,UAAU,GAAG,IAAAC,iBAAS,EAACP,WAAW,CAACQ,IAAI,CAAC;EAE9C,MAAMC,uBAAuB,GAAG,IAAAC,qBAAmB,EAAC;IAClDC,SAAS,EAAEvB,SAAS;IACpBJ;EACF,CAAC,CAAC;EACF,MAAM4B,uBAAuB,GAAG,IAAAF,qBAAmB,EAAC;IAClDC,SAAS,EAAErB,GAAG;IACdN;EACF,CAAC,CAAC;EACF,MAAM6B,gBAAgB,GAAGC,uBAAM,CAACC,EAAE,CAAC/B,QAAQ,CAAC,CAACgC,MAAM,CAAC,GAAG,CAAC;EAExD,OAAO;IACLtB,aAAa;IACbE,cAAc;IACda,uBAAuB;IACvBpB,WAAW;IACXuB,uBAAuB;IACvBd,YAAY;IACZI,WAAW;IACXE,WAAW;IACXE,UAAU;IACVd,SAAS;IACTqB;EACF,CAAC;AACH","ignoreList":[]}
|