@lighthouse/common 5.0.0-canary-11 → 5.0.0-canary-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/helpers/build-fetch-url/index.js +2 -2
  2. package/dist/helpers/fetch-image/index.js +1 -1
  3. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +9 -9
  4. package/dist/helpers/fetch-image-for-web/index.js +3 -14
  5. package/dist/helpers/get-audit-entry-details/index.js +2 -0
  6. package/dist/helpers/get-issue-details/index.js +2 -0
  7. package/dist/helpers/get-task-entry-details/index.js +3 -1
  8. package/dist/pdf/helpers/fields/index.js +2 -2
  9. package/dist/scheduling/scheduling.types.js +9 -9
  10. package/dist/service-hours/schema.js +12 -12
  11. package/lib/errors/DomainError.js +7 -8
  12. package/lib/errors/DomainError.js.map +1 -1
  13. package/lib/errors/ValidationError.js +11 -9
  14. package/lib/errors/ValidationError.js.map +1 -1
  15. package/lib/helpers/build-fetch-url/index.js +2 -2
  16. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  17. package/lib/helpers/fetch-image/index.js +1 -1
  18. package/lib/helpers/fetch-image/index.js.map +1 -1
  19. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +174 -180
  20. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  21. package/lib/helpers/fetch-image-for-web/index.js +60 -74
  22. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  23. package/lib/helpers/fetch-lighthouse-logo/index.js +41 -43
  24. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  25. package/lib/helpers/get-audit-entry-details/index.js +2 -0
  26. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  27. package/lib/helpers/get-audit-items-data/index.js +8 -8
  28. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  29. package/lib/helpers/get-issue-details/index.js +2 -0
  30. package/lib/helpers/get-issue-details/index.js.map +1 -1
  31. package/lib/helpers/get-job-details/index.js.map +1 -1
  32. package/lib/helpers/get-location-reference/index.js +6 -4
  33. package/lib/helpers/get-location-reference/index.js.map +1 -1
  34. package/lib/helpers/get-reference-details/index.js.map +1 -1
  35. package/lib/helpers/get-task-entry-details/index.js +3 -1
  36. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  37. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  38. package/lib/pdf/activity-report/index.js +299 -311
  39. package/lib/pdf/activity-report/index.js.map +1 -1
  40. package/lib/pdf/audit/index.js.map +1 -1
  41. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  42. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  43. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  44. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  45. package/lib/pdf/helpers/fields/index.js +14 -14
  46. package/lib/pdf/helpers/fields/index.js.map +1 -1
  47. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  48. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  49. package/lib/pdf/helpers/html-transformer/index.js +1 -2
  50. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  51. package/lib/pdf/helpers/table/index.js +63 -65
  52. package/lib/pdf/helpers/table/index.js.map +1 -1
  53. package/lib/pdf/issue/index.js.map +1 -1
  54. package/lib/pdf/job/index.js.map +1 -1
  55. package/lib/pdf/shift-report/index.js +275 -291
  56. package/lib/pdf/shift-report/index.js.map +1 -1
  57. package/lib/pdf/task/index.js.map +1 -1
  58. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -30
  59. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  60. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -21
  61. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  62. package/lib/scheduling/generators/serviceIntervalsGenerator.js +134 -136
  63. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  64. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +81 -83
  65. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  66. package/lib/scheduling/helpers/generateRepeatingSchedule.js +104 -106
  67. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  68. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  69. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  70. package/lib/scheduling/scheduling.types.js +9 -9
  71. package/lib/scheduling/scheduling.types.js.map +1 -1
  72. package/lib/scheduling/strategies/getNext.js +21 -17
  73. package/lib/scheduling/strategies/getNext.js.map +1 -1
  74. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +21 -18
  75. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  76. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +20 -17
  77. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  78. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +20 -17
  79. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  80. package/lib/scheduling/strategies/getNextNoRepeat.js +15 -14
  81. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  82. package/lib/scheduling/strategies/getNextWeekday.js +36 -33
  83. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  84. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +20 -17
  85. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  86. package/lib/schema/schema.js +21 -23
  87. package/lib/schema/schema.js.map +1 -1
  88. package/lib/service-hours/schema.js +15 -13
  89. package/lib/service-hours/schema.js.map +1 -1
  90. package/package.json +2 -2
  91. package/yarn-error.log +0 -13549
