@lighthouse/common 6.10.0 → 6.10.1-canary.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mise.toml +6 -6
- package/CHANGELOG.md +758 -758
- package/README.md +1 -1
- package/dist/errors/FetchImageError.js +3 -3
- package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
- package/dist/helpers/floatify/index.js +6 -6
- package/dist/helpers/get-audit-items-data/index.js +47 -36
- package/dist/helpers/validate-url/index.js +4 -4
- package/dist/pdf/activity-report/index.js +32 -32
- package/dist/pdf/audit/index.js +23 -23
- package/dist/pdf/helpers/fields/index.js +47 -27
- package/dist/pdf/issue/index.js +23 -23
- package/dist/pdf/job/index.js +22 -22
- package/dist/pdf/shift-report/index.js +28 -28
- package/dist/pdf/task/index.js +23 -23
- package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
- package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
- package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
- package/dist/scheduling/helpers/convertToTimezone.js +6 -6
- package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
- package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
- package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
- package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
- package/dist/scheduling/helpers/intervalCovers.js +6 -6
- package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
- package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
- package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
- package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
- package/dist/scheduling/helpers/intervalOutside.js +6 -6
- package/dist/scheduling/helpers/intervalWithin.js +6 -6
- package/dist/scheduling/helpers/mergeIntervals.js +6 -6
- package/dist/scheduling/helpers/splitIntervals.js +6 -6
- package/dist/scheduling/strategies/getNext.js +2 -2
- package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
- package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
- package/dist/scheduling/strategies/getNextWeekday.js +2 -2
- package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
- package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
- package/dist/service-hours/__helpers__/isOpen.js +2 -2
- package/dist/service-hours/schema.js +4 -4
- package/lib/constants.js +12 -6
- package/lib/constants.js.map +1 -1
- package/lib/errors/DomainError.js +14 -21
- package/lib/errors/DomainError.js.map +1 -1
- package/lib/errors/FetchImageError.js +17 -24
- package/lib/errors/FetchImageError.js.map +1 -1
- package/lib/errors/ValidationError.js +30 -36
- package/lib/errors/ValidationError.js.map +1 -1
- package/lib/errors/index.js +23 -5
- package/lib/errors/index.js.map +1 -1
- package/lib/helpers/build-fetch-url/index.js +43 -47
- package/lib/helpers/build-fetch-url/index.js.map +1 -1
- package/lib/helpers/fetch-image/index.js +83 -82
- package/lib/helpers/fetch-image/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
- package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
- package/lib/helpers/fetch-image-for-web/index.js +71 -94
- package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
- package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
- package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
- package/lib/helpers/floatify/index.js +13 -7
- package/lib/helpers/floatify/index.js.map +1 -1
- package/lib/helpers/get-assignees-full-names/index.js +11 -7
- package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
- package/lib/helpers/get-audit-entry-details/index.js +42 -32
- package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
- package/lib/helpers/get-audit-items-data/index.js +104 -83
- package/lib/helpers/get-audit-items-data/index.js.map +1 -1
- package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
- package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
- package/lib/helpers/get-issue-details/index.js +53 -43
- package/lib/helpers/get-issue-details/index.js.map +1 -1
- package/lib/helpers/get-job-details/index.js +49 -41
- package/lib/helpers/get-job-details/index.js.map +1 -1
- package/lib/helpers/get-location-reference/index.js +32 -34
- package/lib/helpers/get-location-reference/index.js.map +1 -1
- package/lib/helpers/get-pretty-duration/index.js +16 -10
- package/lib/helpers/get-pretty-duration/index.js.map +1 -1
- package/lib/helpers/get-reference-details/index.js +20 -10
- package/lib/helpers/get-reference-details/index.js.map +1 -1
- package/lib/helpers/get-status-details/index.js +8 -2
- package/lib/helpers/get-status-details/index.js.map +1 -1
- package/lib/helpers/get-task-entry-details/index.js +32 -23
- package/lib/helpers/get-task-entry-details/index.js.map +1 -1
- package/lib/helpers/get-timezone-abbr/index.js +11 -4
- package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
- package/lib/helpers/get-timezone-datetime/index.js +20 -13
- package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
- package/lib/helpers/get-user-full-name/index.js +9 -3
- package/lib/helpers/get-user-full-name/index.js.map +1 -1
- package/lib/helpers/get-value-as-percentage/index.js +9 -4
- package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
- package/lib/helpers/image-validators/index.js +18 -12
- package/lib/helpers/image-validators/index.js.map +1 -1
- package/lib/helpers/index.js +130 -18
- package/lib/helpers/index.js.map +1 -1
- package/lib/helpers/validate-url/index.js +11 -5
- package/lib/helpers/validate-url/index.js.map +1 -1
- package/lib/images/index.js +10 -4
- package/lib/images/index.js.map +1 -1
- package/lib/index.js +66 -10
- package/lib/index.js.map +1 -1
- package/lib/pdf/activity-report/index.js +407 -537
- package/lib/pdf/activity-report/index.js.map +1 -1
- package/lib/pdf/audit/index.js +137 -134
- package/lib/pdf/audit/index.js.map +1 -1
- package/lib/pdf/fonts/index.js +4 -2
- package/lib/pdf/fonts/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-content/index.js +57 -51
- package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
- package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
- package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
- package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
- package/lib/pdf/helpers/build-template-content/index.js +52 -51
- package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
- package/lib/pdf/helpers/default-footer/index.js +38 -35
- package/lib/pdf/helpers/default-footer/index.js.map +1 -1
- package/lib/pdf/helpers/default-header/index.js +40 -35
- package/lib/pdf/helpers/default-header/index.js.map +1 -1
- package/lib/pdf/helpers/default-styles/index.js +7 -1
- package/lib/pdf/helpers/default-styles/index.js.map +1 -1
- package/lib/pdf/helpers/fields/index.js +225 -214
- package/lib/pdf/helpers/fields/index.js.map +1 -1
- package/lib/pdf/helpers/format-location-address/index.js +14 -8
- package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
- package/lib/pdf/helpers/generate-definition/index.js +60 -65
- package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
- package/lib/pdf/helpers/horizontal-line/index.js +14 -14
- package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
- package/lib/pdf/helpers/html-transformer/index.js +45 -35
- package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
- package/lib/pdf/helpers/index.js +194 -15
- package/lib/pdf/helpers/index.js.map +1 -1
- package/lib/pdf/helpers/parse-value/index.js +10 -4
- package/lib/pdf/helpers/parse-value/index.js.map +1 -1
- package/lib/pdf/helpers/table/index.js +136 -205
- package/lib/pdf/helpers/table/index.js.map +1 -1
- package/lib/pdf/helpers/text/index.js +11 -8
- package/lib/pdf/helpers/text/index.js.map +1 -1
- package/lib/pdf/icons/index.js +8 -2
- package/lib/pdf/icons/index.js.map +1 -1
- package/lib/pdf/index.js +47 -6
- package/lib/pdf/index.js.map +1 -1
- package/lib/pdf/issue/index.js +141 -135
- package/lib/pdf/issue/index.js.map +1 -1
- package/lib/pdf/job/index.js +95 -81
- package/lib/pdf/job/index.js.map +1 -1
- package/lib/pdf/shift-report/emptyFixtures.js +8 -2
- package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
- package/lib/pdf/shift-report/index.js +399 -521
- package/lib/pdf/shift-report/index.js.map +1 -1
- package/lib/pdf/task/index.js +89 -83
- package/lib/pdf/task/index.js.map +1 -1
- package/lib/scheduling/generators/index.js +38 -3
- package/lib/scheduling/generators/index.js.map +1 -1
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
- package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
- package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
- package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
- package/lib/scheduling/helpers/convertToTimezone.js +18 -11
- package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
- package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
- package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
- package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
- package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
- package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
- package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
- package/lib/scheduling/helpers/index.js +159 -14
- package/lib/scheduling/helpers/index.js.map +1 -1
- package/lib/scheduling/helpers/intervalCovers.js +13 -7
- package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
- package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
- package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
- package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
- package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
- package/lib/scheduling/helpers/intervalOutside.js +15 -9
- package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
- package/lib/scheduling/helpers/intervalWithin.js +13 -7
- package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
- package/lib/scheduling/helpers/mergeIntervals.js +21 -17
- package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
- package/lib/scheduling/helpers/splitIntervals.js +24 -23
- package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
- package/lib/scheduling/index.js +38 -3
- package/lib/scheduling/index.js.map +1 -1
- package/lib/scheduling/scheduling.types.js +9 -3
- package/lib/scheduling/scheduling.types.js.map +1 -1
- package/lib/scheduling/strategies/getNext.js +57 -63
- package/lib/scheduling/strategies/getNext.js.map +1 -1
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
- package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
- package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
- package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
- package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
- package/lib/scheduling/strategies/getNextWeekday.js +47 -79
- package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
- package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
- package/lib/scheduling/strategies/index.js +82 -7
- package/lib/scheduling/strategies/index.js.map +1 -1
- package/lib/schema/index.js +16 -1
- package/lib/schema/index.js.map +1 -1
- package/lib/schema/schema.js +28 -34
- package/lib/schema/schema.js.map +1 -1
- package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
- package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
- package/lib/service-hours/__helpers__/isOpen.js +25 -24
- package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
- package/lib/service-hours/index.js +27 -2
- package/lib/service-hours/index.js.map +1 -1
- package/lib/service-hours/schema.js +68 -55
- package/lib/service-hours/schema.js.map +1 -1
- package/package.json +86 -86
- package/vitest.config.ts +23 -23
- package/vitest.setup.js +7 -7
|
@@ -1 +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","signedAsset","extension","name","path","awsS3BaseUrl","shouldUseCloudfront","cloudfrontBaseUrl","link","concat","margin","buildImage","options","_options$alignment","alignment","filepath","_options$height","height","_options$settings","_options$width","width","fieldLabel","_options$fieldType","fieldType","cloudinaryBaseUrl","isVideoType","RegExp","test","fit","image","url","quality","_objectSpread","context","stage","then","base64String","buildSummaryField","_ref2","field","timezone","fieldtype","_field$options","value","signedAssets","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","label","fileList","ol","parsedValue","displayValue","fontSize","filter","val","tz","buildTemplateFieldRow","_ref3","skipped","_field$options2","_options$showOnRead","showOnRead","isDisplayImageField","length","labelText","parsed","replace","values","filepaths","index","signedAssetValue","fieldImages","tables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","_toConsumableArray","widths","string"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\nimport Promise from 'bluebird'\nimport moment from 'moment-timezone'\n\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\nimport { videoIcon } from '../../../images'\nimport { imageTables, parseValue, text, toPdf } from '../'\n\nexport function buildFile({ file, settings, signedAsset }) {\n const { extension, name, path } = file\n const { awsS3BaseUrl, shouldUseCloudfront, cloudfrontBaseUrl } = settings\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset}`\n : `${awsS3BaseUrl}/${path}`\n\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\n}\n\nfunction buildImage(options) {\n const {\n alignment = 'center',\n filepath,\n height = 210,\n settings = {},\n signedAsset,\n width = 210,\n fieldLabel,\n fieldType = 'image',\n } = options\n const {\n awsS3BaseUrl,\n cloudinaryBaseUrl,\n cloudfrontBaseUrl,\n shouldUseCloudfront,\n } = settings\n\n const isVideoType = new RegExp('.mp4$').test(filepath)\n\n const link = shouldUseCloudfront\n ? `${cloudfrontBaseUrl}/${signedAsset || filepath}`\n : `${awsS3BaseUrl}/${filepath}`\n\n if (isVideoType) {\n return {\n alignment,\n fit: [width, height],\n image: videoIcon,\n link,\n }\n }\n\n const url = buildFetchUrl(filepath, {\n awsS3BaseUrl,\n cloudfrontBaseUrl,\n cloudinaryBaseUrl,\n fit: true,\n height: 400,\n width: 600,\n quality: 50,\n shouldUseCloudfront,\n })\n\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(url, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel,\n fieldType,\n filepath,\n },\n }).then((base64String) => ({\n alignment,\n fit: [width, height],\n image: base64String,\n link,\n }))\n}\n\nexport function buildSummaryField({ field, settings, timezone }) {\n const { fieldtype, options = {}, value, signedAssets } = field\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isReferenceField = fieldtype === 'reference'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n\n // NOTE: html field is not supported for the summary fields but adding\n // logic to catch this and return empty text for completeness\n if (isHtmlField) {\n return { text: '' }\n }\n\n if (isSignatureField) {\n if (!value) return ''\n\n if (isDataImage(value)) {\n return { alignment: 'left', image: value, width: 140 }\n }\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(value, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel: field.label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n return {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n })\n }\n\n if (isPhotoField) {\n const filepath = first(value)\n\n // NOTE: if no filepath return empty text as user has not uploaded an image\n // for this field\n if (!filepath) {\n return { text: '' }\n }\n\n const image = buildImage({\n alignment: 'left',\n filepath,\n height: 140,\n width: 140,\n settings,\n signedAsset:\n signedAssets && isArray(signedAssets) ? signedAssets[0] : null,\n fieldLabel: field.label,\n fieldType: 'media',\n })\n\n return image\n }\n\n if (isFileField) {\n const fileList = map(value, (file) => buildFile({ file, settings }))\n return { ol: fileList }\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', '), fontSize: 7 }\n : { text: parsedValue, fontSize: 7 }\n\n return displayValue\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return displayValue\n }\n\n if (isStarField) {\n if (!value) return ''\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return displayValue\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = moment(value).tz(timezone).format(format)\n\n return displayValue\n }\n\n // NOTE: return empty text fallback value when no match\n return { text: '' }\n}\n\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\n const { fieldtype, label, options = {}, value, signedAssets } = field\n const { showOnRead = true } = options\n\n const isDayFirstDateField =\n fieldtype === 'date' && options.format === 'DD/MM/YY'\n const isMonthFirstDateField =\n fieldtype === 'date' && options.format === 'MM/DD/YY'\n const isFileField = fieldtype === 'file'\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\n const isNumberField = fieldtype === 'number'\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\n const isStarField = fieldtype === 'select' && options.type === 'stars'\n const isSwitchField = fieldtype === 'switch'\n const isTextField = fieldtype === 'text'\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\n const isDisplayImageField =\n fieldtype === 'image-display' &&\n showOnRead &&\n !(isArray(value) && value.length === 0)\n const isReferenceField = fieldtype === 'reference'\n // NOTE: only show field when show on read is true\n if (!showOnRead) return null\n\n const labelText = [{ text: label }]\n\n if (skipped) {\n return [labelText, [{ text: '-' }]]\n }\n\n if (isHtmlField) {\n const parsed = value.replace(/<p><\\/p>/g, '')\n return [labelText, toPdf(parsed)]\n }\n\n if (isSignatureField) {\n if (!value) return [labelText, '']\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\n return fetchImage(value, {\n ...settings,\n context: {\n stage: 'field',\n fieldLabel: label,\n fieldType: 'signature',\n },\n }).then((base64String) => {\n const values = {\n alignment: 'left',\n image: base64String,\n width: 140,\n }\n return [labelText, values]\n })\n }\n\n if (isDisplayImageField) {\n // Guard against nullish values\n if (!value) {\n return [[], {}]\n }\n\n // Ensure value is always treated as an array of filepaths\n const filepaths = isArray(value) ? value : [value]\n return Promise.map(filepaths, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'image-display',\n })\n }).then((fieldImages) => [fieldImages, {}])\n }\n\n if (isPhotoField) {\n // Guard against nullish values\n if (!value || (isArray(value) && value.length === 0)) {\n return [labelText, { text: '' }]\n }\n\n return Promise.map(value, (filepath, index) => {\n const signedAssetValue = isArray(signedAssets)\n ? signedAssets[index]\n : signedAssets\n return buildImage({\n filepath,\n settings,\n signedAsset: signedAssetValue,\n fieldLabel: label,\n fieldType: 'media',\n })\n }).then((fieldImages) => {\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\n\n const imagesRow = {\n colSpan: 2,\n layout: {\n hLineWidth: () => 0,\n paddingLeft: () => 0,\n paddingRight: () => 0,\n paddingTop: () => 0,\n paddingBottom: () => 0,\n vLineWidth: () => 0,\n },\n table: {\n body: [labelText, ...tables],\n widths: ['*'],\n },\n }\n\n // NOTE: pass empty value here as otherwise\n // we can accidentally hide content below\n // this row. Please see the following issue:\n // https://github.com/bpampuch/pdfmake/issues/1598\n return [imagesRow, {}]\n })\n }\n\n if (isFileField) {\n const fileList = map(value, (file, index) => {\n const signedAsset = signedAssets?.[index]\n return buildFile({ file, settings, signedAsset })\n })\n return [labelText, { ol: fileList }]\n }\n\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? { text: join(parsedValue, ', ') }\n : { text: parsedValue }\n\n return [labelText, displayValue]\n }\n\n if (isReferenceField) {\n const parsedValue = parseValue(value)\n const displayValue = isArray(parsedValue)\n ? {\n text: parsedValue\n .filter((val) => val && val.label)\n .map((val) => val.label)\n .join(', '),\n fontSize: 7,\n }\n : { text: parsedValue.label, fontSize: 7 }\n\n return [labelText, displayValue]\n }\n\n if (isStarField) {\n if (!value) return [labelText, '']\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\n return [labelText, displayValue]\n }\n\n if (\n isDayFirstDateField ||\n isMonthFirstDateField ||\n is12HourTimeField ||\n is24HourTimeField\n ) {\n const format = options.format\n const displayValue = value ? moment(value).tz(timezone).format(format) : ''\n\n return [labelText, displayValue]\n }\n\n // NOTE: if no match above null values will be stripped within calling fn\n return null\n}\n\nfunction isDataImage(string) {\n return startsWith(string, 'data:image/png;')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_bluebird","_interopRequireDefault","_momentTimezone","_helpers","_images","_","buildFile","file","settings","signedAsset","extension","name","path","awsS3BaseUrl","shouldUseCloudfront","cloudfrontBaseUrl","link","text","margin","buildImage","options","alignment","filepath","height","width","fieldLabel","fieldType","cloudinaryBaseUrl","isVideoType","RegExp","test","fit","image","videoIcon","normalizedPath","url","String","buildFetchUrl","quality","fetchImage","context","stage","then","base64String","error","console","message","imageNotFound","buildSummaryField","field","timezone","fieldtype","value","signedAssets","isDayFirstDateField","format","isMonthFirstDateField","isFileField","isHtmlField","type","isNumberField","isPhotoField","isReferenceField","isSelectField","isSignatureField","isStarField","isSwitchField","isTextField","is12HourTimeField","is24HourTimeField","isDataImage","label","rawFilepath","first","isArray","fileList","map","ol","parsedValue","parseValue","displayValue","join","fontSize","filter","val","moment","tz","buildTemplateFieldRow","skipped","showOnRead","isDisplayImageField","length","labelText","parsed","replace","toPdf","values","filepaths","Promise","index","signedAssetValue","fieldImages","tables","isEmpty","imageTables","imagesRow","colSpan","layout","hLineWidth","paddingLeft","paddingRight","paddingTop","paddingBottom","vLineWidth","table","body","widths","string","startsWith"],"sources":["../../../../src/pdf/helpers/fields/index.js"],"sourcesContent":["import { isArray, isEmpty, join, first, map, startsWith } from 'lodash'\r\nimport Promise from 'bluebird'\r\nimport moment from 'moment-timezone'\r\n\r\nimport { buildFetchUrl, fetchImage } from '../../../helpers'\r\nimport { imageNotFound, videoIcon } from '../../../images'\r\nimport { imageTables, parseValue, text, toPdf } from '../'\r\n\r\nexport function buildFile({ file, settings, signedAsset }) {\r\n const { extension, name, path } = file\r\n const { awsS3BaseUrl, shouldUseCloudfront, cloudfrontBaseUrl } = settings\r\n\r\n const link = shouldUseCloudfront\r\n ? `${cloudfrontBaseUrl}/${signedAsset}`\r\n : `${awsS3BaseUrl}/${path}`\r\n\r\n return text(`${name}.${extension}`, { link, margin: [0, 0, 0, 10] })\r\n}\r\n\r\nfunction buildImage(options) {\r\n const {\r\n alignment = 'center',\r\n filepath,\r\n height = 210,\r\n settings = {},\r\n signedAsset,\r\n width = 210,\r\n fieldLabel,\r\n fieldType = 'image',\r\n } = options\r\n const {\r\n awsS3BaseUrl,\r\n cloudinaryBaseUrl,\r\n cloudfrontBaseUrl,\r\n shouldUseCloudfront,\r\n } = settings\r\n\r\n const isVideoType = new RegExp('.mp4$').test(filepath)\r\n\r\n const link = shouldUseCloudfront\r\n ? `${cloudfrontBaseUrl}/${signedAsset || filepath}`\r\n : `${awsS3BaseUrl}/${filepath}`\r\n\r\n if (isVideoType) {\r\n return {\r\n alignment,\r\n fit: [width, height],\r\n image: videoIcon,\r\n link,\r\n }\r\n }\r\n\r\n const normalizedPath = typeof filepath === 'object' && filepath !== null\r\n ? (filepath.path || filepath.url || String(filepath))\r\n : filepath\r\n\r\n try {\r\n const url = buildFetchUrl(normalizedPath, {\r\n awsS3BaseUrl,\r\n cloudfrontBaseUrl,\r\n cloudinaryBaseUrl,\r\n fit: true,\r\n height: 400,\r\n width: 600,\r\n quality: 50,\r\n shouldUseCloudfront,\r\n })\r\n\r\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\r\n return fetchImage(url, {\r\n ...settings,\r\n context: {\r\n stage: 'field',\r\n fieldLabel,\r\n fieldType,\r\n filepath: normalizedPath,\r\n },\r\n }).then((base64String) => ({\r\n alignment,\r\n fit: [width, height],\r\n image: base64String,\r\n link,\r\n }))\r\n } catch (error) {\r\n console.error({\r\n message: 'Failed to build image URL',\r\n filepath,\r\n fieldLabel,\r\n fieldType,\r\n error: error.message,\r\n })\r\n return { alignment, fit: [width, height], image: imageNotFound, link: '' }\r\n }\r\n}\r\n\r\nexport function buildSummaryField({ field, settings, timezone }) {\r\n const { fieldtype, options = {}, value, signedAssets } = field\r\n const isDayFirstDateField =\r\n fieldtype === 'date' && options.format === 'DD/MM/YY'\r\n const isMonthFirstDateField =\r\n fieldtype === 'date' && options.format === 'MM/DD/YY'\r\n const isFileField = fieldtype === 'file'\r\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\r\n const isNumberField = fieldtype === 'number'\r\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\r\n const isReferenceField = fieldtype === 'reference'\r\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\r\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\r\n const isStarField = fieldtype === 'select' && options.type === 'stars'\r\n const isSwitchField = fieldtype === 'switch'\r\n const isTextField = fieldtype === 'text'\r\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\r\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\r\n\r\n // NOTE: html field is not supported for the summary fields but adding\r\n // logic to catch this and return empty text for completeness\r\n if (isHtmlField) {\r\n return { text: '' }\r\n }\r\n\r\n if (isSignatureField) {\r\n if (!value) return ''\r\n\r\n if (isDataImage(value)) {\r\n return { alignment: 'left', image: value, width: 140 }\r\n }\r\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\r\n return fetchImage(value, {\r\n ...settings,\r\n context: {\r\n stage: 'field',\r\n fieldLabel: field.label,\r\n fieldType: 'signature',\r\n },\r\n }).then((base64String) => {\r\n return {\r\n alignment: 'left',\r\n image: base64String,\r\n width: 140,\r\n }\r\n })\r\n }\r\n\r\n if (isPhotoField) {\r\n const rawFilepath = first(value)\r\n\r\n // NOTE: if no filepath return empty text as user has not uploaded an image\r\n // for this field\r\n if (!rawFilepath) {\r\n return { text: '' }\r\n }\r\n\r\n const filepath = typeof rawFilepath === 'object' && rawFilepath !== null\r\n ? (rawFilepath.path || rawFilepath.url || rawFilepath)\r\n : rawFilepath\r\n\r\n\r\n const image = buildImage({\r\n alignment: 'left',\r\n filepath,\r\n height: 140,\r\n width: 140,\r\n settings,\r\n signedAsset:\r\n signedAssets && isArray(signedAssets) ? signedAssets[0] : null,\r\n fieldLabel: field.label,\r\n fieldType: 'media',\r\n })\r\n\r\n return image\r\n }\r\n\r\n if (isFileField) {\r\n const fileList = map(value, (file) => buildFile({ file, settings }))\r\n return { ol: fileList }\r\n }\r\n\r\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\r\n const parsedValue = parseValue(value)\r\n const displayValue = isArray(parsedValue)\r\n ? { text: join(parsedValue, ', '), fontSize: 7 }\r\n : { text: parsedValue, fontSize: 7 }\r\n\r\n return displayValue\r\n }\r\n\r\n if (isReferenceField) {\r\n const parsedValue = parseValue(value)\r\n const displayValue = isArray(parsedValue)\r\n ? {\r\n text: parsedValue\r\n .filter((val) => val && val.label)\r\n .map((val) => val.label)\r\n .join(', '),\r\n fontSize: 7,\r\n }\r\n : { text: parsedValue.label, fontSize: 7 }\r\n\r\n return displayValue\r\n }\r\n\r\n if (isStarField) {\r\n if (!value) return ''\r\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\r\n return displayValue\r\n }\r\n\r\n if (\r\n isDayFirstDateField ||\r\n isMonthFirstDateField ||\r\n is12HourTimeField ||\r\n is24HourTimeField\r\n ) {\r\n const format = options.format\r\n const displayValue = moment(value).tz(timezone).format(format)\r\n\r\n return displayValue\r\n }\r\n\r\n // NOTE: return empty text fallback value when no match\r\n return { text: '' }\r\n}\r\n\r\nexport function buildTemplateFieldRow({ field, settings, timezone, skipped }) {\r\n const { fieldtype, label, options = {}, value, signedAssets } = field\r\n const { showOnRead = true } = options\r\n\r\n const isDayFirstDateField =\r\n fieldtype === 'date' && options.format === 'DD/MM/YY'\r\n const isMonthFirstDateField =\r\n fieldtype === 'date' && options.format === 'MM/DD/YY'\r\n const isFileField = fieldtype === 'file'\r\n const isHtmlField = fieldtype === 'text' && options.type === 'html'\r\n const isNumberField = fieldtype === 'number'\r\n const isPhotoField = fieldtype === 'list' && options.type === 'media'\r\n const isSelectField = fieldtype === 'select' && options.type !== 'stars'\r\n const isSignatureField = fieldtype === 'text' && options.type === 'signature'\r\n const isStarField = fieldtype === 'select' && options.type === 'stars'\r\n const isSwitchField = fieldtype === 'switch'\r\n const isTextField = fieldtype === 'text'\r\n const is12HourTimeField = fieldtype === 'time' && options.format === 'h:mm a'\r\n const is24HourTimeField = fieldtype === 'time' && options.format === 'HH:mm'\r\n const isDisplayImageField =\r\n fieldtype === 'image-display' &&\r\n showOnRead &&\r\n !(isArray(value) && value.length === 0)\r\n const isReferenceField = fieldtype === 'reference'\r\n // NOTE: only show field when show on read is true\r\n if (!showOnRead) return null\r\n\r\n const labelText = [{ text: label }]\r\n\r\n if (skipped) {\r\n return [labelText, [{ text: '-' }]]\r\n }\r\n\r\n if (isHtmlField) {\r\n const parsed = value.replace(/<p><\\/p>/g, '')\r\n return [labelText, toPdf(parsed)]\r\n }\r\n\r\n if (isSignatureField) {\r\n if (!value) return [labelText, '']\r\n // NOTE: shouldUseCloudfront, Signature, Policy and KeyPairId from settings are used in this context\r\n return fetchImage(value, {\r\n ...settings,\r\n context: {\r\n stage: 'field',\r\n fieldLabel: label,\r\n fieldType: 'signature',\r\n },\r\n }).then((base64String) => {\r\n const values = {\r\n alignment: 'left',\r\n image: base64String,\r\n width: 140,\r\n }\r\n return [labelText, values]\r\n })\r\n }\r\n\r\n if (isDisplayImageField) {\r\n // Guard against nullish values\r\n if (!value) {\r\n return [[], {}]\r\n }\r\n\r\n // Ensure value is always treated as an array of filepaths\r\n const filepaths = isArray(value) ? value : [value]\r\n return Promise.map(filepaths, (rawFilepath, index) => {\r\n const filepath = typeof rawFilepath === 'object' && rawFilepath !== null\r\n ? (rawFilepath.path || rawFilepath.url || rawFilepath)\r\n : rawFilepath\r\n const signedAssetValue = isArray(signedAssets)\r\n ? signedAssets[index]\r\n : signedAssets\r\n return buildImage({\r\n filepath,\r\n settings,\r\n signedAsset: signedAssetValue,\r\n fieldLabel: label,\r\n fieldType: 'image-display',\r\n })\r\n }).then((fieldImages) => [fieldImages, {}])\r\n }\r\n\r\n if (isPhotoField) {\r\n // Guard against nullish values\r\n if (!value || (isArray(value) && value.length === 0)) {\r\n return [labelText, { text: '' }]\r\n }\r\n\r\n return Promise.map(value, (rawFilepath, index) => {\r\n const filepath = typeof rawFilepath === 'object' && rawFilepath !== null\r\n ? (rawFilepath.path || rawFilepath.url || rawFilepath)\r\n : rawFilepath\r\n const signedAssetValue = isArray(signedAssets)\r\n ? signedAssets[index]\r\n : signedAssets\r\n return buildImage({\r\n filepath,\r\n settings,\r\n signedAsset: signedAssetValue,\r\n fieldLabel: label,\r\n fieldType: 'media',\r\n })\r\n }).then((fieldImages) => {\r\n const tables = !isEmpty(fieldImages) ? imageTables(fieldImages) : []\r\n\r\n const imagesRow = {\r\n colSpan: 2,\r\n layout: {\r\n hLineWidth: () => 0,\r\n paddingLeft: () => 0,\r\n paddingRight: () => 0,\r\n paddingTop: () => 0,\r\n paddingBottom: () => 0,\r\n vLineWidth: () => 0,\r\n },\r\n table: {\r\n body: [labelText, ...tables],\r\n widths: ['*'],\r\n },\r\n }\r\n\r\n // NOTE: pass empty value here as otherwise\r\n // we can accidentally hide content below\r\n // this row. Please see the following issue:\r\n // https://github.com/bpampuch/pdfmake/issues/1598\r\n return [imagesRow, {}]\r\n })\r\n }\r\n\r\n if (isFileField) {\r\n const fileList = map(value, (file, index) => {\r\n const signedAsset = signedAssets?.[index]\r\n return buildFile({ file, settings, signedAsset })\r\n })\r\n return [labelText, { ol: fileList }]\r\n }\r\n\r\n if (isNumberField || isSelectField || isSwitchField || isTextField) {\r\n const parsedValue = parseValue(value)\r\n const displayValue = isArray(parsedValue)\r\n ? { text: join(parsedValue, ', ') }\r\n : { text: parsedValue }\r\n\r\n return [labelText, displayValue]\r\n }\r\n\r\n if (isReferenceField) {\r\n const parsedValue = parseValue(value)\r\n const displayValue = isArray(parsedValue)\r\n ? {\r\n text: parsedValue\r\n .filter((val) => val && val.label)\r\n .map((val) => val.label)\r\n .join(', '),\r\n fontSize: 7,\r\n }\r\n : { text: parsedValue.label, fontSize: 7 }\r\n\r\n return [labelText, displayValue]\r\n }\r\n\r\n if (isStarField) {\r\n if (!value) return [labelText, '']\r\n const displayValue = value === '1' ? `${value} star` : `${value} stars`\r\n return [labelText, displayValue]\r\n }\r\n\r\n if (\r\n isDayFirstDateField ||\r\n isMonthFirstDateField ||\r\n is12HourTimeField ||\r\n is24HourTimeField\r\n ) {\r\n const format = options.format\r\n const displayValue = value ? moment(value).tz(timezone).format(format) : ''\r\n\r\n return [labelText, displayValue]\r\n }\r\n\r\n // NOTE: if no match above null values will be stripped within calling fn\r\n return null\r\n}\r\n\r\nfunction isDataImage(string) {\r\n return startsWith(string, 'data:image/png;')\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getFormattedAddress = getFormattedAddress;
|
|
7
|
+
var _getGeometryGeocodedString = require("../../../helpers/get-geometry-geocoded-string");
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
function getFormattedAddress(reverseGeoCoded) {
|
|
10
|
+
const geometry = (0, _getGeometryGeocodedString.getGeometryGeocodedString)(reverseGeoCoded);
|
|
11
|
+
const splitGeoString = (0, _lodash.split)(geometry, ', ');
|
|
12
|
+
const headText = (0, _lodash.head)(splitGeoString);
|
|
13
|
+
const tailText = (0, _lodash.join)((0, _lodash.tail)(splitGeoString), ' ');
|
|
14
|
+
const formatted = `${headText}, ${tailText}`;
|
|
9
15
|
return formatted;
|
|
10
16
|
}
|
|
11
17
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_getGeometryGeocodedString","require","_lodash","getFormattedAddress","reverseGeoCoded","geometry","getGeometryGeocodedString","splitGeoString","split","headText","head","tailText","join","tail","formatted"],"sources":["../../../../src/pdf/helpers/format-location-address/index.js"],"sourcesContent":["import { getGeometryGeocodedString } from '../../../helpers/get-geometry-geocoded-string'\r\nimport { head, join, split, tail } from 'lodash'\r\n\r\nexport function getFormattedAddress(reverseGeoCoded) {\r\n const geometry = getGeometryGeocodedString(reverseGeoCoded)\r\n const splitGeoString = split(geometry, ', ')\r\n const headText = head(splitGeoString)\r\n const tailText = join(tail(splitGeoString), ' ')\r\n const formatted = `${headText}, ${tailText}`\r\n\r\n return formatted\r\n}\r\n"],"mappings":";;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEO,SAASE,mBAAmBA,CAACC,eAAe,EAAE;EACnD,MAAMC,QAAQ,GAAG,IAAAC,oDAAyB,EAACF,eAAe,CAAC;EAC3D,MAAMG,cAAc,GAAG,IAAAC,aAAK,EAACH,QAAQ,EAAE,IAAI,CAAC;EAC5C,MAAMI,QAAQ,GAAG,IAAAC,YAAI,EAACH,cAAc,CAAC;EACrC,MAAMI,QAAQ,GAAG,IAAAC,YAAI,EAAC,IAAAC,YAAI,EAACN,cAAc,CAAC,EAAE,GAAG,CAAC;EAChD,MAAMO,SAAS,GAAG,GAAGL,QAAQ,KAAKE,QAAQ,EAAE;EAE5C,OAAOG,SAAS;AAClB","ignoreList":[]}
|
|
@@ -1,63 +1,58 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
styles =
|
|
24
|
-
timestamp
|
|
25
|
-
timezone
|
|
26
|
-
type
|
|
27
|
-
|
|
28
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.generateDefinition = generateDefinition;
|
|
8
|
+
var _lodash = require("lodash");
|
|
9
|
+
var _bluebird = _interopRequireDefault(require("bluebird"));
|
|
10
|
+
var _constants = require("../../../constants");
|
|
11
|
+
var _ = require("../");
|
|
12
|
+
function generateDefinition(options) {
|
|
13
|
+
const {
|
|
14
|
+
content,
|
|
15
|
+
fileTitle,
|
|
16
|
+
footer = _.defaultFooter,
|
|
17
|
+
sequenceId,
|
|
18
|
+
header = _.defaultHeader,
|
|
19
|
+
logoUrl = _constants.LIGHTHOUSE_LOGO_URL,
|
|
20
|
+
pageMargins = _constants.DEFAULT_PAGE_MARGINS,
|
|
21
|
+
pageOrientation = _constants.DEFAULT_PAGE_ORIENTATION,
|
|
22
|
+
pageSize = _constants.DEFAULT_PAGE_SIZE,
|
|
23
|
+
styles = {},
|
|
24
|
+
timestamp,
|
|
25
|
+
timezone,
|
|
26
|
+
type
|
|
27
|
+
} = options;
|
|
28
|
+
const pdfStyles = (0, _lodash.defaults)({}, styles, _.defaultStyles);
|
|
29
|
+
const pdfInfo = {
|
|
29
30
|
title: fileTitle
|
|
30
31
|
};
|
|
31
|
-
|
|
32
|
-
logoUrl
|
|
33
|
-
timestamp
|
|
34
|
-
timezone
|
|
32
|
+
const headerPromise = pdfHeader(header({
|
|
33
|
+
logoUrl,
|
|
34
|
+
timestamp,
|
|
35
|
+
timezone
|
|
35
36
|
}));
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
sequenceId
|
|
39
|
-
logoUrl: LIGHTHOUSE_LOGO_URL,
|
|
40
|
-
timestamp
|
|
41
|
-
timezone
|
|
42
|
-
type
|
|
37
|
+
const contentPromise = pdfContent(content);
|
|
38
|
+
const footerPromise = pdfFooter(footer({
|
|
39
|
+
sequenceId,
|
|
40
|
+
logoUrl: _constants.LIGHTHOUSE_LOGO_URL,
|
|
41
|
+
timestamp,
|
|
42
|
+
timezone,
|
|
43
|
+
type
|
|
43
44
|
}));
|
|
44
|
-
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
pageMargins: pageMargins,
|
|
56
|
-
pageOrientation: pageOrientation,
|
|
57
|
-
pageSize: pageSize,
|
|
58
|
-
styles: pdfStyles
|
|
59
|
-
};
|
|
60
|
-
}).catch(function (error) {
|
|
45
|
+
const promises = [headerPromise, contentPromise, footerPromise];
|
|
46
|
+
return _bluebird.default.all(promises).then(([header, content, footer]) => ({
|
|
47
|
+
header,
|
|
48
|
+
content,
|
|
49
|
+
footer,
|
|
50
|
+
info: pdfInfo,
|
|
51
|
+
pageMargins,
|
|
52
|
+
pageOrientation,
|
|
53
|
+
pageSize,
|
|
54
|
+
styles: pdfStyles
|
|
55
|
+
})).catch(error => {
|
|
61
56
|
// Preserve structured error information for better debugging
|
|
62
57
|
console.error('GenerateDefinitionError', {
|
|
63
58
|
message: error.message,
|
|
@@ -70,21 +65,21 @@ export function generateDefinition(options) {
|
|
|
70
65
|
});
|
|
71
66
|
}
|
|
72
67
|
function pdfHeader(header) {
|
|
73
|
-
if (isFunction(header)) {
|
|
74
|
-
return
|
|
68
|
+
if ((0, _lodash.isFunction)(header)) {
|
|
69
|
+
return _bluebird.default.resolve(header());
|
|
75
70
|
}
|
|
76
|
-
return
|
|
71
|
+
return _bluebird.default.resolve(header);
|
|
77
72
|
}
|
|
78
73
|
function pdfContent(content) {
|
|
79
|
-
if (isFunction(content)) {
|
|
80
|
-
return
|
|
74
|
+
if ((0, _lodash.isFunction)(content)) {
|
|
75
|
+
return _bluebird.default.resolve(content());
|
|
81
76
|
}
|
|
82
|
-
return
|
|
77
|
+
return _bluebird.default.resolve(content);
|
|
83
78
|
}
|
|
84
79
|
function pdfFooter(footer) {
|
|
85
|
-
if (isFunction(footer)) {
|
|
86
|
-
return
|
|
80
|
+
if ((0, _lodash.isFunction)(footer)) {
|
|
81
|
+
return _bluebird.default.resolve(footer());
|
|
87
82
|
}
|
|
88
|
-
return
|
|
83
|
+
return _bluebird.default.resolve(footer);
|
|
89
84
|
}
|
|
90
85
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_bluebird","_interopRequireDefault","_constants","_","generateDefinition","options","content","fileTitle","footer","defaultFooter","sequenceId","header","defaultHeader","logoUrl","LIGHTHOUSE_LOGO_URL","pageMargins","DEFAULT_PAGE_MARGINS","pageOrientation","DEFAULT_PAGE_ORIENTATION","pageSize","DEFAULT_PAGE_SIZE","styles","timestamp","timezone","type","pdfStyles","defaults","defaultStyles","pdfInfo","title","headerPromise","pdfHeader","contentPromise","pdfContent","footerPromise","pdfFooter","promises","Promise","all","then","info","catch","error","console","message","context","url","stack","isFunction","resolve"],"sources":["../../../../src/pdf/helpers/generate-definition/index.js"],"sourcesContent":["import { defaults, isFunction } from 'lodash'\r\nimport Promise from 'bluebird'\r\n\r\nimport {\r\n LIGHTHOUSE_LOGO_URL,\r\n DEFAULT_PAGE_MARGINS,\r\n DEFAULT_PAGE_ORIENTATION,\r\n DEFAULT_PAGE_SIZE,\r\n} from '../../../constants'\r\n\r\nimport { defaultFooter, defaultHeader, defaultStyles } from '../'\r\n\r\nexport function generateDefinition(options) {\r\n const {\r\n content,\r\n fileTitle,\r\n footer = defaultFooter,\r\n sequenceId,\r\n header = defaultHeader,\r\n logoUrl = LIGHTHOUSE_LOGO_URL,\r\n pageMargins = DEFAULT_PAGE_MARGINS,\r\n pageOrientation = DEFAULT_PAGE_ORIENTATION,\r\n pageSize = DEFAULT_PAGE_SIZE,\r\n styles = {},\r\n timestamp,\r\n timezone,\r\n type,\r\n } = options\r\n\r\n const pdfStyles = defaults({}, styles, defaultStyles)\r\n const pdfInfo = { title: fileTitle }\r\n\r\n const headerPromise = pdfHeader(\r\n header({\r\n logoUrl,\r\n timestamp,\r\n timezone,\r\n })\r\n )\r\n\r\n const contentPromise = pdfContent(content)\r\n\r\n const footerPromise = pdfFooter(\r\n footer({\r\n sequenceId,\r\n logoUrl: LIGHTHOUSE_LOGO_URL,\r\n timestamp,\r\n timezone,\r\n type,\r\n })\r\n )\r\n\r\n const promises = [headerPromise, contentPromise, footerPromise]\r\n\r\n return Promise.all(promises)\r\n .then(([header, content, footer]) => ({\r\n header,\r\n content,\r\n footer,\r\n info: pdfInfo,\r\n pageMargins,\r\n pageOrientation,\r\n pageSize,\r\n styles: pdfStyles,\r\n }))\r\n .catch((error) => {\r\n // Preserve structured error information for better debugging\r\n console.error('GenerateDefinitionError', {\r\n message: error.message,\r\n context: error.context,\r\n url: error.url,\r\n type: options.type,\r\n stack: error.stack,\r\n })\r\n throw error // Preserve original error instead of wrapping\r\n })\r\n}\r\n\r\nfunction pdfHeader(header) {\r\n if (isFunction(header)) {\r\n return Promise.resolve(header())\r\n }\r\n\r\n return Promise.resolve(header)\r\n}\r\n\r\nfunction pdfContent(content) {\r\n if (isFunction(content)) {\r\n return Promise.resolve(content())\r\n }\r\n\r\n return Promise.resolve(content)\r\n}\r\n\r\nfunction pdfFooter(footer) {\r\n if (isFunction(footer)) {\r\n return Promise.resolve(footer())\r\n }\r\n\r\n return Promise.resolve(footer)\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.horizontalLine = horizontalLine;
|
|
7
|
+
function horizontalLine(options = {}) {
|
|
8
|
+
const {
|
|
9
|
+
margin = [0, 0, 0, 0]
|
|
10
|
+
} = options;
|
|
5
11
|
return {
|
|
6
12
|
layout: {
|
|
7
|
-
hLineWidth:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
vLineWidth: function vLineWidth() {
|
|
11
|
-
return 0;
|
|
12
|
-
},
|
|
13
|
-
hLineColor: function hLineColor() {
|
|
14
|
-
return '#ddd';
|
|
15
|
-
}
|
|
13
|
+
hLineWidth: (i, node) => i === 0 || i === node.table.body.length ? 0 : 0.5,
|
|
14
|
+
vLineWidth: () => 0,
|
|
15
|
+
hLineColor: () => '#ddd'
|
|
16
16
|
},
|
|
17
17
|
style: 'horizontalLine',
|
|
18
18
|
table: {
|
|
19
19
|
widths: ['*'],
|
|
20
20
|
body: [[' '], [' ']]
|
|
21
21
|
},
|
|
22
|
-
margin
|
|
22
|
+
margin
|
|
23
23
|
};
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["horizontalLine","options","
|
|
1
|
+
{"version":3,"file":"index.js","names":["horizontalLine","options","margin","layout","hLineWidth","i","node","table","body","length","vLineWidth","hLineColor","style","widths"],"sources":["../../../../src/pdf/helpers/horizontal-line/index.js"],"sourcesContent":["export function horizontalLine(options = {}) {\r\n const { margin = [0, 0, 0, 0] } = options\r\n\r\n return {\r\n layout: {\r\n hLineWidth: (i, node) =>\r\n i === 0 || i === node.table.body.length ? 0 : 0.5,\r\n vLineWidth: () => 0,\r\n hLineColor: () => '#ddd',\r\n },\r\n style: 'horizontalLine',\r\n table: {\r\n widths: ['*'],\r\n body: [[' '], [' ']],\r\n },\r\n margin,\r\n }\r\n}\r\n"],"mappings":";;;;;;AAAO,SAASA,cAAcA,CAACC,OAAO,GAAG,CAAC,CAAC,EAAE;EAC3C,MAAM;IAAEC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;EAAE,CAAC,GAAGD,OAAO;EAEzC,OAAO;IACLE,MAAM,EAAE;MACNC,UAAU,EAAEA,CAACC,CAAC,EAAEC,IAAI,KAClBD,CAAC,KAAK,CAAC,IAAIA,CAAC,KAAKC,IAAI,CAACC,KAAK,CAACC,IAAI,CAACC,MAAM,GAAG,CAAC,GAAG,GAAG;MACnDC,UAAU,EAAEA,CAAA,KAAM,CAAC;MACnBC,UAAU,EAAEA,CAAA,KAAM;IACpB,CAAC;IACDC,KAAK,EAAE,gBAAgB;IACvBL,KAAK,EAAE;MACLM,MAAM,EAAE,CAAC,GAAG,CAAC;MACbL,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC;IACrB,CAAC;IACDN;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,25 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.convertToPdfMake = convertToPdfMake;
|
|
7
|
+
exports.getStyleAttributes = getStyleAttributes;
|
|
8
|
+
exports.parseHtml = parseHtml;
|
|
9
|
+
exports.toPdf = toPdf;
|
|
10
|
+
var _lodash = require("lodash");
|
|
11
|
+
var _reactHtmlParser = require("react-html-parser");
|
|
12
|
+
const LIST_KEY_MATCHER = ['ol', 'ul'];
|
|
13
|
+
const NEW_LINE_MATCHER = /.*\n.*/;
|
|
8
14
|
// NOTE: this will remove all whitespace except spaces
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
if (!isPlainObject(obj)) {
|
|
15
|
+
const WHITSPACE_MATCHER = /[\t\r\n\f]/g;
|
|
16
|
+
function convertToPdfMake(obj) {
|
|
17
|
+
if (!(0, _lodash.isPlainObject)(obj)) {
|
|
12
18
|
return '';
|
|
13
19
|
}
|
|
14
|
-
|
|
15
|
-
children =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
type = obj.type;
|
|
20
|
+
const {
|
|
21
|
+
children = [],
|
|
22
|
+
data = '',
|
|
23
|
+
name = '',
|
|
24
|
+
type
|
|
25
|
+
} = obj;
|
|
21
26
|
if (type === 'text' && data) {
|
|
22
|
-
|
|
27
|
+
const trimmed = data.replace(WHITSPACE_MATCHER, '');
|
|
23
28
|
|
|
24
29
|
// NOTE: Originally tried to achieve this by using inline styles, however PDFMake
|
|
25
30
|
// does not support adding margins or padding when applying inline styles
|
|
@@ -29,19 +34,24 @@ export function convertToPdfMake(obj) {
|
|
|
29
34
|
}
|
|
30
35
|
|
|
31
36
|
// NOTE: Reject any children that are WYSIWYG carriage returns
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
37
|
+
const filtered = (0, _lodash.reject)(children, ['data', NEW_LINE_MATCHER]);
|
|
38
|
+
const parsed = (0, _lodash.compact)((0, _lodash.map)(filtered, convertToPdfMake));
|
|
39
|
+
const key = (0, _lodash.includes)(LIST_KEY_MATCHER, name) ? name : 'text';
|
|
35
40
|
// NOTE: If the child is an array with a single text string, we just need to return
|
|
36
41
|
// the string, so that the styles can be applied
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return
|
|
42
|
+
const text = (0, _lodash.isArray)(parsed) && parsed.length === 1 && (0, _lodash.isString)(parsed[0]) ? parsed[0] : parsed;
|
|
43
|
+
const link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined;
|
|
44
|
+
return {
|
|
45
|
+
...getStyleAttributes(obj),
|
|
46
|
+
[key]: text,
|
|
47
|
+
link,
|
|
48
|
+
preserveLeadingSpaces: true
|
|
49
|
+
};
|
|
40
50
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
51
|
+
function getStyleAttributes({
|
|
52
|
+
name = ''
|
|
53
|
+
}) {
|
|
54
|
+
const result = {};
|
|
45
55
|
if (name === 'em') result.italics = true;
|
|
46
56
|
if (name === 'ins') result.decoration = 'underline';
|
|
47
57
|
if (name === 'strong') result.bold = true;
|
|
@@ -54,19 +64,19 @@ export function getStyleAttributes(_ref) {
|
|
|
54
64
|
}
|
|
55
65
|
return result;
|
|
56
66
|
}
|
|
57
|
-
|
|
58
|
-
if (isEmpty(html) || !isString(html)) {
|
|
67
|
+
function parseHtml(html) {
|
|
68
|
+
if ((0, _lodash.isEmpty)(html) || !(0, _lodash.isString)(html)) {
|
|
59
69
|
return '';
|
|
60
70
|
}
|
|
61
|
-
return htmlparser2.parseDOM(html, {
|
|
71
|
+
return _reactHtmlParser.htmlparser2.parseDOM(html, {
|
|
62
72
|
decodeEntities: true
|
|
63
73
|
});
|
|
64
74
|
}
|
|
65
|
-
|
|
66
|
-
if (isEmpty(htmlString) || !isString(htmlString)) {
|
|
75
|
+
function toPdf(htmlString) {
|
|
76
|
+
if ((0, _lodash.isEmpty)(htmlString) || !(0, _lodash.isString)(htmlString)) {
|
|
67
77
|
return [];
|
|
68
78
|
}
|
|
69
|
-
|
|
70
|
-
return compact(map(arr, convertToPdfMake));
|
|
79
|
+
const arr = parseHtml(htmlString);
|
|
80
|
+
return (0, _lodash.compact)((0, _lodash.map)(arr, convertToPdfMake));
|
|
71
81
|
}
|
|
72
82
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["_lodash","require","_reactHtmlParser","LIST_KEY_MATCHER","NEW_LINE_MATCHER","WHITSPACE_MATCHER","convertToPdfMake","obj","isPlainObject","children","data","name","type","trimmed","replace","filtered","reject","parsed","compact","map","key","includes","text","isArray","length","isString","link","attribs","href","undefined","getStyleAttributes","preserveLeadingSpaces","result","italics","decoration","bold","color","style","parseHtml","html","isEmpty","htmlparser2","parseDOM","decodeEntities","toPdf","htmlString","arr"],"sources":["../../../../src/pdf/helpers/html-transformer/index.js"],"sourcesContent":["import {\r\n compact,\r\n includes,\r\n isArray,\r\n isEmpty,\r\n isPlainObject,\r\n isString,\r\n map,\r\n reject,\r\n} from 'lodash'\r\nimport { htmlparser2 } from 'react-html-parser'\r\n\r\nconst LIST_KEY_MATCHER = ['ol', 'ul']\r\nconst NEW_LINE_MATCHER = /.*\\n.*/\r\n// NOTE: this will remove all whitespace except spaces\r\nconst WHITSPACE_MATCHER = /[\\t\\r\\n\\f]/g\r\n\r\nexport function convertToPdfMake(obj) {\r\n if (!isPlainObject(obj)) {\r\n return ''\r\n }\r\n\r\n const { children = [], data = '', name = '', type } = obj\r\n\r\n if (type === 'text' && data) {\r\n const trimmed = data.replace(WHITSPACE_MATCHER, '')\r\n\r\n // NOTE: Originally tried to achieve this by using inline styles, however PDFMake\r\n // does not support adding margins or padding when applying inline styles\r\n // (bold/italics/underline). The easiest way to get around this was to add\r\n // an extra space after text.\r\n return trimmed\r\n }\r\n\r\n // NOTE: Reject any children that are WYSIWYG carriage returns\r\n const filtered = reject(children, ['data', NEW_LINE_MATCHER])\r\n const parsed = compact(map(filtered, convertToPdfMake))\r\n\r\n const key = includes(LIST_KEY_MATCHER, name) ? name : 'text'\r\n // NOTE: If the child is an array with a single text string, we just need to return\r\n // the string, so that the styles can be applied\r\n const text =\r\n isArray(parsed) && parsed.length === 1 && isString(parsed[0])\r\n ? parsed[0]\r\n : parsed\r\n\r\n const link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined\r\n\r\n return {\r\n ...getStyleAttributes(obj),\r\n [key]: text,\r\n link,\r\n preserveLeadingSpaces: true,\r\n }\r\n}\r\n\r\nexport function getStyleAttributes({ name = '' }) {\r\n const result = {}\r\n if (name === 'em') result.italics = true\r\n if (name === 'ins') result.decoration = 'underline'\r\n if (name === 'strong') result.bold = true\r\n if (name === 'a') {\r\n result.decoration = 'underline'\r\n result.color = 'blue'\r\n }\r\n\r\n if (!result.bold && !result.decoration && !result.italics) {\r\n result.style = name\r\n }\r\n\r\n return result\r\n}\r\n\r\nexport function parseHtml(html) {\r\n if (isEmpty(html) || !isString(html)) {\r\n return ''\r\n }\r\n\r\n return htmlparser2.parseDOM(html, { decodeEntities: true })\r\n}\r\n\r\nexport function toPdf(htmlString) {\r\n if (isEmpty(htmlString) || !isString(htmlString)) {\r\n return []\r\n }\r\n\r\n const arr = parseHtml(htmlString)\r\n return compact(map(arr, convertToPdfMake))\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|