@lighthouse/common 6.4.0-canary.5 → 6.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.js +13 -7
- package/dist/errors/DomainError.js +4 -2
- package/dist/errors/ValidationError.js +8 -0
- package/dist/errors/index.js +5 -1
- package/dist/helpers/build-fetch-url/index.js +5 -0
- package/dist/helpers/fetch-image/index.js +32 -16
- package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +44 -22
- package/dist/helpers/fetch-image-for-web/index.js +9 -0
- package/dist/helpers/fetch-lighthouse-logo/index.js +13 -2
- package/dist/helpers/floatify/index.js +1 -0
- package/dist/helpers/get-assignees-full-names/index.js +4 -0
- package/dist/helpers/get-audit-entry-details/index.js +3 -0
- package/dist/helpers/get-audit-items-data/index.js +6 -2
- package/dist/helpers/get-geometry-geocoded-string/index.js +3 -0
- package/dist/helpers/get-issue-details/index.js +9 -0
- package/dist/helpers/get-job-details/index.js +7 -0
- package/dist/helpers/get-location-reference/index.js +21 -18
- package/dist/helpers/get-pretty-duration/index.js +5 -0
- package/dist/helpers/get-reference-details/index.js +4 -0
- package/dist/helpers/get-status-details/index.js +9 -2
- package/dist/helpers/get-task-entry-details/index.js +3 -0
- package/dist/helpers/get-timezone-abbr/index.js +4 -0
- package/dist/helpers/get-timezone-datetime/index.js +5 -0
- package/dist/helpers/get-user-full-name/index.js +1 -0
- package/dist/helpers/get-value-as-percentage/index.js +1 -0
- package/dist/helpers/image-validators/index.js +9 -8
- package/dist/helpers/index.js +33 -16
- package/dist/images/index.js +9 -5
- package/dist/index.js +20 -4
- package/dist/pdf/activity-report/index.js +62 -41
- package/dist/pdf/audit/index.js +14 -0
- package/dist/pdf/helpers/build-audit-content/index.js +15 -4
- package/dist/pdf/helpers/build-audit-follow-ups/index.js +14 -4
- package/dist/pdf/helpers/build-location-scans-content/index.js +17 -4
- package/dist/pdf/helpers/build-template-content/index.js +14 -5
- package/dist/pdf/helpers/default-footer/index.js +3 -2
- package/dist/pdf/helpers/default-header/index.js +2 -0
- package/dist/pdf/helpers/default-styles/index.js +3 -2
- package/dist/pdf/helpers/fields/index.js +51 -21
- package/dist/pdf/helpers/format-location-address/index.js +3 -0
- package/dist/pdf/helpers/generate-definition/index.js +12 -0
- package/dist/pdf/helpers/horizontal-line/index.js +1 -0
- package/dist/pdf/helpers/html-transformer/index.js +23 -11
- package/dist/pdf/helpers/index.js +55 -40
- package/dist/pdf/helpers/parse-value/index.js +6 -2
- package/dist/pdf/helpers/table/index.js +31 -13
- package/dist/pdf/helpers/text/index.js +1 -0
- package/dist/pdf/icons/index.js +5 -3
- package/dist/pdf/index.js +10 -4
- package/dist/pdf/issue/index.js +14 -0
- package/dist/pdf/job/index.js +13 -1
- package/dist/pdf/shift-report/emptyFixtures.js +6 -4
- package/dist/pdf/shift-report/index.js +25 -2
- package/dist/pdf/task/index.js +13 -0
- package/dist/scheduling/generators/index.js +6 -0
- package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +6 -1
- package/dist/scheduling/generators/scheduleIntervalsGenerator.js +5 -0
- package/dist/scheduling/generators/serviceIntervalsGenerator.js +27 -13
- package/dist/scheduling/helpers/convertToTimezone.js +6 -1
- package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +9 -3
- package/dist/scheduling/helpers/generateRepeatingSchedule.js +18 -11
- package/dist/scheduling/helpers/generateScheduleEnd.js +8 -2
- package/dist/scheduling/helpers/hasValidStartAndEnd.js +6 -0
- package/dist/scheduling/helpers/index.js +28 -0
- package/dist/scheduling/helpers/intervalCovers.js +1 -0
- package/dist/scheduling/helpers/intervalIntersectsEnd.js +1 -0
- package/dist/scheduling/helpers/intervalIntersectsStart.js +1 -0
- package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +3 -1
- package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +3 -0
- package/dist/scheduling/helpers/intervalOutside.js +1 -0
- package/dist/scheduling/helpers/intervalWithin.js +1 -0
- package/dist/scheduling/helpers/mergeIntervals.js +4 -0
- package/dist/scheduling/helpers/splitIntervals.js +3 -0
- package/dist/scheduling/index.js +6 -0
- package/dist/scheduling/scheduling.types.js +18 -10
- package/dist/scheduling/strategies/getNext.js +13 -2
- package/dist/scheduling/strategies/getNextExactDateOfMonth.js +12 -0
- package/dist/scheduling/strategies/getNextLastDayOfMonth.js +10 -0
- package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +11 -0
- package/dist/scheduling/strategies/getNextNoRepeat.js +7 -0
- package/dist/scheduling/strategies/getNextWeekday.js +10 -0
- package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +12 -0
- package/dist/scheduling/strategies/index.js +14 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/schema.js +7 -2
- package/dist/service-hours/__helpers__/calculate-hours.js +13 -4
- package/dist/service-hours/__helpers__/isOpen.js +9 -0
- package/dist/service-hours/index.js +4 -0
- package/dist/service-hours/schema.js +43 -20
- package/lib/constants.js.map +1 -1
- package/lib/errors/DomainError.js +47 -11
- package/lib/errors/DomainError.js.map +1 -1
- package/lib/errors/ValidationError.js +52 -15
- package/lib/errors/ValidationError.js.map +1 -1
- package/lib/errors/index.js.map +1 -1
- package/lib/helpers/build-fetch-url/index.js +20 -14
- package/lib/helpers/build-fetch-url/index.js.map +1 -1
- package/lib/helpers/fetch-image/index.js +27 -20
- package/lib/helpers/fetch-image/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +242 -201
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-web/index.js +66 -50
- package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
- package/lib/helpers/fetch-lighthouse-logo/index.js +59 -47
- package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
- package/lib/helpers/floatify/index.js.map +1 -1
- package/lib/helpers/get-assignees-full-names/index.js +1 -0
- package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
- package/lib/helpers/get-audit-entry-details/index.js +8 -8
- package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
- package/lib/helpers/get-audit-items-data/index.js +19 -16
- package/lib/helpers/get-audit-items-data/index.js.map +1 -1
- package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
- package/lib/helpers/get-issue-details/index.js +12 -9
- package/lib/helpers/get-issue-details/index.js.map +1 -1
- package/lib/helpers/get-job-details/index.js +12 -12
- package/lib/helpers/get-job-details/index.js.map +1 -1
- package/lib/helpers/get-location-reference/index.js +36 -32
- package/lib/helpers/get-location-reference/index.js.map +1 -1
- package/lib/helpers/get-pretty-duration/index.js +4 -0
- package/lib/helpers/get-pretty-duration/index.js.map +1 -1
- package/lib/helpers/get-reference-details/index.js +3 -1
- package/lib/helpers/get-reference-details/index.js.map +1 -1
- package/lib/helpers/get-status-details/index.js +4 -0
- package/lib/helpers/get-status-details/index.js.map +1 -1
- package/lib/helpers/get-task-entry-details/index.js +5 -5
- package/lib/helpers/get-task-entry-details/index.js.map +1 -1
- package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
- package/lib/helpers/get-timezone-datetime/index.js +6 -6
- package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
- package/lib/helpers/get-user-full-name/index.js.map +1 -1
- package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
- package/lib/helpers/image-validators/index.js +7 -8
- package/lib/helpers/image-validators/index.js.map +1 -1
- package/lib/helpers/index.js.map +1 -1
- package/lib/images/index.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/pdf/activity-report/index.js +416 -360
- package/lib/pdf/activity-report/index.js.map +1 -1
- package/lib/pdf/audit/index.js +36 -25
- package/lib/pdf/audit/index.js.map +1 -1
- package/lib/pdf/fonts/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-content/index.js +5 -3
- package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-follow-ups/index.js +12 -5
- package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
- package/lib/pdf/helpers/build-location-scans-content/index.js +9 -4
- package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-template-content/index.js +9 -7
- package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
- package/lib/pdf/helpers/default-footer/index.js +8 -9
- package/lib/pdf/helpers/default-footer/index.js.map +1 -1
- package/lib/pdf/helpers/default-header/index.js +5 -5
- package/lib/pdf/helpers/default-header/index.js.map +1 -1
- package/lib/pdf/helpers/default-styles/index.js.map +1 -1
- package/lib/pdf/helpers/fields/index.js +81 -48
- package/lib/pdf/helpers/fields/index.js.map +1 -1
- package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
- package/lib/pdf/helpers/generate-definition/index.js +29 -22
- package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
- package/lib/pdf/helpers/html-transformer/index.js +30 -19
- package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
- package/lib/pdf/helpers/index.js.map +1 -1
- package/lib/pdf/helpers/parse-value/index.js +4 -2
- package/lib/pdf/helpers/parse-value/index.js.map +1 -1
- package/lib/pdf/helpers/table/index.js +84 -78
- package/lib/pdf/helpers/table/index.js.map +1 -1
- package/lib/pdf/helpers/text/index.js +5 -2
- package/lib/pdf/helpers/text/index.js.map +1 -1
- package/lib/pdf/icons/index.js.map +1 -1
- package/lib/pdf/index.js.map +1 -1
- package/lib/pdf/issue/index.js +28 -19
- package/lib/pdf/issue/index.js.map +1 -1
- package/lib/pdf/job/index.js +19 -12
- package/lib/pdf/job/index.js.map +1 -1
- package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
- package/lib/pdf/shift-report/index.js +374 -308
- package/lib/pdf/shift-report/index.js.map +1 -1
- package/lib/pdf/task/index.js +19 -11
- package/lib/pdf/task/index.js.map +1 -1
- package/lib/scheduling/generators/index.js.map +1 -1
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +38 -27
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js +30 -19
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/serviceIntervalsGenerator.js +181 -139
- package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +124 -84
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateRepeatingSchedule.js +175 -107
- package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateScheduleEnd.js +6 -6
- package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
- package/lib/scheduling/helpers/hasValidStartAndEnd.js +2 -1
- package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
- package/lib/scheduling/helpers/index.js.map +1 -1
- package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +0 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
- package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
- package/lib/scheduling/helpers/mergeIntervals.js +3 -0
- package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
- package/lib/scheduling/helpers/splitIntervals.js +1 -1
- package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
- package/lib/scheduling/index.js.map +1 -1
- package/lib/scheduling/scheduling.types.js +14 -9
- package/lib/scheduling/scheduling.types.js.map +1 -1
- package/lib/scheduling/strategies/getNext.js +30 -22
- package/lib/scheduling/strategies/getNext.js.map +1 -1
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js +31 -22
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js +28 -21
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +28 -21
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextNoRepeat.js +23 -15
- package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
- package/lib/scheduling/strategies/getNextWeekday.js +78 -43
- package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +28 -21
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/index.js.map +1 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/schema.js +30 -22
- package/lib/schema/schema.js.map +1 -1
- package/lib/service-hours/__helpers__/calculate-hours.js +13 -4
- package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
- package/lib/service-hours/__helpers__/isOpen.js +7 -3
- package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
- package/lib/service-hours/index.js.map +1 -1
- package/lib/service-hours/schema.js +36 -21
- package/lib/service-hours/schema.js.map +1 -1
- package/package.json +4 -5
- package/mise.toml +0 -6
|
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getAuditItemsData = getAuditItemsData;
|
|
7
|
+
|
|
7
8
|
var _lodash = require("lodash");
|
|
9
|
+
|
|
8
10
|
var _ = require("../");
|
|
11
|
+
|
|
9
12
|
function getAuditItemsData(items, data) {
|
|
10
13
|
const {
|
|
11
14
|
settings: {
|
|
@@ -40,12 +43,14 @@ function getAuditItemsData(items, data) {
|
|
|
40
43
|
title
|
|
41
44
|
};
|
|
42
45
|
const currentGroupScores = (0, _lodash.get)(groupScores, key);
|
|
46
|
+
|
|
43
47
|
if (currentGroupScores) {
|
|
44
48
|
groupData.groupMaximumScore = (0, _lodash.round)(currentGroupScores.max, 2);
|
|
45
49
|
groupData.groupActualScore = (0, _lodash.round)(currentGroupScores.actual, 2);
|
|
46
50
|
groupData.groupResultScore = currentGroupScores.result;
|
|
47
51
|
groupData.groupPercentageResultScore = currentGroupScores.percentageResult;
|
|
48
52
|
}
|
|
53
|
+
|
|
49
54
|
groupData.items = items.map((item, itemIndex) => {
|
|
50
55
|
// NOTE: we handle scores of -1, 0 and 1
|
|
51
56
|
// -1 scores are skipped from group max and actual score
|
|
@@ -95,9 +100,8 @@ function getAuditItemsData(items, data) {
|
|
|
95
100
|
const key = `${groupIndex}-item-${itemIndex}`;
|
|
96
101
|
const matchingScore = (0, _lodash.find)(item.scores, {
|
|
97
102
|
value: score
|
|
98
|
-
});
|
|
103
|
+
}); // NOTE: ensure we have a score otherwise fallback to - value
|
|
99
104
|
|
|
100
|
-
// NOTE: ensure we have a score otherwise fallback to - value
|
|
101
105
|
const scoreLabel = hasScore && matchingScore && !skipped ? matchingScore.label : '-';
|
|
102
106
|
const scoreWeight = hasScore && !skipped ? item.scoreWeight : '-';
|
|
103
107
|
const weight = hasScore ? item.weight : '-';
|
|
@@ -4,8 +4,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getGeometryGeocodedString = getGeometryGeocodedString;
|
|
7
|
+
|
|
7
8
|
var _lodash = require("lodash");
|
|
9
|
+
|
|
8
10
|
const DEFAULT_PROPERTIES = ['label', 'postalcode', 'postcode'];
|
|
11
|
+
|
|
9
12
|
function getGeometryGeocodedString(geometryReverseGeocoded, properties = DEFAULT_PROPERTIES) {
|
|
10
13
|
if (!geometryReverseGeocoded) return 'Unknown Location';
|
|
11
14
|
return (0, _lodash.chain)(geometryReverseGeocoded).pick(properties).values().compact().join(', ').value();
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.getIssueDetails = getIssueDetails;
|
|
9
|
+
|
|
8
10
|
var _lodash = require("lodash");
|
|
11
|
+
|
|
9
12
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
13
|
+
|
|
10
14
|
var _ = require("../");
|
|
15
|
+
|
|
11
16
|
function getIssueDetails(data) {
|
|
12
17
|
const {
|
|
13
18
|
entity,
|
|
@@ -18,6 +23,7 @@ function getIssueDetails(data) {
|
|
|
18
23
|
assignees,
|
|
19
24
|
createdAt,
|
|
20
25
|
duration,
|
|
26
|
+
isPublicSubmission = false,
|
|
21
27
|
gps,
|
|
22
28
|
templateRevision,
|
|
23
29
|
sequenceId,
|
|
@@ -25,7 +31,9 @@ function getIssueDetails(data) {
|
|
|
25
31
|
user
|
|
26
32
|
} = entity;
|
|
27
33
|
const assigneeNames = (0, _.getAssigneesFullNames)(users, assignees);
|
|
34
|
+
|
|
28
35
|
const durationInMins = _momentTimezone.default.duration(duration, 'minutes');
|
|
36
|
+
|
|
29
37
|
const durationText = (0, _.getPrettyDuration)(durationInMins);
|
|
30
38
|
const fullName = (0, _.getUserFullName)(users, user);
|
|
31
39
|
const gpsText = (0, _lodash.get)(gps, 'reverseGeocoded.label', 'Unknown Location');
|
|
@@ -45,6 +53,7 @@ function getIssueDetails(data) {
|
|
|
45
53
|
gpsText,
|
|
46
54
|
fullName,
|
|
47
55
|
isClosedStatus,
|
|
56
|
+
isPublicSubmission,
|
|
48
57
|
locationText,
|
|
49
58
|
templateRevision,
|
|
50
59
|
sequenceId,
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.getJobDetails = getJobDetails;
|
|
9
|
+
|
|
8
10
|
var _lodash = require("lodash");
|
|
11
|
+
|
|
9
12
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
13
|
+
|
|
10
14
|
var _ = require("../");
|
|
15
|
+
|
|
11
16
|
function getJobDetails(data) {
|
|
12
17
|
const {
|
|
13
18
|
entity = {},
|
|
@@ -39,7 +44,9 @@ function getJobDetails(data) {
|
|
|
39
44
|
timestamp: due,
|
|
40
45
|
timezone
|
|
41
46
|
});
|
|
47
|
+
|
|
42
48
|
const timezoneAbbrText = _momentTimezone.default.tz(timezone).format('z');
|
|
49
|
+
|
|
43
50
|
return {
|
|
44
51
|
assigneeNames,
|
|
45
52
|
authorFullName,
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getLocationReference = getLocationReference;
|
|
7
|
+
|
|
7
8
|
var _lodash = require("lodash");
|
|
9
|
+
|
|
8
10
|
function getLocationReference(data = {}) {
|
|
9
11
|
const {
|
|
10
12
|
areaLabelPath = 'area.label',
|
|
@@ -13,37 +15,36 @@ function getLocationReference(data = {}) {
|
|
|
13
15
|
entity = {},
|
|
14
16
|
locations = {},
|
|
15
17
|
zones = {}
|
|
16
|
-
} = data;
|
|
18
|
+
} = data; // 1. If we can construct `{point}, {location}` use that
|
|
17
19
|
|
|
18
|
-
// 1. If we can construct `{point}, {location}` use that
|
|
19
20
|
const areaPoint = (0, _lodash.get)(entity, 'area.point.name');
|
|
20
21
|
const areaLocation = (0, _lodash.get)(entity, 'area.location.name');
|
|
22
|
+
|
|
21
23
|
if (areaLocation && areaPoint) {
|
|
22
24
|
return `${areaPoint} - ${areaLocation}`;
|
|
23
|
-
}
|
|
25
|
+
} // 2. Else, try and use area label
|
|
26
|
+
|
|
24
27
|
|
|
25
|
-
// 2. Else, try and use area label
|
|
26
28
|
const areaLabel = (0, _lodash.get)(entity, areaLabelPath);
|
|
29
|
+
|
|
27
30
|
if (areaLabel) {
|
|
28
31
|
return areaLabel;
|
|
29
|
-
}
|
|
32
|
+
} // 3. Else, try and use zone, location
|
|
30
33
|
|
|
31
|
-
// 3. Else, try and use zone, location
|
|
32
|
-
const location = entity.location;
|
|
33
|
-
const zone = entity.zone;
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
const location = entity.location;
|
|
36
|
+
const zone = entity.zone; // TODO This can be deprecated once we have removed visits as a feature. It's to account for
|
|
36
37
|
// legacy location ids being referenced. This temporary workaround allows us to use the area
|
|
37
38
|
// locations legacyId reference as a key which will match a legacy location id on the entity
|
|
39
|
+
|
|
38
40
|
const areaLocationMap = (0, _lodash.reduce)(areaLocations, (memo, location) => {
|
|
39
41
|
const legacyId = location?.legacyId?.toString();
|
|
40
42
|
if (!legacyId) return memo;
|
|
41
43
|
memo[legacyId] = location;
|
|
42
44
|
return memo;
|
|
43
|
-
}, {});
|
|
44
|
-
|
|
45
|
-
// NOTE we expect locations/zones in object map format so convert array to
|
|
45
|
+
}, {}); // NOTE we expect locations/zones in object map format so convert array to
|
|
46
46
|
// format before running through
|
|
47
|
+
|
|
47
48
|
const locationMap = (0, _lodash.isArray)(locations) ? (0, _lodash.reduce)(locations, (memo, location) => {
|
|
48
49
|
const locationId = location?._id?.toString();
|
|
49
50
|
if (!locationId) return memo;
|
|
@@ -55,25 +56,27 @@ function getLocationReference(data = {}) {
|
|
|
55
56
|
if (!zoneId) return memo;
|
|
56
57
|
memo[zoneId] = zone;
|
|
57
58
|
return memo;
|
|
58
|
-
}, {}) : zones;
|
|
59
|
+
}, {}) : zones; // NOTE location/zone can be passed as an object, object id or plain string
|
|
59
60
|
|
|
60
|
-
// NOTE location/zone can be passed as an object, object id or plain string
|
|
61
61
|
const locationName = (0, _lodash.isPlainObject)(location) ? location.name : location ? (0, _lodash.get)(areaLocationMap, `${location.toString()}.name`) || (0, _lodash.get)(locationMap, `${location.toString()}.name`) : undefined;
|
|
62
62
|
const zoneName = (0, _lodash.isPlainObject)(zone) ? zone.name : zone ? (0, _lodash.get)(zoneMap, `${zone.toString()}.name`) : undefined;
|
|
63
|
+
|
|
63
64
|
if (zoneName) {
|
|
64
65
|
const parts = (0, _lodash.compact)([zoneName, locationName]);
|
|
65
66
|
return parts.join(', ');
|
|
66
|
-
}
|
|
67
|
+
} // 4. Else, try and use location only
|
|
68
|
+
|
|
67
69
|
|
|
68
|
-
// 4. Else, try and use location only
|
|
69
70
|
if (locationName) {
|
|
70
71
|
return locationName;
|
|
71
|
-
}
|
|
72
|
+
} // 5. Else, try geocoded location
|
|
73
|
+
|
|
72
74
|
|
|
73
|
-
// 5. Else, try geocoded location
|
|
74
75
|
const geocodedLabel = (0, _lodash.get)(entity, geocodedLabelPath);
|
|
76
|
+
|
|
75
77
|
if (geocodedLabel) {
|
|
76
78
|
return geocodedLabel;
|
|
77
79
|
}
|
|
80
|
+
|
|
78
81
|
return 'Unknown Location';
|
|
79
82
|
}
|
|
@@ -4,20 +4,25 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getPrettyDuration = getPrettyDuration;
|
|
7
|
+
|
|
7
8
|
function getPrettyDuration(duration) {
|
|
8
9
|
const days = Math.floor(duration.asDays());
|
|
9
10
|
const hours = Math.floor(duration.asHours());
|
|
10
11
|
const hoursInDay = duration.hours();
|
|
11
12
|
const minutes = duration.minutes();
|
|
12
13
|
const seconds = duration.seconds();
|
|
14
|
+
|
|
13
15
|
if (days > 0) {
|
|
14
16
|
return `${days}d ${hoursInDay}h`;
|
|
15
17
|
}
|
|
18
|
+
|
|
16
19
|
if (hours > 0) {
|
|
17
20
|
return `${hours}h ${minutes}m`;
|
|
18
21
|
}
|
|
22
|
+
|
|
19
23
|
if (minutes > 0) {
|
|
20
24
|
return `${minutes}m`;
|
|
21
25
|
}
|
|
26
|
+
|
|
22
27
|
return `${seconds}s`;
|
|
23
28
|
}
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getReferenceDetails = getReferenceDetails;
|
|
7
|
+
|
|
7
8
|
var _ = require("../");
|
|
9
|
+
|
|
8
10
|
function getReferenceDetails(data) {
|
|
9
11
|
const {
|
|
10
12
|
entity,
|
|
@@ -15,11 +17,13 @@ function getReferenceDetails(data) {
|
|
|
15
17
|
} = entity;
|
|
16
18
|
let label = 'Reference';
|
|
17
19
|
let value = 'Unknown Reference';
|
|
20
|
+
|
|
18
21
|
if (user) {
|
|
19
22
|
const userFullName = (0, _.getUserFullName)(users, user);
|
|
20
23
|
label = 'User';
|
|
21
24
|
value = userFullName;
|
|
22
25
|
}
|
|
26
|
+
|
|
23
27
|
return {
|
|
24
28
|
label,
|
|
25
29
|
value
|
|
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.getStatusDetails = void 0;
|
|
7
|
+
|
|
7
8
|
var _lodash = require("lodash");
|
|
8
|
-
|
|
9
|
+
|
|
10
|
+
const getStatusDetails = (0, _lodash.memoize)(status => {
|
|
9
11
|
switch (status) {
|
|
10
12
|
case 'cancelled':
|
|
11
13
|
return {
|
|
@@ -14,6 +16,7 @@ const getStatusDetails = exports.getStatusDetails = (0, _lodash.memoize)(status
|
|
|
14
16
|
},
|
|
15
17
|
text: 'Cancelled'
|
|
16
18
|
};
|
|
19
|
+
|
|
17
20
|
case 'closed':
|
|
18
21
|
return {
|
|
19
22
|
style: {
|
|
@@ -21,6 +24,7 @@ const getStatusDetails = exports.getStatusDetails = (0, _lodash.memoize)(status
|
|
|
21
24
|
},
|
|
22
25
|
text: 'Closed'
|
|
23
26
|
};
|
|
27
|
+
|
|
24
28
|
case 'in-progress':
|
|
25
29
|
return {
|
|
26
30
|
style: {
|
|
@@ -28,6 +32,7 @@ const getStatusDetails = exports.getStatusDetails = (0, _lodash.memoize)(status
|
|
|
28
32
|
},
|
|
29
33
|
text: 'In Progress'
|
|
30
34
|
};
|
|
35
|
+
|
|
31
36
|
case 'open':
|
|
32
37
|
return {
|
|
33
38
|
style: {
|
|
@@ -35,6 +40,7 @@ const getStatusDetails = exports.getStatusDetails = (0, _lodash.memoize)(status
|
|
|
35
40
|
},
|
|
36
41
|
text: 'Open'
|
|
37
42
|
};
|
|
43
|
+
|
|
38
44
|
default:
|
|
39
45
|
return {
|
|
40
46
|
style: {
|
|
@@ -43,4 +49,5 @@ const getStatusDetails = exports.getStatusDetails = (0, _lodash.memoize)(status
|
|
|
43
49
|
text: 'Unknown'
|
|
44
50
|
};
|
|
45
51
|
}
|
|
46
|
-
});
|
|
52
|
+
});
|
|
53
|
+
exports.getStatusDetails = getStatusDetails;
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.getTimezoneAbbr = getTimezoneAbbr;
|
|
9
|
+
|
|
8
10
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
11
|
+
|
|
9
12
|
function getTimezoneAbbr(timezone) {
|
|
10
13
|
const mTimezoneTime = _momentTimezone.default.tz(timezone);
|
|
14
|
+
|
|
11
15
|
const timezoneText = mTimezoneTime.format('z');
|
|
12
16
|
return timezoneText;
|
|
13
17
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
4
5
|
Object.defineProperty(exports, "__esModule", {
|
|
5
6
|
value: true
|
|
6
7
|
});
|
|
7
8
|
exports.getTimezoneDatetime = getTimezoneDatetime;
|
|
9
|
+
|
|
8
10
|
var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
|
|
11
|
+
|
|
9
12
|
function getTimezoneDatetime(options) {
|
|
10
13
|
const {
|
|
11
14
|
format = 'ddd, MMM D h:mm:ssa',
|
|
@@ -14,7 +17,9 @@ function getTimezoneDatetime(options) {
|
|
|
14
17
|
timestamp = (0, _momentTimezone.default)(),
|
|
15
18
|
timezone
|
|
16
19
|
} = options;
|
|
20
|
+
|
|
17
21
|
const mTimezoneTime = _momentTimezone.default.tz(timestamp, timezone);
|
|
22
|
+
|
|
18
23
|
const datetimeText = mTimezoneTime.format(format);
|
|
19
24
|
const timezoneText = mTimezoneTime.format('z');
|
|
20
25
|
return showTzAbbr ? `${datetimeText} ${timezoneText}` : datetimeText;
|
|
@@ -4,37 +4,38 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.validateBase64Image = validateBase64Image;
|
|
7
|
+
|
|
7
8
|
function validateBase64Image(base64String) {
|
|
8
9
|
const isJpeg = base64String.startsWith('data:image/jpeg;base64,');
|
|
9
10
|
if (isJpeg) return validateJpegImage(base64String);
|
|
10
11
|
const isPng = base64String.startsWith('data:image/png;base64,');
|
|
11
12
|
if (isPng) return validatePngImage(base64String);
|
|
12
13
|
return false;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
// See SO for more info: https://stackoverflow.com/a/41635312
|
|
14
|
+
} // See SO for more info: https://stackoverflow.com/a/41635312
|
|
16
15
|
// Fiddle: https://jsfiddle.net/Lnyxuchw/
|
|
16
|
+
|
|
17
|
+
|
|
17
18
|
function validateJpegImage(base64string) {
|
|
18
19
|
const src = base64string;
|
|
19
20
|
const base64Data = src.replace('data:image/jpeg;base64,', '');
|
|
20
21
|
const imageData = new Uint8Array(Buffer.from(base64Data, 'base64'));
|
|
21
22
|
const imageCorrupted = imageData[imageData.length - 1] === 217 && imageData[imageData.length - 2] === 255;
|
|
22
23
|
return imageCorrupted;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
// See SO for more info: https://stackoverflow.com/a/41635312
|
|
24
|
+
} // See SO for more info: https://stackoverflow.com/a/41635312
|
|
26
25
|
// Fiddle: https://jsfiddle.net/Lnyxuchw/
|
|
26
|
+
|
|
27
|
+
|
|
27
28
|
function validatePngImage(base64string) {
|
|
28
29
|
const src = base64string;
|
|
29
30
|
const base64Data = src.replace('data:image/png;base64,', '');
|
|
30
31
|
const imageData = new Uint8Array(Buffer.from(base64Data, 'base64'));
|
|
31
|
-
const sequence = [0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];
|
|
32
|
+
const sequence = [0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130]; //check last 12 elements of array so they contains needed values
|
|
32
33
|
|
|
33
|
-
//check last 12 elements of array so they contains needed values
|
|
34
34
|
for (let i = 12; i > 0; i--) {
|
|
35
35
|
if (imageData[imageData.length - i] !== sequence[12 - i]) {
|
|
36
36
|
return false;
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
+
|
|
39
40
|
return true;
|
|
40
41
|
}
|
package/dist/helpers/index.js
CHANGED
|
@@ -3,34 +3,40 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
Object.defineProperty(exports, "
|
|
6
|
+
Object.defineProperty(exports, "getAuditEntryDetails", {
|
|
7
7
|
enumerable: true,
|
|
8
8
|
get: function () {
|
|
9
|
-
return
|
|
9
|
+
return _getAuditEntryDetails.getAuditEntryDetails;
|
|
10
10
|
}
|
|
11
11
|
});
|
|
12
|
-
Object.defineProperty(exports, "
|
|
12
|
+
Object.defineProperty(exports, "getAuditItemsData", {
|
|
13
13
|
enumerable: true,
|
|
14
14
|
get: function () {
|
|
15
|
-
return
|
|
15
|
+
return _getAuditItemsData.getAuditItemsData;
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
|
-
Object.defineProperty(exports, "
|
|
18
|
+
Object.defineProperty(exports, "buildFetchUrl", {
|
|
19
19
|
enumerable: true,
|
|
20
20
|
get: function () {
|
|
21
|
-
return
|
|
21
|
+
return _buildFetchUrl.buildFetchUrl;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
-
Object.defineProperty(exports, "
|
|
24
|
+
Object.defineProperty(exports, "fetchImage", {
|
|
25
25
|
enumerable: true,
|
|
26
26
|
get: function () {
|
|
27
|
-
return
|
|
27
|
+
return _fetchImage.fetchImage;
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
Object.defineProperty(exports, "
|
|
30
|
+
Object.defineProperty(exports, "validateBase64Image", {
|
|
31
31
|
enumerable: true,
|
|
32
32
|
get: function () {
|
|
33
|
-
return
|
|
33
|
+
return _fetchImage.validateBase64Image;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "getAssigneesFullNames", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function () {
|
|
39
|
+
return _getAssigneesFullNames.getAssigneesFullNames;
|
|
34
40
|
}
|
|
35
41
|
});
|
|
36
42
|
Object.defineProperty(exports, "getGeometryGeocodedString", {
|
|
@@ -105,26 +111,37 @@ Object.defineProperty(exports, "getValueAsPercentage", {
|
|
|
105
111
|
return _getValueAsPercentage.getValueAsPercentage;
|
|
106
112
|
}
|
|
107
113
|
});
|
|
108
|
-
|
|
109
|
-
enumerable: true,
|
|
110
|
-
get: function () {
|
|
111
|
-
return _fetchImage.validateBase64Image;
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
+
|
|
114
115
|
var _getAuditEntryDetails = require("./get-audit-entry-details");
|
|
116
|
+
|
|
115
117
|
var _getAuditItemsData = require("./get-audit-items-data");
|
|
118
|
+
|
|
116
119
|
var _buildFetchUrl = require("./build-fetch-url");
|
|
120
|
+
|
|
117
121
|
var _fetchImage = require("./fetch-image");
|
|
122
|
+
|
|
118
123
|
var _getAssigneesFullNames = require("./get-assignees-full-names");
|
|
124
|
+
|
|
119
125
|
var _getGeometryGeocodedString = require("./get-geometry-geocoded-string");
|
|
126
|
+
|
|
120
127
|
var _getIssueDetails = require("./get-issue-details");
|
|
128
|
+
|
|
121
129
|
var _getJobDetails = require("./get-job-details");
|
|
130
|
+
|
|
122
131
|
var _getLocationReference = require("./get-location-reference");
|
|
132
|
+
|
|
123
133
|
var _getPrettyDuration = require("./get-pretty-duration");
|
|
134
|
+
|
|
124
135
|
var _getReferenceDetails = require("./get-reference-details");
|
|
136
|
+
|
|
125
137
|
var _getStatusDetails = require("./get-status-details");
|
|
138
|
+
|
|
126
139
|
var _getTaskEntryDetails = require("./get-task-entry-details");
|
|
140
|
+
|
|
127
141
|
var _getTimezoneAbbr = require("./get-timezone-abbr");
|
|
142
|
+
|
|
128
143
|
var _getTimezoneDatetime = require("./get-timezone-datetime");
|
|
144
|
+
|
|
129
145
|
var _getUserFullName = require("./get-user-full-name");
|
|
146
|
+
|
|
130
147
|
var _getValueAsPercentage = require("./get-value-as-percentage");
|
package/dist/images/index.js
CHANGED
|
@@ -3,8 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.videoIcon = exports.
|
|
7
|
-
const launchIcon =
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
const videoIcon = exports.videoIcon = 'data:image/png;base64,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EAQQQACBNgUIuDY1WRYCCCCAQDACBFwwpaAhCCCAAAJtChBwbWqyLAQQQACBYAQIuGBKQUMQQAABBNoUIODa1GRZCCCAAALBCBBwwZSChiCAAAIItClAwLWpybIQQAABBIIRIOCCKQUNQQABBBBoU4CAa1OTZSGAAAIIBCNAwAVTChqCAAIIINCmAAHXpibLQgABBBAIRoCAC6YUNAQBBBBAoE0BAq5NTZaFAAIIIBCMAAEXTCloCAIIIIBAmwLzbS6MZSHQpcDJyYnb2tpyc3Nz7sqVK12+VFTLPj09zVyOj4/d5cuX3aVLl6JqP41FoCsBAq4r2QGXe3h46L74xS86BcLS0pL79Kc/PbI19+7dc1/60peyxx955BH36KOPuh/96EfZ7Q9+8IPuhS98Yfb3V77yFXf37t1zy5mdnc02qGtra07PfdWrXpWFz7mZ7t/429/+drbM4mP522984xvdG97whvxdTn352c9+5v71r39lG3FtzDUp5NbX17PXfNOb3uRmZmbOPa/ujS9/+ctub2/PPfzww+7xxx8/97QvfOEL7uDg4Nx9o27IsW6wyOuTn/zkuUX99a9/dT/+8Y+z+z70oQ+5F7zgBeceL95QmP3iF79wf//73zMX1dpPDz30kHv961/vXvva1zrVSJOv37Vr19xHP/pRP+u5388884z71re+ld33rne9K1sXdMM/18/8tre9zb3mNa/xN8/91jqi+fPTxz72Mac2TbMe5F97eXnZfepTnzrrU/41/vKXv7if/OQn2V0f+chH3He/+93atSurR37Z/B2vAAEXb+1GtnxhYcFdvXrVaaO5vb3t/ve//43cYGrDoHk0acOlDae/rb/9pA2Xv9/fp98aUWn63e9+l21gFFJvfvObzwVOfpnZzCP+KYaJ2v/9738/C6DiU7TMjY2N7OePf/yjUxhfv369ONvY2//4xz+cNuqa1LfNzc3MzT9JfVZw1ZkUsGU+Zc/1oZN/7Je//OXZ83/961+PrJee889//tN973vfczs7O/lFnP19+/bt7PE///nP7uMf/7hbXFzMPpyoffrAM2rK1+no6OhstmLtVetRAfenP/3prB9+Af5DSX75/rGy3/n1IP/aar9C/e1vf/uFp+k53l+vM0ntyupx4QW4I0oBAi7KslU3Wp/eFRCatNEZNSLQY5q0EXzlK1+ZfcrO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';
|
|
6
|
+
exports.videoIcon = exports.imageNotFound = exports.internalLinkIcon = exports.launchIcon = void 0;
|
|
7
|
+
const launchIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAYAAADFw8lbAAAABGdBTUEAALGPC/xhBQAAAsdJREFUWAntmE1oE0EUx9/bbiQxmIAIFhXsQUQQ2oLeDJjqwYsHPYi1aBWEnq0IXnNUL8WDFy8GrTQqePEsVZKDF5FaDyIIVkSPpYV8mG1mnNdl003Z7MfMbLYHB8JMZub93483O7NvByHGkjt3c69Vry9yzkfl3aCFyOcMeYFgS9ZqjqlBkg+e4hxnzWB38jPuTBx9f//t19sIMBZFhTMocuCHt2x4SmjsrJIuTF4DDmURyZ7V7vmTNHK6MDW9BYkMAVccpiGnkXRtR5KX7UgiA4QbhgEG5zBObDsior3LbUO2apVn7uBtbqZc8eoRxqyUeyBKO5fPr/x+87gRxcaZGwaS5pqZwuTrtmVddAxl6tXVtbVMYXq0WXv6M4p9WEjSFM8AvxBF3GuueI7ywDsHvMb69UWBJA1a+s0jChE/AuLLfsJ+/QbgUr36/IPfHPdYVEiy7R74iPClUV144BaMoy0DSRwD3fWykAMFVYEcGKgq5EBAdUDGDqoLMlZQHZAcYIkgxdH5OZZdvz0LogRj+7ubAILK3bPHHprm0JlUNjvRPUeDjMKO25FkT9xZkAwk+SuVSkxUi9TWGlEdy01QXkUbqK7l9oKkPi2gNqSe5Y4NVBUyW5wa31O8sq8foNOvFFFVyN2Fy+c7VufTxgZbPjEz45u4S4OqQtqRwpNUi3x2+Pu39YNO9LxqKVA9kF44/fsigyYBSfiRQJOCjASaJGRo0KQhQ4HqfHeTQ9ni+4weujSbEWfHIx0JhiygY+cL+uvVXFPkgssiI1wHA6/LZkGOM5XaF5SEm7XKqeFUen+rujCv4kjVNhCUHPx4V26pOlK1DwWq6kSH/X9QHVF0a3S/mRiD0+IK8oV7MO62+CA6HtYHgbbFb5c4K0dEujUS1lD3vHbH/OunaYpr8nsM+C0B6pu4+okojaG4CgeoNKrzf/x0/gGoGnZzJLiv/wAAAABJRU5ErkJggg==';
|
|
8
|
+
exports.launchIcon = launchIcon;
|
|
9
|
+
const internalLinkIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAABO0lEQVR4nO3XPUoDURSG4RdtLcZZgGkFa38qUxmyBTeQTqwFG1vBTdhYRyvRFShWugmnExQRBWXAyOGSycxN7s2cG88Lp0ggkIevGAYsy7IWqQ5wAdzMeJfACbDWFuQc+A54b8B+G5DjwJDyvoDteUOWgD4wmPGOgEJgrkm4noB8Aisk2jLwITAbJFwhIJskXGEQZdki2rJFtGWLaMsW0ZYtoi1bJFarwC3wCGxFXiQHhsAT0CVwA/GHXoCdSJAceBC/uSJw68D7FBgfSO4gyjsg0ju4xLwCu4EgGXDnIM6ImC+mCSSbN2IaTB0kawvhi5kEKRH3bSJ8MFUQNYimmHEQdYgmGBeiFlGHkZA97YhR/TEPTfn52UGcojh3mapTuYQvJglEHSYpRBUmScSo7u+7xeHfN5ZlWf+yHw9ZHGBm/MZGAAAAAElFTkSuQmCC';
|
|
10
|
+
exports.internalLinkIcon = internalLinkIcon;
|
|
11
|
+
const imageNotFound = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbgAAAG4CAAAAAASoa1vAAAABGdBTUEAALGPC/xhBQAADaRJREFUeNrt3Wub08YZxvF+/28wzrJpNhR2gQQItCmQQAOElNCUNEmbsCFcCStLPp9la95Vsixb9vqgsSVfM57//Sa7m5W80g89nkeWRn+SxMj8iV0AHAGOAAccAY4ABxwBjgBHgAOOAEeAA44AR4AjwAFHgCPAAUeAI8AR4IAjwBHggCPAEeCAI8AR4AhwwBHgCHDAEeAIcAQ44AhwBDjgCHAEOAIccAQ4AhxwBDgCHAEOOAIcAQ44AhwBDjgCHAGOAAccAY4ABxwBjgBHgAOOAEeAA44AR4AjBcE5ZGWAAw444IADDjjggAMOOOCAAw444MhBwJW9yua4phG4GTbKKxsM5/aDTEuNWiaxtUaZNirou6bC1YPMy/nGHHWun3mjgrqZcG6gsGDfFLi+wkYFrpFwPaUl62a41ZU2qmckXKC0ZNcMuK7SRgUmwrlqSw7MgBuobZVrIJyntmT/8N7iwniHD2dIR9ACbqGVK5sBVx4BN/cuXjOlHagFwM0yrJpz4qQ6tAhu2FmXdt0xKvX22s0ZHhBcz6ZPAXrAAQcccMABBxxwwAEHHHDAAQcccMABly2uZ8YlmMClP0zp+pOPU4b9hgucGXD13sJnYINWGTjt4WrLrkDV+dpn4KJUVl1WNWoApzFcY82FAj3gtIXrrH0xTW84AK686SLGUQU4HeE2X3w6coHTD66d4fX8MnC6wTUyvWAPOM3gvIwXnjaB0wsu6911+l27bjdcJfNLtoHTCS77fWiBC5w+cBWF12wDpw9cW+E1h8AVBqd8g7fKHTFSs/MnXcPhyqkfd1R7AaUX1ewjnvQJ1rKBcOmjRvU+qqbSiw70gquvqOLGwM1Offi7VJsM40rN3uT85f9gjYGbvksHym9CO0xKoUEqwdIxmTlwTnu8Bb764EHtDnmp243IlfExFyz0KQbBOV5zu/uE1SYlkvrd+V9vd5qeYy7ctjEebllsgDO8VNoLN1R71QpwmsCZPaq0GK6j9KIjBzhN4BpKL9oHThe4stKwsgGcLnBqb3IucNrAqZxlHjjAaQOnMoN6Ezh94BTGlYaMKW2By37INYDTCS7zVSe+A5xWcOVsp73MmRPYmseQVTIVS4Mep2QLXKanoZg0gYo1cBnm+B84wGkIt1GuXwZOS7gNT6DrOA5wesI5ldVjy6DhAKctXFguVxx0Pc8BTmc4p9xZQjeoOA5wesM5jtucf0iu3zaQzdLngJfrnb4/CkbDQbfpOWbGSrjiU+0FwbDjAmdYJh8jBVXgjMq01Q884AxK6oR2DziDkprLtLhJHIDLPe29fFAEXIGFUhY4iQNwBRbKKFXgDCyUcou5PYDToFDK4uYCAK7QQinVJ/cATodCKQu7+we4Qgtlca0ccMUWysJaOeCKLZSFtXLAFVsoC2vlgMsvqy5F6gKndVbeyxWUgdM41dVXbTaAM7BQymKubQeu6EIZxQXOwEJZTCsHXOGFsphWDrjiC2UhrRxwxRfKQlo54IovlIW0csDtoVAW0coBt4dCWUQrB9weCmUUDzgDC2UBrRxw+yiUBbRywO2lUObfygG3l0KZfysH3F4KZf6tHHA7pazwTIMGcAUdPK1Oq1JUocy9lQNuEi++tE5tXqiq0uZ4wOUfN3kAj18uplDKnB94DFycwTYVTe0RIvm2csCN09hm3F5V3Z4qcHkPDkdbnJ1SLJQ5t3LARZl//G3GmZk7ytuTZysHnHP52vFM05NUt9igBnC55tJNNsNyAYUy31YOuKWP3hkUUCjzbeWAWxiZZBxHVLfbojZwRY1Msg0ttyqUubZywK04dtYPLbvbblINuMJGJoncmhPOta03qQdccSOTpKy5eRfKPFs52+HKoy0G790dtqkBXIEjk/VDy9ou2zQArsCRydqh5Q6FMsdWznI4f8M7Uj3nQplfK2c33MbHFS8ZWtZ23KgRcPl97C2zDy13LJS5tXJWw2UpeoN8C2VurZzNcNUt9nNt963Kp5WzGc7P9le0ci2UebVyFsM1s/4Z9TwLZV6tnL1w2R/qPhta1vLZLg+4gkcmyQje3Xx+bN+tnLVwSp+E+jkWypxaOWvhfKW/pJdjocynlbMVrqle3fIqlPm0cpbCZR+ZzIaW3fw2LIdWzlK4nvq+buW5ZU3gih+ZFBEfuD2MTIqIB9weRiYFpA3cPkYm+WcE3D5GJgWkBpxxI5NcWjkL4Xwt4HZt5eyDa0k90gTOuJFJHq2cdXA9qUsqwBk3MsmhlbMNbqgP3Ag480Ymu7dydsFpMzLZvZWzC66nk9turZxVcDWpV5rAGTcy2bmVswmuJXVLBTjjRibjdIAzbmSyaytnD1xNapgacMaNTHZs5ayBa+notkMrZwuchiOT3Vo5W+B6erpt38pZAleTuqYCnHEjk51aOZPgvGanvWzGmFq7uyF9bd3kaO4P7bSXTXFfb3eanrlw7fH4wl+sLa7GKtukvzizSmV8WVrQNhUuGV4sTPbjjuSBZTQvN52ivWcmXGPFQKwvDy69FZeBNoyESw0v0u9zFXmASdeU+uzHQxPhyisGYo1DhEsfWulp8ssGwnmpH3f1umOq2NMp6RuYPcPhessryeGkvuKUzyHBlYPDc5s783yocIf4JtdwbIDb8iE3Gqfj2AHn1PxDYvNrji1w4RuddzApr/s86uDgDjnAAQcccMABBxxwwAEHHHDAAQcccMABBxxwwAEHHHDAAQcccMABBxxwwAEHHHDGwQ0767L0bmONU2+v3ZzhAcFtyrBqDltVZVqBQ4eTQc0Ut5rSPSsHDydHZTPcFB+7evhwsmUGnOIEYxbA9c2A6x8+nKu25MAMuIHaVrkGwjlqd552zYBTe0J14JgIpzb9nSG9nNod7D0j4ZQmnDTkLU7tTS5wjYRz6tnlfNcUODf73bTBfBUxB85x+9noRi3HoLSytXLB4txsBsFFtwxXNsd1DIubYaMu32JsFBwBDjjggAMOOOCAAw444AhwwAEHHHCGw5F9BTjgCHAEOOAIcAQ44AhwBDgCHHAEOAIccAQ4AhwBDjgCHAEOOAIcAY4ABxwBbpJRuz33fbUeqK6irjZ7k/S9AXBZ0hfix/A/fxPij/gHw1MhkgmXXgrxdvqb53euCPHB2fdju/D3J/l78v9dIf4Vf/UfIeIvfrt7LMTxnfPJ/56mOlskyfhmjP7T8MXF9Se9ZDWT+YNOxLPL648X/uizZ57lcNfjWY6/EVO40UdCfJb83hfJLr7ZWwlX+j0NN3ic/M6jfia4d1cn35y8XQ43t/7pwqXnvtVw4kX0vVeawf032i2V+OsHQtz+tVN/c088jY+4m26cRgpOfNROwT0U4tZ5s/nmhhCfh4zvwpyJW9F//Nkir9/HCQtkpSQ+eOn0Ll6URMldCje3/njhNy+vCXHPbrhSWHOCW2IGd1N8dSoex3VSiC/j97dfJ6XyzuKaxkfA7dF0x4aLfDGeb2sUCr6Jf+eOuL+wyO/Tb8KXvhJPi+ocibPRUrj0+pOF/S+F+N5iuE+viluB/E6IhwncH0LUvhdH40k9z8THc4OG5XCPxPh4jHfsmbg62e/9E3G6Ge5NeARNvnw1lr4MN7f+6cKjM3ElsBfu/jshvqsfiac/JnCfh3vZPxbfRv+qhfhGzsPdqo7TTCs4D5M9Hi5Smi3yIiFYB/dClJJnCYQv9/UyuPT6Uwv/OHvXtBFOPhZHn4jrfgLXEOI3KZ+Lk7A6OUL8Eo3tb0R5lB6cfDoH54f/+KvxjnWm9VHKn4W4WAF35XiccDRyLzksw1yP3raWwKXWn4IrC/E/m+EG0aDuvUzgnonrMd/PUr6P4SpTqxVwsnYsTv3xjr2IF0mqoLMCbpLzebjT6PeWwKXWn4Jzx3+jvXAyLJbPZAI3OBY3n4X5s7gVfiPEP6OfnZ+f35vA3fbHGc7DRUYP4lI5GabGLUZpVan89u04HSm/njrJYSla9hchJs8XOBKvLq0/BfeT5aVSysdRLzeBez3rscIyd038ZUL0ZAK3bHASHVbPhTgb79hTcTIZnfpXxVmmwcmryZevx2XWE+Ld+Nvm+IhcXP9scHJDHEu74QaunMJdEze/HOdEPJDyByG+ygYX3ImsY4gHcTvwxXjHb4ILB4dHcUF1r0QD3Gh4E7f/T4WoX15/svAw7PN/sBwuGaOFcL9OW+/vRKkZ7XJx+227d/GkNIFLGvDaApzsnMQ7NhyVihtvms3zsDV8KDfDSTdsvF9c9JyXH4hSZXIS568XXe8fYUO4ZP2pBvy+BC6Buzs9pPpH0di8fT8pnGcXc6e8Pl2Ek+9LMVz/UfI7jwdZ4OTbk8nvX41L5PDm5Ptr3SXrn53yeuEDl8BVUoP5x+LDaM/89MmREB/efb1wkvkynPx3cpL5/E50kvnub9NXWw8ne0+uh2s8fZqc5B69+jg6cxnDLK4/Ocn8vGLlSWaVBNWG8jKqH+sMvPnDZ1Dp67xL+CDV0AAHHAGOAAccAY4ABxwBjgBHgAOOAEeAA44AR4AjwAFHgCPAAUeAI8AR4IAjwBHggCPAEeCAI8AR4AhwwBHgCHDAEeAIcAQ44AhwBDjgCHAEOAIccAQ4AhxwBDgCHAEOOAIcAQ44AhwBDjgCHAGOAAccAY4ABxwBjgBHgAOOAEeAA44AR4AjwJme/wNPE7CQ+XnUYAAAAABJRU5ErkJggg==';
|
|
12
|
+
exports.imageNotFound = imageNotFound;
|
|
13
|
+
const videoIcon = 'data:image/png;base64,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EAQQQACBNgUIuDY1WRYCCCCAQDACBFwwpaAhCCCAAAJtChBwbWqyLAQQQACBYAQIuGBKQUMQQAABBNoUIODa1GRZCCCAAALBCBBwwZSChiCAAAIItClAwLWpybIQQAABBIIRIOCCKQUNQQABBBBoU4CAa1OTZSGAAAIIBCNAwAVTChqCAAIIINCmAAHXpibLQgABBBAIRoCAC6YUNAQBBBBAoE0BAq5NTZaFAAIIIBCMAAEXTCloCAIIIIBAmwLzbS6MZSHQpcDJyYnb2tpyc3Nz7sqVK12+VFTLPj09zVyOj4/d5cuX3aVLl6JqP41FoCsBAq4r2QGXe3h46L74xS86BcLS0pL79Kc/PbI19+7dc1/60peyxx955BH36KOPuh/96EfZ7Q9+8IPuhS98Yfb3V77yFXf37t1zy5mdnc02qGtra07PfdWrXpWFz7mZ7t/429/+drbM4mP522984xvdG97whvxdTn352c9+5v71r39lG3FtzDUp5NbX17PXfNOb3uRmZmbOPa/ujS9/+ctub2/PPfzww+7xxx8/97QvfOEL7uDg4Nx9o27IsW6wyOuTn/zkuUX99a9/dT/+8Y+z+z70oQ+5F7zgBeceL95QmP3iF79wf//73zMX1dpPDz30kHv961/vXvva1zrVSJOv37Vr19xHP/pRP+u5388884z71re+ld33rne9K1sXdMM/18/8tre9zb3mNa/xN8/91jqi+fPTxz72Mac2TbMe5F97eXnZfepTnzrrU/41/vKXv7if/OQn2V0f+chH3He/+93atSurR37Z/B2vAAEXb+1GtnxhYcFdvXrVaaO5vb3t/ve//43cYGrDoHk0acOlDae/rb/9pA2Xv9/fp98aUWn63e9+l21gFFJvfvObzwVOfpnZzCP+KYaJ2v/9738/C6DiU7TMjY2N7OePf/yjUxhfv369ONvY2//4xz+cNuqa1LfNzc3MzT9JfVZw1ZkUsGU+Zc/1oZN/7Je//OXZ83/961+PrJee889//tN973vfczs7O/lFnP19+/bt7PE///nP7uMf/7hbXFzMPpyoffrAM2rK1+no6OhstmLtVetRAfenP/3prB9+Af5DSX75/rGy3/n1IP/aar9C/e1vf/uFp+k53l+vM0ntyupx4QW4I0oBAi7KslU3Wp/eFRCatNEZNSLQY5q0EXzlK1+ZfcrO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';
|
|
14
|
+
exports.videoIcon = videoIcon;
|