@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.
- package/dist/helpers/build-fetch-url/index.js +2 -2
- package/dist/helpers/fetch-image/index.js +1 -1
- package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +9 -9
- package/dist/helpers/fetch-image-for-web/index.js +3 -14
- package/dist/helpers/get-audit-entry-details/index.js +2 -0
- package/dist/helpers/get-issue-details/index.js +2 -0
- package/dist/helpers/get-task-entry-details/index.js +3 -1
- package/dist/pdf/helpers/fields/index.js +2 -2
- package/dist/scheduling/scheduling.types.js +9 -9
- package/dist/service-hours/schema.js +12 -12
- package/lib/errors/DomainError.js +7 -8
- package/lib/errors/DomainError.js.map +1 -1
- package/lib/errors/ValidationError.js +11 -9
- package/lib/errors/ValidationError.js.map +1 -1
- package/lib/helpers/build-fetch-url/index.js +2 -2
- package/lib/helpers/build-fetch-url/index.js.map +1 -1
- package/lib/helpers/fetch-image/index.js +1 -1
- package/lib/helpers/fetch-image/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +174 -180
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-web/index.js +60 -74
- package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
- package/lib/helpers/fetch-lighthouse-logo/index.js +41 -43
- package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
- package/lib/helpers/get-audit-entry-details/index.js +2 -0
- package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
- package/lib/helpers/get-audit-items-data/index.js +8 -8
- package/lib/helpers/get-audit-items-data/index.js.map +1 -1
- package/lib/helpers/get-issue-details/index.js +2 -0
- package/lib/helpers/get-issue-details/index.js.map +1 -1
- package/lib/helpers/get-job-details/index.js.map +1 -1
- package/lib/helpers/get-location-reference/index.js +6 -4
- package/lib/helpers/get-location-reference/index.js.map +1 -1
- package/lib/helpers/get-reference-details/index.js.map +1 -1
- package/lib/helpers/get-task-entry-details/index.js +3 -1
- package/lib/helpers/get-task-entry-details/index.js.map +1 -1
- package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
- package/lib/pdf/activity-report/index.js +299 -311
- package/lib/pdf/activity-report/index.js.map +1 -1
- package/lib/pdf/audit/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
- package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
- package/lib/pdf/helpers/fields/index.js +14 -14
- package/lib/pdf/helpers/fields/index.js.map +1 -1
- package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
- package/lib/pdf/helpers/html-transformer/index.js +1 -2
- package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
- package/lib/pdf/helpers/table/index.js +63 -65
- package/lib/pdf/helpers/table/index.js.map +1 -1
- package/lib/pdf/issue/index.js.map +1 -1
- package/lib/pdf/job/index.js.map +1 -1
- package/lib/pdf/shift-report/index.js +275 -291
- package/lib/pdf/shift-report/index.js.map +1 -1
- package/lib/pdf/task/index.js.map +1 -1
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +27 -30
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js +19 -21
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/serviceIntervalsGenerator.js +134 -136
- package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +81 -83
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateRepeatingSchedule.js +104 -106
- package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
- package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
- package/lib/scheduling/scheduling.types.js +9 -9
- package/lib/scheduling/scheduling.types.js.map +1 -1
- package/lib/scheduling/strategies/getNext.js +21 -17
- package/lib/scheduling/strategies/getNext.js.map +1 -1
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js +21 -18
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js +20 -17
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +20 -17
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextNoRepeat.js +15 -14
- package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
- package/lib/scheduling/strategies/getNextWeekday.js +36 -33
- package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +20 -17
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
- package/lib/schema/schema.js +21 -23
- package/lib/schema/schema.js.map +1 -1
- package/lib/service-hours/schema.js +15 -13
- package/lib/service-hours/schema.js.map +1 -1
- package/package.json +2 -2
- package/yarn-error.log +0 -13549
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isArray","isEmpty","join","first","map","startsWith","Promise","moment","buildFetchUrl","fetchImage","videoIcon","imageTables","parseValue","text","toPdf","buildFile","_ref","file","settings","extension","name","path","awsS3BaseUrl","link","concat","margin","buildImage","options","_options$alignment","alignment","filepath","_options$height","height","_options$width","width","_ref2","cloudinaryBaseUrl","cloudfrontBaseUrl","isVideoType","RegExp","test","fit","image","url","quality","then","base64String","buildSummaryField","_ref3","field","timezone","fieldtype","_field$options","value","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","fileList","ol","parsedValue","displayValue","fontSize","filter","val","label","tz","buildTemplateFieldRow","_ref4","skipped","_field$options2","_options$showOnRead","showOnRead","isDisplayImageField","labelText","parsed","replace","values","fieldImages","tables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","_toConsumableArray","widths","string"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\nimport Promise from 'bluebird'\nimport moment from 'moment-timezone'\n\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\nimport { videoIcon } from '../../../images'\nimport { imageTables, parseValue, text, toPdf } from '../'\n\nexport function buildFile({ file, settings }) {\n const { extension, name, path } = file\n const { awsS3BaseUrl } = settings\n\n const link = `${awsS3BaseUrl}/${path}`\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\n}\n\nfunction buildImage(options) {\n const {\n alignment = 'center',\n filepath,\n height = 210,\n settings,\n width = 210,\n } = options\n const { awsS3BaseUrl, cloudinaryBaseUrl, cloudfrontBaseUrl } = settings || {}\n\n const isVideoType = new RegExp('.mp4$').test(filepath)\n const link = `${awsS3BaseUrl}/${filepath}`\n\n if (isVideoType) {\n return {\n alignment,\n fit: [width, height],\n image: videoIcon,\n link,\n }\n }\n\n const url = buildFetchUrl(filepath, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n fit: true,\n height: 400,\n width: 600,\n quality: 50,\n })\n\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(url, settings).then(base64String => ({\n alignment,\n fit: [width, height],\n image: base64String,\n link,\n }))\n}\n\nexport function buildSummaryField({ field, settings, timezone }) {\n const { fieldtype, options = {}, value } = field\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isReferenceField = fieldtype === 'reference'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n\n // NOTE: html field is not supported for the summary fields but adding\n // logic to catch this and return empty text for completeness\n if (isHtmlField) {\n return { text: '' }\n }\n\n if (isSignatureField) {\n if (!value) return ''\n\n if (isDataImage(value)) {\n return { alignment: 'left', image: value, width: 140 }\n }\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(value, settings).then(base64String => {\n return {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n })\n }\n\n if (isPhotoField) {\n const filepath = first(value)\n\n // NOTE: if no filepath return empty text as user has not uploaded an image\n // for this field\n if (!filepath) {\n return { text: '' }\n }\n\n const image = buildImage({\n alignment: 'left',\n filepath,\n height: 140,\n width: 140,\n settings,\n })\n\n return image\n }\n\n if (isFileField) {\n const fileList = map(value, file => buildFile({ file, settings }))\n return { ol: fileList }\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', '), fontSize: 7 }\n : { text: parsedValue, fontSize: 7 }\n\n return displayValue\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter(val => val && val.label)\n .map(val => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return displayValue\n }\n\n if (isStarField) {\n if (!value) return ''\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return displayValue\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = moment(value)\n .tz(timezone)\n .format(format)\n\n return displayValue\n }\n\n // NOTE: return empty text fallback value when no match\n return { text: '' }\n}\n\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\n const { fieldtype, label, options = {}, value } = field\n const { showOnRead = true } = options\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n const isDisplayImageField = fieldtype === 'image-display' && showOnRead\n const isReferenceField = fieldtype === 'reference'\n\n // NOTE: only show field when show on read is true\n if (!showOnRead) return null\n\n const labelText = [{ text: label }]\n\n if (skipped) {\n return [labelText, [{ text: '-' }]]\n }\n\n if (isHtmlField) {\n const parsed = value.replace(/<p><\\/p>/g, '')\n return [labelText, toPdf(parsed)]\n }\n\n if (isSignatureField) {\n if (!value) return [labelText, '']\n\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(value, settings).then(base64String => {\n const values = {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n return [labelText, values]\n })\n }\n\n if (isDisplayImageField) {\n return Promise.map([value], filepath =>\n buildImage({ filepath, settings })\n ).then(fieldImages => [fieldImages, {}])\n }\n\n if (isPhotoField) {\n return Promise.map(value, filepath =>\n buildImage({ filepath, settings })\n ).then(fieldImages => {\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\n\n const imagesRow = {\n colSpan: 2,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n table: {\n body: [labelText, ...tables],\n widths: ['*'],\n },\n }\n\n // NOTE: pass empty value here as otherwise\n // we can accidentally hide content below\n // this row. Please see the following issue:\n // https://github.com/bpampuch/pdfmake/issues/1598\n return [imagesRow, {}]\n })\n }\n\n if (isFileField) {\n const fileList = map(value, file => buildFile({ file, settings }))\n return [labelText, { ol: fileList }]\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', ') }\n : { text: parsedValue }\n\n return [labelText, displayValue]\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter(val => val && val.label)\n .map(val => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return [labelText, displayValue]\n }\n\n if (isStarField) {\n if (!value) return [labelText, '']\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return [labelText, displayValue]\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = value\n ? moment(value)\n .tz(timezone)\n .format(format)\n : ''\n\n return [labelText, displayValue]\n }\n\n // NOTE: if no match above null values will be stripped within calling fn\n return null\n}\n\nfunction isDataImage(string) {\n return startsWith(string, 'data:image/png;')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isArray","isEmpty","join","first","map","startsWith","Promise","moment","buildFetchUrl","fetchImage","videoIcon","imageTables","parseValue","text","toPdf","buildFile","_ref","file","settings","extension","name","path","awsS3BaseUrl","link","concat","margin","buildImage","options","_options$alignment","alignment","filepath","_options$height","height","_options$settings","_options$width","width","cloudinaryBaseUrl","cloudfrontBaseUrl","isVideoType","RegExp","test","fit","image","url","quality","then","base64String","buildSummaryField","_ref2","field","timezone","fieldtype","_field$options","value","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","fileList","ol","parsedValue","displayValue","fontSize","filter","val","label","tz","buildTemplateFieldRow","_ref3","skipped","_field$options2","_options$showOnRead","showOnRead","isDisplayImageField","labelText","parsed","replace","values","fieldImages","tables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","_toConsumableArray","widths","string"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\nimport Promise from 'bluebird'\nimport moment from 'moment-timezone'\n\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\nimport { videoIcon } from '../../../images'\nimport { imageTables, parseValue, text, toPdf } from '../'\n\nexport function buildFile({ file, settings }) {\n const { extension, name, path } = file\n const { awsS3BaseUrl } = settings\n\n const link = `${awsS3BaseUrl}/${path}`\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\n}\n\nfunction buildImage(options) {\n const {\n alignment = 'center',\n filepath,\n height = 210,\n settings = {},\n width = 210,\n } = options\n const { awsS3BaseUrl, cloudinaryBaseUrl, cloudfrontBaseUrl } = settings\n\n const isVideoType = new RegExp('.mp4$').test(filepath)\n const link = `${awsS3BaseUrl}/${filepath}`\n\n if (isVideoType) {\n return {\n alignment,\n fit: [width, height],\n image: videoIcon,\n link,\n }\n }\n\n const url = buildFetchUrl(filepath, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n fit: true,\n height: 400,\n width: 600,\n quality: 50,\n })\n\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(url, settings).then(base64String => ({\n alignment,\n fit: [width, height],\n image: base64String,\n link,\n }))\n}\n\nexport function buildSummaryField({ field, settings, timezone }) {\n const { fieldtype, options = {}, value } = field\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isReferenceField = fieldtype === 'reference'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n\n // NOTE: html field is not supported for the summary fields but adding\n // logic to catch this and return empty text for completeness\n if (isHtmlField) {\n return { text: '' }\n }\n\n if (isSignatureField) {\n if (!value) return ''\n\n if (isDataImage(value)) {\n return { alignment: 'left', image: value, width: 140 }\n }\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(value, settings).then(base64String => {\n return {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n })\n }\n\n if (isPhotoField) {\n const filepath = first(value)\n\n // NOTE: if no filepath return empty text as user has not uploaded an image\n // for this field\n if (!filepath) {\n return { text: '' }\n }\n\n const image = buildImage({\n alignment: 'left',\n filepath,\n height: 140,\n width: 140,\n settings,\n })\n\n return image\n }\n\n if (isFileField) {\n const fileList = map(value, file => buildFile({ file, settings }))\n return { ol: fileList }\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', '), fontSize: 7 }\n : { text: parsedValue, fontSize: 7 }\n\n return displayValue\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter(val => val && val.label)\n .map(val => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return displayValue\n }\n\n if (isStarField) {\n if (!value) return ''\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return displayValue\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = moment(value)\n .tz(timezone)\n .format(format)\n\n return displayValue\n }\n\n // NOTE: return empty text fallback value when no match\n return { text: '' }\n}\n\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\n const { fieldtype, label, options = {}, value } = field\n const { showOnRead = true } = options\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n const isDisplayImageField = fieldtype === 'image-display' && showOnRead\n const isReferenceField = fieldtype === 'reference'\n\n // NOTE: only show field when show on read is true\n if (!showOnRead) return null\n\n const labelText = [{ text: label }]\n\n if (skipped) {\n return [labelText, [{ text: '-' }]]\n }\n\n if (isHtmlField) {\n const parsed = value.replace(/<p><\\/p>/g, '')\n return [labelText, toPdf(parsed)]\n }\n\n if (isSignatureField) {\n if (!value) return [labelText, '']\n\n // NOTE: Signature, Policy and KeyPairId are the only used values from settings in this context\n return fetchImage(value, settings).then(base64String => {\n const values = {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n return [labelText, values]\n })\n }\n\n if (isDisplayImageField) {\n return Promise.map([value], filepath =>\n buildImage({ filepath, settings })\n ).then(fieldImages => [fieldImages, {}])\n }\n\n if (isPhotoField) {\n return Promise.map(value, filepath =>\n buildImage({ filepath, settings })\n ).then(fieldImages => {\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\n\n const imagesRow = {\n colSpan: 2,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n table: {\n body: [labelText, ...tables],\n widths: ['*'],\n },\n }\n\n // NOTE: pass empty value here as otherwise\n // we can accidentally hide content below\n // this row. Please see the following issue:\n // https://github.com/bpampuch/pdfmake/issues/1598\n return [imagesRow, {}]\n })\n }\n\n if (isFileField) {\n const fileList = map(value, file => buildFile({ file, settings }))\n return [labelText, { ol: fileList }]\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', ') }\n : { text: parsedValue }\n\n return [labelText, displayValue]\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter(val => val && val.label)\n .map(val => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return [labelText, displayValue]\n }\n\n if (isStarField) {\n if (!value) return [labelText, '']\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return [labelText, displayValue]\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = value\n ? moment(value)\n .tz(timezone)\n .format(format)\n : ''\n\n return [labelText, displayValue]\n }\n\n // NOTE: if no match above null values will be stripped within calling fn\n return null\n}\n\nfunction isDataImage(string) {\n return startsWith(string, 'data:image/png;')\n}\n"],"mappings":";AAAA,SAASA,OAAO,EAAEC,OAAO,EAAEC,IAAI,EAAEC,KAAK,EAAEC,GAAG,EAAEC,UAAU,QAAQ,QAAQ;AACvE,OAAOC,OAAO,MAAM,UAAU;AAC9B,OAAOC,MAAM,MAAM,iBAAiB;AAEpC,SAASC,aAAa,EAAEC,UAAU,QAAQ,kBAAkB;AAC5D,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,WAAW,EAAEC,UAAU,EAAEC,IAAI,EAAEC,KAAK,QAAQ,KAAK;AAE1D,OAAO,SAASC,SAASA,CAAAC,IAAA,EAAqB;EAAA,IAAlBC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EACxC,IAAQC,SAAS,GAAiBF,IAAI,CAA9BE,SAAS;IAAEC,IAAI,GAAWH,IAAI,CAAnBG,IAAI;IAAEC,IAAI,GAAKJ,IAAI,CAAbI,IAAI;EAC7B,IAAQC,YAAY,GAAKJ,QAAQ,CAAzBI,YAAY;EAEpB,IAAMC,IAAI,MAAAC,MAAA,CAAMF,YAAY,OAAAE,MAAA,CAAIH,IAAI,CAAE;EACtC,OAAOR,IAAI,IAAAW,MAAA,CAAIJ,IAAI,OAAAI,MAAA,CAAIL,SAAS,GAAI;IAAEI,IAAI,EAAJA,IAAI;IAAEE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;EAAE,CAAC,CAAC;AACtE;AAEA,SAASC,UAAUA,CAACC,OAAO,EAAE;EAC3B,IAAAC,kBAAA,GAMID,OAAO,CALTE,SAAS;IAATA,SAAS,GAAAD,kBAAA,cAAG,QAAQ,GAAAA,kBAAA;IACpBE,QAAQ,GAINH,OAAO,CAJTG,QAAQ;IAAAC,eAAA,GAINJ,OAAO,CAHTK,MAAM;IAANA,MAAM,GAAAD,eAAA,cAAG,GAAG,GAAAA,eAAA;IAAAE,iBAAA,GAGVN,OAAO,CAFTT,QAAQ;IAARA,QAAQ,GAAAe,iBAAA,cAAG,CAAC,CAAC,GAAAA,iBAAA;IAAAC,cAAA,GAEXP,OAAO,CADTQ,KAAK;IAALA,KAAK,GAAAD,cAAA,cAAG,GAAG,GAAAA,cAAA;EAEb,IAAQZ,YAAY,GAA2CJ,QAAQ,CAA/DI,YAAY;IAAEc,iBAAiB,GAAwBlB,QAAQ,CAAjDkB,iBAAiB;IAAEC,iBAAiB,GAAKnB,QAAQ,CAA9BmB,iBAAiB;EAE1D,IAAMC,WAAW,GAAG,IAAIC,MAAM,CAAC,OAAO,CAAC,CAACC,IAAI,CAACV,QAAQ,CAAC;EACtD,IAAMP,IAAI,MAAAC,MAAA,CAAMF,YAAY,OAAAE,MAAA,CAAIM,QAAQ,CAAE;EAE1C,IAAIQ,WAAW,EAAE;IACf,OAAO;MACLT,SAAS,EAATA,SAAS;MACTY,GAAG,EAAE,CAACN,KAAK,EAAEH,MAAM,CAAC;MACpBU,KAAK,EAAEhC,SAAS;MAChBa,IAAI,EAAJA;IACF,CAAC;EACH;EAEA,IAAMoB,GAAG,GAAGnC,aAAa,CAACsB,QAAQ,EAAE;IAClCR,YAAY,EAAZA,YAAY;IACZe,iBAAiB,EAAjBA,iBAAiB;IACjBD,iBAAiB,EAAjBA,iBAAiB;IACjBK,GAAG,EAAE,IAAI;IACTT,MAAM,EAAE,GAAG;IACXG,KAAK,EAAE,GAAG;IACVS,OAAO,EAAE;EACX,CAAC,CAAC;;EAEF;EACA,OAAOnC,UAAU,CAACkC,GAAG,EAAEzB,QAAQ,CAAC,CAAC2B,IAAI,CAAC,UAAAC,YAAY;IAAA,OAAK;MACrDjB,SAAS,EAATA,SAAS;MACTY,GAAG,EAAE,CAACN,KAAK,EAAEH,MAAM,CAAC;MACpBU,KAAK,EAAEI,YAAY;MACnBvB,IAAI,EAAJA;IACF,CAAC;EAAA,CAAC,CAAC;AACL;AAEA,OAAO,SAASwB,iBAAiBA,CAAAC,KAAA,EAAgC;EAAA,IAA7BC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAE/B,QAAQ,GAAA8B,KAAA,CAAR9B,QAAQ;IAAEgC,QAAQ,GAAAF,KAAA,CAARE,QAAQ;EAC3D,IAAQC,SAAS,GAA0BF,KAAK,CAAxCE,SAAS;IAAAC,cAAA,GAA0BH,KAAK,CAA7BtB,OAAO;IAAPA,OAAO,GAAAyB,cAAA,cAAG,CAAC,CAAC,GAAAA,cAAA;IAAEC,KAAK,GAAKJ,KAAK,CAAfI,KAAK;EAEtC,IAAMC,mBAAmB,GACvBH,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,UAAU;EACvD,IAAMC,qBAAqB,GACzBL,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,UAAU;EACvD,IAAME,WAAW,GAAGN,SAAS,KAAK,MAAM;EACxC,IAAMO,WAAW,GAAGP,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,MAAM;EACnE,IAAMC,aAAa,GAAGT,SAAS,KAAK,QAAQ;EAC5C,IAAMU,YAAY,GAAGV,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACrE,IAAMG,gBAAgB,GAAGX,SAAS,KAAK,WAAW;EAClD,IAAMY,aAAa,GAAGZ,SAAS,KAAK,QAAQ,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACxE,IAAMK,gBAAgB,GAAGb,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,WAAW;EAC7E,IAAMM,WAAW,GAAGd,SAAS,KAAK,QAAQ,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACtE,IAAMO,aAAa,GAAGf,SAAS,KAAK,QAAQ;EAC5C,IAAMgB,WAAW,GAAGhB,SAAS,KAAK,MAAM;EACxC,IAAMiB,iBAAiB,GAAGjB,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,QAAQ;EAC7E,IAAMc,iBAAiB,GAAGlB,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,OAAO;;EAE5E;EACA;EACA,IAAIG,WAAW,EAAE;IACf,OAAO;MAAE7C,IAAI,EAAE;IAAG,CAAC;EACrB;EAEA,IAAImD,gBAAgB,EAAE;IACpB,IAAI,CAACX,KAAK,EAAE,OAAO,EAAE;IAErB,IAAIiB,WAAW,CAACjB,KAAK,CAAC,EAAE;MACtB,OAAO;QAAExB,SAAS,EAAE,MAAM;QAAEa,KAAK,EAAEW,KAAK;QAAElB,KAAK,EAAE;MAAI,CAAC;IACxD;IACA;IACA,OAAO1B,UAAU,CAAC4C,KAAK,EAAEnC,QAAQ,CAAC,CAAC2B,IAAI,CAAC,UAAAC,YAAY,EAAI;MACtD,OAAO;QACLjB,SAAS,EAAE,MAAM;QACjBa,KAAK,EAAEI,YAAY;QACnBX,KAAK,EAAE;MACT,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,IAAI0B,YAAY,EAAE;IAChB,IAAM/B,QAAQ,GAAG3B,KAAK,CAACkD,KAAK,CAAC;;IAE7B;IACA;IACA,IAAI,CAACvB,QAAQ,EAAE;MACb,OAAO;QAAEjB,IAAI,EAAE;MAAG,CAAC;IACrB;IAEA,IAAM6B,KAAK,GAAGhB,UAAU,CAAC;MACvBG,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAARA,QAAQ;MACRE,MAAM,EAAE,GAAG;MACXG,KAAK,EAAE,GAAG;MACVjB,QAAQ,EAARA;IACF,CAAC,CAAC;IAEF,OAAOwB,KAAK;EACd;EAEA,IAAIe,WAAW,EAAE;IACf,IAAMc,QAAQ,GAAGnE,GAAG,CAACiD,KAAK,EAAE,UAAApC,IAAI;MAAA,OAAIF,SAAS,CAAC;QAAEE,IAAI,EAAJA,IAAI;QAAEC,QAAQ,EAARA;MAAS,CAAC,CAAC;IAAA,EAAC;IAClE,OAAO;MAAEsD,EAAE,EAAED;IAAS,CAAC;EACzB;EAEA,IAAIX,aAAa,IAAIG,aAAa,IAAIG,aAAa,IAAIC,WAAW,EAAE;IAClE,IAAMM,WAAW,GAAG7D,UAAU,CAACyC,KAAK,CAAC;IACrC,IAAMqB,YAAY,GAAG1E,OAAO,CAACyE,WAAW,CAAC,GACrC;MAAE5D,IAAI,EAAEX,IAAI,CAACuE,WAAW,EAAE,IAAI,CAAC;MAAEE,QAAQ,EAAE;IAAE,CAAC,GAC9C;MAAE9D,IAAI,EAAE4D,WAAW;MAAEE,QAAQ,EAAE;IAAE,CAAC;IAEtC,OAAOD,YAAY;EACrB;EAEA,IAAIZ,gBAAgB,EAAE;IACpB,IAAMW,YAAW,GAAG7D,UAAU,CAACyC,KAAK,CAAC;IACrC,IAAMqB,aAAY,GAAG1E,OAAO,CAACyE,YAAW,CAAC,GACrC;MACE5D,IAAI,EAAE4D,YAAW,CACdG,MAAM,CAAC,UAAAC,GAAG;QAAA,OAAIA,GAAG,IAAIA,GAAG,CAACC,KAAK;MAAA,EAAC,CAC/B1E,GAAG,CAAC,UAAAyE,GAAG;QAAA,OAAIA,GAAG,CAACC,KAAK;MAAA,EAAC,CACrB5E,IAAI,CAAC,IAAI,CAAC;MACbyE,QAAQ,EAAE;IACZ,CAAC,GACD;MAAE9D,IAAI,EAAE4D,YAAW,CAACK,KAAK;MAAEH,QAAQ,EAAE;IAAE,CAAC;IAE5C,OAAOD,aAAY;EACrB;EAEA,IAAIT,WAAW,EAAE;IACf,IAAI,CAACZ,KAAK,EAAE,OAAO,EAAE;IACrB,IAAMqB,cAAY,GAAGrB,KAAK,KAAK,GAAG,MAAA7B,MAAA,CAAM6B,KAAK,gBAAA7B,MAAA,CAAa6B,KAAK,WAAQ;IACvE,OAAOqB,cAAY;EACrB;EAEA,IACEpB,mBAAmB,IACnBE,qBAAqB,IACrBY,iBAAiB,IACjBC,iBAAiB,EACjB;IACA,IAAMd,MAAM,GAAG5B,OAAO,CAAC4B,MAAM;IAC7B,IAAMmB,cAAY,GAAGnE,MAAM,CAAC8C,KAAK,CAAC,CAC/B0B,EAAE,CAAC7B,QAAQ,CAAC,CACZK,MAAM,CAACA,MAAM,CAAC;IAEjB,OAAOmB,cAAY;EACrB;;EAEA;EACA,OAAO;IAAE7D,IAAI,EAAE;EAAG,CAAC;AACrB;AAEA,OAAO,SAASmE,qBAAqBA,CAAAC,KAAA,EAAyC;EAAA,IAAtChC,KAAK,GAAAgC,KAAA,CAALhC,KAAK;IAAE/B,QAAQ,GAAA+D,KAAA,CAAR/D,QAAQ;IAAEgC,QAAQ,GAAA+B,KAAA,CAAR/B,QAAQ;IAAEgC,OAAO,GAAAD,KAAA,CAAPC,OAAO;EACxE,IAAQ/B,SAAS,GAAiCF,KAAK,CAA/CE,SAAS;IAAE2B,KAAK,GAA0B7B,KAAK,CAApC6B,KAAK;IAAAK,eAAA,GAA0BlC,KAAK,CAA7BtB,OAAO;IAAPA,OAAO,GAAAwD,eAAA,cAAG,CAAC,CAAC,GAAAA,eAAA;IAAE9B,KAAK,GAAKJ,KAAK,CAAfI,KAAK;EAC7C,IAAA+B,mBAAA,GAA8BzD,OAAO,CAA7B0D,UAAU;IAAVA,UAAU,GAAAD,mBAAA,cAAG,IAAI,GAAAA,mBAAA;EAEzB,IAAM9B,mBAAmB,GACvBH,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,UAAU;EACvD,IAAMC,qBAAqB,GACzBL,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,UAAU;EACvD,IAAME,WAAW,GAAGN,SAAS,KAAK,MAAM;EACxC,IAAMO,WAAW,GAAGP,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,MAAM;EACnE,IAAMC,aAAa,GAAGT,SAAS,KAAK,QAAQ;EAC5C,IAAMU,YAAY,GAAGV,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACrE,IAAMI,aAAa,GAAGZ,SAAS,KAAK,QAAQ,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACxE,IAAMK,gBAAgB,GAAGb,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAACgC,IAAI,KAAK,WAAW;EAC7E,IAAMM,WAAW,GAAGd,SAAS,KAAK,QAAQ,IAAIxB,OAAO,CAACgC,IAAI,KAAK,OAAO;EACtE,IAAMO,aAAa,GAAGf,SAAS,KAAK,QAAQ;EAC5C,IAAMgB,WAAW,GAAGhB,SAAS,KAAK,MAAM;EACxC,IAAMiB,iBAAiB,GAAGjB,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,QAAQ;EAC7E,IAAMc,iBAAiB,GAAGlB,SAAS,KAAK,MAAM,IAAIxB,OAAO,CAAC4B,MAAM,KAAK,OAAO;EAC5E,IAAM+B,mBAAmB,GAAGnC,SAAS,KAAK,eAAe,IAAIkC,UAAU;EACvE,IAAMvB,gBAAgB,GAAGX,SAAS,KAAK,WAAW;;EAElD;EACA,IAAI,CAACkC,UAAU,EAAE,OAAO,IAAI;EAE5B,IAAME,SAAS,GAAG,CAAC;IAAE1E,IAAI,EAAEiE;EAAM,CAAC,CAAC;EAEnC,IAAII,OAAO,EAAE;IACX,OAAO,CAACK,SAAS,EAAE,CAAC;MAAE1E,IAAI,EAAE;IAAI,CAAC,CAAC,CAAC;EACrC;EAEA,IAAI6C,WAAW,EAAE;IACf,IAAM8B,MAAM,GAAGnC,KAAK,CAACoC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;IAC7C,OAAO,CAACF,SAAS,EAAEzE,KAAK,CAAC0E,MAAM,CAAC,CAAC;EACnC;EAEA,IAAIxB,gBAAgB,EAAE;IACpB,IAAI,CAACX,KAAK,EAAE,OAAO,CAACkC,SAAS,EAAE,EAAE,CAAC;;IAElC;IACA,OAAO9E,UAAU,CAAC4C,KAAK,EAAEnC,QAAQ,CAAC,CAAC2B,IAAI,CAAC,UAAAC,YAAY,EAAI;MACtD,IAAM4C,MAAM,GAAG;QACb7D,SAAS,EAAE,MAAM;QACjBa,KAAK,EAAEI,YAAY;QACnBX,KAAK,EAAE;MACT,CAAC;MACD,OAAO,CAACoD,SAAS,EAAEG,MAAM,CAAC;IAC5B,CAAC,CAAC;EACJ;EAEA,IAAIJ,mBAAmB,EAAE;IACvB,OAAOhF,OAAO,CAACF,GAAG,CAAC,CAACiD,KAAK,CAAC,EAAE,UAAAvB,QAAQ;MAAA,OAClCJ,UAAU,CAAC;QAAEI,QAAQ,EAARA,QAAQ;QAAEZ,QAAQ,EAARA;MAAS,CAAC,CAAC;IAAA,CACpC,CAAC,CAAC2B,IAAI,CAAC,UAAA8C,WAAW;MAAA,OAAI,CAACA,WAAW,EAAE,CAAC,CAAC,CAAC;IAAA,EAAC;EAC1C;EAEA,IAAI9B,YAAY,EAAE;IAChB,OAAOvD,OAAO,CAACF,GAAG,CAACiD,KAAK,EAAE,UAAAvB,QAAQ;MAAA,OAChCJ,UAAU,CAAC;QAAEI,QAAQ,EAARA,QAAQ;QAAEZ,QAAQ,EAARA;MAAS,CAAC,CAAC;IAAA,CACpC,CAAC,CAAC2B,IAAI,CAAC,UAAA8C,WAAW,EAAI;MACpB,IAAMC,MAAM,GAAG,CAAC3F,OAAO,CAAC0F,WAAW,CAAC,GAAGhF,WAAW,CAACgF,WAAW,CAAC,GAAG,EAAE;MAEpE,IAAME,SAAS,GAAG;QAChBC,OAAO,EAAE,CAAC;QACVC,MAAM,EAAE;UACNC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACnBC,WAAW,EAAE,SAAbA,WAAWA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACpBC,YAAY,EAAE,SAAdA,YAAYA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACrBC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACnBC,aAAa,EAAE,SAAfA,aAAaA,CAAA;YAAA,OAAQ,CAAC;UAAA;UACtBC,UAAU,EAAE,SAAZA,UAAUA,CAAA;YAAA,OAAQ,CAAC;UAAA;QACrB,CAAC;QACDC,KAAK,EAAE;UACLC,IAAI,GAAGhB,SAAS,EAAA/D,MAAA,CAAAgF,kBAAA,CAAKZ,MAAM,EAAC;UAC5Ba,MAAM,EAAE,CAAC,GAAG;QACd;MACF,CAAC;;MAED;MACA;MACA;MACA;MACA,OAAO,CAACZ,SAAS,EAAE,CAAC,CAAC,CAAC;IACxB,CAAC,CAAC;EACJ;EAEA,IAAIpC,WAAW,EAAE;IACf,IAAMc,QAAQ,GAAGnE,GAAG,CAACiD,KAAK,EAAE,UAAApC,IAAI;MAAA,OAAIF,SAAS,CAAC;QAAEE,IAAI,EAAJA,IAAI;QAAEC,QAAQ,EAARA;MAAS,CAAC,CAAC;IAAA,EAAC;IAClE,OAAO,CAACqE,SAAS,EAAE;MAAEf,EAAE,EAAED;IAAS,CAAC,CAAC;EACtC;EAEA,IAAIX,aAAa,IAAIG,aAAa,IAAIG,aAAa,IAAIC,WAAW,EAAE;IAClE,IAAMM,WAAW,GAAG7D,UAAU,CAACyC,KAAK,CAAC;IACrC,IAAMqB,YAAY,GAAG1E,OAAO,CAACyE,WAAW,CAAC,GACrC;MAAE5D,IAAI,EAAEX,IAAI,CAACuE,WAAW,EAAE,IAAI;IAAE,CAAC,GACjC;MAAE5D,IAAI,EAAE4D;IAAY,CAAC;IAEzB,OAAO,CAACc,SAAS,EAAEb,YAAY,CAAC;EAClC;EAEA,IAAIZ,gBAAgB,EAAE;IACpB,IAAMW,aAAW,GAAG7D,UAAU,CAACyC,KAAK,CAAC;IACrC,IAAMqB,cAAY,GAAG1E,OAAO,CAACyE,aAAW,CAAC,GACrC;MACE5D,IAAI,EAAE4D,aAAW,CACdG,MAAM,CAAC,UAAAC,GAAG;QAAA,OAAIA,GAAG,IAAIA,GAAG,CAACC,KAAK;MAAA,EAAC,CAC/B1E,GAAG,CAAC,UAAAyE,GAAG;QAAA,OAAIA,GAAG,CAACC,KAAK;MAAA,EAAC,CACrB5E,IAAI,CAAC,IAAI,CAAC;MACbyE,QAAQ,EAAE;IACZ,CAAC,GACD;MAAE9D,IAAI,EAAE4D,aAAW,CAACK,KAAK;MAAEH,QAAQ,EAAE;IAAE,CAAC;IAE5C,OAAO,CAACY,SAAS,EAAEb,cAAY,CAAC;EAClC;EAEA,IAAIT,WAAW,EAAE;IACf,IAAI,CAACZ,KAAK,EAAE,OAAO,CAACkC,SAAS,EAAE,EAAE,CAAC;IAClC,IAAMb,cAAY,GAAGrB,KAAK,KAAK,GAAG,MAAA7B,MAAA,CAAM6B,KAAK,gBAAA7B,MAAA,CAAa6B,KAAK,WAAQ;IACvE,OAAO,CAACkC,SAAS,EAAEb,cAAY,CAAC;EAClC;EAEA,IACEpB,mBAAmB,IACnBE,qBAAqB,IACrBY,iBAAiB,IACjBC,iBAAiB,EACjB;IACA,IAAMd,MAAM,GAAG5B,OAAO,CAAC4B,MAAM;IAC7B,IAAMmB,cAAY,GAAGrB,KAAK,GACtB9C,MAAM,CAAC8C,KAAK,CAAC,CACV0B,EAAE,CAAC7B,QAAQ,CAAC,CACZK,MAAM,CAACA,MAAM,CAAC,GACjB,EAAE;IAEN,OAAO,CAACgC,SAAS,EAAEb,cAAY,CAAC;EAClC;;EAEA;EACA,OAAO,IAAI;AACb;AAEA,SAASJ,WAAWA,CAACoC,MAAM,EAAE;EAC3B,OAAOrG,UAAU,CAACqG,MAAM,EAAE,iBAAiB,CAAC;AAC9C","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["defaults","isFunction","Promise","LIGHTHOUSE_LOGO_URL","DEFAULT_PAGE_MARGINS","DEFAULT_PAGE_ORIENTATION","DEFAULT_PAGE_SIZE","defaultFooter","defaultHeader","defaultStyles","generateDefinition","options","content","fileTitle","_options$footer","footer","sequenceId","_options$header","header","_options$logoUrl","logoUrl","_options$pageMargins","pageMargins","_options$pageOrientat","pageOrientation","_options$pageSize","pageSize","_options$styles","styles","timestamp","timezone","type","pdfStyles","pdfInfo","title","headerPromise","pdfHeader","contentPromise","pdfContent","footerPromise","pdfFooter","promises","all","then","_ref","_ref2","_slicedToArray","info","catch","err","Error","concat","message","resolve"],"sources":["../../../../src/pdf/helpers/generate-definition/index.js"],"sourcesContent":["import { defaults, isFunction } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n LIGHTHOUSE_LOGO_URL,\n DEFAULT_PAGE_MARGINS,\n DEFAULT_PAGE_ORIENTATION,\n DEFAULT_PAGE_SIZE,\n} from '../../../constants'\n\nimport { defaultFooter, defaultHeader, defaultStyles } from '../'\n\nexport function generateDefinition(options) {\n const {\n content,\n fileTitle,\n footer = defaultFooter,\n sequenceId,\n header = defaultHeader,\n logoUrl = LIGHTHOUSE_LOGO_URL,\n pageMargins = DEFAULT_PAGE_MARGINS,\n pageOrientation = DEFAULT_PAGE_ORIENTATION,\n pageSize = DEFAULT_PAGE_SIZE,\n styles = {},\n timestamp,\n timezone,\n type,\n } = options\n\n const pdfStyles = defaults({}, styles, defaultStyles)\n const pdfInfo = { title: fileTitle }\n\n const headerPromise = pdfHeader(\n header({\n logoUrl,\n timestamp,\n timezone,\n })\n )\n\n const contentPromise = pdfContent(content)\n\n const footerPromise = pdfFooter(\n footer({\n sequenceId,\n logoUrl: LIGHTHOUSE_LOGO_URL,\n timestamp,\n timezone,\n type,\n })\n )\n\n const promises = [headerPromise, contentPromise, footerPromise]\n\n return Promise.all(promises)\n .then(([header, content, footer]) => ({\n header,\n content,\n footer,\n info: pdfInfo,\n pageMargins,\n pageOrientation,\n pageSize,\n styles: pdfStyles,\n }))\n .catch(err => {\n throw new Error(`GenerateDefinitionError: ${err.message}`)\n })\n}\n\nfunction pdfHeader(header) {\n if (isFunction(header)) {\n return Promise.resolve(header())\n }\n\n return Promise.resolve(header)\n}\n\nfunction pdfContent(content) {\n if (isFunction(content)) {\n return Promise.resolve(content())\n }\n\n return Promise.resolve(content)\n}\n\nfunction pdfFooter(footer) {\n if (isFunction(footer)) {\n return Promise.resolve(footer())\n }\n\n return Promise.resolve(footer)\n}\n"],"mappings":";AAAA,SAASA,QAAQ,EAAEC,UAAU,QAAQ,QAAQ;AAC7C,OAAOC,OAAO,MAAM,UAAU;AAE9B,SACEC,mBAAmB,EACnBC,oBAAoB,EACpBC,wBAAwB,EACxBC,iBAAiB,QACZ,oBAAoB;AAE3B,SAASC,aAAa,EAAEC,aAAa,EAAEC,aAAa,QAAQ,KAAK;AAEjE,OAAO,SAASC,kBAAkBA,CAACC,OAAO,EAAE;
|
|
1
|
+
{"version":3,"file":"index.js","names":["defaults","isFunction","Promise","LIGHTHOUSE_LOGO_URL","DEFAULT_PAGE_MARGINS","DEFAULT_PAGE_ORIENTATION","DEFAULT_PAGE_SIZE","defaultFooter","defaultHeader","defaultStyles","generateDefinition","options","content","fileTitle","_options$footer","footer","sequenceId","_options$header","header","_options$logoUrl","logoUrl","_options$pageMargins","pageMargins","_options$pageOrientat","pageOrientation","_options$pageSize","pageSize","_options$styles","styles","timestamp","timezone","type","pdfStyles","pdfInfo","title","headerPromise","pdfHeader","contentPromise","pdfContent","footerPromise","pdfFooter","promises","all","then","_ref","_ref2","_slicedToArray","info","catch","err","Error","concat","message","resolve"],"sources":["../../../../src/pdf/helpers/generate-definition/index.js"],"sourcesContent":["import { defaults, isFunction } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n LIGHTHOUSE_LOGO_URL,\n DEFAULT_PAGE_MARGINS,\n DEFAULT_PAGE_ORIENTATION,\n DEFAULT_PAGE_SIZE,\n} from '../../../constants'\n\nimport { defaultFooter, defaultHeader, defaultStyles } from '../'\n\nexport function generateDefinition(options) {\n const {\n content,\n fileTitle,\n footer = defaultFooter,\n sequenceId,\n header = defaultHeader,\n logoUrl = LIGHTHOUSE_LOGO_URL,\n pageMargins = DEFAULT_PAGE_MARGINS,\n pageOrientation = DEFAULT_PAGE_ORIENTATION,\n pageSize = DEFAULT_PAGE_SIZE,\n styles = {},\n timestamp,\n timezone,\n type,\n } = options\n\n const pdfStyles = defaults({}, styles, defaultStyles)\n const pdfInfo = { title: fileTitle }\n\n const headerPromise = pdfHeader(\n header({\n logoUrl,\n timestamp,\n timezone,\n })\n )\n\n const contentPromise = pdfContent(content)\n\n const footerPromise = pdfFooter(\n footer({\n sequenceId,\n logoUrl: LIGHTHOUSE_LOGO_URL,\n timestamp,\n timezone,\n type,\n })\n )\n\n const promises = [headerPromise, contentPromise, footerPromise]\n\n return Promise.all(promises)\n .then(([header, content, footer]) => ({\n header,\n content,\n footer,\n info: pdfInfo,\n pageMargins,\n pageOrientation,\n pageSize,\n styles: pdfStyles,\n }))\n .catch(err => {\n throw new Error(`GenerateDefinitionError: ${err.message}`)\n })\n}\n\nfunction pdfHeader(header) {\n if (isFunction(header)) {\n return Promise.resolve(header())\n }\n\n return Promise.resolve(header)\n}\n\nfunction pdfContent(content) {\n if (isFunction(content)) {\n return Promise.resolve(content())\n }\n\n return Promise.resolve(content)\n}\n\nfunction pdfFooter(footer) {\n if (isFunction(footer)) {\n return Promise.resolve(footer())\n }\n\n return Promise.resolve(footer)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["horizontalLine","options","arguments","length","undefined","_options$margin","margin","layout","hLineWidth","i","node","table","body","vLineWidth","hLineColor","style","widths"],"sources":["../../../../src/pdf/helpers/horizontal-line/index.js"],"sourcesContent":["export function horizontalLine(options = {}) {\n const { margin = [0, 0, 0, 0] } = options\n\n return {\n layout: {\n hLineWidth: (i, node) =>\n i === 0 || i === node.table.body.length ? 0 : 0.5,\n vLineWidth: () => 0,\n hLineColor: () => '#ddd',\n },\n style: 'horizontalLine',\n table: {\n widths: ['*'],\n body: [[' '], [' ']],\n },\n margin,\n }\n}\n"],"mappings":"AAAA,OAAO,SAASA,cAAcA,CAAA,EAAe;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","names":["horizontalLine","options","arguments","length","undefined","_options$margin","margin","layout","hLineWidth","i","node","table","body","vLineWidth","hLineColor","style","widths"],"sources":["../../../../src/pdf/helpers/horizontal-line/index.js"],"sourcesContent":["export function horizontalLine(options = {}) {\n const { margin = [0, 0, 0, 0] } = options\n\n return {\n layout: {\n hLineWidth: (i, node) =>\n i === 0 || i === node.table.body.length ? 0 : 0.5,\n vLineWidth: () => 0,\n hLineColor: () => '#ddd',\n },\n style: 'horizontalLine',\n table: {\n widths: ['*'],\n body: [[' '], [' ']],\n },\n margin,\n }\n}\n"],"mappings":"AAAA,OAAO,SAASA,cAAcA,CAAA,EAAe;EAAA,IAAdC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACzC,IAAAG,eAAA,GAAkCJ,OAAO,CAAjCK,MAAM;IAANA,MAAM,GAAAD,eAAA,cAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAAA,eAAA;EAE7B,OAAO;IACLE,MAAM,EAAE;MACNC,UAAU,EAAE,SAAZA,UAAUA,CAAGC,CAAC,EAAEC,IAAI;QAAA,OAClBD,CAAC,KAAK,CAAC,IAAIA,CAAC,KAAKC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACT,MAAM,GAAG,CAAC,GAAG,GAAG;MAAA;MACnDU,UAAU,EAAE,SAAZA,UAAUA,CAAA;QAAA,OAAQ,CAAC;MAAA;MACnBC,UAAU,EAAE,SAAZA,UAAUA,CAAA;QAAA,OAAQ,MAAM;MAAA;IAC1B,CAAC;IACDC,KAAK,EAAE,gBAAgB;IACvBJ,KAAK,EAAE;MACLK,MAAM,EAAE,CAAC,GAAG,CAAC;MACbJ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACrB,CAAC;IACDN,MAAM,EAANA;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -8,7 +8,6 @@ var NEW_LINE_MATCHER = /.*\n.*/;
|
|
|
8
8
|
// NOTE: this will remove all whitespace except spaces
|
|
9
9
|
var WHITSPACE_MATCHER = /[\t\r\n\f]/g;
|
|
10
10
|
export function convertToPdfMake(obj) {
|
|
11
|
-
var _objectSpread2;
|
|
12
11
|
if (!isPlainObject(obj)) {
|
|
13
12
|
return '';
|
|
14
13
|
}
|
|
@@ -37,7 +36,7 @@ export function convertToPdfMake(obj) {
|
|
|
37
36
|
// the string, so that the styles can be applied
|
|
38
37
|
var text = isArray(parsed) && parsed.length === 1 && isString(parsed[0]) ? parsed[0] : parsed;
|
|
39
38
|
var link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined;
|
|
40
|
-
return _objectSpread(_objectSpread({}, getStyleAttributes(obj)), {}, (
|
|
39
|
+
return _objectSpread(_objectSpread({}, getStyleAttributes(obj)), {}, _defineProperty(_defineProperty(_defineProperty({}, key, text), "link", link), "preserveLeadingSpaces", true));
|
|
41
40
|
}
|
|
42
41
|
export function getStyleAttributes(_ref) {
|
|
43
42
|
var _ref$name = _ref.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["compact","includes","isArray","isEmpty","isPlainObject","isString","map","reject","htmlparser2","LIST_KEY_MATCHER","NEW_LINE_MATCHER","WHITSPACE_MATCHER","convertToPdfMake","obj","
|
|
1
|
+
{"version":3,"file":"index.js","names":["compact","includes","isArray","isEmpty","isPlainObject","isString","map","reject","htmlparser2","LIST_KEY_MATCHER","NEW_LINE_MATCHER","WHITSPACE_MATCHER","convertToPdfMake","obj","_obj$children","children","_obj$data","data","_obj$name","name","type","trimmed","replace","filtered","parsed","key","text","length","link","attribs","href","undefined","_objectSpread","getStyleAttributes","_defineProperty","_ref","_ref$name","result","italics","decoration","bold","color","style","parseHtml","html","parseDOM","decodeEntities","toPdf","htmlString","arr"],"sources":["../../../../src/pdf/helpers/html-transformer/index.js"],"sourcesContent":["import {\n compact,\n includes,\n isArray,\n isEmpty,\n isPlainObject,\n isString,\n map,\n reject,\n} from 'lodash'\nimport { htmlparser2 } from 'react-html-parser'\n\nconst LIST_KEY_MATCHER = ['ol', 'ul']\nconst NEW_LINE_MATCHER = /.*\\n.*/\n// NOTE: this will remove all whitespace except spaces\nconst WHITSPACE_MATCHER = /[\\t\\r\\n\\f]/g\n\nexport function convertToPdfMake(obj) {\n if (!isPlainObject(obj)) {\n return ''\n }\n\n const { children = [], data = '', name = '', type } = obj\n\n if (type === 'text' && data) {\n const trimmed = data.replace(WHITSPACE_MATCHER, '')\n\n // NOTE: Originally tried to achieve this by using inline styles, however PDFMake\n // does not support adding margins or padding when applying inline styles\n // (bold/italics/underline). The easiest way to get around this was to add\n // an extra space after text.\n return trimmed\n }\n\n // NOTE: Reject any children that are WYSIWYG carriage returns\n const filtered = reject(children, ['data', NEW_LINE_MATCHER])\n const parsed = compact(map(filtered, convertToPdfMake))\n\n const key = includes(LIST_KEY_MATCHER, name) ? name : 'text'\n // NOTE: If the child is an array with a single text string, we just need to return\n // the string, so that the styles can be applied\n const text =\n isArray(parsed) && parsed.length === 1 && isString(parsed[0])\n ? parsed[0]\n : parsed\n\n const link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined\n\n return {\n ...getStyleAttributes(obj),\n [key]: text,\n link,\n preserveLeadingSpaces: true,\n }\n}\n\nexport function getStyleAttributes({ name = '' }) {\n const result = {}\n if (name === 'em') result.italics = true\n if (name === 'ins') result.decoration = 'underline'\n if (name === 'strong') result.bold = true\n if (name === 'a') {\n result.decoration = 'underline'\n result.color = 'blue'\n }\n\n if (!result.bold && !result.decoration && !result.italics) {\n result.style = name\n }\n\n return result\n}\n\nexport function parseHtml(html) {\n if (isEmpty(html) || !isString(html)) {\n return ''\n }\n\n return htmlparser2.parseDOM(html, { decodeEntities: true })\n}\n\nexport function toPdf(htmlString) {\n if (isEmpty(htmlString) || !isString(htmlString)) {\n return []\n }\n\n const arr = parseHtml(htmlString)\n return compact(map(arr, convertToPdfMake))\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
2
|
import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
|
|
3
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
4
|
import { chunk, concat, defaults, fill, map, slice, take } from 'lodash';
|
|
5
5
|
import Promise from 'bluebird';
|
|
6
6
|
import { DEFAULT_IMAGE_COLUMN_LENGTH, DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH } from '../../../constants';
|
|
@@ -81,73 +81,71 @@ export function summaryFieldsTable(_x) {
|
|
|
81
81
|
function _summaryFieldsTable() {
|
|
82
82
|
_summaryFieldsTable = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref) {
|
|
83
83
|
var fields, settings, timezone, tableHeader, defaultHeaders, defaultRow, tableRow, headers, row, summaryFieldTable;
|
|
84
|
-
return _regeneratorRuntime.wrap(function
|
|
85
|
-
while (1) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
fontSize: 7
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
defaultHeaders = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {
|
|
97
|
-
text: ''
|
|
84
|
+
return _regeneratorRuntime.wrap(function (_context) {
|
|
85
|
+
while (1) switch (_context.prev = _context.next) {
|
|
86
|
+
case 0:
|
|
87
|
+
fields = _ref.fields, settings = _ref.settings, timezone = _ref.timezone;
|
|
88
|
+
tableHeader = map(fields, function (_ref2) {
|
|
89
|
+
var label = _ref2.label;
|
|
90
|
+
return text(label, {
|
|
91
|
+
bold: true,
|
|
92
|
+
fontSize: 7
|
|
98
93
|
});
|
|
99
|
-
|
|
100
|
-
|
|
94
|
+
});
|
|
95
|
+
defaultHeaders = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {
|
|
96
|
+
text: ''
|
|
97
|
+
});
|
|
98
|
+
defaultRow = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {
|
|
99
|
+
text: ''
|
|
100
|
+
});
|
|
101
|
+
_context.next = 1;
|
|
102
|
+
return Promise.map(fields, function (field) {
|
|
103
|
+
return buildSummaryField({
|
|
104
|
+
field: field,
|
|
105
|
+
settings: settings,
|
|
106
|
+
timezone: timezone
|
|
101
107
|
});
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
body: [headers, row],
|
|
119
|
-
colSpan: 5,
|
|
120
|
-
dontBreakRows: true,
|
|
121
|
-
headerRows: 0,
|
|
122
|
-
layout: {
|
|
123
|
-
hLineWidth: function hLineWidth() {
|
|
124
|
-
return 0;
|
|
125
|
-
},
|
|
126
|
-
paddingLeft: function paddingLeft() {
|
|
127
|
-
return 0;
|
|
128
|
-
},
|
|
129
|
-
paddingRight: function paddingRight() {
|
|
130
|
-
return 5;
|
|
131
|
-
},
|
|
132
|
-
paddingTop: function paddingTop() {
|
|
133
|
-
return 2;
|
|
134
|
-
},
|
|
135
|
-
paddingBottom: function paddingBottom() {
|
|
136
|
-
return 2;
|
|
137
|
-
},
|
|
138
|
-
vLineWidth: function vLineWidth() {
|
|
139
|
-
return 0;
|
|
140
|
-
}
|
|
108
|
+
});
|
|
109
|
+
case 1:
|
|
110
|
+
tableRow = _context.sent;
|
|
111
|
+
// NOTE: a user can only select three summary fields on the template however
|
|
112
|
+
// if the form group is repeatable we could have more than the default
|
|
113
|
+
// summary field column length so cap otherwise pdf will fail to generate
|
|
114
|
+
headers = take(concat(tableHeader, slice(defaultHeaders, tableHeader.length)), DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH);
|
|
115
|
+
row = take(concat(tableRow, slice(defaultRow, tableRow.length)), DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH);
|
|
116
|
+
summaryFieldTable = table({
|
|
117
|
+
body: [headers, row],
|
|
118
|
+
colSpan: 5,
|
|
119
|
+
dontBreakRows: true,
|
|
120
|
+
headerRows: 0,
|
|
121
|
+
layout: {
|
|
122
|
+
hLineWidth: function hLineWidth() {
|
|
123
|
+
return 0;
|
|
141
124
|
},
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
125
|
+
paddingLeft: function paddingLeft() {
|
|
126
|
+
return 0;
|
|
127
|
+
},
|
|
128
|
+
paddingRight: function paddingRight() {
|
|
129
|
+
return 5;
|
|
130
|
+
},
|
|
131
|
+
paddingTop: function paddingTop() {
|
|
132
|
+
return 2;
|
|
133
|
+
},
|
|
134
|
+
paddingBottom: function paddingBottom() {
|
|
135
|
+
return 2;
|
|
136
|
+
},
|
|
137
|
+
vLineWidth: function vLineWidth() {
|
|
138
|
+
return 0;
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
// NOTE: pdfmake applies margin/padding to nested tables
|
|
142
|
+
margin: [0, -5, 0, 0],
|
|
143
|
+
widths: ['*', '*', '*']
|
|
144
|
+
});
|
|
145
|
+
return _context.abrupt("return", summaryFieldTable);
|
|
146
|
+
case 2:
|
|
147
|
+
case "end":
|
|
148
|
+
return _context.stop();
|
|
151
149
|
}
|
|
152
150
|
}, _callee);
|
|
153
151
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["chunk","concat","defaults","fill","map","slice","take","Promise","DEFAULT_IMAGE_COLUMN_LENGTH","DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH","buildSummaryField","text","defaultLayout","fillColor","zebraFillColor","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","GRAY","LIGHT_BLUE","WHITE","imageTables","images","imageRows","tables","imageRow","index","defaultRow","Array","row","length","isMiddleRow","margin","headerRows","table","body","_toConsumableArray","widths","layout","hLineColor","vLineColor","summaryFieldsTable","_x","_summaryFieldsTable","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fields","settings","timezone","tableHeader","defaultHeaders","tableRow","headers","summaryFieldTable","wrap","_callee$","_context","prev","next","_ref2","label","bold","fontSize","field","sent","colSpan","dontBreakRows","abrupt","stop","summaryStatTable","options","tableOptions","summaryWrapperTable","style","_options$dontBreakRow","_options$headerRows","_options$layout","_options$style","definition","twoColumnTable","threeColumnTable","fourColumnTable","sixColumnTable"],"sources":["../../../../src/pdf/helpers/table/index.js"],"sourcesContent":["import { chunk, concat, defaults, fill, map, slice, take } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n DEFAULT_IMAGE_COLUMN_LENGTH,\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH,\n} from '../../../constants'\nimport { buildSummaryField, text } from '../'\n\nconst defaultLayout = {\n fillColor: zebraFillColor,\n hLineWidth: () => 0,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n}\n\nexport const GRAY = '#DDDDDD'\nexport const LIGHT_BLUE = '#F0FBFF'\nexport const WHITE = '#FFFFFF'\n\nexport function imageTables(images) {\n const imageRows = chunk(images, DEFAULT_IMAGE_COLUMN_LENGTH)\n const tables = map(imageRows, (imageRow, index) => {\n const defaultRow = fill(Array(DEFAULT_IMAGE_COLUMN_LENGTH), { text: '' })\n const row = concat(imageRow, slice(defaultRow, imageRow.length))\n\n const isMiddleRow = index !== 1 && index !== imageRows.length\n const margin = isMiddleRow ? 5 : 0\n\n return [\n {\n headerRows: 0,\n table: {\n body: [[...row]],\n widths: ['*', '*'],\n },\n layout: {\n hLineColor: () => GRAY,\n hLineWidth: () => 1,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineColor: () => GRAY,\n vLineWidth: () => 1,\n },\n margin: [0, margin, 0, margin],\n },\n ]\n })\n\n return tables\n}\n\nexport async function summaryFieldsTable({ fields, settings, timezone }) {\n const tableHeader = map(fields, ({ label }) =>\n text(label, { bold: true, fontSize: 7 })\n )\n const defaultHeaders = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {\n text: '',\n })\n const defaultRow = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {\n text: '',\n })\n const tableRow = await Promise.map(fields, field =>\n buildSummaryField({ field, settings, timezone })\n )\n\n // NOTE: a user can only select three summary fields on the template however\n // if the form group is repeatable we could have more than the default\n // summary field column length so cap otherwise pdf will fail to generate\n const headers = take(\n concat(tableHeader, slice(defaultHeaders, tableHeader.length)),\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH\n )\n const row = take(\n concat(tableRow, slice(defaultRow, tableRow.length)),\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH\n )\n\n const summaryFieldTable = table({\n body: [headers, row],\n colSpan: 5,\n dontBreakRows: true,\n headerRows: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 5,\n paddingTop: () => 2,\n paddingBottom: () => 2,\n vLineWidth: () => 0,\n },\n // NOTE: pdfmake applies margin/padding to nested tables\n margin: [0, -5, 0, 0],\n widths: ['*', '*', '*'],\n })\n\n return summaryFieldTable\n}\n\nexport function summaryStatTable(options) {\n const tableOptions = defaults({}, options, {\n layout: {\n fillColor: LIGHT_BLUE,\n hLineWidth: () => 0,\n paddingLeft: () => 10,\n paddingRight: () => 10,\n paddingTop: () => 2,\n paddingBottom: () => 2,\n vLineWidth: () => 0,\n },\n widths: ['*'],\n })\n\n return table(tableOptions)\n}\n\nexport function summaryWrapperTable(options) {\n const tableOptions = defaults({}, options, {\n layout: {\n fillColor: WHITE,\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 10,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n style: 'summaryWrapperTable',\n })\n\n return table(tableOptions)\n}\n\nexport function table(options) {\n const {\n body,\n colSpan,\n dontBreakRows = false,\n headerRows = 1,\n layout = defaultLayout,\n style = 'table',\n margin,\n widths,\n } = options\n\n const definition = {\n colSpan,\n layout,\n style,\n table: {\n body,\n // NOTE: be wary of this feature, if a row spans multiple pages it won't\n // be drawn on to the pdf, only pass true here when row will be less than\n // a page\n dontBreakRows,\n headerRows,\n },\n margin,\n }\n\n // NOTE: only adds widths if passed\n // as otherwise pdfmake will error!\n // if none defined it auto calculates\n if (widths) {\n definition.table.widths = widths\n }\n\n return definition\n}\n\nexport function twoColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['50%', '50%'],\n })\n return table(tableOptions)\n}\n\nexport function threeColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['33%', '33%', '*'],\n })\n return table(tableOptions)\n}\n\nexport function fourColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['25%', '25%', '25%', '25%'],\n })\n\n return table(tableOptions)\n}\n\nexport function sixColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['16.7%', '16.66%', '16.66%', '16.66%', '16.66%', '16.66%'],\n })\n\n return table(tableOptions)\n}\n\nexport function zebraFillColor(index) {\n return index % 2 === 0 ? WHITE : LIGHT_BLUE\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["chunk","concat","defaults","fill","map","slice","take","Promise","DEFAULT_IMAGE_COLUMN_LENGTH","DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH","buildSummaryField","text","defaultLayout","fillColor","zebraFillColor","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","GRAY","LIGHT_BLUE","WHITE","imageTables","images","imageRows","tables","imageRow","index","defaultRow","Array","row","length","isMiddleRow","margin","headerRows","table","body","_toConsumableArray","widths","layout","hLineColor","vLineColor","summaryFieldsTable","_x","_summaryFieldsTable","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_ref","fields","settings","timezone","tableHeader","defaultHeaders","tableRow","headers","summaryFieldTable","wrap","_context","prev","next","_ref2","label","bold","fontSize","field","sent","colSpan","dontBreakRows","abrupt","stop","summaryStatTable","options","tableOptions","summaryWrapperTable","style","_options$dontBreakRow","_options$headerRows","_options$layout","_options$style","definition","twoColumnTable","threeColumnTable","fourColumnTable","sixColumnTable"],"sources":["../../../../src/pdf/helpers/table/index.js"],"sourcesContent":["import { chunk, concat, defaults, fill, map, slice, take } from 'lodash'\nimport Promise from 'bluebird'\n\nimport {\n DEFAULT_IMAGE_COLUMN_LENGTH,\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH,\n} from '../../../constants'\nimport { buildSummaryField, text } from '../'\n\nconst defaultLayout = {\n fillColor: zebraFillColor,\n hLineWidth: () => 0,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineWidth: () => 0,\n}\n\nexport const GRAY = '#DDDDDD'\nexport const LIGHT_BLUE = '#F0FBFF'\nexport const WHITE = '#FFFFFF'\n\nexport function imageTables(images) {\n const imageRows = chunk(images, DEFAULT_IMAGE_COLUMN_LENGTH)\n const tables = map(imageRows, (imageRow, index) => {\n const defaultRow = fill(Array(DEFAULT_IMAGE_COLUMN_LENGTH), { text: '' })\n const row = concat(imageRow, slice(defaultRow, imageRow.length))\n\n const isMiddleRow = index !== 1 && index !== imageRows.length\n const margin = isMiddleRow ? 5 : 0\n\n return [\n {\n headerRows: 0,\n table: {\n body: [[...row]],\n widths: ['*', '*'],\n },\n layout: {\n hLineColor: () => GRAY,\n hLineWidth: () => 1,\n paddingLeft: () => 5,\n paddingRight: () => 5,\n paddingTop: () => 5,\n paddingBottom: () => 5,\n vLineColor: () => GRAY,\n vLineWidth: () => 1,\n },\n margin: [0, margin, 0, margin],\n },\n ]\n })\n\n return tables\n}\n\nexport async function summaryFieldsTable({ fields, settings, timezone }) {\n const tableHeader = map(fields, ({ label }) =>\n text(label, { bold: true, fontSize: 7 })\n )\n const defaultHeaders = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {\n text: '',\n })\n const defaultRow = fill(Array(DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH), {\n text: '',\n })\n const tableRow = await Promise.map(fields, field =>\n buildSummaryField({ field, settings, timezone })\n )\n\n // NOTE: a user can only select three summary fields on the template however\n // if the form group is repeatable we could have more than the default\n // summary field column length so cap otherwise pdf will fail to generate\n const headers = take(\n concat(tableHeader, slice(defaultHeaders, tableHeader.length)),\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH\n )\n const row = take(\n concat(tableRow, slice(defaultRow, tableRow.length)),\n DEFAULT_SUMMARY_FIELDS_COLUMN_LENGTH\n )\n\n const summaryFieldTable = table({\n body: [headers, row],\n colSpan: 5,\n dontBreakRows: true,\n headerRows: 0,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 5,\n paddingTop: () => 2,\n paddingBottom: () => 2,\n vLineWidth: () => 0,\n },\n // NOTE: pdfmake applies margin/padding to nested tables\n margin: [0, -5, 0, 0],\n widths: ['*', '*', '*'],\n })\n\n return summaryFieldTable\n}\n\nexport function summaryStatTable(options) {\n const tableOptions = defaults({}, options, {\n layout: {\n fillColor: LIGHT_BLUE,\n hLineWidth: () => 0,\n paddingLeft: () => 10,\n paddingRight: () => 10,\n paddingTop: () => 2,\n paddingBottom: () => 2,\n vLineWidth: () => 0,\n },\n widths: ['*'],\n })\n\n return table(tableOptions)\n}\n\nexport function summaryWrapperTable(options) {\n const tableOptions = defaults({}, options, {\n layout: {\n fillColor: WHITE,\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 10,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n style: 'summaryWrapperTable',\n })\n\n return table(tableOptions)\n}\n\nexport function table(options) {\n const {\n body,\n colSpan,\n dontBreakRows = false,\n headerRows = 1,\n layout = defaultLayout,\n style = 'table',\n margin,\n widths,\n } = options\n\n const definition = {\n colSpan,\n layout,\n style,\n table: {\n body,\n // NOTE: be wary of this feature, if a row spans multiple pages it won't\n // be drawn on to the pdf, only pass true here when row will be less than\n // a page\n dontBreakRows,\n headerRows,\n },\n margin,\n }\n\n // NOTE: only adds widths if passed\n // as otherwise pdfmake will error!\n // if none defined it auto calculates\n if (widths) {\n definition.table.widths = widths\n }\n\n return definition\n}\n\nexport function twoColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['50%', '50%'],\n })\n return table(tableOptions)\n}\n\nexport function threeColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['33%', '33%', '*'],\n })\n return table(tableOptions)\n}\n\nexport function fourColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['25%', '25%', '25%', '25%'],\n })\n\n return table(tableOptions)\n}\n\nexport function sixColumnTable(options) {\n const tableOptions = defaults({}, options, {\n widths: ['16.7%', '16.66%', '16.66%', '16.66%', '16.66%', '16.66%'],\n })\n\n return table(tableOptions)\n}\n\nexport function zebraFillColor(index) {\n return index % 2 === 0 ? WHITE : LIGHT_BLUE\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","entry","_entity$gps","gps","_entity$timeline","timeline","entityDetails","assigneeNames","durationText","gpsText","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","push","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data).then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays())\n .toString()\n .padStart(2, '0')\n const hours = Math.floor(momentDuration.hours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then(entry => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, item => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","entry","_entity$gps","gps","_entity$timeline","timeline","entityDetails","assigneeNames","durationText","gpsText","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","startedAtInTimezone","startedAt","tz","format","submittedAtInTimezone","submittedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","push","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data).then(content =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt)\n .tz(timezone)\n .format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays())\n .toString()\n .padStart(2, '0')\n const hours = Math.floor(momentDuration.hours())\n .toString()\n .padStart(2, '0')\n const minutes = momentDuration\n .minutes()\n .toString()\n .padStart(2, '0')\n const seconds = momentDuration\n .seconds()\n .toString()\n .padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then(entry => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, item => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
|
package/lib/pdf/job/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","concat","content","generateContent","_objectSpread","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","_entity$start","start","_entity$end","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText","_toConsumableArray"],"sources":["../../../src/pdf/job/index.js"],"sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, activity => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["get","isEmpty","map","moment","generateDefinition","horizontalLine","table","text","twoColumnTable","getJobDetails","getPrettyDuration","getTimezoneDatetime","getUserFullName","ACTIVITY_COLUMN_HEADERS","bold","buildJobPdf","pdfOptions","data","entity","timezone","timestamp","createdAt","title","fileTitle","concat","content","generateContent","_objectSpread","pageOrientation","type","entityDetails","metaTableData","locationText","authorFullName","reference","description","dueDateTimezoneDateTime","assigneeNames","statusText","color","statusColor","createdTimezoneDateTime","timezoneAbbrText","headerTitle","style","titleTable","body","layout","metaDataTable","widths","activitiesTitleTable","activityTableData","buildActivitiesContent","activityTable","hLine","jobActivities","users","activityRows","activity","duration","user","_entity$start","start","_entity$end","end","authorText","mDuration","durationText","startTime","time","startLocation","endTime","endLocation","startTimeText","showTzAbbr","endTimeText","_toConsumableArray"],"sources":["../../../src/pdf/job/index.js"],"sourcesContent":["import { get, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n generateDefinition,\n horizontalLine,\n table,\n text,\n twoColumnTable,\n} from '../helpers'\n\nimport {\n getJobDetails,\n getPrettyDuration,\n getTimezoneDatetime,\n getUserFullName,\n} from '../../helpers'\n\nconst ACTIVITY_COLUMN_HEADERS = [\n { text: 'Type', bold: true },\n { text: 'User', bold: true },\n { text: 'Start Time', bold: true },\n { text: 'Start Location', bold: true },\n { text: 'End Time', bold: true },\n { text: 'End Location', bold: true },\n { text: 'Duration', bold: true },\n]\n\n/**\n * buildJobPdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - job document\n * @param {array} data.jobActivities - job activities documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildJobPdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Job Report - ${title}`\n\n const content = generateContent(data)\n\n return generateDefinition({\n content,\n fileTitle,\n pageOrientation: 'landscape',\n timestamp,\n timezone,\n type: 'Job',\n ...pdfOptions,\n })\n}\n\nfunction generateContent(data) {\n const { entity } = data\n const { title } = entity\n\n const entityDetails = getJobDetails(data)\n\n const metaTableData = [\n [{ text: 'Location', bold: true }, entityDetails.locationText],\n [{ text: 'Author', bold: true }, entityDetails.authorFullName],\n [{ text: 'Reference', bold: true }, entityDetails.reference],\n [{ text: 'Description', bold: true }, entityDetails.description],\n [{ text: 'Due Date', bold: true }, entityDetails.dueDateTimezoneDateTime],\n [{ text: 'Assignees', bold: true }, entityDetails.assigneeNames],\n [\n { text: 'Status', bold: true },\n { text: entityDetails.statusText, color: entityDetails.statusColor },\n ],\n [{ text: 'Created', bold: true }, entityDetails.createdTimezoneDateTime],\n [{ text: 'Timezone', bold: true }, entityDetails.timezoneAbbrText],\n ]\n\n const headerTitle = text(`Job Report: ${title}`, { style: 'title' })\n\n const titleTable = table({\n body: [[headerTitle]],\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const metaDataTable = twoColumnTable({\n body: metaTableData,\n widths: [150, '*'],\n })\n\n const activitiesTitleTable = table({\n body: [['Job Activities']],\n layout: 'noBorders',\n style: 'activitiesTable',\n })\n\n const activityTableData = buildActivitiesContent(data)\n const activityTable = table(activityTableData)\n const hLine = horizontalLine()\n\n return [\n titleTable,\n metaDataTable,\n activitiesTitleTable,\n hLine,\n activityTable,\n hLine,\n ]\n}\n\nfunction buildActivitiesContent(data) {\n const { jobActivities, timezone, users } = data\n\n if (isEmpty(jobActivities)) {\n return {\n body: [['No Job Activities']],\n widths: '*',\n }\n }\n\n const activityRows = map(jobActivities, activity => {\n const { entity } = activity\n\n const { type, duration, user, start = {}, end = {} } = entity\n\n const authorText = getUserFullName(users, user)\n\n const mDuration = moment.duration(duration, 'minutes')\n const durationText = duration ? getPrettyDuration(mDuration) : ''\n\n const startTime = start.time\n const startLocation = get(start, 'geometryReverseGeocoded.label', '')\n\n const endTime = end.time\n const endLocation = get(end, 'geometryReverseGeocoded.label', '')\n\n const startTimeText = startTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: startTime,\n timezone,\n })\n : ''\n\n const endTimeText = endTime\n ? getTimezoneDatetime({\n showTzAbbr: false,\n timestamp: endTime,\n timezone,\n })\n : ''\n\n return [\n type,\n authorText,\n startTimeText,\n startLocation,\n endTimeText,\n endLocation,\n durationText,\n ]\n })\n\n return {\n body: [ACTIVITY_COLUMN_HEADERS, ...activityRows],\n widths: [70, 80, 60, '*', 60, '*', 50],\n }\n}\n"],"mappings":"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","ignoreList":[]}
|