@@ -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","_callee$","_context","prev","next","generateContent","sent","abrupt","_objectSpread","fileTitle","type","stop","_x3","_generateContent","_callee2","activitySection","summarySection","titleTable","_callee2$","_context2","buildActivitySection","buildSummarySection","buildTitleTable","_x4","_buildActivitySection","_callee3","_data$showAlternate","showAlternate","locationScans","otherActivity","activitySummary","_callee3$","_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","_callee4$","_context4","event","getFormRowData","getScanRowData","concat","_toConsumableArray","style","body","layout","buildActivityTable","link","margin","push","_x6","_buildActivityTable","_callee6","_ref","timezoneAbbr","activityTableHeader","activityTableRows","activityTableBody","_callee6$","_context6","bold","alignment","_ref4","_callee5","location","icon","name","summaryFields","timezoneHour","iconCell","hasSummaryFields","fieldsTable","activityTableRow","_callee5$","_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","_callee7$","_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.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 +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","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","push","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","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 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 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),\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","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","push","titleTable","layout","widths","margin","totalScoreTable","hLineTop","hLineBottom","followUpItems","promises","entry","items","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 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 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),\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 +1 @@
1
- {"version":3,"file":"index.js","names":["flatten","isEmpty","round","Promise","fetchImage","fourColumnTable","horizontalLine","imageTables","table","text","LIGHT_BLUE","WHITE","buildAuditContent","method","items","settings","arguments","length","undefined","map","group","item","index","assets","_ref","assetUrl","link","then","base64String","alignment","fit","image","rowImages","rows","fillColor","hasImages","hasComments","comments","label","id","questionId","push","scoreLabel","weight","scoreWeight","imageRow","colSpan","stack","commentsRow","margin","style","groupTableRows","actual","groupActualScore","max","groupMaximumScore","resultText","concat","groupPercentageResultScore","skipped","groupScoreText","bold","headerText","title","groupHeaderTable","body","layout","widths","groupTableHeader","groupTable","headerRows","_toConsumableArray","hLine"],"sources":["../../../../src/pdf/helpers/build-audit-content/index.js"],"sourcesContent":["import { flatten, isEmpty, round } from 'lodash'\nimport Promise from 'bluebird'\n\nimport { fetchImage } from '../../../helpers'\nimport { fourColumnTable, horizontalLine, imageTables, table, text } from '../'\nimport { LIGHT_BLUE, WHITE } from '../table'\n\nexport const buildAuditContent = Promise.method((items, settings = {}) => {\n return Promise.map(items, group => {\n return Promise.map(group.items, (item, index) => {\n return Promise.map(item.assets, ({ assetUrl, link }) => {\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(assetUrl, settings).then(base64String => ({\n alignment: 'center',\n fit: [210, 210],\n image: base64String,\n link,\n }))\n }).then(rowImages => {\n const rows = []\n\n const fillColor = index % 2 === 0 ? WHITE : LIGHT_BLUE\n const hasImages = !isEmpty(rowImages)\n const hasComments = !isEmpty(item.comments)\n\n // Some audits use questionId to link a follow-up issue and its question\n const label = { text: item.label, fillColor, id: item.questionId }\n\n rows.push([\n label,\n { text: item.scoreLabel, fillColor },\n { alignment: 'center', text: item.weight, fillColor },\n { alignment: 'right', text: item.scoreWeight, fillColor },\n ])\n\n if (hasImages) {\n const imageRow = [\n {\n colSpan: 4,\n fillColor,\n stack: imageTables(rowImages),\n },\n ]\n\n rows.push(imageRow)\n }\n\n if (hasComments) {\n const commentsRow = [\n {\n colSpan: 4,\n fillColor,\n margin: [0, -10, 0, 0],\n stack: [\n { text: 'Comments:', style: 'commentsHeader' },\n { text: item.comments },\n ],\n },\n ]\n\n rows.push(commentsRow)\n }\n\n return rows\n })\n }).then(groupTableRows => {\n const actual = round(group.groupActualScore, 2)\n const max = round(group.groupMaximumScore, 2)\n const resultText = `${group.groupPercentageResultScore}%`\n\n const { skipped } = group\n\n const groupScoreText = skipped\n ? null\n : text(`${actual} / ${max} (${resultText})`, {\n alignment: 'right',\n bold: true,\n })\n const headerText = text(group.title)\n\n const groupHeaderTable = table({\n body: [[headerText, groupScoreText]],\n layout: 'noBorders',\n style: 'groupHeaderTable',\n widths: ['*', '*'],\n })\n\n const groupTableHeader = [\n text('Question', { bold: true }),\n text('Answer', { bold: true }),\n text('Weight', { alignment: 'center', bold: true }),\n text('Score', { alignment: 'right', bold: true }),\n ]\n\n const groupTable = fourColumnTable({\n headerRows: 0,\n // NOTE: must flatten here as we have arrays of rows\n body: [groupTableHeader, ...flatten(groupTableRows)],\n widths: ['60%', '24%', '8%', '8%'],\n })\n\n const hLine = horizontalLine()\n\n return [groupHeaderTable, hLine, groupTable]\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["flatten","isEmpty","round","Promise","fetchImage","fourColumnTable","horizontalLine","imageTables","table","text","LIGHT_BLUE","WHITE","buildAuditContent","method","items","settings","arguments","length","undefined","map","group","item","index","assets","_ref","assetUrl","link","then","base64String","alignment","fit","image","rowImages","rows","fillColor","hasImages","hasComments","comments","label","id","questionId","push","scoreLabel","weight","scoreWeight","imageRow","colSpan","stack","commentsRow","margin","style","groupTableRows","actual","groupActualScore","max","groupMaximumScore","resultText","concat","groupPercentageResultScore","skipped","groupScoreText","bold","headerText","title","groupHeaderTable","body","layout","widths","groupTableHeader","groupTable","headerRows","_toConsumableArray","hLine"],"sources":["../../../../src/pdf/helpers/build-audit-content/index.js"],"sourcesContent":["import { flatten, isEmpty, round } from 'lodash'\nimport Promise from 'bluebird'\n\nimport { fetchImage } from '../../../helpers'\nimport { fourColumnTable, horizontalLine, imageTables, table, text } from '../'\nimport { LIGHT_BLUE, WHITE } from '../table'\n\nexport const buildAuditContent = Promise.method((items, settings = {}) => {\n return Promise.map(items, group => {\n return Promise.map(group.items, (item, index) => {\n return Promise.map(item.assets, ({ assetUrl, link }) => {\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(assetUrl, settings).then(base64String => ({\n alignment: 'center',\n fit: [210, 210],\n image: base64String,\n link,\n }))\n }).then(rowImages => {\n const rows = []\n\n const fillColor = index % 2 === 0 ? WHITE : LIGHT_BLUE\n const hasImages = !isEmpty(rowImages)\n const hasComments = !isEmpty(item.comments)\n\n // Some audits use questionId to link a follow-up issue and its question\n const label = { text: item.label, fillColor, id: item.questionId }\n\n rows.push([\n label,\n { text: item.scoreLabel, fillColor },\n { alignment: 'center', text: item.weight, fillColor },\n { alignment: 'right', text: item.scoreWeight, fillColor },\n ])\n\n if (hasImages) {\n const imageRow = [\n {\n colSpan: 4,\n fillColor,\n stack: imageTables(rowImages),\n },\n ]\n\n rows.push(imageRow)\n }\n\n if (hasComments) {\n const commentsRow = [\n {\n colSpan: 4,\n fillColor,\n margin: [0, -10, 0, 0],\n stack: [\n { text: 'Comments:', style: 'commentsHeader' },\n { text: item.comments },\n ],\n },\n ]\n\n rows.push(commentsRow)\n }\n\n return rows\n })\n }).then(groupTableRows => {\n const actual = round(group.groupActualScore, 2)\n const max = round(group.groupMaximumScore, 2)\n const resultText = `${group.groupPercentageResultScore}%`\n\n const { skipped } = group\n\n const groupScoreText = skipped\n ? null\n : text(`${actual} / ${max} (${resultText})`, {\n alignment: 'right',\n bold: true,\n })\n const headerText = text(group.title)\n\n const groupHeaderTable = table({\n body: [[headerText, groupScoreText]],\n layout: 'noBorders',\n style: 'groupHeaderTable',\n widths: ['*', '*'],\n })\n\n const groupTableHeader = [\n text('Question', { bold: true }),\n text('Answer', { bold: true }),\n text('Weight', { alignment: 'center', bold: true }),\n text('Score', { alignment: 'right', bold: true }),\n ]\n\n const groupTable = fourColumnTable({\n headerRows: 0,\n // NOTE: must flatten here as we have arrays of rows\n body: [groupTableHeader, ...flatten(groupTableRows)],\n widths: ['60%', '24%', '8%', '8%'],\n })\n\n const hLine = horizontalLine()\n\n return [groupHeaderTable, hLine, groupTable]\n })\n })\n})\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["moment","getStatusDetails","getUserFullName","defaultStyles","horizontalLine","sixColumnTable","launchIcon","internalLinkIcon","LIGHTHOUSE_BASE_URL","buildAuditFollowUps","rawFollowUpIssues","arguments","length","undefined","options","sectionTitle","text","style","font","lineHeight","margin","sectionDivider","followUpIssues","filter","item","errorMessage","subTitle","_options$timezone","timezone","tableBody","forEach","mappedStatus","status","toUpperCase","_objectSpread","small","color","alignment","updatedAt","format","tz","link","concat","issueId","iconLinkCell","fit","image","linkToDestination","questionId","iconJumpCell","assignees","assigneeUsername","push","issueTitle","questionLabel","headerLinkIconCell","headerJumpIconCell","headerStyle","bold","fontSize","headerRow","followUpsTable","body","widths"],"sources":["../../../../src/pdf/helpers/build-audit-follow-ups/index.js"],"sourcesContent":["import moment from 'moment-timezone'\nimport { getStatusDetails, getUserFullName } from '../../../helpers'\nimport { defaultStyles, horizontalLine, sixColumnTable } from '../'\nimport { launchIcon, internalLinkIcon } from '../../../images'\n\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\nexport function buildAuditFollowUps(rawFollowUpIssues = [], options = {}) {\n const sectionTitle = [\n {\n text: 'Follow-up Issues',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n margin: [0, 0, 0, 50],\n },\n },\n ]\n const sectionDivider = horizontalLine({ margin: [0, 0, 0, 0] })\n\n const followUpIssues = rawFollowUpIssues.filter(item => !item.errorMessage)\n if (!followUpIssues.length) {\n // Show a `no follow-up issues` message if there are no follow up issues\n return [\n sectionTitle,\n sectionDivider,\n {\n text: 'No follow-up issues exist for this audit',\n style: defaultStyles.subTitle,\n margin: [0, 5, 0, 50],\n },\n ]\n }\n\n const { timezone = 'America/New_York' } = options\n const tableBody = []\n followUpIssues.forEach(item => {\n const mappedStatus = getStatusDetails(item.status)\n const status = {\n text: mappedStatus.text.toUpperCase(),\n style: {\n ...defaultStyles.small,\n color: mappedStatus.style.color,\n alignment: 'center',\n },\n }\n\n let updatedAt = ''\n if (item.updatedAt) {\n const format = 'MMM D h:mma' // e.g. Jan 21 12:59am in the Audit timezone\n updatedAt = moment.tz(item.updatedAt, timezone).format(format)\n }\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/issues/${item.issueId}`\n const iconLinkCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: launchIcon, link }\n : { text: '' }\n\n const linkToDestination = item.questionId\n const iconJumpCell = launchIcon\n ? {\n alignment: 'center',\n fit: [8, 8],\n image: internalLinkIcon,\n linkToDestination,\n }\n : { text: '' }\n\n const assignees = item.assignees || []\n const assigneeUsername =\n assignees.length === 0\n ? 'Unassigned'\n : assignees.length === 1\n ? // TODO Currently this gives `first last`, I don't think it can fall back to 'Unknown User' here\n getUserFullName(assignees, 0)\n : `${assignees.length} users`\n\n tableBody.push([\n iconLinkCell,\n { text: item.issueTitle || '', link, style: 'small', image: launchIcon },\n status,\n { text: assigneeUsername, style: 'small' },\n iconJumpCell,\n { text: item.questionLabel || '', style: 'small', linkToDestination },\n { text: updatedAt || '', style: 'small', alignment: 'right' },\n ])\n })\n\n const headerLinkIconCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: launchIcon }\n : { text: '' }\n\n const headerJumpIconCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: internalLinkIcon }\n : { text: '' }\n\n const headerStyle = {\n bold: true,\n font: 'Gotham',\n fontSize: 8,\n alignment: 'left',\n }\n\n const headerRow = [\n headerLinkIconCell,\n { text: 'Issue Title', style: headerStyle },\n { text: 'Status', style: headerStyle, alignment: 'center' },\n { text: 'Assignees', style: headerStyle },\n headerJumpIconCell,\n { text: 'Audit Question', style: headerStyle },\n { text: 'Last Updated', style: headerStyle, alignment: 'right' },\n ]\n\n const followUpsTable = sixColumnTable({\n body: [headerRow, ...tableBody],\n style: 'titleTable',\n widths: [6, '*', 55, 55, 6, '*', '16%'],\n margin: [0, 0, 0, 30],\n })\n\n return [sectionTitle, sectionDivider, followUpsTable]\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["moment","getStatusDetails","getUserFullName","defaultStyles","horizontalLine","sixColumnTable","launchIcon","internalLinkIcon","LIGHTHOUSE_BASE_URL","buildAuditFollowUps","rawFollowUpIssues","arguments","length","undefined","options","sectionTitle","text","style","font","lineHeight","margin","sectionDivider","followUpIssues","filter","item","errorMessage","subTitle","_options$timezone","timezone","tableBody","forEach","mappedStatus","status","toUpperCase","_objectSpread","small","color","alignment","updatedAt","format","tz","link","concat","issueId","iconLinkCell","fit","image","linkToDestination","questionId","iconJumpCell","assignees","assigneeUsername","push","issueTitle","questionLabel","headerLinkIconCell","headerJumpIconCell","headerStyle","bold","fontSize","headerRow","followUpsTable","body","widths"],"sources":["../../../../src/pdf/helpers/build-audit-follow-ups/index.js"],"sourcesContent":["import moment from 'moment-timezone'\nimport { getStatusDetails, getUserFullName } from '../../../helpers'\nimport { defaultStyles, horizontalLine, sixColumnTable } from '../'\nimport { launchIcon, internalLinkIcon } from '../../../images'\n\nconst LIGHTHOUSE_BASE_URL = 'https://app.lighthouse.io'\n\nexport function buildAuditFollowUps(rawFollowUpIssues = [], options = {}) {\n const sectionTitle = [\n {\n text: 'Follow-up Issues',\n style: {\n font: 'Gotham',\n lineHeight: 1.1,\n margin: [0, 0, 0, 50],\n },\n },\n ]\n const sectionDivider = horizontalLine({ margin: [0, 0, 0, 0] })\n\n const followUpIssues = rawFollowUpIssues.filter(item => !item.errorMessage)\n if (!followUpIssues.length) {\n // Show a `no follow-up issues` message if there are no follow up issues\n return [\n sectionTitle,\n sectionDivider,\n {\n text: 'No follow-up issues exist for this audit',\n style: defaultStyles.subTitle,\n margin: [0, 5, 0, 50],\n },\n ]\n }\n\n const { timezone = 'America/New_York' } = options\n const tableBody = []\n followUpIssues.forEach(item => {\n const mappedStatus = getStatusDetails(item.status)\n const status = {\n text: mappedStatus.text.toUpperCase(),\n style: {\n ...defaultStyles.small,\n color: mappedStatus.style.color,\n alignment: 'center',\n },\n }\n\n let updatedAt = ''\n if (item.updatedAt) {\n const format = 'MMM D h:mma' // e.g. Jan 21 12:59am in the Audit timezone\n updatedAt = moment.tz(item.updatedAt, timezone).format(format)\n }\n\n const link = `${LIGHTHOUSE_BASE_URL}/reports/issues/${item.issueId}`\n const iconLinkCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: launchIcon, link }\n : { text: '' }\n\n const linkToDestination = item.questionId\n const iconJumpCell = launchIcon\n ? {\n alignment: 'center',\n fit: [8, 8],\n image: internalLinkIcon,\n linkToDestination,\n }\n : { text: '' }\n\n const assignees = item.assignees || []\n const assigneeUsername =\n assignees.length === 0\n ? 'Unassigned'\n : assignees.length === 1\n ? // TODO Currently this gives `first last`, I don't think it can fall back to 'Unknown User' here\n getUserFullName(assignees, 0)\n : `${assignees.length} users`\n\n tableBody.push([\n iconLinkCell,\n { text: item.issueTitle || '', link, style: 'small', image: launchIcon },\n status,\n { text: assigneeUsername, style: 'small' },\n iconJumpCell,\n { text: item.questionLabel || '', style: 'small', linkToDestination },\n { text: updatedAt || '', style: 'small', alignment: 'right' },\n ])\n })\n\n const headerLinkIconCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: launchIcon }\n : { text: '' }\n\n const headerJumpIconCell = launchIcon\n ? { alignment: 'center', fit: [8, 8], image: internalLinkIcon }\n : { text: '' }\n\n const headerStyle = {\n bold: true,\n font: 'Gotham',\n fontSize: 8,\n alignment: 'left',\n }\n\n const headerRow = [\n headerLinkIconCell,\n { text: 'Issue Title', style: headerStyle },\n { text: 'Status', style: headerStyle, alignment: 'center' },\n { text: 'Assignees', style: headerStyle },\n headerJumpIconCell,\n { text: 'Audit Question', style: headerStyle },\n { text: 'Last Updated', style: headerStyle, alignment: 'right' },\n ]\n\n const followUpsTable = sixColumnTable({\n body: [headerRow, ...tableBody],\n style: 'titleTable',\n widths: [6, '*', 55, 55, 6, '*', '16%'],\n margin: [0, 0, 0, 30],\n })\n\n return [sectionTitle, sectionDivider, followUpsTable]\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["filter","moment","buildLocationScansBoundaries","start","timezone","firstBoundary","tz","boundaries","push","i","intervalSize","nextBoundary","add","buildLocationScansContent","events","eventsArray","_loop","eventsInThisInterval","event","eventMoment","timestamp","isSameOrAfter","isBefore","length"],"sources":["../../../../src/pdf/helpers/build-location-scans-content/index.js"],"sourcesContent":["import { filter } from 'lodash'\nimport moment from 'moment-timezone'\n\nexport const buildLocationScansBoundaries = (start, timezone) => {\n const firstBoundary = moment.tz(start, timezone)\n const boundaries = []\n // add 9 boundaries (3 hours apart) to an array\n // these will mark the edges of 8 3-hour buckets of scan events\n // ex: [start, start+3hrs, start+6hrs, ..., start+24hrs]\n boundaries.push(firstBoundary)\n for (let i = 1; i < 9; i++) {\n const intervalSize = 3 * i\n const nextBoundary = moment(firstBoundary).add(intervalSize, 'hours')\n boundaries.push(nextBoundary)\n }\n return boundaries\n}\n\nexport const buildLocationScansContent = (boundaries, events, timezone) => {\n // loop through boundaries filtering for events between the current boundary and the next one\n // skip the last one as it's the end and has no \"next one\"\n // ex: [interval1Events, interval2Events, ..., interval8Events] where interval1Events is an array\n // of events that start on or after boundary 1 and before boundary 2\n const eventsArray = []\n for (let i = 0; i < boundaries.length - 1; i++) {\n const eventsInThisInterval = filter(events, function(event) {\n const eventMoment = moment.tz(event.timestamp, timezone)\n return (\n eventMoment.isSameOrAfter(boundaries[i]) &&\n eventMoment.isBefore(boundaries[i + 1])\n )\n })\n // add events to interval\n eventsArray.push(eventsInThisInterval)\n }\n return eventsArray\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,OAAO,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIC,KAAK,EAAEC,QAAQ,EAAK;EAC/D,IAAMC,aAAa,GAAGJ,MAAM,CAACK,EAAE,CAACH,KAAK,EAAEC,QAAQ,CAAC;EAChD,IAAMG,UAAU,GAAG,EAAE;EACrB;EACA;EACA;EACAA,UAAU,CAACC,IAAI,CAACH,aAAa,CAAC;EAC9B,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC1B,IAAMC,YAAY,GAAG,CAAC,GAAGD,CAAC;IAC1B,IAAME,YAAY,GAAGV,MAAM,CAACI,aAAa,CAAC,CAACO,GAAG,CAACF,YAAY,EAAE,OAAO,CAAC;IACrEH,UAAU,CAACC,IAAI,CAACG,YAAY,CAAC;EAC/B;EACA,OAAOJ,UAAU;AACnB,CAAC;AAED,OAAO,IAAMM,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIN,UAAU,EAAEO,MAAM,EAAEV,QAAQ,EAAK;EACzE;EACA;EACA;EACA;EACA,IAAMW,WAAW,GAAG,EAAE;EAAA,IAAAC,KAAA,YAAAA,MACbP,CAAC;IACR,IAAMQ,oBAAoB,GAAGjB,MAAM,CAACc,MAAM,EAAE,UAASI,KAAK,EAAE;MAC1D,IAAMC,WAAW,GAAGlB,MAAM,CAACK,EAAE,CAACY,KAAK,CAACE,SAAS,EAAEhB,QAAQ,CAAC;MACxD,OACEe,WAAW,CAACE,aAAa,CAACd,UAAU,CAACE,CAAC,CAAC,CAAC,IACxCU,WAAW,CAACG,QAAQ,CAACf,UAAU,CAACE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,CAAC,CAAC;IACF;IACAM,WAAW,CAACP,IAAI,CAACS,oBAAoB,CAAC;EAAA;EATxC,KAAK,IAAIR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,UAAU,CAACgB,MAAM,GAAG,CAAC,EAAEd,CAAC,EAAE,EAAE;IAAAO,KAAA,CAAvCP,CAAC;EAUV;EACA,OAAOM,WAAW;AACpB,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["filter","moment","buildLocationScansBoundaries","start","timezone","firstBoundary","tz","boundaries","push","i","intervalSize","nextBoundary","add","buildLocationScansContent","events","eventsArray","_loop","eventsInThisInterval","event","eventMoment","timestamp","isSameOrAfter","isBefore","length"],"sources":["../../../../src/pdf/helpers/build-location-scans-content/index.js"],"sourcesContent":["import { filter } from 'lodash'\nimport moment from 'moment-timezone'\n\nexport const buildLocationScansBoundaries = (start, timezone) => {\n const firstBoundary = moment.tz(start, timezone)\n const boundaries = []\n // add 9 boundaries (3 hours apart) to an array\n // these will mark the edges of 8 3-hour buckets of scan events\n // ex: [start, start+3hrs, start+6hrs, ..., start+24hrs]\n boundaries.push(firstBoundary)\n for (let i = 1; i < 9; i++) {\n const intervalSize = 3 * i\n const nextBoundary = moment(firstBoundary).add(intervalSize, 'hours')\n boundaries.push(nextBoundary)\n }\n return boundaries\n}\n\nexport const buildLocationScansContent = (boundaries, events, timezone) => {\n // loop through boundaries filtering for events between the current boundary and the next one\n // skip the last one as it's the end and has no \"next one\"\n // ex: [interval1Events, interval2Events, ..., interval8Events] where interval1Events is an array\n // of events that start on or after boundary 1 and before boundary 2\n const eventsArray = []\n for (let i = 0; i < boundaries.length - 1; i++) {\n const eventsInThisInterval = filter(events, function(event) {\n const eventMoment = moment.tz(event.timestamp, timezone)\n return (\n eventMoment.isSameOrAfter(boundaries[i]) &&\n eventMoment.isBefore(boundaries[i + 1])\n )\n })\n // add events to interval\n eventsArray.push(eventsInThisInterval)\n }\n return eventsArray\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,OAAO,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIC,KAAK,EAAEC,QAAQ,EAAK;EAC/D,IAAMC,aAAa,GAAGJ,MAAM,CAACK,EAAE,CAACH,KAAK,EAAEC,QAAQ,CAAC;EAChD,IAAMG,UAAU,GAAG,EAAE;EACrB;EACA;EACA;EACAA,UAAU,CAACC,IAAI,CAACH,aAAa,CAAC;EAC9B,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC1B,IAAMC,YAAY,GAAG,CAAC,GAAGD,CAAC;IAC1B,IAAME,YAAY,GAAGV,MAAM,CAACI,aAAa,CAAC,CAACO,GAAG,CAACF,YAAY,EAAE,OAAO,CAAC;IACrEH,UAAU,CAACC,IAAI,CAACG,YAAY,CAAC;EAC/B;EACA,OAAOJ,UAAU;AACnB,CAAC;AAED,OAAO,IAAMM,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAIN,UAAU,EAAEO,MAAM,EAAEV,QAAQ,EAAK;EACzE;EACA;EACA;EACA;EACA,IAAMW,WAAW,GAAG,EAAE;EAAA,IAAAC,KAAA,YAAAA,MAAAP,CAAA,EAC0B;IAC9C,IAAMQ,oBAAoB,GAAGjB,MAAM,CAACc,MAAM,EAAE,UAASI,KAAK,EAAE;MAC1D,IAAMC,WAAW,GAAGlB,MAAM,CAACK,EAAE,CAACY,KAAK,CAACE,SAAS,EAAEhB,QAAQ,CAAC;MACxD,OACEe,WAAW,CAACE,aAAa,CAACd,UAAU,CAACE,CAAC,CAAC,CAAC,IACxCU,WAAW,CAACG,QAAQ,CAACf,UAAU,CAACE,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3C,CAAC,CAAC;IACF;IACAM,WAAW,CAACP,IAAI,CAACS,oBAAoB,CAAC;EACxC,CAAC;EAVD,KAAK,IAAIR,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,UAAU,CAACgB,MAAM,GAAG,CAAC,EAAEd,CAAC,EAAE;IAAAO,KAAA,CAAAP,CAAA;EAAA;EAW9C,OAAOM,WAAW;AACpB,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["compact","isEmpty","Promise","buildTemplateFieldRow","horizontalLine","table","text","twoColumnTable","buildTemplateContent","method","formGroups","arguments","length","undefined","data","settings","timezone","map","_ref","label","fieldGroups","_ref$skipped","skipped","_ref2","fields","field","then","fieldGroupRows","rows","headerRows","body","_toConsumableArray","fieldGroupTables","groupHeaderTable","layout","style","widths","hLine","concat"],"sources":["../../../../src/pdf/helpers/build-template-content/index.js"],"sourcesContent":["import { compact, isEmpty } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n buildTemplateFieldRow,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../'\n\nexport const buildTemplateContent = Promise.method((formGroups = [], data) => {\n const { settings, timezone } = data\n\n return Promise.map(formGroups, ({ label, fieldGroups, skipped = false }) =>\n Promise.map(fieldGroups, ({ fields }) =>\n Promise.map(fields, field =>\n buildTemplateFieldRow({ field, settings, timezone, skipped })\n ).then(fieldGroupRows => {\n const rows = compact(fieldGroupRows)\n\n // NOTE if empty return null so we can\n // prevent this field group section from\n // being created in the pdf. This can occur\n // when we have a display text field\n if (isEmpty(rows)) {\n return null\n }\n\n return twoColumnTable({\n headerRows: 0,\n body: [...rows],\n })\n })\n ).then(fieldGroupTables => {\n const fieldGroups = compact(fieldGroupTables)\n\n if (isEmpty(fieldGroups)) {\n return []\n }\n\n const groupHeaderTable = table({\n body: [[text(label)]],\n layout: 'noBorders',\n style: 'groupHeaderTable',\n widths: ['*'],\n })\n\n const hLine = horizontalLine()\n\n return [groupHeaderTable, hLine, ...fieldGroups]\n })\n )\n})\n"],"mappings":";AAAA,SAASA,OAAO,EAAEC,OAAO,QAAQ,QAAQ;AACzC,OAAOC,OAAO,MAAM,UAAU;AAE9B,SACEC,qBAAqB,EACrBC,cAAc,EACdC,KAAK,EACLC,IAAI,EACJC,cAAc,QACT,KAAK;AAEZ,OAAO,IAAMC,oBAAoB,GAAGN,OAAO,CAACO,MAAM,CAAC,YAA2B;EAAA,IAA1BC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EAAA,IAC/DE,QAAQ,GAAeD,IAAI,CAA3BC,QAAQ;IAAEC,QAAQ,GAAKF,IAAI,CAAjBE,QAAQ;EAE1B,OAAOd,OAAO,CAACe,GAAG,CAACP,UAAU,EAAE,UAAAQ,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;MAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;MAAAC,YAAA,GAAAH,IAAA,CAAEI,OAAO;MAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAA,OACnEnB,OAAO,CAACe,GAAG,CAACG,WAAW,EAAE,UAAAG,KAAA;MAAA,IAAGC,MAAM,GAAAD,KAAA,CAANC,MAAM;MAAA,OAChCtB,OAAO,CAACe,GAAG,CAACO,MAAM,EAAE,UAAAC,KAAK;QAAA,OACvBtB,qBAAqB,CAAC;UAAEsB,KAAK,EAALA,KAAK;UAAEV,QAAQ,EAARA,QAAQ;UAAEC,QAAQ,EAARA,QAAQ;UAAEM,OAAO,EAAPA;QAAQ,CAAC,CAAC;MAAA,CAC/D,CAAC,CAACI,IAAI,CAAC,UAAAC,cAAc,EAAI;QACvB,IAAMC,IAAI,GAAG5B,OAAO,CAAC2B,cAAc,CAAC;;QAEpC;QACA;QACA;QACA;QACA,IAAI1B,OAAO,CAAC2B,IAAI,CAAC,EAAE;UACjB,OAAO,IAAI;QACb;QAEA,OAAOrB,cAAc,CAAC;UACpBsB,UAAU,EAAE,CAAC;UACbC,IAAI,EAAAC,kBAAA,CAAMH,IAAI;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC;IAAA,CACJ,CAAC,CAACF,IAAI,CAAC,UAAAM,gBAAgB,EAAI;MACzB,IAAMZ,WAAW,GAAGpB,OAAO,CAACgC,gBAAgB,CAAC;MAE7C,IAAI/B,OAAO,CAACmB,WAAW,CAAC,EAAE;QACxB,OAAO,EAAE;MACX;MAEA,IAAMa,gBAAgB,GAAG5B,KAAK,CAAC;QAC7ByB,IAAI,EAAE,CAAC,CAACxB,IAAI,CAACa,KAAK,CAAC,CAAC,CAAC;QACrBe,MAAM,EAAE,WAAW;QACnBC,KAAK,EAAE,kBAAkB;QACzBC,MAAM,EAAE,CAAC,GAAG;MACd,CAAC,CAAC;MAEF,IAAMC,KAAK,GAAGjC,cAAc,CAAC,CAAC;MAE9B,QAAQ6B,gBAAgB,EAAEI,KAAK,EAAAC,MAAA,CAAAP,kBAAA,CAAKX,WAAW;IACjD,CAAC,CAAC;EAAA,CACJ,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["compact","isEmpty","Promise","buildTemplateFieldRow","horizontalLine","table","text","twoColumnTable","buildTemplateContent","method","formGroups","arguments","length","undefined","data","settings","timezone","map","_ref","label","fieldGroups","_ref$skipped","skipped","_ref2","fields","field","then","fieldGroupRows","rows","headerRows","body","_toConsumableArray","fieldGroupTables","groupHeaderTable","layout","style","widths","hLine","concat"],"sources":["../../../../src/pdf/helpers/build-template-content/index.js"],"sourcesContent":["import { compact, isEmpty } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n buildTemplateFieldRow,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../'\n\nexport const buildTemplateContent = Promise.method((formGroups = [], data) => {\n const { settings, timezone } = data\n\n return Promise.map(formGroups, ({ label, fieldGroups, skipped = false }) =>\n Promise.map(fieldGroups, ({ fields }) =>\n Promise.map(fields, field =>\n buildTemplateFieldRow({ field, settings, timezone, skipped })\n ).then(fieldGroupRows => {\n const rows = compact(fieldGroupRows)\n\n // NOTE if empty return null so we can\n // prevent this field group section from\n // being created in the pdf. This can occur\n // when we have a display text field\n if (isEmpty(rows)) {\n return null\n }\n\n return twoColumnTable({\n headerRows: 0,\n body: [...rows],\n })\n })\n ).then(fieldGroupTables => {\n const fieldGroups = compact(fieldGroupTables)\n\n if (isEmpty(fieldGroups)) {\n return []\n }\n\n const groupHeaderTable = table({\n body: [[text(label)]],\n layout: 'noBorders',\n style: 'groupHeaderTable',\n widths: ['*'],\n })\n\n const hLine = horizontalLine()\n\n return [groupHeaderTable, hLine, ...fieldGroups]\n })\n )\n})\n"],"mappings":";AAAA,SAASA,OAAO,EAAEC,OAAO,QAAQ,QAAQ;AACzC,OAAOC,OAAO,MAAM,UAAU;AAE9B,SACEC,qBAAqB,EACrBC,cAAc,EACdC,KAAK,EACLC,IAAI,EACJC,cAAc,QACT,KAAK;AAEZ,OAAO,IAAMC,oBAAoB,GAAGN,OAAO,CAACO,MAAM,CAAC,YAA2B;EAAA,IAA1BC,UAAU,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAAA,IAAEG,IAAI,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EACvE,IAAQE,QAAQ,GAAeD,IAAI,CAA3BC,QAAQ;IAAEC,QAAQ,GAAKF,IAAI,CAAjBE,QAAQ;EAE1B,OAAOd,OAAO,CAACe,GAAG,CAACP,UAAU,EAAE,UAAAQ,IAAA;IAAA,IAAGC,KAAK,GAAAD,IAAA,CAALC,KAAK;MAAEC,WAAW,GAAAF,IAAA,CAAXE,WAAW;MAAAC,YAAA,GAAAH,IAAA,CAAEI,OAAO;MAAPA,OAAO,GAAAD,YAAA,cAAG,KAAK,GAAAA,YAAA;IAAA,OACnEnB,OAAO,CAACe,GAAG,CAACG,WAAW,EAAE,UAAAG,KAAA;MAAA,IAAGC,MAAM,GAAAD,KAAA,CAANC,MAAM;MAAA,OAChCtB,OAAO,CAACe,GAAG,CAACO,MAAM,EAAE,UAAAC,KAAK;QAAA,OACvBtB,qBAAqB,CAAC;UAAEsB,KAAK,EAALA,KAAK;UAAEV,QAAQ,EAARA,QAAQ;UAAEC,QAAQ,EAARA,QAAQ;UAAEM,OAAO,EAAPA;QAAQ,CAAC,CAAC;MAAA,CAC/D,CAAC,CAACI,IAAI,CAAC,UAAAC,cAAc,EAAI;QACvB,IAAMC,IAAI,GAAG5B,OAAO,CAAC2B,cAAc,CAAC;;QAEpC;QACA;QACA;QACA;QACA,IAAI1B,OAAO,CAAC2B,IAAI,CAAC,EAAE;UACjB,OAAO,IAAI;QACb;QAEA,OAAOrB,cAAc,CAAC;UACpBsB,UAAU,EAAE,CAAC;UACbC,IAAI,EAAAC,kBAAA,CAAMH,IAAI;QAChB,CAAC,CAAC;MACJ,CAAC,CAAC;IAAA,CACJ,CAAC,CAACF,IAAI,CAAC,UAAAM,gBAAgB,EAAI;MACzB,IAAMZ,WAAW,GAAGpB,OAAO,CAACgC,gBAAgB,CAAC;MAE7C,IAAI/B,OAAO,CAACmB,WAAW,CAAC,EAAE;QACxB,OAAO,EAAE;MACX;MAEA,IAAMa,gBAAgB,GAAG5B,KAAK,CAAC;QAC7ByB,IAAI,EAAE,CAAC,CAACxB,IAAI,CAACa,KAAK,CAAC,CAAC,CAAC;QACrBe,MAAM,EAAE,WAAW;QACnBC,KAAK,EAAE,kBAAkB;QACzBC,MAAM,EAAE,CAAC,GAAG;MACd,CAAC,CAAC;MAEF,IAAMC,KAAK,GAAGjC,cAAc,CAAC,CAAC;MAE9B,QAAQ6B,gBAAgB,EAAEI,KAAK,EAAAC,MAAA,CAAAP,kBAAA,CAAKX,WAAW;IACjD,CAAC,CAAC;EAAA,CACJ,CAAC;AACH,CAAC,CAAC","ignoreList":[]}
@@ -24,13 +24,13 @@ function buildImage(options) {
24
24
  filepath = options.filepath,
25
25
  _options$height = options.height,
26
26
  height = _options$height === void 0 ? 210 : _options$height,
27
- settings = options.settings,
27
+ _options$settings = options.settings,
28
+ settings = _options$settings === void 0 ? {} : _options$settings,
28
29
  _options$width = options.width,
29
30
  width = _options$width === void 0 ? 210 : _options$width;
30
- var _ref2 = settings || {},
31
- awsS3BaseUrl = _ref2.awsS3BaseUrl,
32
- cloudinaryBaseUrl = _ref2.cloudinaryBaseUrl,
33
- cloudfrontBaseUrl = _ref2.cloudfrontBaseUrl;
31
+ var awsS3BaseUrl = settings.awsS3BaseUrl,
32
+ cloudinaryBaseUrl = settings.cloudinaryBaseUrl,
33
+ cloudfrontBaseUrl = settings.cloudfrontBaseUrl;
34
34
  var isVideoType = new RegExp('.mp4$').test(filepath);
35
35
  var link = "".concat(awsS3BaseUrl, "/").concat(filepath);
36
36
  if (isVideoType) {
@@ -61,10 +61,10 @@ function buildImage(options) {
61
61
  };
62
62
  });
63
63
  }
64
- export function buildSummaryField(_ref3) {
65
- var field = _ref3.field,
66
- settings = _ref3.settings,
67
- timezone = _ref3.timezone;
64
+ export function buildSummaryField(_ref2) {
65
+ var field = _ref2.field,
66
+ settings = _ref2.settings,
67
+ timezone = _ref2.timezone;
68
68
  var fieldtype = field.fieldtype,
69
69
  _field$options = field.options,
70
70
  options = _field$options === void 0 ? {} : _field$options,
@@ -181,11 +181,11 @@ export function buildSummaryField(_ref3) {
181
181
  text: ''
182
182
  };
183
183
  }
184
- export function buildTemplateFieldRow(_ref4) {
185
- var field = _ref4.field,
186
- settings = _ref4.settings,
187
- timezone = _ref4.timezone,
188
- skipped = _ref4.skipped;
184
+ export function buildTemplateFieldRow(_ref3) {
185
+ var field = _ref3.field,
186
+ settings = _ref3.settings,
187
+ timezone = _ref3.timezone,
188
+ skipped = _ref3.skipped;
189
189
  var fieldtype = field.fieldtype,
190
190
  label = field.label,
191
191
  _field$options2 = field.options,