@lighthouse/common 6.10.0-canary.3 → 6.10.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.
@@ -67,7 +67,7 @@ function getAuditItemsData(items, data) {
67
67
  KeyPairId,
68
68
  Signature
69
69
  });
70
- const link = shouldUseCloudfront ? `${cloudfrontBaseUrl}/${item.signedAssets[assetIndex]}` : `${awsS3BaseUrl}/${asset}`;
70
+ const link = shouldUseCloudfront ? `${cloudfrontBaseUrl}/${item.signedAssets?.[assetIndex] || asset}` : `${awsS3BaseUrl}/${asset}`;
71
71
  const thumbnailUrl = (0, _.buildFetchUrl)(asset, {
72
72
  awsS3BaseUrl,
73
73
  cloudfrontBaseUrl,
@@ -40,7 +40,7 @@ const LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io';
40
40
  * @param {string} data.start - start datetime of summary report
41
41
  * @param {object} data.settings - settings properties
42
42
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
43
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
43
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
44
44
  * @param {array} data.tasks - task documents
45
45
  * @param {string} data.timestamp - timestamp string
46
46
  * @param {string} data.timezone - timezone string
@@ -29,7 +29,7 @@ var _helpers2 = require("../../helpers");
29
29
  * @param {object} data.locations - locations documents
30
30
  * @param {object} data.settings - settings properties
31
31
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
32
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
32
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
33
33
  * @param {string} data.timezone - timezone string
34
34
  * @param {object} data.users - application user documents
35
35
  * @returns {Promise} returns pdfmake definition object
@@ -13,22 +13,6 @@ var _momentTimezone = _interopRequireDefault(require("moment-timezone"));
13
13
  var _helpers = require("../../../helpers");
14
14
  var _images = require("../../../images");
15
15
  var _ = require("../");
16
- function getSignatureImageSettings(url, settings) {
17
- if (!settings.shouldUseCloudfront) return {
18
- url,
19
- settings
20
- };
21
- // Signature PNGs are stored in S3 under signatures/ path which is outside
22
- // the CloudFront signed URL policy scope ({appId}/*). Fetch them directly
23
- // from S3 without CloudFront signed URL params.
24
- return {
25
- url,
26
- settings: {
27
- ...settings,
28
- shouldUseCloudfront: false
29
- }
30
- };
31
- }
32
16
  function buildFile({
33
17
  file,
34
18
  settings,
@@ -146,9 +130,9 @@ function buildSummaryField({
146
130
  width: 140
147
131
  };
148
132
  }
149
- const sig = getSignatureImageSettings(value, settings);
150
- return (0, _helpers.fetchImage)(sig.url, {
151
- ...sig.settings,
133
+ // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
134
+ return (0, _helpers.fetchImage)(value, {
135
+ ...settings,
152
136
  context: {
153
137
  stage: 'field',
154
138
  fieldLabel: field.label,
@@ -278,9 +262,9 @@ function buildTemplateFieldRow({
278
262
  }
279
263
  if (isSignatureField) {
280
264
  if (!value) return [labelText, ''];
281
- const sig = getSignatureImageSettings(value, settings);
282
- return (0, _helpers.fetchImage)(sig.url, {
283
- ...sig.settings,
265
+ // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
266
+ return (0, _helpers.fetchImage)(value, {
267
+ ...settings,
284
268
  context: {
285
269
  stage: 'field',
286
270
  fieldLabel: label,
@@ -27,7 +27,7 @@ var _helpers2 = require("../../helpers");
27
27
  * @param {object} data.locations - locations documents
28
28
  * @param {object} data.settings - settings properties
29
29
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
30
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
30
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
31
31
  * @param {string} data.timezone - timezone string
32
32
  * @param {object} data.users - application user documents
33
33
  * @param {object} data.zones - zone documents
@@ -50,7 +50,7 @@ const ACTIVITY_COLUMN_HEADERS = [{
50
50
  * @param {array} data.jobActivities - job activities documents
51
51
  * @param {object} data.settings - settings properties
52
52
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
53
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
53
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
54
54
  * @param {string} data.timezone - timezone string
55
55
  * @param {object} data.users - application user documents
56
56
  * @returns {Promise} returns pdfmake definition object
@@ -36,7 +36,7 @@ const LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io';
36
36
  * @param {object} data.shift - shift document
37
37
  * @param {object} data.settings - settings properties
38
38
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
39
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
39
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
40
40
  * @param {array} data.tasks - task documents
41
41
  * @param {string} data.timestamp - timestamp string
42
42
  * @param {string} data.timezone - timezone string
@@ -27,7 +27,7 @@ var _helpers2 = require("../../helpers");
27
27
  * @param {object} data.locations - locations documents
28
28
  * @param {object} data.settings - settings properties
29
29
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
30
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
30
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
31
31
  * @param {string} data.timezone - timezone string
32
32
  * @param {object} data.users - application user documents
33
33
  * @param {object} data.zones - zone documents
@@ -47,6 +47,7 @@ export function getAuditItemsData(items, data) {
47
47
  var rawAssets = item.assets || [];
48
48
  var assetCount = rawAssets.length;
49
49
  var assets = rawAssets.map(function (asset, assetIndex) {
50
+ var _item$signedAssets;
50
51
  var assetUrl = buildFetchUrl(asset, {
51
52
  awsS3BaseUrl: awsS3BaseUrl,
52
53
  cloudfrontBaseUrl: cloudfrontBaseUrl,
@@ -60,7 +61,7 @@ export function getAuditItemsData(items, data) {
60
61
  KeyPairId: KeyPairId,
61
62
  Signature: Signature
62
63
  });
63
- var link = shouldUseCloudfront ? "".concat(cloudfrontBaseUrl, "/").concat(item.signedAssets[assetIndex]) : "".concat(awsS3BaseUrl, "/").concat(asset);
64
+ var link = shouldUseCloudfront ? "".concat(cloudfrontBaseUrl, "/").concat(((_item$signedAssets = item.signedAssets) === null || _item$signedAssets === void 0 ? void 0 : _item$signedAssets[assetIndex]) || asset) : "".concat(awsS3BaseUrl, "/").concat(asset);
64
65
  var thumbnailUrl = buildFetchUrl(asset, _defineProperty(_defineProperty(_defineProperty(_defineProperty({
65
66
  awsS3BaseUrl: awsS3BaseUrl,
66
67
  cloudfrontBaseUrl: cloudfrontBaseUrl,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["find","groupBy","map","get","round","buildFetchUrl","getAuditItemsData","items","data","_data$settings","settings","_data$settings2","awsS3BaseUrl","cloudinaryBaseUrl","cloudfrontBaseUrl","Policy","KeyPairId","Signature","shouldUseCloudfront","_data$entity","entity","_data$entity2","groupScores","groupedItems","auditData","overallActualScore","overallMaximumScore","groupIndex","key","skipped","group","title","label","groupData","groupMaximumScore","groupActualScore","groupResultScore","groupPercentageResultScore","currentGroupScores","max","actual","result","percentageResult","item","itemIndex","hasScore","score","rawAssets","assets","assetCount","length","asset","assetIndex","assetUrl","height","width","quality","fit","link","concat","signedAssets","thumbnailUrl","_defineProperty","comments","matchingScore","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'\n\nimport { buildFetchUrl } from '../'\n\nexport function getAuditItemsData(items, data) {\n const {\n settings: {\n awsS3BaseUrl,\n cloudinaryBaseUrl,\n cloudfrontBaseUrl,\n Policy,\n KeyPairId,\n Signature,\n shouldUseCloudfront,\n } = {},\n entity: { groupScores } = {},\n } = data\n\n const groupedItems = groupBy(items, 'group.id')\n\n const auditData = {\n overallActualScore: 0,\n overallMaximumScore: 0,\n }\n\n auditData.items = map(groupedItems, (items, groupIndex) => {\n const key = groupIndex\n const skipped = !!items[0].group.skipped\n const title = items[0].group.label\n\n const groupData = {\n key,\n groupMaximumScore: 0,\n groupActualScore: 0,\n groupResultScore: 0,\n groupPercentageResultScore: 0,\n skipped,\n title,\n }\n\n const currentGroupScores = get(groupScores, key)\n\n if (currentGroupScores) {\n groupData.groupMaximumScore = round(currentGroupScores.max, 2)\n groupData.groupActualScore = round(currentGroupScores.actual, 2)\n groupData.groupResultScore = currentGroupScores.result\n groupData.groupPercentageResultScore = currentGroupScores.percentageResult\n }\n\n groupData.items = items.map((item, itemIndex) => {\n // NOTE: we handle scores of -1, 0 and 1\n // -1 scores are skipped from group max and actual score\n // 0 and 1 must be included in the final scores\n const hasScore = item.score !== null && item.score !== -1\n const rawAssets = item.assets || []\n const assetCount = rawAssets.length\n\n const assets = rawAssets.map((asset, assetIndex) => {\n const assetUrl = buildFetchUrl(asset, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n height: 400,\n width: 600,\n quality: 50,\n fit: true,\n shouldUseCloudfront,\n Policy,\n KeyPairId,\n Signature,\n })\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${item.signedAssets[assetIndex]}`\n : `${awsS3BaseUrl}/${asset}`\n\n const thumbnailUrl = buildFetchUrl(asset, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n shouldUseCloudfront,\n width: 100,\n quality: 50,\n fit: true,\n shouldUseCloudfront,\n Policy,\n KeyPairId,\n Signature,\n })\n\n const key = `${groupIndex}-item-asset-${assetIndex}`\n\n return {\n assetUrl,\n key,\n link,\n thumbnailUrl,\n }\n })\n\n const comments = item.comments\n const label = item.label\n const score = item.score\n const key = `${groupIndex}-item-${itemIndex}`\n const matchingScore = find(item.scores, { value: score })\n\n // NOTE: ensure we have a score otherwise fallback to - value\n const scoreLabel =\n hasScore && matchingScore && !skipped ? matchingScore.label : '-'\n const scoreWeight = hasScore && !skipped ? item.scoreWeight : '-'\n const weight = hasScore ? item.weight : '-'\n\n return {\n assetCount,\n assets,\n comments,\n key,\n label,\n questionId: item._id,\n score,\n scoreLabel,\n scoreWeight,\n weight,\n }\n })\n\n return groupData\n })\n\n return auditData\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["find","groupBy","map","get","round","buildFetchUrl","getAuditItemsData","items","data","_data$settings","settings","_data$settings2","awsS3BaseUrl","cloudinaryBaseUrl","cloudfrontBaseUrl","Policy","KeyPairId","Signature","shouldUseCloudfront","_data$entity","entity","_data$entity2","groupScores","groupedItems","auditData","overallActualScore","overallMaximumScore","groupIndex","key","skipped","group","title","label","groupData","groupMaximumScore","groupActualScore","groupResultScore","groupPercentageResultScore","currentGroupScores","max","actual","result","percentageResult","item","itemIndex","hasScore","score","rawAssets","assets","assetCount","length","asset","assetIndex","_item$signedAssets","assetUrl","height","width","quality","fit","link","concat","signedAssets","thumbnailUrl","_defineProperty","comments","matchingScore","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'\n\nimport { buildFetchUrl } from '../'\n\nexport function getAuditItemsData(items, data) {\n const {\n settings: {\n awsS3BaseUrl,\n cloudinaryBaseUrl,\n cloudfrontBaseUrl,\n Policy,\n KeyPairId,\n Signature,\n shouldUseCloudfront,\n } = {},\n entity: { groupScores } = {},\n } = data\n\n const groupedItems = groupBy(items, 'group.id')\n\n const auditData = {\n overallActualScore: 0,\n overallMaximumScore: 0,\n }\n\n auditData.items = map(groupedItems, (items, groupIndex) => {\n const key = groupIndex\n const skipped = !!items[0].group.skipped\n const title = items[0].group.label\n\n const groupData = {\n key,\n groupMaximumScore: 0,\n groupActualScore: 0,\n groupResultScore: 0,\n groupPercentageResultScore: 0,\n skipped,\n title,\n }\n\n const currentGroupScores = get(groupScores, key)\n\n if (currentGroupScores) {\n groupData.groupMaximumScore = round(currentGroupScores.max, 2)\n groupData.groupActualScore = round(currentGroupScores.actual, 2)\n groupData.groupResultScore = currentGroupScores.result\n groupData.groupPercentageResultScore = currentGroupScores.percentageResult\n }\n\n groupData.items = items.map((item, itemIndex) => {\n // NOTE: we handle scores of -1, 0 and 1\n // -1 scores are skipped from group max and actual score\n // 0 and 1 must be included in the final scores\n const hasScore = item.score !== null && item.score !== -1\n const rawAssets = item.assets || []\n const assetCount = rawAssets.length\n\n const assets = rawAssets.map((asset, assetIndex) => {\n const assetUrl = buildFetchUrl(asset, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n height: 400,\n width: 600,\n quality: 50,\n fit: true,\n shouldUseCloudfront,\n Policy,\n KeyPairId,\n Signature,\n })\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${item.signedAssets?.[assetIndex] || asset}`\n : `${awsS3BaseUrl}/${asset}`\n\n const thumbnailUrl = buildFetchUrl(asset, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n shouldUseCloudfront,\n width: 100,\n quality: 50,\n fit: true,\n shouldUseCloudfront,\n Policy,\n KeyPairId,\n Signature,\n })\n\n const key = `${groupIndex}-item-asset-${assetIndex}`\n\n return {\n assetUrl,\n key,\n link,\n thumbnailUrl,\n }\n })\n\n const comments = item.comments\n const label = item.label\n const score = item.score\n const key = `${groupIndex}-item-${itemIndex}`\n const matchingScore = find(item.scores, { value: score })\n\n // NOTE: ensure we have a score otherwise fallback to - value\n const scoreLabel =\n hasScore && matchingScore && !skipped ? matchingScore.label : '-'\n const scoreWeight = hasScore && !skipped ? item.scoreWeight : '-'\n const weight = hasScore ? item.weight : '-'\n\n return {\n assetCount,\n assets,\n comments,\n key,\n label,\n questionId: item._id,\n score,\n scoreLabel,\n scoreWeight,\n weight,\n }\n })\n\n return groupData\n })\n\n return auditData\n}\n"],"mappings":"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","ignoreList":[]}
@@ -39,7 +39,7 @@ var LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io';
39
39
  * @param {string} data.start - start datetime of summary report
40
40
  * @param {object} data.settings - settings properties
41
41
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
42
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
42
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
43
43
  * @param {array} data.tasks - task documents
44
44
  * @param {string} data.timestamp - timestamp string
45
45
  * @param {string} data.timezone - timezone string
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["filter","find","groupBy","isEmpty","map","size","sortBy","take","toString","reduce","moment","Promise","generateDefinition","buildLocationScansContent","buildLocationScansBoundaries","horizontalLine","summaryStatTable","summaryWrapperTable","table","summaryFieldsTable","text","zebraFillColor","getLocationReference","getTimezoneAbbr","getTimezoneDatetime","launchIcon","DEFAULT_MAX_SCANS","MAX_ATTACHMENTS","LIGHTHOUSE_BASE_URL","buildActivityPdf","_x","_x2","_buildActivityPdf","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","pdfOptions","data","timestamp","timezone","title","content","wrap","_context","prev","next","generateContent","sent","abrupt","_objectSpread","fileTitle","type","stop","_x3","_generateContent","_callee2","activitySection","summarySection","titleTable","_context2","buildActivitySection","buildSummarySection","buildTitleTable","_x4","_buildActivitySection","_callee3","_data$showAlternate","showAlternate","locationScans","otherActivity","activitySummary","_context3","buildLocationScansSection","buildOtherActivitySection","buildActivitySummarySection","_x5","_buildActivitySummarySection","_callee4","audits","events","issues","_data$maxScans","maxScans","settings","tasks","enterEvents","exceedsMaxScans","scans","auditRows","issueRows","scanRows","taskRows","formCount","exceedsMaxForms","rows","sortedRows","header","hLine","activityTable","activitySummarySection","maxScansText","maxFormsText","_context4","event","getFormRowData","getScanRowData","concat","_toConsumableArray","style","body","layout","buildActivityTable","link","margin","push","_x6","_buildActivityTable","_callee6","_ref","timezoneAbbr","activityTableHeader","activityTableRows","activityTableBody","_context6","bold","alignment","_ref4","_callee5","location","icon","name","summaryFields","timezoneHour","iconCell","hasSummaryFields","fieldsTable","activityTableRow","_context5","format","showTzAbbr","fit","image","fields","colSpan","dontBreakRows","headerRow","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","widths","_x8","fillColor","start","zones","hourIntervalBoundaries","hourIntervalColumnHeaders","columns","interval","index","intervals","scansTableHeader","sortedZones","groupedEventsByZone","memo","zone","zoneEvents","_id","scansTableRows","length","undefined","sortedGroup","locationScansByInterval","locationScansByIntervalContent","totalEvents","zoneDoc","doc","zoneName","scansTableBody","scansTable","eventsByType","enterEventsCount","enter","issuesCount","tasksCount","auditsCount","auditsText","issuesText","scansText","tasksText","auditsCountText","scansCountText","issuesCountText","tasksCountText","auditTable","scanTable","issueTable","taskTables","wrapperTable","_x7","_buildOtherActivitySection","_callee7","otherActivitySummarySection","_context7","end","_location$address","address","headerTitle","headerSubTitle","addressText","street","city","state","postalCode","headerAddress","mTimezoneStart","tz","mTimezoneEnd","rangeStart","rangeEnd","add","startOf","headerRange","collection","_ref2","locations","users","document","createdAt","_document$entry","entry","_document$title","_document$user","user","entity","userDoc","firstName","lastName","_ref3","_document$user2","_document$zone"],"sources":["../../../src/pdf/activity-report/index.js"],"sourcesContent":["import {\n filter,\n find,\n groupBy,\n isEmpty,\n map,\n size,\n sortBy,\n take,\n toString,\n reduce,\n} from 'lodash'\n\nimport moment from 'moment-timezone'\nimport Promise from 'bluebird'\n\nimport {\n generateDefinition,\n buildLocationScansContent,\n buildLocationScansBoundaries,\n horizontalLine,\n summaryStatTable,\n summaryWrapperTable,\n table,\n summaryFieldsTable,\n text,\n zebraFillColor,\n} from '../helpers'\n\nimport {\n getLocationReference,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\nimport { launchIcon } from '../../images'\n\nconst DEFAULT_MAX_SCANS = 200\nconst MAX_ATTACHMENTS = 100\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\n/**\n * buildActivityPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {array} data.audits - audit documents\n * @param {string} data.end - end datetime of summary report\n * @param {array} data.events - event documents\n * @param {object} data.location - location document\n * @param {array} data.locations - location documents\n * @param {array} data.issues - issue documents\n * @param {bool} data.maxScans - max scans to include in standard report\n * @param {bool} data.showAlternate - show alternate summary report\n * @param {string} data.start - start datetime of summary report\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {array} data.tasks - task documents\n * @param {string} data.timestamp - timestamp string\n * @param {string} data.timezone - timezone string\n * @param {array} data.zones - zone documents\n * @param {array} data.users - user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport async function buildActivityPdf(pdfOptions, data) {\n const { timestamp, timezone } = data\n\n const title = 'Daily Activity Report'\n const content = await generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle: title,\n timestamp,\n timezone,\n type: 'Activity Summary',\n ...pdfOptions,\n })\n}\n\nasync function generateContent(data) {\n const activitySection = await buildActivitySection(data)\n const summarySection = buildSummarySection(data)\n const titleTable = buildTitleTable(data)\n\n return [titleTable, summarySection, activitySection]\n}\n\nasync function buildActivitySection(data) {\n const { showAlternate = false } = data\n\n if (showAlternate) {\n const locationScans = buildLocationScansSection(data)\n const otherActivity = await buildOtherActivitySection(data)\n\n return [locationScans, otherActivity]\n }\n\n const activitySummary = await buildActivitySummarySection(data)\n\n return [activitySummary]\n}\n\nasync function buildActivitySummarySection(data) {\n const {\n audits,\n events,\n issues,\n maxScans = DEFAULT_MAX_SCANS,\n settings,\n tasks,\n timezone,\n } = data\n\n const enterEvents = filter(events, event => event.type === 'enter')\n const exceedsMaxScans = size(enterEvents) > maxScans\n const scans = take(enterEvents, maxScans)\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const scanRows = map(scans, getScanRowData(data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const formCount = size([...auditRows, ...issueRows, ...taskRows])\n const exceedsMaxForms = formCount > MAX_ATTACHMENTS\n\n const rows = [...auditRows, ...issueRows, ...scanRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Activity Summary', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n const activitySummarySection = [header, hLine, activityTable]\n\n if (exceedsMaxScans) {\n const maxScansText = {\n text: [\n text(\n `Location Scans in the Daily Activity Report are limited to a total of ${maxScans}.`\n ),\n text(' To view all Location Scans visit '),\n text('the Events Report', {\n link: `${LIGHTHOUSE_BASE_URL}/reports/events`,\n }),\n text(' in the Lighthouse Management Console.'),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n\n activitySummarySection.push(maxScansText)\n }\n\n if (exceedsMaxForms) {\n const maxFormsText = {\n text: [\n text(\n `Detailed Form Submissions in the Daily Activity Report are limited to a total of ${MAX_ATTACHMENTS}. `\n ),\n text(\n 'To access individual Form Submissions, open the hyperlink next to the respective submission within the Activity Summary table. Alternatively, they may be accessed in the Lighthouse Management Console.'\n ),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n activitySummarySection.push(maxFormsText)\n }\n\n return activitySummarySection\n}\n\nasync function buildActivityTable({ rows, settings, timezone }) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const activityTableHeader = [\n text('Activity', { bold: true }),\n { text: '' }, // icon column\n text('Location', { bold: true }),\n text('User', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const activityTableRows = await Promise.map(rows, async function(data) {\n const { link, location, icon, name, summaryFields, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const iconCell = icon\n ? { alignment: 'center', fit: [8, 8], image: icon, link }\n : { text: '' }\n\n // NOTE: pass link to each column as\n // we can't wrap the entire table row\n const rows = [\n [\n text(title, { link }),\n iconCell,\n text(location, { link }),\n text(name, { link }),\n text(timezoneHour, { alignment: 'right', link }),\n ],\n ]\n\n const hasSummaryFields = !isEmpty(summaryFields)\n\n if (hasSummaryFields) {\n const fieldsTable = await summaryFieldsTable({\n fields: summaryFields,\n settings,\n timezone,\n })\n rows.push([fieldsTable])\n }\n\n // NOTE: we return a table per row which includes the entry details and the\n // summary fields if relevant\n const activityTableRow = [\n table({\n body: [...rows],\n colSpan: 5,\n dontBreakRows: true,\n headerRow: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n // NOTE: the timestamp must fill up the rest of the table space as\n // otherwise the padding would be off between this table and the parent\n // table that wraps it\n widths: [130, 25, 110, 110, '*'],\n }),\n ]\n\n return activityTableRow\n })\n\n const activityTableBody = isEmpty(activityTableRows)\n ? [[text('No other activity', { colSpan: 5 })]]\n : activityTableRows\n\n const activityTable = table({\n body: [activityTableHeader, ...activityTableBody],\n dontBreakRows: true,\n layout: {\n hLineWidth: () => 0,\n fillColor: zebraFillColor,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [120, 15, 100, 100, '*'],\n })\n\n return activityTable\n}\n\nfunction buildLocationScansSection(data) {\n const { events, start, timezone, zones } = data\n\n const title = text('Location Scans', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n // use start time and timezone to figure out the interval boundaries\n const hourIntervalBoundaries = buildLocationScansBoundaries(start, timezone)\n\n // pair interval boundaries into column headers for the table\n const hourIntervalColumnHeaders = hourIntervalBoundaries.reduce(\n (columns, interval, index, intervals) => {\n if (index < size(intervals) - 1)\n // skip the final iteration as it's just the end of the last interval\n columns.push(\n text(`${interval.format('h')}-${intervals[index + 1].format('hA')}`, {\n alignment: 'center',\n bold: true,\n })\n )\n return columns\n },\n []\n )\n\n const scansTableHeader = [\n text('Location', { bold: true }),\n ...hourIntervalColumnHeaders,\n text('Total', { alignment: 'right', bold: true }),\n ]\n\n const hLine = horizontalLine()\n\n // NOTE: only show the enter events within the summary table\n const enterEvents = filter(events, event => event.type === 'enter')\n const sortedZones = sortBy(zones, ['name'])\n\n const groupedEventsByZone = reduce(\n sortedZones,\n (memo, zone) => {\n const zoneEvents = filter(\n enterEvents,\n event => event.zone && event.zone.toString() === zone._id.toString()\n )\n memo[zone._id] = zoneEvents\n return memo\n },\n {}\n )\n\n const scansTableRows = map(groupedEventsByZone, (events, zone = '') => {\n const sortedGroup = sortBy(events, ['timestamp'], ['asc'])\n\n // put events into interval buckets\n const locationScansByInterval = buildLocationScansContent(\n hourIntervalBoundaries,\n events\n )\n // map the interval buckets to a format fit for the table\n const locationScansByIntervalContent = locationScansByInterval.map(\n interval => {\n return { alignment: 'center', text: size(interval) }\n }\n )\n\n const totalEvents = size(sortedGroup)\n\n const zoneDoc =\n zone && find(zones, doc => doc._id.toString() === zone.toString())\n const zoneName = (zoneDoc && zoneDoc.name) || 'Unknown Location'\n\n return [\n zoneName,\n ...locationScansByIntervalContent,\n { alignment: 'right', bold: true, text: totalEvents },\n ]\n })\n\n const scansTableBody = isEmpty(scansTableRows)\n ? [[text('No location scans', { colSpan: 10 })]]\n : scansTableRows\n\n const scansTable = table({\n body: [scansTableHeader, ...scansTableBody],\n widths: [100, '*', '*', '*', '*', '*', '*', '*', '*', '*'],\n })\n\n return [header, hLine, scansTable]\n}\n\nfunction buildSummarySection(data) {\n const { audits, events, issues, tasks } = data\n\n //const userEvents = groupBy(events, 'user')\n const eventsByType = groupBy(events, 'type')\n\n const enterEventsCount = size(eventsByType.enter)\n //const geoEventsCount = size(eventsByType.geo)\n const issuesCount = size(issues)\n const tasksCount = size(tasks)\n const auditsCount = size(audits)\n //const uniqueUsers = size(userEvents)\n\n const auditsText = text('AUDITS', { style: 'summaryText' })\n //const geoText = text('GPS', { style: 'summaryText' })\n const issuesText = text('ISSUES', { style: 'summaryText' })\n //const peopleText = text('PEOPLE', { style: 'summaryText' })\n const scansText = text('SCANS', { style: 'summaryText' })\n const tasksText = text('TASKS', { style: 'summaryText' })\n\n const auditsCountText = text(toString(auditsCount), { style: 'summaryCount' })\n //const peopleCountText = text(toString(uniqueUsers), { style: 'summaryCount' })\n const scansCountText = text(toString(enterEventsCount), {\n style: 'summaryCount',\n })\n //const geoCountText = text(toString(geoEventsCount), { style: 'summaryCount' })\n const issuesCountText = text(toString(issuesCount), { style: 'summaryCount' })\n const tasksCountText = text(toString(tasksCount), { style: 'summaryCount' })\n\n const auditTable = summaryStatTable({\n body: [[auditsText], [auditsCountText]],\n })\n //const peopleTable = summaryStatTable({\n // body: [[peopleText], [peopleCountText]],\n //})\n //const gpsTable = summaryStatTable({ body: [[geoText], [geoCountText]] })\n const scanTable = summaryStatTable({ body: [[scansText], [scansCountText]] })\n const issueTable = summaryStatTable({\n body: [[issuesText], [issuesCountText]],\n })\n const taskTables = summaryStatTable({ body: [[tasksText], [tasksCountText]] })\n\n const wrapperTable = summaryWrapperTable({\n body: [\n [\n /*peopleTable,*/\n /*gpsTable,*/\n scanTable,\n issueTable,\n taskTables,\n auditTable,\n ],\n ],\n })\n\n return wrapperTable\n}\n\nasync function buildOtherActivitySection(data) {\n const { audits, issues, tasks, settings, timezone } = data\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const rows = [...auditRows, ...issueRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Other Activity', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n\n const otherActivitySummarySection = [header, hLine, activityTable]\n\n const formCount = size(rows)\n const exceedsMaxForms = formCount > MAX_ATTACHMENTS\n\n if (exceedsMaxForms) {\n const maxFormsText = {\n text: [\n text(\n `Detailed Form Submissions in the Daily Activity Report are limited to a total of ${MAX_ATTACHMENTS}. `\n ),\n text(\n 'To access individual Form Submissions, open the hyperlink next to the respective submission within the Other Activity table. Alternatively, they may be accessed in the Lighthouse Management Console.'\n ),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n otherActivitySummarySection.push(maxFormsText)\n }\n\n return otherActivitySummarySection\n}\n\nfunction buildTitleTable(data) {\n const { location, start, end, timezone } = data\n const { address = {} } = location\n\n const headerTitle = text('Daily Activity Report', { style: 'title' })\n const headerSubTitle = text(location.name, { style: 'subTitle' })\n const addressText = !isEmpty(address)\n ? `${address.street}, ${address.city || ''} ${address.state ||\n ''} ${address.postalCode || ''}`\n : ''\n const headerAddress = text(addressText, { style: 'small' })\n\n const mTimezoneStart = moment.tz(start, timezone)\n const mTimezoneEnd = moment.tz(end, timezone)\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const rangeStart = moment(mTimezoneStart).format('MMM DD h:mma')\n\n const rangeEnd = moment(mTimezoneEnd)\n .add(1, 'hour')\n .startOf('hour')\n .format('MMM DD h:mma')\n\n const headerRange = text(`${rangeStart} - ${rangeEnd} (${timezoneAbbr})`, {\n style: 'subTitle2',\n })\n\n const body = !isEmpty(address)\n ? [[headerTitle], [headerSubTitle], [headerAddress], [headerRange]]\n : [[headerTitle], [headerSubTitle], [headerRange]]\n\n return table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n}\n\nfunction getFormRowData(collection, { locations, users, zones }) {\n return document => {\n const {\n _id,\n createdAt,\n entry = {},\n title = 'Unknown',\n user = '',\n } = document\n\n const location = getLocationReference({\n entity: document,\n locations,\n zones,\n })\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/${collection}/${_id}`\n const timestamp = createdAt\n const userDoc = find(users, doc => doc._id.toString() === user.toString())\n const name =\n (userDoc && `${userDoc.firstName} ${userDoc.lastName}`) || 'Unknown User'\n\n // NOTE: currently only issues and tasks will return summary fields, audits\n // aren't supported and will return an empty array here\n const summaryFields = entry.summaryFields || []\n\n return {\n icon: launchIcon,\n location,\n link,\n name,\n summaryFields,\n timestamp,\n title,\n }\n }\n}\n\nfunction getScanRowData({ users, zones }) {\n return document => {\n const { timestamp, user = '', zone = '' } = document\n\n const userDoc =\n user && find(users, doc => doc._id.toString() === user.toString())\n const zoneDoc =\n zone && find(zones, doc => doc._id.toString() === zone.toString())\n\n const zoneName = zoneDoc && zoneDoc.name\n const location = zoneName || 'Unknown Location'\n\n const name =\n (userDoc && `${userDoc.firstName} ${userDoc.lastName}`) || 'Unknown User'\n\n const title = 'Location Scan'\n\n return {\n location,\n timestamp,\n name,\n title,\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["filter","find","groupBy","isEmpty","map","size","sortBy","take","toString","reduce","moment","Promise","generateDefinition","buildLocationScansContent","buildLocationScansBoundaries","horizontalLine","summaryStatTable","summaryWrapperTable","table","summaryFieldsTable","text","zebraFillColor","getLocationReference","getTimezoneAbbr","getTimezoneDatetime","launchIcon","DEFAULT_MAX_SCANS","MAX_ATTACHMENTS","LIGHTHOUSE_BASE_URL","buildActivityPdf","_x","_x2","_buildActivityPdf","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","pdfOptions","data","timestamp","timezone","title","content","wrap","_context","prev","next","generateContent","sent","abrupt","_objectSpread","fileTitle","type","stop","_x3","_generateContent","_callee2","activitySection","summarySection","titleTable","_context2","buildActivitySection","buildSummarySection","buildTitleTable","_x4","_buildActivitySection","_callee3","_data$showAlternate","showAlternate","locationScans","otherActivity","activitySummary","_context3","buildLocationScansSection","buildOtherActivitySection","buildActivitySummarySection","_x5","_buildActivitySummarySection","_callee4","audits","events","issues","_data$maxScans","maxScans","settings","tasks","enterEvents","exceedsMaxScans","scans","auditRows","issueRows","scanRows","taskRows","formCount","exceedsMaxForms","rows","sortedRows","header","hLine","activityTable","activitySummarySection","maxScansText","maxFormsText","_context4","event","getFormRowData","getScanRowData","concat","_toConsumableArray","style","body","layout","buildActivityTable","link","margin","push","_x6","_buildActivityTable","_callee6","_ref","timezoneAbbr","activityTableHeader","activityTableRows","activityTableBody","_context6","bold","alignment","_ref4","_callee5","location","icon","name","summaryFields","timezoneHour","iconCell","hasSummaryFields","fieldsTable","activityTableRow","_context5","format","showTzAbbr","fit","image","fields","colSpan","dontBreakRows","headerRow","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","widths","_x8","fillColor","start","zones","hourIntervalBoundaries","hourIntervalColumnHeaders","columns","interval","index","intervals","scansTableHeader","sortedZones","groupedEventsByZone","memo","zone","zoneEvents","_id","scansTableRows","length","undefined","sortedGroup","locationScansByInterval","locationScansByIntervalContent","totalEvents","zoneDoc","doc","zoneName","scansTableBody","scansTable","eventsByType","enterEventsCount","enter","issuesCount","tasksCount","auditsCount","auditsText","issuesText","scansText","tasksText","auditsCountText","scansCountText","issuesCountText","tasksCountText","auditTable","scanTable","issueTable","taskTables","wrapperTable","_x7","_buildOtherActivitySection","_callee7","otherActivitySummarySection","_context7","end","_location$address","address","headerTitle","headerSubTitle","addressText","street","city","state","postalCode","headerAddress","mTimezoneStart","tz","mTimezoneEnd","rangeStart","rangeEnd","add","startOf","headerRange","collection","_ref2","locations","users","document","createdAt","_document$entry","entry","_document$title","_document$user","user","entity","userDoc","firstName","lastName","_ref3","_document$user2","_document$zone"],"sources":["../../../src/pdf/activity-report/index.js"],"sourcesContent":["import {\n filter,\n find,\n groupBy,\n isEmpty,\n map,\n size,\n sortBy,\n take,\n toString,\n reduce,\n} from 'lodash'\n\nimport moment from 'moment-timezone'\nimport Promise from 'bluebird'\n\nimport {\n generateDefinition,\n buildLocationScansContent,\n buildLocationScansBoundaries,\n horizontalLine,\n summaryStatTable,\n summaryWrapperTable,\n table,\n summaryFieldsTable,\n text,\n zebraFillColor,\n} from '../helpers'\n\nimport {\n getLocationReference,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\nimport { launchIcon } from '../../images'\n\nconst DEFAULT_MAX_SCANS = 200\nconst MAX_ATTACHMENTS = 100\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\n/**\n * buildActivityPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {array} data.audits - audit documents\n * @param {string} data.end - end datetime of summary report\n * @param {array} data.events - event documents\n * @param {object} data.location - location document\n * @param {array} data.locations - location documents\n * @param {array} data.issues - issue documents\n * @param {bool} data.maxScans - max scans to include in standard report\n * @param {bool} data.showAlternate - show alternate summary report\n * @param {string} data.start - start datetime of summary report\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {array} data.tasks - task documents\n * @param {string} data.timestamp - timestamp string\n * @param {string} data.timezone - timezone string\n * @param {array} data.zones - zone documents\n * @param {array} data.users - user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport async function buildActivityPdf(pdfOptions, data) {\n const { timestamp, timezone } = data\n\n const title = 'Daily Activity Report'\n const content = await generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle: title,\n timestamp,\n timezone,\n type: 'Activity Summary',\n ...pdfOptions,\n })\n}\n\nasync function generateContent(data) {\n const activitySection = await buildActivitySection(data)\n const summarySection = buildSummarySection(data)\n const titleTable = buildTitleTable(data)\n\n return [titleTable, summarySection, activitySection]\n}\n\nasync function buildActivitySection(data) {\n const { showAlternate = false } = data\n\n if (showAlternate) {\n const locationScans = buildLocationScansSection(data)\n const otherActivity = await buildOtherActivitySection(data)\n\n return [locationScans, otherActivity]\n }\n\n const activitySummary = await buildActivitySummarySection(data)\n\n return [activitySummary]\n}\n\nasync function buildActivitySummarySection(data) {\n const {\n audits,\n events,\n issues,\n maxScans = DEFAULT_MAX_SCANS,\n settings,\n tasks,\n timezone,\n } = data\n\n const enterEvents = filter(events, (event) => event.type === 'enter')\n const exceedsMaxScans = size(enterEvents) > maxScans\n const scans = take(enterEvents, maxScans)\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const scanRows = map(scans, getScanRowData(data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const formCount = size([...auditRows, ...issueRows, ...taskRows])\n const exceedsMaxForms = formCount > MAX_ATTACHMENTS\n\n const rows = [...auditRows, ...issueRows, ...scanRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Activity Summary', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n const activitySummarySection = [header, hLine, activityTable]\n\n if (exceedsMaxScans) {\n const maxScansText = {\n text: [\n text(\n `Location Scans in the Daily Activity Report are limited to a total of ${maxScans}.`\n ),\n text(' To view all Location Scans visit '),\n text('the Events Report', {\n link: `${LIGHTHOUSE_BASE_URL}/reports/events`,\n }),\n text(' in the Lighthouse Management Console.'),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n\n activitySummarySection.push(maxScansText)\n }\n\n if (exceedsMaxForms) {\n const maxFormsText = {\n text: [\n text(\n `Detailed Form Submissions in the Daily Activity Report are limited to a total of ${MAX_ATTACHMENTS}. `\n ),\n text(\n 'To access individual Form Submissions, open the hyperlink next to the respective submission within the Activity Summary table. Alternatively, they may be accessed in the Lighthouse Management Console.'\n ),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n activitySummarySection.push(maxFormsText)\n }\n\n return activitySummarySection\n}\n\nasync function buildActivityTable({ rows, settings, timezone }) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const activityTableHeader = [\n text('Activity', { bold: true }),\n { text: '' }, // icon column\n text('Location', { bold: true }),\n text('User', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const activityTableRows = await Promise.map(rows, async function (data) {\n const { link, location, icon, name, summaryFields, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const iconCell = icon\n ? { alignment: 'center', fit: [8, 8], image: icon, link }\n : { text: '' }\n\n // NOTE: pass link to each column as\n // we can't wrap the entire table row\n const rows = [\n [\n text(title, { link }),\n iconCell,\n text(location, { link }),\n text(name, { link }),\n text(timezoneHour, { alignment: 'right', link }),\n ],\n ]\n\n const hasSummaryFields = !isEmpty(summaryFields)\n\n if (hasSummaryFields) {\n const fieldsTable = await summaryFieldsTable({\n fields: summaryFields,\n settings,\n timezone,\n })\n rows.push([fieldsTable])\n }\n\n // NOTE: we return a table per row which includes the entry details and the\n // summary fields if relevant\n const activityTableRow = [\n table({\n body: [...rows],\n colSpan: 5,\n dontBreakRows: true,\n headerRow: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n // NOTE: the timestamp must fill up the rest of the table space as\n // otherwise the padding would be off between this table and the parent\n // table that wraps it\n widths: [130, 25, 110, 110, '*'],\n }),\n ]\n\n return activityTableRow\n })\n\n const activityTableBody = isEmpty(activityTableRows)\n ? [[text('No other activity', { colSpan: 5 })]]\n : activityTableRows\n\n const activityTable = table({\n body: [activityTableHeader, ...activityTableBody],\n dontBreakRows: true,\n layout: {\n hLineWidth: () => 0,\n fillColor: zebraFillColor,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [120, 15, 100, 100, '*'],\n })\n\n return activityTable\n}\n\nfunction buildLocationScansSection(data) {\n const { events, start, timezone, zones } = data\n\n const title = text('Location Scans', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n // use start time and timezone to figure out the interval boundaries\n const hourIntervalBoundaries = buildLocationScansBoundaries(start, timezone)\n\n // pair interval boundaries into column headers for the table\n const hourIntervalColumnHeaders = hourIntervalBoundaries.reduce(\n (columns, interval, index, intervals) => {\n if (index < size(intervals) - 1)\n // skip the final iteration as it's just the end of the last interval\n columns.push(\n text(`${interval.format('h')}-${intervals[index + 1].format('hA')}`, {\n alignment: 'center',\n bold: true,\n })\n )\n return columns\n },\n []\n )\n\n const scansTableHeader = [\n text('Location', { bold: true }),\n ...hourIntervalColumnHeaders,\n text('Total', { alignment: 'right', bold: true }),\n ]\n\n const hLine = horizontalLine()\n\n // NOTE: only show the enter events within the summary table\n const enterEvents = filter(events, (event) => event.type === 'enter')\n const sortedZones = sortBy(zones, ['name'])\n\n const groupedEventsByZone = reduce(\n sortedZones,\n (memo, zone) => {\n const zoneEvents = filter(\n enterEvents,\n (event) => event.zone && event.zone.toString() === zone._id.toString()\n )\n memo[zone._id] = zoneEvents\n return memo\n },\n {}\n )\n\n const scansTableRows = map(groupedEventsByZone, (events, zone = '') => {\n const sortedGroup = sortBy(events, ['timestamp'], ['asc'])\n\n // put events into interval buckets\n const locationScansByInterval = buildLocationScansContent(\n hourIntervalBoundaries,\n events\n )\n // map the interval buckets to a format fit for the table\n const locationScansByIntervalContent = locationScansByInterval.map(\n (interval) => {\n return { alignment: 'center', text: size(interval) }\n }\n )\n\n const totalEvents = size(sortedGroup)\n\n const zoneDoc =\n zone && find(zones, (doc) => doc._id.toString() === zone.toString())\n const zoneName = (zoneDoc && zoneDoc.name) || 'Unknown Location'\n\n return [\n zoneName,\n ...locationScansByIntervalContent,\n { alignment: 'right', bold: true, text: totalEvents },\n ]\n })\n\n const scansTableBody = isEmpty(scansTableRows)\n ? [[text('No location scans', { colSpan: 10 })]]\n : scansTableRows\n\n const scansTable = table({\n body: [scansTableHeader, ...scansTableBody],\n widths: [100, '*', '*', '*', '*', '*', '*', '*', '*', '*'],\n })\n\n return [header, hLine, scansTable]\n}\n\nfunction buildSummarySection(data) {\n const { audits, events, issues, tasks } = data\n\n //const userEvents = groupBy(events, 'user')\n const eventsByType = groupBy(events, 'type')\n\n const enterEventsCount = size(eventsByType.enter)\n //const geoEventsCount = size(eventsByType.geo)\n const issuesCount = size(issues)\n const tasksCount = size(tasks)\n const auditsCount = size(audits)\n //const uniqueUsers = size(userEvents)\n\n const auditsText = text('AUDITS', { style: 'summaryText' })\n //const geoText = text('GPS', { style: 'summaryText' })\n const issuesText = text('ISSUES', { style: 'summaryText' })\n //const peopleText = text('PEOPLE', { style: 'summaryText' })\n const scansText = text('SCANS', { style: 'summaryText' })\n const tasksText = text('TASKS', { style: 'summaryText' })\n\n const auditsCountText = text(toString(auditsCount), { style: 'summaryCount' })\n //const peopleCountText = text(toString(uniqueUsers), { style: 'summaryCount' })\n const scansCountText = text(toString(enterEventsCount), {\n style: 'summaryCount',\n })\n //const geoCountText = text(toString(geoEventsCount), { style: 'summaryCount' })\n const issuesCountText = text(toString(issuesCount), { style: 'summaryCount' })\n const tasksCountText = text(toString(tasksCount), { style: 'summaryCount' })\n\n const auditTable = summaryStatTable({\n body: [[auditsText], [auditsCountText]],\n })\n //const peopleTable = summaryStatTable({\n // body: [[peopleText], [peopleCountText]],\n //})\n //const gpsTable = summaryStatTable({ body: [[geoText], [geoCountText]] })\n const scanTable = summaryStatTable({ body: [[scansText], [scansCountText]] })\n const issueTable = summaryStatTable({\n body: [[issuesText], [issuesCountText]],\n })\n const taskTables = summaryStatTable({ body: [[tasksText], [tasksCountText]] })\n\n const wrapperTable = summaryWrapperTable({\n body: [\n [\n /*peopleTable,*/\n /*gpsTable,*/\n scanTable,\n issueTable,\n taskTables,\n auditTable,\n ],\n ],\n })\n\n return wrapperTable\n}\n\nasync function buildOtherActivitySection(data) {\n const { audits, issues, tasks, settings, timezone } = data\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const rows = [...auditRows, ...issueRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Other Activity', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n\n const otherActivitySummarySection = [header, hLine, activityTable]\n\n const formCount = size(rows)\n const exceedsMaxForms = formCount > MAX_ATTACHMENTS\n\n if (exceedsMaxForms) {\n const maxFormsText = {\n text: [\n text(\n `Detailed Form Submissions in the Daily Activity Report are limited to a total of ${MAX_ATTACHMENTS}. `\n ),\n text(\n 'To access individual Form Submissions, open the hyperlink next to the respective submission within the Other Activity table. Alternatively, they may be accessed in the Lighthouse Management Console.'\n ),\n ],\n style: 'small',\n margin: [0, 10, 0, 10],\n }\n otherActivitySummarySection.push(maxFormsText)\n }\n\n return otherActivitySummarySection\n}\n\nfunction buildTitleTable(data) {\n const { location, start, end, timezone } = data\n const { address = {} } = location\n\n const headerTitle = text('Daily Activity Report', { style: 'title' })\n const headerSubTitle = text(location.name, { style: 'subTitle' })\n const addressText = !isEmpty(address)\n ? `${address.street}, ${address.city || ''} ${\n address.state || ''\n } ${address.postalCode || ''}`\n : ''\n const headerAddress = text(addressText, { style: 'small' })\n\n const mTimezoneStart = moment.tz(start, timezone)\n const mTimezoneEnd = moment.tz(end, timezone)\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const rangeStart = moment(mTimezoneStart).format('MMM DD h:mma')\n\n const rangeEnd = moment(mTimezoneEnd)\n .add(1, 'hour')\n .startOf('hour')\n .format('MMM DD h:mma')\n\n const headerRange = text(`${rangeStart} - ${rangeEnd} (${timezoneAbbr})`, {\n style: 'subTitle2',\n })\n\n const body = !isEmpty(address)\n ? [[headerTitle], [headerSubTitle], [headerAddress], [headerRange]]\n : [[headerTitle], [headerSubTitle], [headerRange]]\n\n return table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n}\n\nfunction getFormRowData(collection, { locations, users, zones }) {\n return (document) => {\n const {\n _id,\n createdAt,\n entry = {},\n title = 'Unknown',\n user = '',\n } = document\n\n const location = getLocationReference({\n entity: document,\n locations,\n zones,\n })\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/${collection}/${_id}`\n const timestamp = createdAt\n const userDoc = find(users, (doc) => doc._id.toString() === user.toString())\n const name =\n (userDoc && `${userDoc.firstName} ${userDoc.lastName}`) || 'Unknown User'\n\n // NOTE: currently only issues and tasks will return summary fields, audits\n // aren't supported and will return an empty array here\n const summaryFields = entry.summaryFields || []\n\n return {\n icon: launchIcon,\n location,\n link,\n name,\n summaryFields,\n timestamp,\n title,\n }\n }\n}\n\nfunction getScanRowData({ users, zones }) {\n return (document) => {\n const { timestamp, user = '', zone = '' } = document\n\n const userDoc =\n user && find(users, (doc) => doc._id.toString() === user.toString())\n const zoneDoc =\n zone && find(zones, (doc) => doc._id.toString() === zone.toString())\n\n const zoneName = zoneDoc && zoneDoc.name\n const location = zoneName || 'Unknown Location'\n\n const name =\n (userDoc && `${userDoc.firstName} ${userDoc.lastName}`) || 'Unknown User'\n\n const title = 'Location Scan'\n\n return {\n location,\n timestamp,\n name,\n title,\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -27,7 +27,7 @@ import { getAuditEntryDetails } from '../../helpers';
27
27
  * @param {object} data.locations - locations documents
28
28
  * @param {object} data.settings - settings properties
29
29
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
30
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
30
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
31
31
  * @param {string} data.timezone - timezone string
32
32
  * @param {object} data.users - application user documents
33
33
  * @returns {Promise} returns pdfmake definition object
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Promise","isEmpty","round","moment","buildAuditContent","buildAuditFollowUps","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","_pdfOptions$flags","flags","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","catch","err","Error","message","_entity$followUps","followUps","_entity$footerFields","footerFields","_entity$gps","gps","_entity$headerFields","headerFields","_entity$score","score","_entity$title","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","targetServiceLevel","renderTargetFields","headerTitle","style","headerScore","alignment","firstRow","subTitle","headerSubTitle","colSpan","secondRow","reverseGeocoded","address","renderHeaderAddress","dummyColumn","headerAddress","renderThirdRow","thirdRow","serviceLevelBelow","serviceLevelText","scoreServiceLevelSubTitle","truncatedTargetPercent","scoreTargetText","scoreTargetSubTitle","scoreBreakdown","actual","max","scorePercentage","scoreTitle","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","settings","footerTemplate","formGroups","headerTemplate","auditItemsTitle","font","lineHeight","props","_ref","_toConsumableArray"],"sources":["../../../src/pdf/audit/index.js"],"sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildAuditContent,\n buildAuditFollowUps,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\nimport { getAuditEntryDetails } from '../../helpers'\n\n/**\n * buildAuditPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} pdfOptions.flags - flags to conditionally render parts of the pdf\n * @param {object} data - pdf data\n * @param {object} data.entity - audit document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildAuditPdf(pdfOptions, data) {\n const { entity, timezone } = data\n const { flags = {} } = pdfOptions\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data, flags)\n .then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Audit',\n ...pdfOptions,\n })\n )\n .catch(err => {\n throw new Error(`BuildAuditPdfError: ${err.message}`)\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n\n const {\n followUps = [],\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n title = 'Unknown',\n } = entity\n\n const timezone = entity?.timezone || data?.timezone || 'UTC'\n const entityDetails = getAuditEntryDetails(data)\n\n const {\n gpsText,\n groupedData,\n locationText,\n referenceValue,\n timezoneHourTime,\n scoreText,\n target,\n targetServiceLevel,\n } = entityDetails\n\n const renderTargetFields = !!targetServiceLevel\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const firstRow = [headerTitle, headerScore]\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n\n let headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n let secondRow = [headerSubTitle]\n\n const reverseGeocoded = gps.reverseGeocoded\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const dummyColumn = text(' ', { style: 'small' })\n\n let headerAddress = text(address, { colSpan: 2, style: 'small' })\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n let thirdRow = renderHeaderAddress ? [headerAddress] : []\n\n if (renderTargetFields) {\n headerSubTitle = text(subTitle, { style: 'subTitle' })\n\n const serviceLevelBelow = targetServiceLevel === 'below'\n const serviceLevelText =\n targetServiceLevel === 'above'\n ? 'Above Target'\n : targetServiceLevel === 'on'\n ? 'On Target'\n : targetServiceLevel === 'below'\n ? 'Below Target'\n : ''\n\n const scoreServiceLevelSubTitle = text(serviceLevelText, {\n alignment: 'right',\n style: serviceLevelBelow ? 'serviceLevelBelow' : 'serviceLevelAboveOrOn',\n })\n\n secondRow = [headerSubTitle, scoreServiceLevelSubTitle]\n headerAddress = text(address, { style: 'small' })\n\n const truncatedTargetPercent = round(target, 2)\n const scoreTargetText = `(Target - ${truncatedTargetPercent}%)`\n const scoreTargetSubTitle = text(scoreTargetText, {\n alignment: 'right',\n style: 'subTitle',\n })\n\n thirdRow = renderHeaderAddress\n ? [headerAddress, scoreTargetSubTitle]\n : [dummyColumn, scoreTargetSubTitle]\n }\n\n const scoreBreakdown = text(\n `${round(score.actual, 2)} / ${round(score.max, 2)}`,\n {\n alignment: 'right',\n style: 'totalScore',\n }\n )\n const scorePercentage = text(scoreText, {\n alignment: 'right',\n colSpan: 2,\n style: 'totalAuditScore',\n })\n const scoreTitle = text('Total Score', { style: 'totalScore' })\n\n const body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt, dummyColumn])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays())\n .toString()\n .padStart(2, '0')\n const hours = Math.floor(momentDuration.hours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n colSpan: 2,\n style: 'small',\n }\n )\n\n body.push([startedAt, dummyColumn])\n body.push([submittedAt, dummyColumn])\n body.push([formDuration, dummyColumn])\n }\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 100],\n margin: [0, 0, 0, 30],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 100],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const followUpItems = buildAuditFollowUps(followUps, { timezone })\n\n const promises = {\n entry: buildAuditContent(groupedData.items, data.settings),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n const auditItemsTitle = [\n {\n text: 'Audit Items',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n },\n },\n hLineTop,\n ]\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => [\n titleTable,\n followUpItems,\n ...auditItemsTitle,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\n ])\n .catch(err => {\n throw new Error(`GenerateContentError: ${err.message}`)\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Promise","isEmpty","round","moment","buildAuditContent","buildAuditFollowUps","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","text","twoColumnTable","getAuditEntryDetails","buildAuditPdf","pdfOptions","data","entity","timezone","_pdfOptions$flags","flags","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","catch","err","Error","message","_entity$followUps","followUps","_entity$footerFields","footerFields","_entity$gps","gps","_entity$headerFields","headerFields","_entity$score","score","_entity$title","entityDetails","gpsText","groupedData","locationText","referenceValue","timezoneHourTime","scoreText","target","targetServiceLevel","renderTargetFields","headerTitle","style","headerScore","alignment","firstRow","subTitle","headerSubTitle","colSpan","secondRow","reverseGeocoded","address","renderHeaderAddress","dummyColumn","headerAddress","renderThirdRow","thirdRow","serviceLevelBelow","serviceLevelText","scoreServiceLevelSubTitle","truncatedTargetPercent","scoreTargetText","scoreTargetSubTitle","scoreBreakdown","actual","max","scorePercentage","scoreTitle","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","settings","footerTemplate","formGroups","headerTemplate","auditItemsTitle","font","lineHeight","props","_ref","_toConsumableArray"],"sources":["../../../src/pdf/audit/index.js"],"sourcesContent":["import Promise from 'bluebird'\nimport { isEmpty, round } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildAuditContent,\n buildAuditFollowUps,\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n text,\n twoColumnTable,\n} from '../helpers'\nimport { getAuditEntryDetails } from '../../helpers'\n\n/**\n * buildAuditPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} pdfOptions.flags - flags to conditionally render parts of the pdf\n * @param {object} data - pdf data\n * @param {object} data.entity - audit document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildAuditPdf(pdfOptions, data) {\n const { entity, timezone } = data\n const { flags = {} } = pdfOptions\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n const fileTitle = `Audit Report - ${title}`\n\n return generateContent(data, flags)\n .then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Audit',\n ...pdfOptions,\n })\n )\n .catch((err) => {\n throw new Error(`BuildAuditPdfError: ${err.message}`)\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n\n const {\n followUps = [],\n footerFields = {},\n gps = {},\n headerFields = {},\n score = {},\n title = 'Unknown',\n } = entity\n\n const timezone = entity?.timezone || data?.timezone || 'UTC'\n const entityDetails = getAuditEntryDetails(data)\n\n const {\n gpsText,\n groupedData,\n locationText,\n referenceValue,\n timezoneHourTime,\n scoreText,\n target,\n targetServiceLevel,\n } = entityDetails\n\n const renderTargetFields = !!targetServiceLevel\n const headerTitle = text(title, { style: 'title' })\n const headerScore = text(scoreText, { alignment: 'right', style: 'title' })\n const firstRow = [headerTitle, headerScore]\n const subTitle = `${\n locationText || gpsText\n } - ${timezoneHourTime} by ${referenceValue}`\n\n let headerSubTitle = text(subTitle, { colSpan: 2, style: 'subTitle' })\n let secondRow = [headerSubTitle]\n\n const reverseGeocoded = gps.reverseGeocoded\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const renderHeaderAddress = !isEmpty(reverseGeocoded)\n const dummyColumn = text(' ', { style: 'small' })\n\n let headerAddress = text(address, { colSpan: 2, style: 'small' })\n const renderThirdRow = renderHeaderAddress || renderTargetFields\n let thirdRow = renderHeaderAddress ? [headerAddress] : []\n\n if (renderTargetFields) {\n headerSubTitle = text(subTitle, { style: 'subTitle' })\n\n const serviceLevelBelow = targetServiceLevel === 'below'\n const serviceLevelText =\n targetServiceLevel === 'above'\n ? 'Above Target'\n : targetServiceLevel === 'on'\n ? 'On Target'\n : targetServiceLevel === 'below'\n ? 'Below Target'\n : ''\n\n const scoreServiceLevelSubTitle = text(serviceLevelText, {\n alignment: 'right',\n style: serviceLevelBelow ? 'serviceLevelBelow' : 'serviceLevelAboveOrOn',\n })\n\n secondRow = [headerSubTitle, scoreServiceLevelSubTitle]\n headerAddress = text(address, { style: 'small' })\n\n const truncatedTargetPercent = round(target, 2)\n const scoreTargetText = `(Target - ${truncatedTargetPercent}%)`\n const scoreTargetSubTitle = text(scoreTargetText, {\n alignment: 'right',\n style: 'subTitle',\n })\n\n thirdRow = renderHeaderAddress\n ? [headerAddress, scoreTargetSubTitle]\n : [dummyColumn, scoreTargetSubTitle]\n }\n\n const scoreBreakdown = text(\n `${round(score.actual, 2)} / ${round(score.max, 2)}`,\n {\n alignment: 'right',\n style: 'totalScore',\n }\n )\n const scorePercentage = text(scoreText, {\n alignment: 'right',\n colSpan: 2,\n style: 'totalAuditScore',\n })\n const scoreTitle = text('Total Score', { style: 'totalScore' })\n\n const body = renderThirdRow\n ? [firstRow, secondRow, thirdRow]\n : [firstRow, secondRow]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt, dummyColumn])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n colSpan: 2,\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n colSpan: 2,\n style: 'small',\n }\n )\n\n body.push([startedAt, dummyColumn])\n body.push([submittedAt, dummyColumn])\n body.push([formDuration, dummyColumn])\n }\n\n const titleTable = twoColumnTable({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n widths: ['*', 100],\n margin: [0, 0, 0, 30],\n })\n\n const totalScoreTable = twoColumnTable({\n body: [[scoreTitle, scoreBreakdown], [scorePercentage]],\n layout: 'noBorders',\n widths: ['*', 100],\n })\n\n const hLineTop = horizontalLine({ margin: [0, 10, 0, 0] })\n const hLineBottom = horizontalLine()\n\n const followUpItems = buildAuditFollowUps(followUps, { timezone })\n\n const promises = {\n entry: buildAuditContent(groupedData.items, data.settings),\n footerTemplate: buildTemplateContent(footerFields.formGroups, data),\n headerTemplate: buildTemplateContent(headerFields.formGroups, data),\n }\n\n const auditItemsTitle = [\n {\n text: 'Audit Items',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n },\n },\n hLineTop,\n ]\n\n return Promise.props(promises)\n .then(({ entry, footerTemplate, headerTemplate }) => [\n titleTable,\n followUpItems,\n ...auditItemsTitle,\n ...headerTemplate,\n ...entry,\n hLineTop,\n totalScoreTable,\n hLineBottom,\n ...footerTemplate,\n ])\n .catch((err) => {\n throw new Error(`GenerateContentError: ${err.message}`)\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,21 +8,6 @@ import moment from 'moment-timezone';
8
8
  import { buildFetchUrl, fetchImage } from '../../../helpers';
9
9
  import { videoIcon } from '../../../images';
10
10
  import { imageTables, parseValue, text, toPdf } from '../';
11
- function getSignatureImageSettings(url, settings) {
12
- if (!settings.shouldUseCloudfront) return {
13
- url: url,
14
- settings: settings
15
- };
16
- // Signature PNGs are stored in S3 under signatures/ path which is outside
17
- // the CloudFront signed URL policy scope ({appId}/*). Fetch them directly
18
- // from S3 without CloudFront signed URL params.
19
- return {
20
- url: url,
21
- settings: _objectSpread(_objectSpread({}, settings), {}, {
22
- shouldUseCloudfront: false
23
- })
24
- };
25
- }
26
11
  export function buildFile(_ref) {
27
12
  var file = _ref.file,
28
13
  settings = _ref.settings,
@@ -135,8 +120,8 @@ export function buildSummaryField(_ref2) {
135
120
  width: 140
136
121
  };
137
122
  }
138
- var sig = getSignatureImageSettings(value, settings);
139
- return fetchImage(sig.url, _objectSpread(_objectSpread({}, sig.settings), {}, {
123
+ // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
124
+ return fetchImage(value, _objectSpread(_objectSpread({}, settings), {}, {
140
125
  context: {
141
126
  stage: 'field',
142
127
  fieldLabel: field.label,
@@ -269,8 +254,8 @@ export function buildTemplateFieldRow(_ref3) {
269
254
  }
270
255
  if (isSignatureField) {
271
256
  if (!value) return [labelText, ''];
272
- var sig = getSignatureImageSettings(value, settings);
273
- return fetchImage(sig.url, _objectSpread(_objectSpread({}, sig.settings), {}, {
257
+ // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context
258
+ return fetchImage(value, _objectSpread(_objectSpread({}, settings), {}, {
274
259
  context: {
275
260
  stage: 'field',
276
261
  fieldLabel: label,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isArray","isEmpty","join","first","map","startsWith","Promise","moment","buildFetchUrl","fetchImage","videoIcon","imageTables","parseValue","text","toPdf","getSignatureImageSettings","url","settings","shouldUseCloudfront","_objectSpread","buildFile","_ref","file","signedAsset","extension","name","path","awsS3BaseUrl","cloudfrontBaseUrl","link","concat","margin","buildImage","options","_options$alignment","alignment","filepath","_options$height","height","_options$settings","_options$width","width","fieldLabel","_options$fieldType","fieldType","cloudinaryBaseUrl","isVideoType","RegExp","test","fit","image","quality","context","stage","then","base64String","buildSummaryField","_ref2","field","timezone","fieldtype","_field$options","value","signedAssets","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","sig","label","fileList","ol","parsedValue","displayValue","fontSize","filter","val","tz","buildTemplateFieldRow","_ref3","skipped","_field$options2","_options$showOnRead","showOnRead","isDisplayImageField","length","labelText","parsed","replace","values","filepaths","index","signedAssetValue","fieldImages","tables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","_toConsumableArray","widths","string"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\nimport Promise from 'bluebird'\nimport moment from 'moment-timezone'\n\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\nimport { videoIcon } from '../../../images'\nimport { imageTables, parseValue, text, toPdf } from '../'\n\nfunction getSignatureImageSettings(url, settings) {\n if (!settings.shouldUseCloudfront) return { url, settings }\n // Signature PNGs are stored in S3 under signatures/ path which is outside\n // the CloudFront signed URL policy scope ({appId}/*). Fetch them directly\n // from S3 without CloudFront signed URL params.\n return { url, settings: { ...settings, shouldUseCloudfront: false } }\n}\n\nexport function buildFile({ file, settings, signedAsset }) {\n const { extension, name, path } = file\n const { awsS3BaseUrl, shouldUseCloudfront, cloudfrontBaseUrl } = settings\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset}`\n : `${awsS3BaseUrl}/${path}`\n\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\n}\n\nfunction buildImage(options) {\n const {\n alignment = 'center',\n filepath,\n height = 210,\n settings = {},\n signedAsset,\n width = 210,\n fieldLabel,\n fieldType = 'image',\n } = options\n const {\n awsS3BaseUrl,\n cloudinaryBaseUrl,\n cloudfrontBaseUrl,\n shouldUseCloudfront,\n } = settings\n\n const isVideoType = new RegExp('.mp4$').test(filepath)\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset || filepath}`\n : `${awsS3BaseUrl}/${filepath}`\n\n if (isVideoType) {\n return {\n alignment,\n fit: [width, height],\n image: videoIcon,\n link,\n }\n }\n\n const url = buildFetchUrl(filepath, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n fit: true,\n height: 400,\n width: 600,\n quality: 50,\n shouldUseCloudfront,\n })\n\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(url, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel,\n fieldType,\n filepath,\n },\n }).then((base64String) => ({\n alignment,\n fit: [width, height],\n image: base64String,\n link,\n }))\n}\n\nexport function buildSummaryField({ field, settings, timezone }) {\n const { fieldtype, options = {}, value, signedAssets } = field\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isReferenceField = fieldtype === 'reference'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n\n // NOTE: html field is not supported for the summary fields but adding\n // logic to catch this and return empty text for completeness\n if (isHtmlField) {\n return { text: '' }\n }\n\n if (isSignatureField) {\n if (!value) return ''\n\n if (isDataImage(value)) {\n return { alignment: 'left', image: value, width: 140 }\n }\n const sig = getSignatureImageSettings(value, settings)\n return fetchImage(sig.url, {\n ...sig.settings,\n context: {\n stage: 'field',\n fieldLabel: field.label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n return {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n })\n }\n\n if (isPhotoField) {\n const filepath = first(value)\n\n // NOTE: if no filepath return empty text as user has not uploaded an image\n // for this field\n if (!filepath) {\n return { text: '' }\n }\n\n const image = buildImage({\n alignment: 'left',\n filepath,\n height: 140,\n width: 140,\n settings,\n signedAsset:\n signedAssets && isArray(signedAssets) ? signedAssets[0] : null,\n fieldLabel: field.label,\n fieldType: 'media',\n })\n\n return image\n }\n\n if (isFileField) {\n const fileList = map(value, (file) => buildFile({ file, settings }))\n return { ol: fileList }\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', '), fontSize: 7 }\n : { text: parsedValue, fontSize: 7 }\n\n return displayValue\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return displayValue\n }\n\n if (isStarField) {\n if (!value) return ''\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return displayValue\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = moment(value).tz(timezone).format(format)\n\n return displayValue\n }\n\n // NOTE: return empty text fallback value when no match\n return { text: '' }\n}\n\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\n const { fieldtype, label, options = {}, value, signedAssets } = field\n const { showOnRead = true } = options\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n const isDisplayImageField =\n fieldtype === 'image-display' &&\n showOnRead &&\n !(isArray(value) && value.length === 0)\n const isReferenceField = fieldtype === 'reference'\n // NOTE: only show field when show on read is true\n if (!showOnRead) return null\n\n const labelText = [{ text: label }]\n\n if (skipped) {\n return [labelText, [{ text: '-' }]]\n }\n\n if (isHtmlField) {\n const parsed = value.replace(/<p><\\/p>/g, '')\n return [labelText, toPdf(parsed)]\n }\n\n if (isSignatureField) {\n if (!value) return [labelText, '']\n const sig = getSignatureImageSettings(value, settings)\n return fetchImage(sig.url, {\n ...sig.settings,\n context: {\n stage: 'field',\n fieldLabel: label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n const values = {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n return [labelText, values]\n })\n }\n\n if (isDisplayImageField) {\n // Guard against nullish values\n if (!value) {\n return [[], {}]\n }\n\n // Ensure value is always treated as an array of filepaths\n const filepaths = isArray(value) ? value : [value]\n return Promise.map(filepaths, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'image-display',\n })\n }).then((fieldImages) => [fieldImages, {}])\n }\n\n if (isPhotoField) {\n // Guard against nullish values\n if (!value || (isArray(value) && value.length === 0)) {\n return [labelText, { text: '' }]\n }\n\n return Promise.map(value, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'media',\n })\n }).then((fieldImages) => {\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\n\n const imagesRow = {\n colSpan: 2,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n table: {\n body: [labelText, ...tables],\n widths: ['*'],\n },\n }\n\n // NOTE: pass empty value here as otherwise\n // we can accidentally hide content below\n // this row. Please see the following issue:\n // https://github.com/bpampuch/pdfmake/issues/1598\n return [imagesRow, {}]\n })\n }\n\n if (isFileField) {\n const fileList = map(value, (file, index) => {\n const signedAsset = signedAssets?.[index]\n return buildFile({ file, settings, signedAsset })\n })\n return [labelText, { ol: fileList }]\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', ') }\n : { text: parsedValue }\n\n return [labelText, displayValue]\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return [labelText, displayValue]\n }\n\n if (isStarField) {\n if (!value) return [labelText, '']\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return [labelText, displayValue]\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = value ? moment(value).tz(timezone).format(format) : ''\n\n return [labelText, displayValue]\n }\n\n // NOTE: if no match above null values will be stripped within calling fn\n return null\n}\n\nfunction isDataImage(string) {\n return startsWith(string, 'data:image/png;')\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["isArray","isEmpty","join","first","map","startsWith","Promise","moment","buildFetchUrl","fetchImage","videoIcon","imageTables","parseValue","text","toPdf","buildFile","_ref","file","settings","signedAsset","extension","name","path","awsS3BaseUrl","shouldUseCloudfront","cloudfrontBaseUrl","link","concat","margin","buildImage","options","_options$alignment","alignment","filepath","_options$height","height","_options$settings","_options$width","width","fieldLabel","_options$fieldType","fieldType","cloudinaryBaseUrl","isVideoType","RegExp","test","fit","image","url","quality","_objectSpread","context","stage","then","base64String","buildSummaryField","_ref2","field","timezone","fieldtype","_field$options","value","signedAssets","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","label","fileList","ol","parsedValue","displayValue","fontSize","filter","val","tz","buildTemplateFieldRow","_ref3","skipped","_field$options2","_options$showOnRead","showOnRead","isDisplayImageField","length","labelText","parsed","replace","values","filepaths","index","signedAssetValue","fieldImages","tables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","_toConsumableArray","widths","string"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\nimport Promise from 'bluebird'\nimport moment from 'moment-timezone'\n\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\nimport { videoIcon } from '../../../images'\nimport { imageTables, parseValue, text, toPdf } from '../'\n\nexport function buildFile({ file, settings, signedAsset }) {\n const { extension, name, path } = file\n const { awsS3BaseUrl, shouldUseCloudfront, cloudfrontBaseUrl } = settings\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset}`\n : `${awsS3BaseUrl}/${path}`\n\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\n}\n\nfunction buildImage(options) {\n const {\n alignment = 'center',\n filepath,\n height = 210,\n settings = {},\n signedAsset,\n width = 210,\n fieldLabel,\n fieldType = 'image',\n } = options\n const {\n awsS3BaseUrl,\n cloudinaryBaseUrl,\n cloudfrontBaseUrl,\n shouldUseCloudfront,\n } = settings\n\n const isVideoType = new RegExp('.mp4$').test(filepath)\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset || filepath}`\n : `${awsS3BaseUrl}/${filepath}`\n\n if (isVideoType) {\n return {\n alignment,\n fit: [width, height],\n image: videoIcon,\n link,\n }\n }\n\n const url = buildFetchUrl(filepath, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n fit: true,\n height: 400,\n width: 600,\n quality: 50,\n shouldUseCloudfront,\n })\n\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(url, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel,\n fieldType,\n filepath,\n },\n }).then((base64String) => ({\n alignment,\n fit: [width, height],\n image: base64String,\n link,\n }))\n}\n\nexport function buildSummaryField({ field, settings, timezone }) {\n const { fieldtype, options = {}, value, signedAssets } = field\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isReferenceField = fieldtype === 'reference'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n\n // NOTE: html field is not supported for the summary fields but adding\n // logic to catch this and return empty text for completeness\n if (isHtmlField) {\n return { text: '' }\n }\n\n if (isSignatureField) {\n if (!value) return ''\n\n if (isDataImage(value)) {\n return { alignment: 'left', image: value, width: 140 }\n }\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(value, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel: field.label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n return {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n })\n }\n\n if (isPhotoField) {\n const filepath = first(value)\n\n // NOTE: if no filepath return empty text as user has not uploaded an image\n // for this field\n if (!filepath) {\n return { text: '' }\n }\n\n const image = buildImage({\n alignment: 'left',\n filepath,\n height: 140,\n width: 140,\n settings,\n signedAsset:\n signedAssets && isArray(signedAssets) ? signedAssets[0] : null,\n fieldLabel: field.label,\n fieldType: 'media',\n })\n\n return image\n }\n\n if (isFileField) {\n const fileList = map(value, (file) => buildFile({ file, settings }))\n return { ol: fileList }\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', '), fontSize: 7 }\n : { text: parsedValue, fontSize: 7 }\n\n return displayValue\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return displayValue\n }\n\n if (isStarField) {\n if (!value) return ''\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return displayValue\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = moment(value).tz(timezone).format(format)\n\n return displayValue\n }\n\n // NOTE: return empty text fallback value when no match\n return { text: '' }\n}\n\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\n const { fieldtype, label, options = {}, value, signedAssets } = field\n const { showOnRead = true } = options\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n const isDisplayImageField =\n fieldtype === 'image-display' &&\n showOnRead &&\n !(isArray(value) && value.length === 0)\n const isReferenceField = fieldtype === 'reference'\n // NOTE: only show field when show on read is true\n if (!showOnRead) return null\n\n const labelText = [{ text: label }]\n\n if (skipped) {\n return [labelText, [{ text: '-' }]]\n }\n\n if (isHtmlField) {\n const parsed = value.replace(/<p><\\/p>/g, '')\n return [labelText, toPdf(parsed)]\n }\n\n if (isSignatureField) {\n if (!value) return [labelText, '']\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(value, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel: label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n const values = {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n return [labelText, values]\n })\n }\n\n if (isDisplayImageField) {\n // Guard against nullish values\n if (!value) {\n return [[], {}]\n }\n\n // Ensure value is always treated as an array of filepaths\n const filepaths = isArray(value) ? value : [value]\n return Promise.map(filepaths, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'image-display',\n })\n }).then((fieldImages) => [fieldImages, {}])\n }\n\n if (isPhotoField) {\n // Guard against nullish values\n if (!value || (isArray(value) && value.length === 0)) {\n return [labelText, { text: '' }]\n }\n\n return Promise.map(value, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'media',\n })\n }).then((fieldImages) => {\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\n\n const imagesRow = {\n colSpan: 2,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n table: {\n body: [labelText, ...tables],\n widths: ['*'],\n },\n }\n\n // NOTE: pass empty value here as otherwise\n // we can accidentally hide content below\n // this row. Please see the following issue:\n // https://github.com/bpampuch/pdfmake/issues/1598\n return [imagesRow, {}]\n })\n }\n\n if (isFileField) {\n const fileList = map(value, (file, index) => {\n const signedAsset = signedAssets?.[index]\n return buildFile({ file, settings, signedAsset })\n })\n return [labelText, { ol: fileList }]\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', ') }\n : { text: parsedValue }\n\n return [labelText, displayValue]\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return [labelText, displayValue]\n }\n\n if (isStarField) {\n if (!value) return [labelText, '']\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return [labelText, displayValue]\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = value ? moment(value).tz(timezone).format(format) : ''\n\n return [labelText, displayValue]\n }\n\n // NOTE: if no match above null values will be stripped within calling fn\n return null\n}\n\nfunction isDataImage(string) {\n return startsWith(string, 'data:image/png;')\n}\n"],"mappings":";;;;AAAA,SAASA,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,EAAEC,UAAU,QAAQ,QAAQ;AACvE,OAAOC,OAAO,MAAM,UAAU;AAC9B,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SAASC,aAAa,EAAEC,UAAU,QAAQ,kBAAkB;AAC5D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,WAAW,EAAEC,UAAU,EAAEC,IAAI,EAAEC,KAAK,QAAQ,KAAK;AAE1D,OAAO,SAASC,SAASA,CAAAC,IAAA,EAAkC;EAAA,IAA/BC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAEC,WAAW,GAAAH,IAAA,CAAXG,WAAW;EACrD,IAAQC,SAAS,GAAiBH,IAAI,CAA9BG,SAAS;IAAEC,IAAI,GAAWJ,IAAI,CAAnBI,IAAI;IAAEC,IAAI,GAAKL,IAAI,CAAbK,IAAI;EAC7B,IAAQC,YAAY,GAA6CL,QAAQ,CAAjEK,YAAY;IAAEC,mBAAmB,GAAwBN,QAAQ,CAAnDM,mBAAmB;IAAEC,iBAAiB,GAAKP,QAAQ,CAA9BO,iBAAiB;EAE5D,IAAMC,IAAI,GAAGF,mBAAmB,MAAAG,MAAA,CACzBF,iBAAiB,OAAAE,MAAA,CAAIR,WAAW,OAAAQ,MAAA,CAChCJ,YAAY,OAAAI,MAAA,CAAIL,IAAI,CAAE;EAE7B,OAAOT,IAAI,IAAAc,MAAA,CAAIN,IAAI,OAAAM,MAAA,CAAIP,SAAS,GAAI;IAAEM,IAAI,EAAJA,IAAI;IAAEE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;EAAE,CAAC,CAAC;AACtE;AAEA,SAASC,UAAUA,CAACC,OAAO,EAAE;EAC3B,IAAAC,kBAAA,GASID,OAAO,CARTE,SAAS;IAATA,SAAS,GAAAD,kBAAA,cAAG,QAAQ,GAAAA,kBAAA;IACpBE,QAAQ,GAONH,OAAO,CAPTG,QAAQ;IAAAC,eAAA,GAONJ,OAAO,CANTK,MAAM;IAANA,MAAM,GAAAD,eAAA,cAAG,GAAG,GAAAA,eAAA;IAAAE,iBAAA,GAMVN,OAAO,CALTZ,QAAQ;IAARA,QAAQ,GAAAkB,iBAAA,cAAG,CAAC,CAAC,GAAAA,iBAAA;IACbjB,WAAW,GAITW,OAAO,CAJTX,WAAW;IAAAkB,cAAA,GAITP,OAAO,CAHTQ,KAAK;IAALA,KAAK,GAAAD,cAAA,cAAG,GAAG,GAAAA,cAAA;IACXE,UAAU,GAERT,OAAO,CAFTS,UAAU;IAAAC,kBAAA,GAERV,OAAO,CADTW,SAAS;IAATA,SAAS,GAAAD,kBAAA,cAAG,OAAO,GAAAA,kBAAA;EAErB,IACEjB,YAAY,GAIVL,QAAQ,CAJVK,YAAY;IACZmB,iBAAiB,GAGfxB,QAAQ,CAHVwB,iBAAiB;IACjBjB,iBAAiB,GAEfP,QAAQ,CAFVO,iBAAiB;IACjBD,mBAAmB,GACjBN,QAAQ,CADVM,mBAAmB;EAGrB,IAAMmB,WAAW,GAAG,IAAIC,MAAM,CAAC,OAAO,CAAC,CAACC,IAAI,CAACZ,QAAQ,CAAC;EAEtD,IAAMP,IAAI,GAAGF,mBAAmB,MAAAG,MAAA,CACzBF,iBAAiB,OAAAE,MAAA,CAAIR,WAAW,IAAIc,QAAQ,OAAAN,MAAA,CAC5CJ,YAAY,OAAAI,MAAA,CAAIM,QAAQ,CAAE;EAEjC,IAAIU,WAAW,EAAE;IACf,OAAO;MACLX,SAAS,EAATA,SAAS;MACTc,GAAG,EAAE,CAACR,KAAK,EAAEH,MAAM,CAAC;MACpBY,KAAK,EAAErC,SAAS;MAChBgB,IAAI,EAAJA;IACF,CAAC;EACH;EAEA,IAAMsB,GAAG,GAAGxC,aAAa,CAACyB,QAAQ,EAAE;IAClCV,YAAY,EAAZA,YAAY;IACZE,iBAAiB,EAAjBA,iBAAiB;IACjBiB,iBAAiB,EAAjBA,iBAAiB;IACjBI,GAAG,EAAE,IAAI;IACTX,MAAM,EAAE,GAAG;IACXG,KAAK,EAAE,GAAG;IACVW,OAAO,EAAE,EAAE;IACXzB,mBAAmB,EAAnBA;EACF,CAAC,CAAC;;EAEF;EACA,OAAOf,UAAU,CAACuC,GAAG,EAAAE,aAAA,CAAAA,aAAA,KAChBhC,QAAQ;IACXiC,OAAO,EAAE;MACPC,KAAK,EAAE,OAAO;MACdb,UAAU,EAAVA,UAAU;MACVE,SAAS,EAATA,SAAS;MACTR,QAAQ,EAARA;IACF;EAAC,EACF,CAAC,CAACoB,IAAI,CAAC,UAACC,YAAY;IAAA,OAAM;MACzBtB,SAAS,EAATA,SAAS;MACTc,GAAG,EAAE,CAACR,KAAK,EAAEH,MAAM,CAAC;MACpBY,KAAK,EAAEO,YAAY;MACnB5B,IAAI,EAAJA;IACF,CAAC;EAAA,CAAC,CAAC;AACL;AAEA,OAAO,SAAS6B,iBAAiBA,CAAAC,KAAA,EAAgC;EAAA,IAA7BC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAEvC,QAAQ,GAAAsC,KAAA,CAARtC,QAAQ;IAAEwC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;EAC3D,IAAQC,SAAS,GAAwCF,KAAK,CAAtDE,SAAS;IAAAC,cAAA,GAAwCH,KAAK,CAA3C3B,OAAO;IAAPA,OAAO,GAAA8B,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IAAEC,KAAK,GAAmBJ,KAAK,CAA7BI,KAAK;IAAEC,YAAY,GAAKL,KAAK,CAAtBK,YAAY;EACpD,IAAMC,mBAAmB,GACvBJ,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,UAAU;EACvD,IAAMC,qBAAqB,GACzBN,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,UAAU;EACvD,IAAME,WAAW,GAAGP,SAAS,KAAK,MAAM;EACxC,IAAMQ,WAAW,GAAGR,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,MAAM;EACnE,IAAMC,aAAa,GAAGV,SAAS,KAAK,QAAQ;EAC5C,IAAMW,YAAY,GAAGX,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACrE,IAAMG,gBAAgB,GAAGZ,SAAS,KAAK,WAAW;EAClD,IAAMa,aAAa,GAAGb,SAAS,KAAK,QAAQ,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACxE,IAAMK,gBAAgB,GAAGd,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,WAAW;EAC7E,IAAMM,WAAW,GAAGf,SAAS,KAAK,QAAQ,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACtE,IAAMO,aAAa,GAAGhB,SAAS,KAAK,QAAQ;EAC5C,IAAMiB,WAAW,GAAGjB,SAAS,KAAK,MAAM;EACxC,IAAMkB,iBAAiB,GAAGlB,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,QAAQ;EAC7E,IAAMc,iBAAiB,GAAGnB,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,OAAO;;EAE5E;EACA;EACA,IAAIG,WAAW,EAAE;IACf,OAAO;MAAEtD,IAAI,EAAE;IAAG,CAAC;EACrB;EAEA,IAAI4D,gBAAgB,EAAE;IACpB,IAAI,CAACZ,KAAK,EAAE,OAAO,EAAE;IAErB,IAAIkB,WAAW,CAAClB,KAAK,CAAC,EAAE;MACtB,OAAO;QAAE7B,SAAS,EAAE,MAAM;QAAEe,KAAK,EAAEc,KAAK;QAAEvB,KAAK,EAAE;MAAI,CAAC;IACxD;IACA;IACA,OAAO7B,UAAU,CAACoD,KAAK,EAAAX,aAAA,CAAAA,aAAA,KAClBhC,QAAQ;MACXiC,OAAO,EAAE;QACPC,KAAK,EAAE,OAAO;QACdb,UAAU,EAAEkB,KAAK,CAACuB,KAAK;QACvBvC,SAAS,EAAE;MACb;IAAC,EACF,CAAC,CAACY,IAAI,CAAC,UAACC,YAAY,EAAK;MACxB,OAAO;QACLtB,SAAS,EAAE,MAAM;QACjBe,KAAK,EAAEO,YAAY;QACnBhB,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,IAAIgC,YAAY,EAAE;IAChB,IAAMrC,QAAQ,GAAG9B,KAAK,CAAC0D,KAAK,CAAC;;IAE7B;IACA;IACA,IAAI,CAAC5B,QAAQ,EAAE;MACb,OAAO;QAAEpB,IAAI,EAAE;MAAG,CAAC;IACrB;IAEA,IAAMkC,KAAK,GAAGlB,UAAU,CAAC;MACvBG,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAARA,QAAQ;MACRE,MAAM,EAAE,GAAG;MACXG,KAAK,EAAE,GAAG;MACVpB,QAAQ,EAARA,QAAQ;MACRC,WAAW,EACT2C,YAAY,IAAI9D,OAAO,CAAC8D,YAAY,CAAC,GAAGA,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;MAChEvB,UAAU,EAAEkB,KAAK,CAACuB,KAAK;MACvBvC,SAAS,EAAE;IACb,CAAC,CAAC;IAEF,OAAOM,KAAK;EACd;EAEA,IAAImB,WAAW,EAAE;IACf,IAAMe,QAAQ,GAAG7E,GAAG,CAACyD,KAAK,EAAE,UAAC5C,IAAI;MAAA,OAAKF,SAAS,CAAC;QAAEE,IAAI,EAAJA,IAAI;QAAEC,QAAQ,EAARA;MAAS,CAAC,CAAC;IAAA,EAAC;IACpE,OAAO;MAAEgE,EAAE,EAAED;IAAS,CAAC;EACzB;EAEA,IAAIZ,aAAa,IAAIG,aAAa,IAAIG,aAAa,IAAIC,WAAW,EAAE;IAClE,IAAMO,WAAW,GAAGvE,UAAU,CAACiD,KAAK,CAAC;IACrC,IAAMuB,YAAY,GAAGpF,OAAO,CAACmF,WAAW,CAAC,GACrC;MAAEtE,IAAI,EAAEX,IAAI,CAACiF,WAAW,EAAE,IAAI,CAAC;MAAEE,QAAQ,EAAE;IAAE,CAAC,GAC9C;MAAExE,IAAI,EAAEsE,WAAW;MAAEE,QAAQ,EAAE;IAAE,CAAC;IAEtC,OAAOD,YAAY;EACrB;EAEA,IAAIb,gBAAgB,EAAE;IACpB,IAAMY,YAAW,GAAGvE,UAAU,CAACiD,KAAK,CAAC;IACrC,IAAMuB,aAAY,GAAGpF,OAAO,CAACmF,YAAW,CAAC,GACrC;MACEtE,IAAI,EAAEsE,YAAW,CACdG,MAAM,CAAC,UAACC,GAAG;QAAA,OAAKA,GAAG,IAAIA,GAAG,CAACP,KAAK;MAAA,EAAC,CACjC5E,GAAG,CAAC,UAACmF,GAAG;QAAA,OAAKA,GAAG,CAACP,KAAK;MAAA,EAAC,CACvB9E,IAAI,CAAC,IAAI,CAAC;MACbmF,QAAQ,EAAE;IACZ,CAAC,GACD;MAAExE,IAAI,EAAEsE,YAAW,CAACH,KAAK;MAAEK,QAAQ,EAAE;IAAE,CAAC;IAE5C,OAAOD,aAAY;EACrB;EAEA,IAAIV,WAAW,EAAE;IACf,IAAI,CAACb,KAAK,EAAE,OAAO,EAAE;IACrB,IAAMuB,cAAY,GAAGvB,KAAK,KAAK,GAAG,MAAAlC,MAAA,CAAMkC,KAAK,gBAAAlC,MAAA,CAAakC,KAAK,WAAQ;IACvE,OAAOuB,cAAY;EACrB;EAEA,IACErB,mBAAmB,IACnBE,qBAAqB,IACrBY,iBAAiB,IACjBC,iBAAiB,EACjB;IACA,IAAMd,MAAM,GAAGlC,OAAO,CAACkC,MAAM;IAC7B,IAAMoB,cAAY,GAAG7E,MAAM,CAACsD,KAAK,CAAC,CAAC2B,EAAE,CAAC9B,QAAQ,CAAC,CAACM,MAAM,CAACA,MAAM,CAAC;IAE9D,OAAOoB,cAAY;EACrB;;EAEA;EACA,OAAO;IAAEvE,IAAI,EAAE;EAAG,CAAC;AACrB;AAEA,OAAO,SAAS4E,qBAAqBA,CAAAC,KAAA,EAAyC;EAAA,IAAtCjC,KAAK,GAAAiC,KAAA,CAALjC,KAAK;IAAEvC,QAAQ,GAAAwE,KAAA,CAARxE,QAAQ;IAAEwC,QAAQ,GAAAgC,KAAA,CAARhC,QAAQ;IAAEiC,OAAO,GAAAD,KAAA,CAAPC,OAAO;EACxE,IAAQhC,SAAS,GAA+CF,KAAK,CAA7DE,SAAS;IAAEqB,KAAK,GAAwCvB,KAAK,CAAlDuB,KAAK;IAAAY,eAAA,GAAwCnC,KAAK,CAA3C3B,OAAO;IAAPA,OAAO,GAAA8D,eAAA,cAAG,CAAC,CAAC,GAAAA,eAAA;IAAE/B,KAAK,GAAmBJ,KAAK,CAA7BI,KAAK;IAAEC,YAAY,GAAKL,KAAK,CAAtBK,YAAY;EAC3D,IAAA+B,mBAAA,GAA8B/D,OAAO,CAA7BgE,UAAU;IAAVA,UAAU,GAAAD,mBAAA,cAAG,IAAI,GAAAA,mBAAA;EAEzB,IAAM9B,mBAAmB,GACvBJ,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,UAAU;EACvD,IAAMC,qBAAqB,GACzBN,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,UAAU;EACvD,IAAME,WAAW,GAAGP,SAAS,KAAK,MAAM;EACxC,IAAMQ,WAAW,GAAGR,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,MAAM;EACnE,IAAMC,aAAa,GAAGV,SAAS,KAAK,QAAQ;EAC5C,IAAMW,YAAY,GAAGX,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACrE,IAAMI,aAAa,GAAGb,SAAS,KAAK,QAAQ,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACxE,IAAMK,gBAAgB,GAAGd,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACsC,IAAI,KAAK,WAAW;EAC7E,IAAMM,WAAW,GAAGf,SAAS,KAAK,QAAQ,IAAI7B,OAAO,CAACsC,IAAI,KAAK,OAAO;EACtE,IAAMO,aAAa,GAAGhB,SAAS,KAAK,QAAQ;EAC5C,IAAMiB,WAAW,GAAGjB,SAAS,KAAK,MAAM;EACxC,IAAMkB,iBAAiB,GAAGlB,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,QAAQ;EAC7E,IAAMc,iBAAiB,GAAGnB,SAAS,KAAK,MAAM,IAAI7B,OAAO,CAACkC,MAAM,KAAK,OAAO;EAC5E,IAAM+B,mBAAmB,GACvBpC,SAAS,KAAK,eAAe,IAC7BmC,UAAU,IACV,EAAE9F,OAAO,CAAC6D,KAAK,CAAC,IAAIA,KAAK,CAACmC,MAAM,KAAK,CAAC,CAAC;EACzC,IAAMzB,gBAAgB,GAAGZ,SAAS,KAAK,WAAW;EAClD;EACA,IAAI,CAACmC,UAAU,EAAE,OAAO,IAAI;EAE5B,IAAMG,SAAS,GAAG,CAAC;IAAEpF,IAAI,EAAEmE;EAAM,CAAC,CAAC;EAEnC,IAAIW,OAAO,EAAE;IACX,OAAO,CAACM,SAAS,EAAE,CAAC;MAAEpF,IAAI,EAAE;IAAI,CAAC,CAAC,CAAC;EACrC;EAEA,IAAIsD,WAAW,EAAE;IACf,IAAM+B,MAAM,GAAGrC,KAAK,CAACsC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAC7C,OAAO,CAACF,SAAS,EAAEnF,KAAK,CAACoF,MAAM,CAAC,CAAC;EACnC;EAEA,IAAIzB,gBAAgB,EAAE;IACpB,IAAI,CAACZ,KAAK,EAAE,OAAO,CAACoC,SAAS,EAAE,EAAE,CAAC;IAClC;IACA,OAAOxF,UAAU,CAACoD,KAAK,EAAAX,aAAA,CAAAA,aAAA,KAClBhC,QAAQ;MACXiC,OAAO,EAAE;QACPC,KAAK,EAAE,OAAO;QACdb,UAAU,EAAEyC,KAAK;QACjBvC,SAAS,EAAE;MACb;IAAC,EACF,CAAC,CAACY,IAAI,CAAC,UAACC,YAAY,EAAK;MACxB,IAAM8C,MAAM,GAAG;QACbpE,SAAS,EAAE,MAAM;QACjBe,KAAK,EAAEO,YAAY;QACnBhB,KAAK,EAAE;MACT,CAAC;MACD,OAAO,CAAC2D,SAAS,EAAEG,MAAM,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEA,IAAIL,mBAAmB,EAAE;IACvB;IACA,IAAI,CAAClC,KAAK,EAAE;MACV,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACjB;;IAEA;IACA,IAAMwC,SAAS,GAAGrG,OAAO,CAAC6D,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;IAClD,OAAOvD,OAAO,CAACF,GAAG,CAACiG,SAAS,EAAE,UAACpE,QAAQ,EAAEqE,KAAK,EAAK;MACjD,IAAMC,gBAAgB,GAAGvG,OAAO,CAAC8D,YAAY,CAAC,GAC1CA,YAAY,CAACwC,KAAK,CAAC,GACnBxC,YAAY;MAChB,OAAOjC,UAAU,CAAC;QAChBI,QAAQ,EAARA,QAAQ;QACRf,QAAQ,EAARA,QAAQ;QACRC,WAAW,EAAEoF,gBAAgB;QAC7BhE,UAAU,EAAEyC,KAAK;QACjBvC,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC,CAAC,CAACY,IAAI,CAAC,UAACmD,WAAW;MAAA,OAAK,CAACA,WAAW,EAAE,CAAC,CAAC,CAAC;IAAA,EAAC;EAC7C;EAEA,IAAIlC,YAAY,EAAE;IAChB;IACA,IAAI,CAACT,KAAK,IAAK7D,OAAO,CAAC6D,KAAK,CAAC,IAAIA,KAAK,CAACmC,MAAM,KAAK,CAAE,EAAE;MACpD,OAAO,CAACC,SAAS,EAAE;QAAEpF,IAAI,EAAE;MAAG,CAAC,CAAC;IAClC;IAEA,OAAOP,OAAO,CAACF,GAAG,CAACyD,KAAK,EAAE,UAAC5B,QAAQ,EAAEqE,KAAK,EAAK;MAC7C,IAAMC,gBAAgB,GAAGvG,OAAO,CAAC8D,YAAY,CAAC,GAC1CA,YAAY,CAACwC,KAAK,CAAC,GACnBxC,YAAY;MAChB,OAAOjC,UAAU,CAAC;QAChBI,QAAQ,EAARA,QAAQ;QACRf,QAAQ,EAARA,QAAQ;QACRC,WAAW,EAAEoF,gBAAgB;QAC7BhE,UAAU,EAAEyC,KAAK;QACjBvC,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC,CAAC,CAACY,IAAI,CAAC,UAACmD,WAAW,EAAK;MACvB,IAAMC,MAAM,GAAG,CAACxG,OAAO,CAACuG,WAAW,CAAC,GAAG7F,WAAW,CAAC6F,WAAW,CAAC,GAAG,EAAE;MAEpE,IAAME,SAAS,GAAG;QAChBC,OAAO,EAAE,CAAC;QACVC,MAAM,EAAE;UACNC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACnBC,WAAW,EAAE,SAAbA,WAAWA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACpBC,YAAY,EAAE,SAAdA,YAAYA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACrBC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACnBC,aAAa,EAAE,SAAfA,aAAaA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACtBC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;QACrB,CAAC;QACDC,KAAK,EAAE;UACLC,IAAI,GAAGnB,SAAS,EAAAtE,MAAA,CAAA0F,kBAAA,CAAKZ,MAAM,EAAC;UAC5Ba,MAAM,EAAE,CAAC,GAAG;QACd;MACF,CAAC;;MAED;MACA;MACA;MACA;MACA,OAAO,CAACZ,SAAS,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;EACJ;EAEA,IAAIxC,WAAW,EAAE;IACf,IAAMe,QAAQ,GAAG7E,GAAG,CAACyD,KAAK,EAAE,UAAC5C,IAAI,EAAEqF,KAAK,EAAK;MAC3C,IAAMnF,WAAW,GAAG2C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAGwC,KAAK,CAAC;MACzC,OAAOvF,SAAS,CAAC;QAAEE,IAAI,EAAJA,IAAI;QAAEC,QAAQ,EAARA,QAAQ;QAAEC,WAAW,EAAXA;MAAY,CAAC,CAAC;IACnD,CAAC,CAAC;IACF,OAAO,CAAC8E,SAAS,EAAE;MAAEf,EAAE,EAAED;IAAS,CAAC,CAAC;EACtC;EAEA,IAAIZ,aAAa,IAAIG,aAAa,IAAIG,aAAa,IAAIC,WAAW,EAAE;IAClE,IAAMO,WAAW,GAAGvE,UAAU,CAACiD,KAAK,CAAC;IACrC,IAAMuB,YAAY,GAAGpF,OAAO,CAACmF,WAAW,CAAC,GACrC;MAAEtE,IAAI,EAAEX,IAAI,CAACiF,WAAW,EAAE,IAAI;IAAE,CAAC,GACjC;MAAEtE,IAAI,EAAEsE;IAAY,CAAC;IAEzB,OAAO,CAACc,SAAS,EAAEb,YAAY,CAAC;EAClC;EAEA,IAAIb,gBAAgB,EAAE;IACpB,IAAMY,aAAW,GAAGvE,UAAU,CAACiD,KAAK,CAAC;IACrC,IAAMuB,cAAY,GAAGpF,OAAO,CAACmF,aAAW,CAAC,GACrC;MACEtE,IAAI,EAAEsE,aAAW,CACdG,MAAM,CAAC,UAACC,GAAG;QAAA,OAAKA,GAAG,IAAIA,GAAG,CAACP,KAAK;MAAA,EAAC,CACjC5E,GAAG,CAAC,UAACmF,GAAG;QAAA,OAAKA,GAAG,CAACP,KAAK;MAAA,EAAC,CACvB9E,IAAI,CAAC,IAAI,CAAC;MACbmF,QAAQ,EAAE;IACZ,CAAC,GACD;MAAExE,IAAI,EAAEsE,aAAW,CAACH,KAAK;MAAEK,QAAQ,EAAE;IAAE,CAAC;IAE5C,OAAO,CAACY,SAAS,EAAEb,cAAY,CAAC;EAClC;EAEA,IAAIV,WAAW,EAAE;IACf,IAAI,CAACb,KAAK,EAAE,OAAO,CAACoC,SAAS,EAAE,EAAE,CAAC;IAClC,IAAMb,cAAY,GAAGvB,KAAK,KAAK,GAAG,MAAAlC,MAAA,CAAMkC,KAAK,gBAAAlC,MAAA,CAAakC,KAAK,WAAQ;IACvE,OAAO,CAACoC,SAAS,EAAEb,cAAY,CAAC;EAClC;EAEA,IACErB,mBAAmB,IACnBE,qBAAqB,IACrBY,iBAAiB,IACjBC,iBAAiB,EACjB;IACA,IAAMd,MAAM,GAAGlC,OAAO,CAACkC,MAAM;IAC7B,IAAMoB,cAAY,GAAGvB,KAAK,GAAGtD,MAAM,CAACsD,KAAK,CAAC,CAAC2B,EAAE,CAAC9B,QAAQ,CAAC,CAACM,MAAM,CAACA,MAAM,CAAC,GAAG,EAAE;IAE3E,OAAO,CAACiC,SAAS,EAAEb,cAAY,CAAC;EAClC;;EAEA;EACA,OAAO,IAAI;AACb;AAEA,SAASL,WAAWA,CAACwC,MAAM,EAAE;EAC3B,OAAOlH,UAAU,CAACkH,MAAM,EAAE,iBAAiB,CAAC;AAC9C","ignoreList":[]}
@@ -25,7 +25,7 @@ import { getIssueDetails, getStatusDetails, getTimezoneAbbr, getTimezoneDatetime
25
25
  * @param {object} data.locations - locations documents
26
26
  * @param {object} data.settings - settings properties
27
27
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
28
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
28
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
29
29
  * @param {string} data.timezone - timezone string
30
30
  * @param {object} data.users - application user documents
31
31
  * @param {object} data.zones - zone documents
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","publicSubmissionTextColor","internalSubmissionTextColor","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","_plugins$publicForms","entry","_entity$gps","gps","_entity$timeline","timeline","_pdfOptions$plugins","plugins","entityDetails","assigneeNames","durationText","gpsText","isPublicSubmission","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","publicForms","enabled","sourceText","sourceColor","sourceLabelText","sourceValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\n\nconst publicSubmissionTextColor = '#FF8C2F'\nconst internalSubmissionTextColor = '#00AAE4'\n\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data, pdfOptions).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data, pdfOptions) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n const { plugins = {} } = pdfOptions\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n isPublicSubmission,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n if (plugins.publicForms?.enabled) {\n const sourceText = isPublicSubmission\n ? 'PUBLIC SUBMISSION'\n : 'INTERNAL SUBMISSION'\n\n const sourceColor = isPublicSubmission\n ? publicSubmissionTextColor\n : internalSubmissionTextColor\n const sourceLabelText = text('Source', { bold: true })\n const sourceValueText = text(sourceText, { color: sourceColor })\n metaTable.table.body.push([sourceLabelText, sourceValueText])\n }\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, (item) => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","publicSubmissionTextColor","internalSubmissionTextColor","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","_plugins$publicForms","entry","_entity$gps","gps","_entity$timeline","timeline","_pdfOptions$plugins","plugins","entityDetails","assigneeNames","durationText","gpsText","isPublicSubmission","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","publicForms","enabled","sourceText","sourceColor","sourceLabelText","sourceValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\n\nconst publicSubmissionTextColor = '#FF8C2F'\nconst internalSubmissionTextColor = '#00AAE4'\n\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data, pdfOptions).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data, pdfOptions) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n const { plugins = {} } = pdfOptions\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n isPublicSubmission,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n if (plugins.publicForms?.enabled) {\n const sourceText = isPublicSubmission\n ? 'PUBLIC SUBMISSION'\n : 'INTERNAL SUBMISSION'\n\n const sourceColor = isPublicSubmission\n ? publicSubmissionTextColor\n : internalSubmissionTextColor\n const sourceLabelText = text('Source', { bold: true })\n const sourceValueText = text(sourceText, { color: sourceColor })\n metaTable.table.body.push([sourceLabelText, sourceValueText])\n }\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, (item) => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
@@ -47,7 +47,7 @@ var ACTIVITY_COLUMN_HEADERS = [{
47
47
  * @param {array} data.jobActivities - job activities documents
48
48
  * @param {object} data.settings - settings properties
49
49
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
50
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
50
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
51
51
  * @param {string} data.timezone - timezone string
52
52
  * @param {object} data.users - application user documents
53
53
  * @returns {Promise} returns pdfmake definition object
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","concat","content","generateContent","_objectSpread","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","_entity$start","start","_entity$end","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText","_toConsumableArray"],"sources":["../../../src/pdf/job/index.js"],"sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, activity => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","concat","content","generateContent","_objectSpread","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","_entity$start","start","_entity$end","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText","_toConsumableArray"],"sources":["../../../src/pdf/job/index.js"],"sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, (activity) => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -33,7 +33,7 @@ var LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io';
33
33
  * @param {object} data.shift - shift document
34
34
  * @param {object} data.settings - settings properties
35
35
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
36
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
36
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
37
37
  * @param {array} data.tasks - task documents
38
38
  * @param {string} data.timestamp - timestamp string
39
39
  * @param {string} data.timezone - timezone string
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Promise","each","filter","find","groupBy","isEmpty","map","size","sortBy","sum","toString","trim","moment","duration","getLocationReference","getTimezoneAbbr","getTimezoneDatetime","launchIcon","generateDefinition","horizontalLine","summaryFieldsTable","summaryStatTable","summaryWrapperTable","table","text","threeColumnTable","zebraFillColor","LIGHTHOUSE_BASE_URL","buildShiftPdf","_x","_x2","_buildShiftPdf","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","pdfOptions","data","timestamp","timezone","title","content","wrap","_context","prev","next","generateContent","sent","abrupt","_objectSpread","fileTitle","type","stop","_x3","_generateContent","_callee2","activitySection","summarySection","titleTable","_context2","buildActivitySection","buildSummarySection","buildTitleTable","_x4","_buildActivitySection","_callee3","timeline","activitySummary","_context3","buildTimelineTable","buildActivitySummarySection","shift","user","breaks","end","start","headerTitle","style","username","concat","firstName","lastName","headerSubTitle","mTimezoneStart","time","tz","mTimezoneEnd","rangeStart","format","rangeEnd","shiftDuration","getFineDuration","breakDuration","getBreakDuration","header","headerRange","body","layout","audits","events","issues","tasks","eventsByType","enterEventsCount","enter","issuesCount","tasksCount","auditsCount","scansText","issuesText","tasksText","auditsText","scansCountText","issuesCountText","tasksCountText","auditsCountText","scanTable","issueTable","taskTables","auditTable","wrapperTable","_x5","_buildActivitySummarySection","_callee4","settings","enterEvents","auditRows","issueRows","scanRows","taskRows","rows","sortedRows","hLine","activityTable","activitySummarySection","_context4","event","getFormRowData","getScanRowData","_toConsumableArray","buildActivityTable","_x6","_buildActivityTable","_callee6","_ref","timezoneAbbr","activityTableHeader","activityTableRows","activityTableBody","_context6","bold","alignment","_ref6","_callee5","link","location","icon","summaryFields","timezoneHour","iconCell","hasSummaryFields","fieldsTable","activityTableRow","_context5","showTzAbbr","fit","image","fields","push","colSpan","dontBreakRows","headerRow","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","widths","_x8","fillColor","collection","_ref2","locations","zones","document","_id","createdAt","_document$entry","entry","_document$title","entity","_ref3","_document$zone","zone","zoneDoc","doc","zoneName","name","_x7","_buildTimelineTable","_callee8","shiftRows","timelineHeaderRow","timelineTable","timelineSection","_context8","getShiftRowData","_ref7","_callee7","_context7","_x9","_ref4","startValues","getShiftValues","startShift","endValues","endShift","shiftData","startBreak","endBreak","value","_ref5","locationName","durationValue","measurement","durationByMeasurement","days","get","hours","minutes","fineDuration","diff"],"sources":["../../../src/pdf/shift-report/index.js"],"sourcesContent":["import Promise from 'bluebird'\nimport {\n each,\n filter,\n find,\n groupBy,\n isEmpty,\n map,\n size,\n sortBy,\n sum,\n toString,\n trim,\n} from 'lodash'\nimport moment, { duration } from 'moment-timezone'\n\nimport {\n getLocationReference,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\nimport { launchIcon } from '../../images'\nimport {\n generateDefinition,\n horizontalLine,\n summaryFieldsTable,\n summaryStatTable,\n summaryWrapperTable,\n table,\n text,\n threeColumnTable,\n zebraFillColor,\n} from '../helpers'\n\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\n/**\n * buildActivityPdf\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {array} data.audits - audit documents\n * @param {array} data.events - event documents\n * @param {array} data.locations - location documents\n * @param {array} data.issues - issue documents\n * @param {array} data.audits - audit documents\n * @param {object} data.shift - shift document\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {array} data.tasks - task documents\n * @param {string} data.timestamp - timestamp string\n * @param {string} data.timezone - timezone string\n * @param {array} data.zones - zone documents\n * @param {array} data.user - user document\n * @returns {Promise} returns pdfmake definition object\n */\n\nexport async function buildShiftPdf(pdfOptions, data) {\n const { timestamp, timezone } = data\n\n const title = 'Daily Shift Report'\n const content = await generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle: title,\n timestamp,\n timezone,\n type: 'Shift Report',\n ...pdfOptions,\n })\n}\n\nasync function generateContent(data) {\n const activitySection = await buildActivitySection(data)\n const summarySection = buildSummarySection(data)\n const titleTable = buildTitleTable(data)\n\n return [titleTable, summarySection, activitySection]\n}\n\nasync function buildActivitySection(data) {\n const timeline = await buildTimelineTable(data)\n const activitySummary = await buildActivitySummarySection(data)\n\n return [timeline, activitySummary]\n}\n\nfunction buildTitleTable(data) {\n const { shift, timezone, user } = data\n const { breaks, duration, end, start } = shift\n\n const headerTitle = text('Daily Shift Report', { style: 'title' })\n const username = `${user.firstName} ${user.lastName}` || 'Unknown User'\n\n const headerSubTitle = text(`${username}`, {\n style: 'subTitle',\n })\n\n const mTimezoneStart = moment(start.time).tz(timezone)\n const mTimezoneEnd = moment(end.time).tz(timezone)\n\n const rangeStart = moment(mTimezoneStart).format('MMM DD h:mma')\n const rangeEnd = moment(mTimezoneEnd).format('MMM DD h:mma')\n\n const shiftDuration = getFineDuration(duration)\n const breakDuration = getBreakDuration(breaks)\n\n const header = !breakDuration\n ? `${rangeStart} - ${rangeEnd} | Duration: ${shiftDuration}`\n : `${rangeStart} - ${rangeEnd} | Duration: ${shiftDuration}, Break: ${breakDuration}`\n const headerRange = text(header, {\n style: 'subTitle2',\n })\n\n return table({\n body: [[headerTitle], [headerSubTitle], [headerRange]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n}\n\nfunction buildSummarySection(data) {\n const { audits, events, issues, tasks } = data\n\n const eventsByType = groupBy(events, 'type')\n\n const enterEventsCount = size(eventsByType.enter)\n const issuesCount = size(issues)\n const tasksCount = size(tasks)\n const auditsCount = size(audits)\n\n const scansText = text('SCANS', { style: 'summaryText' })\n const issuesText = text('ISSUES', { style: 'summaryText' })\n const tasksText = text('TASKS', { style: 'summaryText' })\n const auditsText = text('AUDITS', { style: 'summaryText' })\n\n const scansCountText = text(toString(enterEventsCount), {\n style: 'summaryCount',\n })\n const issuesCountText = text(toString(issuesCount), { style: 'summaryCount' })\n const tasksCountText = text(toString(tasksCount), { style: 'summaryCount' })\n const auditsCountText = text(toString(auditsCount), { style: 'summaryCount' })\n\n const scanTable = summaryStatTable({ body: [[scansText], [scansCountText]] })\n const issueTable = summaryStatTable({\n body: [[issuesText], [issuesCountText]],\n })\n const taskTables = summaryStatTable({ body: [[tasksText], [tasksCountText]] })\n const auditTable = summaryStatTable({\n body: [[auditsText], [auditsCountText]],\n })\n\n const wrapperTable = summaryWrapperTable({\n body: [[scanTable, issueTable, taskTables, auditTable]],\n })\n\n return wrapperTable\n}\n\nasync function buildActivitySummarySection(data) {\n const { audits, events, issues, settings, tasks, timezone } = data\n\n const enterEvents = filter(events, event => event.type === 'enter')\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const scanRows = map(enterEvents, getScanRowData(data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const rows = [...auditRows, ...issueRows, ...scanRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Activity Summary', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n const activitySummarySection = [header, hLine, activityTable]\n\n return activitySummarySection\n}\n\nasync function buildActivityTable({ rows, settings, timezone }) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const activityTableHeader = [\n text('Activity', { bold: true }),\n { text: '' },\n text('Location', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const activityTableRows = await Promise.map(rows, async function(data) {\n const { link, location, icon, summaryFields, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const iconCell = icon\n ? { alignment: 'center', fit: [8, 8], image: icon, link }\n : { text: '' }\n\n const rows = [\n [\n text(title, { link }),\n iconCell,\n text(location, { link }),\n text(timezoneHour, { alignment: 'right', link }),\n ],\n ]\n\n const hasSummaryFields = !isEmpty(summaryFields)\n\n if (hasSummaryFields) {\n const fieldsTable = await summaryFieldsTable({\n fields: summaryFields,\n settings,\n timezone,\n })\n rows.push([fieldsTable])\n }\n\n const activityTableRow = [\n table({\n body: [...rows],\n colSpan: 5,\n dontBreakRows: true,\n headerRow: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [120, 25, 200, 110, '*'],\n }),\n ]\n\n return activityTableRow\n })\n\n const activityTableBody = isEmpty(activityTableRows)\n ? [[text('No other activity', { colSpan: 4 })]]\n : activityTableRows\n\n const activityTable = table({\n body: [activityTableHeader, ...activityTableBody],\n dontBreakRows: true,\n layout: {\n hLineWidth: () => 0,\n fillColor: zebraFillColor,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [110, 15, 230, 80, '*'],\n })\n\n return activityTable\n}\n\nfunction getFormRowData(collection, { locations, zones }) {\n return document => {\n const { _id, createdAt, entry = {}, title = 'Unknown' } = document\n\n const location = getLocationReference({\n entity: document,\n locations,\n zones,\n })\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/${collection}/${_id}`\n const timestamp = createdAt\n\n const summaryFields = entry.summaryFields || []\n\n return {\n icon: launchIcon,\n location,\n link,\n summaryFields,\n timestamp,\n title,\n }\n }\n}\n\nfunction getScanRowData({ zones }) {\n return document => {\n const { timestamp, zone = '' } = document\n\n const zoneDoc =\n zone && find(zones, doc => doc._id.toString() === zone.toString())\n\n const zoneName = zoneDoc && zoneDoc.name\n const location = zoneName || 'Unknown Location'\n\n const title = 'Location Scan'\n\n return {\n location,\n timestamp,\n title,\n }\n }\n}\n\nasync function buildTimelineTable(data) {\n const { timezone } = data\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const shiftRows = getShiftRowData(data)\n\n const sortedRows = sortBy(shiftRows, ['timestamp'], ['asc'])\n const timeline = await Promise.map(sortedRows, async function(data) {\n const { location, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const rows = [\n text(title),\n text(location),\n text(timezoneHour, { alignment: 'right' }),\n ]\n\n return rows\n })\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('Location', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timeline],\n })\n\n const title = text('Timeline', { style: 'timelineTitle' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n\n const timelineSection = [header, hLine, timelineTable]\n\n return timelineSection\n}\n\nfunction getShiftRowData({ locations, shift, zones }) {\n const { breaks, end, start } = shift\n\n const startValues = getShiftValues(start, { locations, shift, zones })\n const startShift = { title: 'Shift Started', ...startValues }\n const endValues = getShiftValues(end, { locations, shift, zones })\n const endShift = { title: 'Shift Ended', ...endValues }\n\n const shiftData = [startShift, endShift]\n\n each(breaks, function(data) {\n const { end, start } = data\n const startValues = getShiftValues(start, { locations, shift, zones })\n const startBreak = { title: 'Break Started', ...startValues }\n const endValues = getShiftValues(end, { locations, shift, zones })\n const endBreak = { title: 'Break Ended', ...endValues }\n\n shiftData.push(startBreak)\n shiftData.push(endBreak)\n })\n\n return shiftData\n}\n\nfunction getShiftValues(value, { locations, shift, zones }) {\n const locationName = getLocationReference({\n entity: value,\n locations,\n zones,\n })\n\n const location =\n locationName === 'Unknown Location'\n ? getLocationReference({\n entity: shift,\n locations,\n zones,\n })\n : locationName\n\n return {\n timestamp: value.time,\n location,\n }\n}\n\nexport function getFineDuration(durationValue) {\n const measurement = 'milliseconds'\n const durationByMeasurement = duration(durationValue, measurement)\n const days = durationByMeasurement.get('days')\n const hours = durationByMeasurement.get('hours')\n const minutes = durationByMeasurement.get('minutes')\n let fineDuration = ''\n fineDuration += days !== 0 ? days + 'd ' : ''\n fineDuration += hours !== 0 ? hours + 'h ' : ''\n fineDuration += minutes !== 0 ? minutes + 'm' : ''\n\n return trim(fineDuration)\n}\n\nfunction getBreakDuration(breaks) {\n const duration = sum(\n map(breaks, function(data) {\n const { end, start } = data\n const endBreak = moment(end.time)\n const startBreak = moment(start.time)\n const breakDuration = endBreak.diff(startBreak)\n\n return breakDuration\n })\n )\n\n const breakDuration = getFineDuration(duration)\n\n return breakDuration\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["Promise","each","filter","find","groupBy","isEmpty","map","size","sortBy","sum","toString","trim","moment","duration","getLocationReference","getTimezoneAbbr","getTimezoneDatetime","launchIcon","generateDefinition","horizontalLine","summaryFieldsTable","summaryStatTable","summaryWrapperTable","table","text","threeColumnTable","zebraFillColor","LIGHTHOUSE_BASE_URL","buildShiftPdf","_x","_x2","_buildShiftPdf","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","pdfOptions","data","timestamp","timezone","title","content","wrap","_context","prev","next","generateContent","sent","abrupt","_objectSpread","fileTitle","type","stop","_x3","_generateContent","_callee2","activitySection","summarySection","titleTable","_context2","buildActivitySection","buildSummarySection","buildTitleTable","_x4","_buildActivitySection","_callee3","timeline","activitySummary","_context3","buildTimelineTable","buildActivitySummarySection","shift","user","breaks","end","start","headerTitle","style","username","concat","firstName","lastName","headerSubTitle","mTimezoneStart","time","tz","mTimezoneEnd","rangeStart","format","rangeEnd","shiftDuration","getFineDuration","breakDuration","getBreakDuration","header","headerRange","body","layout","audits","events","issues","tasks","eventsByType","enterEventsCount","enter","issuesCount","tasksCount","auditsCount","scansText","issuesText","tasksText","auditsText","scansCountText","issuesCountText","tasksCountText","auditsCountText","scanTable","issueTable","taskTables","auditTable","wrapperTable","_x5","_buildActivitySummarySection","_callee4","settings","enterEvents","auditRows","issueRows","scanRows","taskRows","rows","sortedRows","hLine","activityTable","activitySummarySection","_context4","event","getFormRowData","getScanRowData","_toConsumableArray","buildActivityTable","_x6","_buildActivityTable","_callee6","_ref","timezoneAbbr","activityTableHeader","activityTableRows","activityTableBody","_context6","bold","alignment","_ref6","_callee5","link","location","icon","summaryFields","timezoneHour","iconCell","hasSummaryFields","fieldsTable","activityTableRow","_context5","showTzAbbr","fit","image","fields","push","colSpan","dontBreakRows","headerRow","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","widths","_x8","fillColor","collection","_ref2","locations","zones","document","_id","createdAt","_document$entry","entry","_document$title","entity","_ref3","_document$zone","zone","zoneDoc","doc","zoneName","name","_x7","_buildTimelineTable","_callee8","shiftRows","timelineHeaderRow","timelineTable","timelineSection","_context8","getShiftRowData","_ref7","_callee7","_context7","_x9","_ref4","startValues","getShiftValues","startShift","endValues","endShift","shiftData","startBreak","endBreak","value","_ref5","locationName","durationValue","measurement","durationByMeasurement","days","get","hours","minutes","fineDuration","diff"],"sources":["../../../src/pdf/shift-report/index.js"],"sourcesContent":["import Promise from 'bluebird'\nimport {\n each,\n filter,\n find,\n groupBy,\n isEmpty,\n map,\n size,\n sortBy,\n sum,\n toString,\n trim,\n} from 'lodash'\nimport moment, { duration } from 'moment-timezone'\n\nimport {\n getLocationReference,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\nimport { launchIcon } from '../../images'\nimport {\n generateDefinition,\n horizontalLine,\n summaryFieldsTable,\n summaryStatTable,\n summaryWrapperTable,\n table,\n text,\n threeColumnTable,\n zebraFillColor,\n} from '../helpers'\n\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\n/**\n * buildActivityPdf\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {array} data.audits - audit documents\n * @param {array} data.events - event documents\n * @param {array} data.locations - location documents\n * @param {array} data.issues - issue documents\n * @param {array} data.audits - audit documents\n * @param {object} data.shift - shift document\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {array} data.tasks - task documents\n * @param {string} data.timestamp - timestamp string\n * @param {string} data.timezone - timezone string\n * @param {array} data.zones - zone documents\n * @param {array} data.user - user document\n * @returns {Promise} returns pdfmake definition object\n */\n\nexport async function buildShiftPdf(pdfOptions, data) {\n const { timestamp, timezone } = data\n\n const title = 'Daily Shift Report'\n const content = await generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle: title,\n timestamp,\n timezone,\n type: 'Shift Report',\n ...pdfOptions,\n })\n}\n\nasync function generateContent(data) {\n const activitySection = await buildActivitySection(data)\n const summarySection = buildSummarySection(data)\n const titleTable = buildTitleTable(data)\n\n return [titleTable, summarySection, activitySection]\n}\n\nasync function buildActivitySection(data) {\n const timeline = await buildTimelineTable(data)\n const activitySummary = await buildActivitySummarySection(data)\n\n return [timeline, activitySummary]\n}\n\nfunction buildTitleTable(data) {\n const { shift, timezone, user } = data\n const { breaks, duration, end, start } = shift\n\n const headerTitle = text('Daily Shift Report', { style: 'title' })\n const username = `${user.firstName} ${user.lastName}` || 'Unknown User'\n\n const headerSubTitle = text(`${username}`, {\n style: 'subTitle',\n })\n\n const mTimezoneStart = moment(start.time).tz(timezone)\n const mTimezoneEnd = moment(end.time).tz(timezone)\n\n const rangeStart = moment(mTimezoneStart).format('MMM DD h:mma')\n const rangeEnd = moment(mTimezoneEnd).format('MMM DD h:mma')\n\n const shiftDuration = getFineDuration(duration)\n const breakDuration = getBreakDuration(breaks)\n\n const header = !breakDuration\n ? `${rangeStart} - ${rangeEnd} | Duration: ${shiftDuration}`\n : `${rangeStart} - ${rangeEnd} | Duration: ${shiftDuration}, Break: ${breakDuration}`\n const headerRange = text(header, {\n style: 'subTitle2',\n })\n\n return table({\n body: [[headerTitle], [headerSubTitle], [headerRange]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n}\n\nfunction buildSummarySection(data) {\n const { audits, events, issues, tasks } = data\n\n const eventsByType = groupBy(events, 'type')\n\n const enterEventsCount = size(eventsByType.enter)\n const issuesCount = size(issues)\n const tasksCount = size(tasks)\n const auditsCount = size(audits)\n\n const scansText = text('SCANS', { style: 'summaryText' })\n const issuesText = text('ISSUES', { style: 'summaryText' })\n const tasksText = text('TASKS', { style: 'summaryText' })\n const auditsText = text('AUDITS', { style: 'summaryText' })\n\n const scansCountText = text(toString(enterEventsCount), {\n style: 'summaryCount',\n })\n const issuesCountText = text(toString(issuesCount), { style: 'summaryCount' })\n const tasksCountText = text(toString(tasksCount), { style: 'summaryCount' })\n const auditsCountText = text(toString(auditsCount), { style: 'summaryCount' })\n\n const scanTable = summaryStatTable({ body: [[scansText], [scansCountText]] })\n const issueTable = summaryStatTable({\n body: [[issuesText], [issuesCountText]],\n })\n const taskTables = summaryStatTable({ body: [[tasksText], [tasksCountText]] })\n const auditTable = summaryStatTable({\n body: [[auditsText], [auditsCountText]],\n })\n\n const wrapperTable = summaryWrapperTable({\n body: [[scanTable, issueTable, taskTables, auditTable]],\n })\n\n return wrapperTable\n}\n\nasync function buildActivitySummarySection(data) {\n const { audits, events, issues, settings, tasks, timezone } = data\n\n const enterEvents = filter(events, (event) => event.type === 'enter')\n\n const auditRows = map(audits, getFormRowData('audits', data))\n const issueRows = map(issues, getFormRowData('issues', data))\n const scanRows = map(enterEvents, getScanRowData(data))\n const taskRows = map(tasks, getFormRowData('tasks', data))\n\n const rows = [...auditRows, ...issueRows, ...scanRows, ...taskRows]\n const sortedRows = sortBy(rows, ['timestamp'], ['asc'])\n const title = text('Activity Summary', { style: 'summarySectionHeader' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n const activityTable = await buildActivityTable({\n rows: sortedRows,\n settings,\n timezone,\n })\n const activitySummarySection = [header, hLine, activityTable]\n\n return activitySummarySection\n}\n\nasync function buildActivityTable({ rows, settings, timezone }) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const activityTableHeader = [\n text('Activity', { bold: true }),\n { text: '' },\n text('Location', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const activityTableRows = await Promise.map(rows, async function (data) {\n const { link, location, icon, summaryFields, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const iconCell = icon\n ? { alignment: 'center', fit: [8, 8], image: icon, link }\n : { text: '' }\n\n const rows = [\n [\n text(title, { link }),\n iconCell,\n text(location, { link }),\n text(timezoneHour, { alignment: 'right', link }),\n ],\n ]\n\n const hasSummaryFields = !isEmpty(summaryFields)\n\n if (hasSummaryFields) {\n const fieldsTable = await summaryFieldsTable({\n fields: summaryFields,\n settings,\n timezone,\n })\n rows.push([fieldsTable])\n }\n\n const activityTableRow = [\n table({\n body: [...rows],\n colSpan: 5,\n dontBreakRows: true,\n headerRow: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [120, 25, 200, 110, '*'],\n }),\n ]\n\n return activityTableRow\n })\n\n const activityTableBody = isEmpty(activityTableRows)\n ? [[text('No other activity', { colSpan: 4 })]]\n : activityTableRows\n\n const activityTable = table({\n body: [activityTableHeader, ...activityTableBody],\n dontBreakRows: true,\n layout: {\n hLineWidth: () => 0,\n fillColor: zebraFillColor,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n },\n widths: [110, 15, 230, 80, '*'],\n })\n\n return activityTable\n}\n\nfunction getFormRowData(collection, { locations, zones }) {\n return (document) => {\n const { _id, createdAt, entry = {}, title = 'Unknown' } = document\n\n const location = getLocationReference({\n entity: document,\n locations,\n zones,\n })\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/${collection}/${_id}`\n const timestamp = createdAt\n\n const summaryFields = entry.summaryFields || []\n\n return {\n icon: launchIcon,\n location,\n link,\n summaryFields,\n timestamp,\n title,\n }\n }\n}\n\nfunction getScanRowData({ zones }) {\n return (document) => {\n const { timestamp, zone = '' } = document\n\n const zoneDoc =\n zone && find(zones, (doc) => doc._id.toString() === zone.toString())\n\n const zoneName = zoneDoc && zoneDoc.name\n const location = zoneName || 'Unknown Location'\n\n const title = 'Location Scan'\n\n return {\n location,\n timestamp,\n title,\n }\n }\n}\n\nasync function buildTimelineTable(data) {\n const { timezone } = data\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const shiftRows = getShiftRowData(data)\n\n const sortedRows = sortBy(shiftRows, ['timestamp'], ['asc'])\n const timeline = await Promise.map(sortedRows, async function (data) {\n const { location, timestamp, title } = data\n\n const timezoneHour = getTimezoneDatetime({\n format: 'ddd DD h:mm a',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n const rows = [\n text(title),\n text(location),\n text(timezoneHour, { alignment: 'right' }),\n ]\n\n return rows\n })\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('Location', { bold: true }),\n text(`Timestamp (${timezoneAbbr})`, { alignment: 'right', bold: true }),\n ]\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timeline],\n })\n\n const title = text('Timeline', { style: 'timelineTitle' })\n\n const header = table({\n body: [[title]],\n layout: 'noBorders',\n style: 'summaryHeaderTable',\n })\n\n const hLine = horizontalLine()\n\n const timelineSection = [header, hLine, timelineTable]\n\n return timelineSection\n}\n\nfunction getShiftRowData({ locations, shift, zones }) {\n const { breaks, end, start } = shift\n\n const startValues = getShiftValues(start, { locations, shift, zones })\n const startShift = { title: 'Shift Started', ...startValues }\n const endValues = getShiftValues(end, { locations, shift, zones })\n const endShift = { title: 'Shift Ended', ...endValues }\n\n const shiftData = [startShift, endShift]\n\n each(breaks, function (data) {\n const { end, start } = data\n const startValues = getShiftValues(start, { locations, shift, zones })\n const startBreak = { title: 'Break Started', ...startValues }\n const endValues = getShiftValues(end, { locations, shift, zones })\n const endBreak = { title: 'Break Ended', ...endValues }\n\n shiftData.push(startBreak)\n shiftData.push(endBreak)\n })\n\n return shiftData\n}\n\nfunction getShiftValues(value, { locations, shift, zones }) {\n const locationName = getLocationReference({\n entity: value,\n locations,\n zones,\n })\n\n const location =\n locationName === 'Unknown Location'\n ? getLocationReference({\n entity: shift,\n locations,\n zones,\n })\n : locationName\n\n return {\n timestamp: value.time,\n location,\n }\n}\n\nexport function getFineDuration(durationValue) {\n const measurement = 'milliseconds'\n const durationByMeasurement = duration(durationValue, measurement)\n const days = durationByMeasurement.get('days')\n const hours = durationByMeasurement.get('hours')\n const minutes = durationByMeasurement.get('minutes')\n let fineDuration = ''\n fineDuration += days !== 0 ? days + 'd ' : ''\n fineDuration += hours !== 0 ? hours + 'h ' : ''\n fineDuration += minutes !== 0 ? minutes + 'm' : ''\n\n return trim(fineDuration)\n}\n\nfunction getBreakDuration(breaks) {\n const duration = sum(\n map(breaks, function (data) {\n const { end, start } = data\n const endBreak = moment(end.time)\n const startBreak = moment(start.time)\n const breakDuration = endBreak.diff(startBreak)\n\n return breakDuration\n })\n )\n\n const breakDuration = getFineDuration(duration)\n\n return breakDuration\n}\n"],"mappings":"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","ignoreList":[]}
@@ -25,7 +25,7 @@ import { getTaskEntryDetails } from '../../helpers';
25
25
  * @param {object} data.locations - locations documents
26
26
  * @param {object} data.settings - settings properties
27
27
  * @param {string} data.settings.awsS3BaseUrl - aws S3 base url
28
- * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url
28
+ * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url
29
29
  * @param {string} data.timezone - timezone string
30
30
  * @param {object} data.users - application user documents
31
31
  * @param {object} data.zones - zone documents
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["isEmpty","moment","buildTemplateContent","generateDefinition","getFormattedAddress","text","table","getTaskEntryDetails","buildTaskPdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","entry","_entity$gps","gps","entityDetails","gpsText","locationText","referenceValue","timezoneHourTime","reverseGeocoded","subTitle","headerSubTitle","style","headerTitle","address","headerAddress","body","push","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","formGroups","_toConsumableArray"],"sources":["../../../src/pdf/task/index.js"],"sourcesContent":["import { isEmpty } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n text,\n table,\n} from '../helpers'\nimport { getTaskEntryDetails } from '../../helpers'\n\n/**\n * buildTaskPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - task document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildTaskPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Task Report - ${title}`\n\n return generateContent(data).then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Task',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data) {\n const { entity, timezone } = data\n\n const { entry, gps = {}, title } = entity\n\n const entityDetails = getTaskEntryDetails(data)\n\n const {\n gpsText,\n locationText,\n referenceValue,\n timezoneHourTime,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText ||\n gpsText} - ${timezoneHourTime} by ${referenceValue}`\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const headerTitle = text(title, { style: 'title' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = [[headerTitle], [headerSubTitle]]\n\n if (!isEmpty(reverseGeocoded)) {\n body.push([headerAddress])\n }\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays())\n .toString()\n .padStart(2, '0')\n const hours = Math.floor(momentDuration.hours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n return buildTemplateContent(entry.formGroups, data).then(entry => [\n titleTable,\n ...entry,\n ])\n}\n"],"mappings":";;;;AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SACEC,oBAAoB,EACpBC,kBAAkB,EAClBC,mBAAmB,EACnBC,IAAI,EACJC,KAAK,QACA,YAAY;AACnB,SAASC,mBAAmB,QAAQ,eAAe;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,UAAU,EAAEC,IAAI,EAAE;EAC7C,IAAQC,MAAM,GAAeD,IAAI,CAAzBC,MAAM;IAAEC,QAAQ,GAAKF,IAAI,CAAjBE,QAAQ;EAExB,IAAMC,UAAU,GAAGF,MAAM,CAACE,UAAU;EACpC,IAAMC,SAAS,GAAGH,MAAM,CAACI,SAAS;EAClC,IAAMC,KAAK,GAAGL,MAAM,CAACK,KAAK,IAAI,SAAS;EAEvC,IAAMC,SAAS,oBAAAC,MAAA,CAAoBF,KAAK,CAAE;EAE1C,OAAOG,eAAe,CAACT,IAAI,CAAC,CAACU,IAAI,CAAC,UAAAC,OAAO;IAAA,OACvClB,kBAAkB,CAAAmB,aAAA;MAChBD,OAAO,EAAPA,OAAO;MACPJ,SAAS,EAATA,SAAS;MACTJ,UAAU,EAAVA,UAAU;MACVC,SAAS,EAATA,SAAS;MACTF,QAAQ,EAARA,QAAQ;MACRW,IAAI,EAAE;IAAM,GACTd,UAAU,CACd,CAAC;EAAA,CACJ,CAAC;AACH;AAEA,SAASU,eAAeA,CAACT,IAAI,EAAE;EAC7B,IAAQC,MAAM,GAAeD,IAAI,CAAzBC,MAAM;IAAEC,QAAQ,GAAKF,IAAI,CAAjBE,QAAQ;EAExB,IAAQY,KAAK,GAAsBb,MAAM,CAAjCa,KAAK;IAAAC,WAAA,GAAsBd,MAAM,CAA1Be,GAAG;IAAHA,GAAG,GAAAD,WAAA,cAAG,CAAC,CAAC,GAAAA,WAAA;IAAET,KAAK,GAAKL,MAAM,CAAhBK,KAAK;EAE9B,IAAMW,aAAa,GAAGpB,mBAAmB,CAACG,IAAI,CAAC;EAE/C,IACEkB,OAAO,GAILD,aAAa,CAJfC,OAAO;IACPC,YAAY,GAGVF,aAAa,CAHfE,YAAY;IACZC,cAAc,GAEZH,aAAa,CAFfG,cAAc;IACdC,gBAAgB,GACdJ,aAAa,CADfI,gBAAgB;EAGlB,IAAMC,eAAe,GAAGN,GAAG,CAACM,eAAe;EAE3C,IAAMC,QAAQ,MAAAf,MAAA,CAAMW,YAAY,IAC9BD,OAAO,SAAAV,MAAA,CAAMa,gBAAgB,UAAAb,MAAA,CAAOY,cAAc,CAAE;EACtD,IAAMI,cAAc,GAAG7B,IAAI,CAAC4B,QAAQ,EAAE;IAAEE,KAAK,EAAE;EAAW,CAAC,CAAC;EAC5D,IAAMC,WAAW,GAAG/B,IAAI,CAACW,KAAK,EAAE;IAAEmB,KAAK,EAAE;EAAQ,CAAC,CAAC;EACnD,IAAME,OAAO,GAAG,CAACrC,OAAO,CAACgC,eAAe,CAAC,GACrC5B,mBAAmB,CAAC4B,eAAe,CAAC,GACpC,EAAE;EACN,IAAMM,aAAa,GAAGjC,IAAI,CAACgC,OAAO,EAAE;IAAEF,KAAK,EAAE;EAAQ,CAAC,CAAC;EAEvD,IAAMI,IAAI,GAAG,CAAC,CAACH,WAAW,CAAC,EAAE,CAACF,cAAc,CAAC,CAAC;EAE9C,IAAI,CAAClC,OAAO,CAACgC,eAAe,CAAC,EAAE;IAC7BO,IAAI,CAACC,IAAI,CAAC,CAACF,aAAa,CAAC,CAAC;EAC5B;EAEA,IAAMG,qBAAqB,GAAG9B,MAAM,CAAC+B,WAAW,GAC5CzC,MAAM,CAACU,MAAM,CAAC+B,WAAW,CAAC,CACvBC,EAAE,CAAC/B,QAAQ,CAAC,CACZgC,MAAM,CAAC,uBAAuB,CAAC,GAClC,cAAc;EAClB,IAAMF,WAAW,GAAGrC,IAAI,eAAAa,MAAA,CAAeuB,qBAAqB,GAAI;IAC9DN,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,IAAIxB,MAAM,CAACkC,sBAAsB,EAAE;IACjCN,IAAI,CAACC,IAAI,CAAC,CAACE,WAAW,CAAC,CAAC;EAC1B,CAAC,MAAM;IACL,IAAMI,mBAAmB,GAAGnC,MAAM,CAACoC,SAAS,GACxC9C,MAAM,CAACU,MAAM,CAACoC,SAAS,CAAC,CACrBJ,EAAE,CAAC/B,QAAQ,CAAC,CACZgC,MAAM,CAAC,uBAAuB,CAAC,GAClC,cAAc;IAClB,IAAMG,SAAS,GAAG1C,IAAI,aAAAa,MAAA,CAAa4B,mBAAmB,GAAI;MACxDX,KAAK,EAAE;IACT,CAAC,CAAC;IAEF,IAAMa,cAAc,GAAG/C,MAAM,CAACgD,QAAQ,CAACC,IAAI,CAACC,GAAG,CAACxC,MAAM,CAACyC,YAAY,CAAC,CAAC;IACrE,IAAMC,IAAI,GAAGH,IAAI,CAACI,KAAK,CAACN,cAAc,CAACO,MAAM,CAAC,CAAC,CAAC,CAC7CC,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACnB,IAAMC,KAAK,GAAGR,IAAI,CAACI,KAAK,CAACN,cAAc,CAACU,KAAK,CAAC,CAAC,CAAC,CAC7CF,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACnB,IAAME,OAAO,GAAGX,cAAc,CAC3BW,OAAO,CAAC,CAAC,CACTH,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACnB,IAAMG,OAAO,GAAGZ,cAAc,CAC3BY,OAAO,CAAC,CAAC,CACTJ,QAAQ,CAAC,CAAC,CACVC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACnB,IAAMI,qBAAqB,GAAGlD,MAAM,CAACyC,YAAY,MAAAlC,MAAA,CAE3CP,MAAM,CAACyC,YAAY,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,EAAAlC,MAAA,CACjCmC,IAAI,OAAAnC,MAAA,CAAIwC,KAAK,OAAAxC,MAAA,CAAIyC,OAAO,OAAAzC,MAAA,CAAI0C,OAAO,IACtC,cAAc;IAClB,IAAMR,YAAY,GAAG/C,IAAI,iCAAAa,MAAA,CACS2C,qBAAqB,GACrD;MACE1B,KAAK,EAAE;IACT,CACF,CAAC;IAEDI,IAAI,CAACC,IAAI,CAAC,CAACO,SAAS,CAAC,CAAC;IACtBR,IAAI,CAACC,IAAI,CAAC,CAACE,WAAW,CAAC,CAAC;IACxBH,IAAI,CAACC,IAAI,CAAC,CAACY,YAAY,CAAC,CAAC;EAC3B;EAEA,IAAMU,UAAU,GAAGxD,KAAK,CAAC;IACvBiC,IAAI,EAAJA,IAAI;IACJwB,MAAM,EAAE,WAAW;IACnB5B,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAOjC,oBAAoB,CAACsB,KAAK,CAACwC,UAAU,EAAEtD,IAAI,CAAC,CAACU,IAAI,CAAC,UAAAI,KAAK;IAAA,QAC5DsC,UAAU,EAAA5C,MAAA,CAAA+C,kBAAA,CACPzC,KAAK;EAAA,CACT,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["isEmpty","moment","buildTemplateContent","generateDefinition","getFormattedAddress","text","table","getTaskEntryDetails","buildTaskPdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","entry","_entity$gps","gps","entityDetails","gpsText","locationText","referenceValue","timezoneHourTime","reverseGeocoded","subTitle","headerSubTitle","style","headerTitle","address","headerAddress","body","push","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","formGroups","_toConsumableArray"],"sources":["../../../src/pdf/task/index.js"],"sourcesContent":["import { isEmpty } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n text,\n table,\n} from '../helpers'\nimport { getTaskEntryDetails } from '../../helpers'\n\n/**\n * buildTaskPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - task document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudfrontBaseUrl - cloudfront base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildTaskPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Task Report - ${title}`\n\n return generateContent(data).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Task',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data) {\n const { entity, timezone } = data\n\n const { entry, gps = {}, title } = entity\n\n const entityDetails = getTaskEntryDetails(data)\n\n const { gpsText, locationText, referenceValue, timezoneHourTime } =\n entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${\n locationText || gpsText\n } - ${timezoneHourTime} by ${referenceValue}`\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const headerTitle = text(title, { style: 'title' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = [[headerTitle], [headerSubTitle]]\n\n if (!isEmpty(reverseGeocoded)) {\n body.push([headerAddress])\n }\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n ...entry,\n ])\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lighthouse/common",
3
- "version": "6.10.0-canary.3",
3
+ "version": "6.10.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "module": "lib/index.js",