@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.
Files changed (229) hide show
  1. package/.mise.toml +6 -6
  2. package/CHANGELOG.md +758 -758
  3. package/README.md +1 -1
  4. package/dist/errors/FetchImageError.js +3 -3
  5. package/dist/helpers/fetch-image-for-pdf-generator-service/index.js +7 -7
  6. package/dist/helpers/floatify/index.js +6 -6
  7. package/dist/helpers/get-audit-items-data/index.js +47 -36
  8. package/dist/helpers/validate-url/index.js +4 -4
  9. package/dist/pdf/activity-report/index.js +32 -32
  10. package/dist/pdf/audit/index.js +23 -23
  11. package/dist/pdf/helpers/fields/index.js +47 -27
  12. package/dist/pdf/issue/index.js +23 -23
  13. package/dist/pdf/job/index.js +22 -22
  14. package/dist/pdf/shift-report/index.js +28 -28
  15. package/dist/pdf/task/index.js +23 -23
  16. package/dist/scheduling/generators/occurrenceIntervalsGenerator.js +2 -2
  17. package/dist/scheduling/generators/scheduleIntervalsGenerator.js +2 -2
  18. package/dist/scheduling/generators/serviceIntervalsGenerator.js +2 -2
  19. package/dist/scheduling/helpers/convertToTimezone.js +6 -6
  20. package/dist/scheduling/helpers/generateNonRepeatingSchedule.js +2 -2
  21. package/dist/scheduling/helpers/generateRepeatingSchedule.js +2 -2
  22. package/dist/scheduling/helpers/generateScheduleEnd.js +2 -2
  23. package/dist/scheduling/helpers/hasValidStartAndEnd.js +5 -5
  24. package/dist/scheduling/helpers/intervalCovers.js +6 -6
  25. package/dist/scheduling/helpers/intervalIntersectsEnd.js +6 -6
  26. package/dist/scheduling/helpers/intervalIntersectsStart.js +6 -6
  27. package/dist/scheduling/helpers/intervalOnlyIntersectsEnd.js +6 -6
  28. package/dist/scheduling/helpers/intervalOnlyIntersectsStart.js +6 -6
  29. package/dist/scheduling/helpers/intervalOutside.js +6 -6
  30. package/dist/scheduling/helpers/intervalWithin.js +6 -6
  31. package/dist/scheduling/helpers/mergeIntervals.js +6 -6
  32. package/dist/scheduling/helpers/splitIntervals.js +6 -6
  33. package/dist/scheduling/strategies/getNext.js +2 -2
  34. package/dist/scheduling/strategies/getNextExactDateOfMonth.js +2 -2
  35. package/dist/scheduling/strategies/getNextLastDayOfMonth.js +2 -2
  36. package/dist/scheduling/strategies/getNextLastWeekdayOfMonth.js +2 -2
  37. package/dist/scheduling/strategies/getNextNoRepeat.js +2 -2
  38. package/dist/scheduling/strategies/getNextWeekday.js +2 -2
  39. package/dist/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +2 -2
  40. package/dist/service-hours/__helpers__/calculate-hours.js +4 -4
  41. package/dist/service-hours/__helpers__/isOpen.js +2 -2
  42. package/dist/service-hours/schema.js +4 -4
  43. package/lib/constants.js +12 -6
  44. package/lib/constants.js.map +1 -1
  45. package/lib/errors/DomainError.js +14 -21
  46. package/lib/errors/DomainError.js.map +1 -1
  47. package/lib/errors/FetchImageError.js +17 -24
  48. package/lib/errors/FetchImageError.js.map +1 -1
  49. package/lib/errors/ValidationError.js +30 -36
  50. package/lib/errors/ValidationError.js.map +1 -1
  51. package/lib/errors/index.js +23 -5
  52. package/lib/errors/index.js.map +1 -1
  53. package/lib/helpers/build-fetch-url/index.js +43 -47
  54. package/lib/helpers/build-fetch-url/index.js.map +1 -1
  55. package/lib/helpers/fetch-image/index.js +83 -82
  56. package/lib/helpers/fetch-image/index.js.map +1 -1
  57. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js +168 -243
  58. package/lib/helpers/fetch-image-for-pdf-generator-service/index.js.map +1 -1
  59. package/lib/helpers/fetch-image-for-web/index.js +71 -94
  60. package/lib/helpers/fetch-image-for-web/index.js.map +1 -1
  61. package/lib/helpers/fetch-lighthouse-logo/index.js +36 -61
  62. package/lib/helpers/fetch-lighthouse-logo/index.js.map +1 -1
  63. package/lib/helpers/floatify/index.js +13 -7
  64. package/lib/helpers/floatify/index.js.map +1 -1
  65. package/lib/helpers/get-assignees-full-names/index.js +11 -7
  66. package/lib/helpers/get-assignees-full-names/index.js.map +1 -1
  67. package/lib/helpers/get-audit-entry-details/index.js +42 -32
  68. package/lib/helpers/get-audit-entry-details/index.js.map +1 -1
  69. package/lib/helpers/get-audit-items-data/index.js +104 -83
  70. package/lib/helpers/get-audit-items-data/index.js.map +1 -1
  71. package/lib/helpers/get-geometry-geocoded-string/index.js +10 -5
  72. package/lib/helpers/get-geometry-geocoded-string/index.js.map +1 -1
  73. package/lib/helpers/get-issue-details/index.js +53 -43
  74. package/lib/helpers/get-issue-details/index.js.map +1 -1
  75. package/lib/helpers/get-job-details/index.js +49 -41
  76. package/lib/helpers/get-job-details/index.js.map +1 -1
  77. package/lib/helpers/get-location-reference/index.js +32 -34
  78. package/lib/helpers/get-location-reference/index.js.map +1 -1
  79. package/lib/helpers/get-pretty-duration/index.js +16 -10
  80. package/lib/helpers/get-pretty-duration/index.js.map +1 -1
  81. package/lib/helpers/get-reference-details/index.js +20 -10
  82. package/lib/helpers/get-reference-details/index.js.map +1 -1
  83. package/lib/helpers/get-status-details/index.js +8 -2
  84. package/lib/helpers/get-status-details/index.js.map +1 -1
  85. package/lib/helpers/get-task-entry-details/index.js +32 -23
  86. package/lib/helpers/get-task-entry-details/index.js.map +1 -1
  87. package/lib/helpers/get-timezone-abbr/index.js +11 -4
  88. package/lib/helpers/get-timezone-abbr/index.js.map +1 -1
  89. package/lib/helpers/get-timezone-datetime/index.js +20 -13
  90. package/lib/helpers/get-timezone-datetime/index.js.map +1 -1
  91. package/lib/helpers/get-user-full-name/index.js +9 -3
  92. package/lib/helpers/get-user-full-name/index.js.map +1 -1
  93. package/lib/helpers/get-value-as-percentage/index.js +9 -4
  94. package/lib/helpers/get-value-as-percentage/index.js.map +1 -1
  95. package/lib/helpers/image-validators/index.js +18 -12
  96. package/lib/helpers/image-validators/index.js.map +1 -1
  97. package/lib/helpers/index.js +130 -18
  98. package/lib/helpers/index.js.map +1 -1
  99. package/lib/helpers/validate-url/index.js +11 -5
  100. package/lib/helpers/validate-url/index.js.map +1 -1
  101. package/lib/images/index.js +10 -4
  102. package/lib/images/index.js.map +1 -1
  103. package/lib/index.js +66 -10
  104. package/lib/index.js.map +1 -1
  105. package/lib/pdf/activity-report/index.js +407 -537
  106. package/lib/pdf/activity-report/index.js.map +1 -1
  107. package/lib/pdf/audit/index.js +137 -134
  108. package/lib/pdf/audit/index.js.map +1 -1
  109. package/lib/pdf/fonts/index.js +4 -2
  110. package/lib/pdf/fonts/index.js.map +1 -1
  111. package/lib/pdf/helpers/build-audit-content/index.js +57 -51
  112. package/lib/pdf/helpers/build-audit-content/index.js.map +1 -1
  113. package/lib/pdf/helpers/build-audit-follow-ups/index.js +52 -50
  114. package/lib/pdf/helpers/build-audit-follow-ups/index.js.map +1 -1
  115. package/lib/pdf/helpers/build-location-scans-content/index.js +22 -16
  116. package/lib/pdf/helpers/build-location-scans-content/index.js.map +1 -1
  117. package/lib/pdf/helpers/build-template-content/index.js +52 -51
  118. package/lib/pdf/helpers/build-template-content/index.js.map +1 -1
  119. package/lib/pdf/helpers/default-footer/index.js +38 -35
  120. package/lib/pdf/helpers/default-footer/index.js.map +1 -1
  121. package/lib/pdf/helpers/default-header/index.js +40 -35
  122. package/lib/pdf/helpers/default-header/index.js.map +1 -1
  123. package/lib/pdf/helpers/default-styles/index.js +7 -1
  124. package/lib/pdf/helpers/default-styles/index.js.map +1 -1
  125. package/lib/pdf/helpers/fields/index.js +225 -214
  126. package/lib/pdf/helpers/fields/index.js.map +1 -1
  127. package/lib/pdf/helpers/format-location-address/index.js +14 -8
  128. package/lib/pdf/helpers/format-location-address/index.js.map +1 -1
  129. package/lib/pdf/helpers/generate-definition/index.js +60 -65
  130. package/lib/pdf/helpers/generate-definition/index.js.map +1 -1
  131. package/lib/pdf/helpers/horizontal-line/index.js +14 -14
  132. package/lib/pdf/helpers/horizontal-line/index.js.map +1 -1
  133. package/lib/pdf/helpers/html-transformer/index.js +45 -35
  134. package/lib/pdf/helpers/html-transformer/index.js.map +1 -1
  135. package/lib/pdf/helpers/index.js +194 -15
  136. package/lib/pdf/helpers/index.js.map +1 -1
  137. package/lib/pdf/helpers/parse-value/index.js +10 -4
  138. package/lib/pdf/helpers/parse-value/index.js.map +1 -1
  139. package/lib/pdf/helpers/table/index.js +136 -205
  140. package/lib/pdf/helpers/table/index.js.map +1 -1
  141. package/lib/pdf/helpers/text/index.js +11 -8
  142. package/lib/pdf/helpers/text/index.js.map +1 -1
  143. package/lib/pdf/icons/index.js +8 -2
  144. package/lib/pdf/icons/index.js.map +1 -1
  145. package/lib/pdf/index.js +47 -6
  146. package/lib/pdf/index.js.map +1 -1
  147. package/lib/pdf/issue/index.js +141 -135
  148. package/lib/pdf/issue/index.js.map +1 -1
  149. package/lib/pdf/job/index.js +95 -81
  150. package/lib/pdf/job/index.js.map +1 -1
  151. package/lib/pdf/shift-report/emptyFixtures.js +8 -2
  152. package/lib/pdf/shift-report/emptyFixtures.js.map +1 -1
  153. package/lib/pdf/shift-report/index.js +399 -521
  154. package/lib/pdf/shift-report/index.js.map +1 -1
  155. package/lib/pdf/task/index.js +89 -83
  156. package/lib/pdf/task/index.js.map +1 -1
  157. package/lib/scheduling/generators/index.js +38 -3
  158. package/lib/scheduling/generators/index.js.map +1 -1
  159. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js +44 -37
  160. package/lib/scheduling/generators/occurrenceIntervalsGenerator.js.map +1 -1
  161. package/lib/scheduling/generators/scheduleIntervalsGenerator.js +20 -28
  162. package/lib/scheduling/generators/scheduleIntervalsGenerator.js.map +1 -1
  163. package/lib/scheduling/generators/serviceIntervalsGenerator.js +120 -150
  164. package/lib/scheduling/generators/serviceIntervalsGenerator.js.map +1 -1
  165. package/lib/scheduling/helpers/convertToTimezone.js +18 -11
  166. package/lib/scheduling/helpers/convertToTimezone.js.map +1 -1
  167. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js +57 -95
  168. package/lib/scheduling/helpers/generateNonRepeatingSchedule.js.map +1 -1
  169. package/lib/scheduling/helpers/generateRepeatingSchedule.js +80 -119
  170. package/lib/scheduling/helpers/generateRepeatingSchedule.js.map +1 -1
  171. package/lib/scheduling/helpers/generateScheduleEnd.js +24 -14
  172. package/lib/scheduling/helpers/generateScheduleEnd.js.map +1 -1
  173. package/lib/scheduling/helpers/hasValidStartAndEnd.js +19 -11
  174. package/lib/scheduling/helpers/hasValidStartAndEnd.js.map +1 -1
  175. package/lib/scheduling/helpers/index.js +159 -14
  176. package/lib/scheduling/helpers/index.js.map +1 -1
  177. package/lib/scheduling/helpers/intervalCovers.js +13 -7
  178. package/lib/scheduling/helpers/intervalCovers.js.map +1 -1
  179. package/lib/scheduling/helpers/intervalIntersectsEnd.js +13 -7
  180. package/lib/scheduling/helpers/intervalIntersectsEnd.js.map +1 -1
  181. package/lib/scheduling/helpers/intervalIntersectsStart.js +13 -7
  182. package/lib/scheduling/helpers/intervalIntersectsStart.js.map +1 -1
  183. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js +15 -10
  184. package/lib/scheduling/helpers/intervalOnlyIntersectsEnd.js.map +1 -1
  185. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js +15 -10
  186. package/lib/scheduling/helpers/intervalOnlyIntersectsStart.js.map +1 -1
  187. package/lib/scheduling/helpers/intervalOutside.js +15 -9
  188. package/lib/scheduling/helpers/intervalOutside.js.map +1 -1
  189. package/lib/scheduling/helpers/intervalWithin.js +13 -7
  190. package/lib/scheduling/helpers/intervalWithin.js.map +1 -1
  191. package/lib/scheduling/helpers/mergeIntervals.js +21 -17
  192. package/lib/scheduling/helpers/mergeIntervals.js.map +1 -1
  193. package/lib/scheduling/helpers/splitIntervals.js +24 -23
  194. package/lib/scheduling/helpers/splitIntervals.js.map +1 -1
  195. package/lib/scheduling/index.js +38 -3
  196. package/lib/scheduling/index.js.map +1 -1
  197. package/lib/scheduling/scheduling.types.js +9 -3
  198. package/lib/scheduling/scheduling.types.js.map +1 -1
  199. package/lib/scheduling/strategies/getNext.js +57 -63
  200. package/lib/scheduling/strategies/getNext.js.map +1 -1
  201. package/lib/scheduling/strategies/getNextExactDateOfMonth.js +47 -56
  202. package/lib/scheduling/strategies/getNextExactDateOfMonth.js.map +1 -1
  203. package/lib/scheduling/strategies/getNextLastDayOfMonth.js +43 -51
  204. package/lib/scheduling/strategies/getNextLastDayOfMonth.js.map +1 -1
  205. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js +49 -56
  206. package/lib/scheduling/strategies/getNextLastWeekdayOfMonth.js.map +1 -1
  207. package/lib/scheduling/strategies/getNextNoRepeat.js +25 -36
  208. package/lib/scheduling/strategies/getNextNoRepeat.js.map +1 -1
  209. package/lib/scheduling/strategies/getNextWeekday.js +47 -79
  210. package/lib/scheduling/strategies/getNextWeekday.js.map +1 -1
  211. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js +52 -58
  212. package/lib/scheduling/strategies/getNextXDayOfXWeekOfMonth.js.map +1 -1
  213. package/lib/scheduling/strategies/index.js +82 -7
  214. package/lib/scheduling/strategies/index.js.map +1 -1
  215. package/lib/schema/index.js +16 -1
  216. package/lib/schema/index.js.map +1 -1
  217. package/lib/schema/schema.js +28 -34
  218. package/lib/schema/schema.js.map +1 -1
  219. package/lib/service-hours/__helpers__/calculate-hours.js +24 -22
  220. package/lib/service-hours/__helpers__/calculate-hours.js.map +1 -1
  221. package/lib/service-hours/__helpers__/isOpen.js +25 -24
  222. package/lib/service-hours/__helpers__/isOpen.js.map +1 -1
  223. package/lib/service-hours/index.js +27 -2
  224. package/lib/service-hours/index.js.map +1 -1
  225. package/lib/service-hours/schema.js +68 -55
  226. package/lib/service-hours/schema.js.map +1 -1
  227. package/package.json +86 -86
  228. package/vitest.config.ts +23 -23
  229. 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
- import { getGeometryGeocodedString } from '../../../helpers/get-geometry-geocoded-string';
2
- import { head, join, split, tail } from 'lodash';
3
- export function getFormattedAddress(reverseGeoCoded) {
4
- var geometry = getGeometryGeocodedString(reverseGeoCoded);
5
- var splitGeoString = split(geometry, ', ');
6
- var headText = head(splitGeoString);
7
- var tailText = join(tail(splitGeoString), ' ');
8
- var formatted = "".concat(headText, ", ").concat(tailText);
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":["getGeometryGeocodedString","head","join","split","tail","getFormattedAddress","reverseGeoCoded","geometry","splitGeoString","headText","tailText","formatted","concat"],"sources":["../../../../src/pdf/helpers/format-location-address/index.js"],"sourcesContent":["import { getGeometryGeocodedString } from '../../../helpers/get-geometry-geocoded-string'\nimport { head, join, split, tail } from 'lodash'\n\nexport function getFormattedAddress(reverseGeoCoded) {\n const geometry = getGeometryGeocodedString(reverseGeoCoded)\n const splitGeoString = split(geometry, ', ')\n const headText = head(splitGeoString)\n const tailText = join(tail(splitGeoString), ' ')\n const formatted = `${headText}, ${tailText}`\n\n return formatted\n}\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,+CAA+C;AACzF,SAASC,IAAI,EAAEC,IAAI,EAAEC,KAAK,EAAEC,IAAI,QAAQ,QAAQ;AAEhD,OAAO,SAASC,mBAAmBA,CAACC,eAAe,EAAE;EACnD,IAAMC,QAAQ,GAAGP,yBAAyB,CAACM,eAAe,CAAC;EAC3D,IAAME,cAAc,GAAGL,KAAK,CAACI,QAAQ,EAAE,IAAI,CAAC;EAC5C,IAAME,QAAQ,GAAGR,IAAI,CAACO,cAAc,CAAC;EACrC,IAAME,QAAQ,GAAGR,IAAI,CAACE,IAAI,CAACI,cAAc,CAAC,EAAE,GAAG,CAAC;EAChD,IAAMG,SAAS,MAAAC,MAAA,CAAMH,QAAQ,QAAAG,MAAA,CAAKF,QAAQ,CAAE;EAE5C,OAAOC,SAAS;AAClB","ignoreList":[]}
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
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
- import { defaults, isFunction } from 'lodash';
3
- import Promise from 'bluebird';
4
- import { LIGHTHOUSE_LOGO_URL, DEFAULT_PAGE_MARGINS, DEFAULT_PAGE_ORIENTATION, DEFAULT_PAGE_SIZE } from '../../../constants';
5
- import { defaultFooter, defaultHeader, defaultStyles } from '../';
6
- export function generateDefinition(options) {
7
- var content = options.content,
8
- fileTitle = options.fileTitle,
9
- _options$footer = options.footer,
10
- footer = _options$footer === void 0 ? defaultFooter : _options$footer,
11
- sequenceId = options.sequenceId,
12
- _options$header = options.header,
13
- header = _options$header === void 0 ? defaultHeader : _options$header,
14
- _options$logoUrl = options.logoUrl,
15
- logoUrl = _options$logoUrl === void 0 ? LIGHTHOUSE_LOGO_URL : _options$logoUrl,
16
- _options$pageMargins = options.pageMargins,
17
- pageMargins = _options$pageMargins === void 0 ? DEFAULT_PAGE_MARGINS : _options$pageMargins,
18
- _options$pageOrientat = options.pageOrientation,
19
- pageOrientation = _options$pageOrientat === void 0 ? DEFAULT_PAGE_ORIENTATION : _options$pageOrientat,
20
- _options$pageSize = options.pageSize,
21
- pageSize = _options$pageSize === void 0 ? DEFAULT_PAGE_SIZE : _options$pageSize,
22
- _options$styles = options.styles,
23
- styles = _options$styles === void 0 ? {} : _options$styles,
24
- timestamp = options.timestamp,
25
- timezone = options.timezone,
26
- type = options.type;
27
- var pdfStyles = defaults({}, styles, defaultStyles);
28
- var pdfInfo = {
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
- var headerPromise = pdfHeader(header({
32
- logoUrl: logoUrl,
33
- timestamp: timestamp,
34
- timezone: timezone
32
+ const headerPromise = pdfHeader(header({
33
+ logoUrl,
34
+ timestamp,
35
+ timezone
35
36
  }));
36
- var contentPromise = pdfContent(content);
37
- var footerPromise = pdfFooter(footer({
38
- sequenceId: sequenceId,
39
- logoUrl: LIGHTHOUSE_LOGO_URL,
40
- timestamp: timestamp,
41
- timezone: timezone,
42
- type: 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
- var promises = [headerPromise, contentPromise, footerPromise];
45
- return Promise.all(promises).then(function (_ref) {
46
- var _ref2 = _slicedToArray(_ref, 3),
47
- header = _ref2[0],
48
- content = _ref2[1],
49
- footer = _ref2[2];
50
- return {
51
- header: header,
52
- content: content,
53
- footer: footer,
54
- info: pdfInfo,
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 Promise.resolve(header());
68
+ if ((0, _lodash.isFunction)(header)) {
69
+ return _bluebird.default.resolve(header());
75
70
  }
76
- return Promise.resolve(header);
71
+ return _bluebird.default.resolve(header);
77
72
  }
78
73
  function pdfContent(content) {
79
- if (isFunction(content)) {
80
- return Promise.resolve(content());
74
+ if ((0, _lodash.isFunction)(content)) {
75
+ return _bluebird.default.resolve(content());
81
76
  }
82
- return Promise.resolve(content);
77
+ return _bluebird.default.resolve(content);
83
78
  }
84
79
  function pdfFooter(footer) {
85
- if (isFunction(footer)) {
86
- return Promise.resolve(footer());
80
+ if ((0, _lodash.isFunction)(footer)) {
81
+ return _bluebird.default.resolve(footer());
87
82
  }
88
- return Promise.resolve(footer);
83
+ return _bluebird.default.resolve(footer);
89
84
  }
90
85
  //# sourceMappingURL=index.js.map
@@ -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","error","console","message","context","url","stack","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((error) => {\n // Preserve structured error information for better debugging\n console.error('GenerateDefinitionError', {\n message: error.message,\n context: error.context,\n url: error.url,\n type: options.type,\n stack: error.stack,\n })\n throw error // Preserve original error instead of wrapping\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
+ {"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
- export function horizontalLine() {
2
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
3
- var _options$margin = options.margin,
4
- margin = _options$margin === void 0 ? [0, 0, 0, 0] : _options$margin;
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: function hLineWidth(i, node) {
8
- return i === 0 || i === node.table.body.length ? 0 : 0.5;
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: margin
22
+ margin
23
23
  };
24
24
  }
25
25
  //# sourceMappingURL=index.js.map
@@ -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;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":[]}
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
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- import { compact, includes, isArray, isEmpty, isPlainObject, isString, map, reject } from 'lodash';
5
- import { htmlparser2 } from 'react-html-parser';
6
- var LIST_KEY_MATCHER = ['ol', 'ul'];
7
- var NEW_LINE_MATCHER = /.*\n.*/;
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
- var WHITSPACE_MATCHER = /[\t\r\n\f]/g;
10
- export function convertToPdfMake(obj) {
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
- var _obj$children = obj.children,
15
- children = _obj$children === void 0 ? [] : _obj$children,
16
- _obj$data = obj.data,
17
- data = _obj$data === void 0 ? '' : _obj$data,
18
- _obj$name = obj.name,
19
- name = _obj$name === void 0 ? '' : _obj$name,
20
- type = obj.type;
20
+ const {
21
+ children = [],
22
+ data = '',
23
+ name = '',
24
+ type
25
+ } = obj;
21
26
  if (type === 'text' && data) {
22
- var trimmed = data.replace(WHITSPACE_MATCHER, '');
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
- var filtered = reject(children, ['data', NEW_LINE_MATCHER]);
33
- var parsed = compact(map(filtered, convertToPdfMake));
34
- var key = includes(LIST_KEY_MATCHER, name) ? name : 'text';
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
- var text = isArray(parsed) && parsed.length === 1 && isString(parsed[0]) ? parsed[0] : parsed;
38
- var link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined;
39
- return _objectSpread(_objectSpread({}, getStyleAttributes(obj)), {}, _defineProperty(_defineProperty(_defineProperty({}, key, text), "link", link), "preserveLeadingSpaces", true));
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
- export function getStyleAttributes(_ref) {
42
- var _ref$name = _ref.name,
43
- name = _ref$name === void 0 ? '' : _ref$name;
44
- var result = {};
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
- export function parseHtml(html) {
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
- export function toPdf(htmlString) {
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
- var arr = parseHtml(htmlString);
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":["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
+ {"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":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAUA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,MAAME,gBAAgB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AACrC,MAAMC,gBAAgB,GAAG,QAAQ;AACjC;AACA,MAAMC,iBAAiB,GAAG,aAAa;AAEhC,SAASC,gBAAgBA,CAACC,GAAG,EAAE;EACpC,IAAI,CAAC,IAAAC,qBAAa,EAACD,GAAG,CAAC,EAAE;IACvB,OAAO,EAAE;EACX;EAEA,MAAM;IAAEE,QAAQ,GAAG,EAAE;IAAEC,IAAI,GAAG,EAAE;IAAEC,IAAI,GAAG,EAAE;IAAEC;EAAK,CAAC,GAAGL,GAAG;EAEzD,IAAIK,IAAI,KAAK,MAAM,IAAIF,IAAI,EAAE;IAC3B,MAAMG,OAAO,GAAGH,IAAI,CAACI,OAAO,CAACT,iBAAiB,EAAE,EAAE,CAAC;;IAEnD;IACA;IACA;IACA;IACA,OAAOQ,OAAO;EAChB;;EAEA;EACA,MAAME,QAAQ,GAAG,IAAAC,cAAM,EAACP,QAAQ,EAAE,CAAC,MAAM,EAAEL,gBAAgB,CAAC,CAAC;EAC7D,MAAMa,MAAM,GAAG,IAAAC,eAAO,EAAC,IAAAC,WAAG,EAACJ,QAAQ,EAAET,gBAAgB,CAAC,CAAC;EAEvD,MAAMc,GAAG,GAAG,IAAAC,gBAAQ,EAAClB,gBAAgB,EAAEQ,IAAI,CAAC,GAAGA,IAAI,GAAG,MAAM;EAC5D;EACA;EACA,MAAMW,IAAI,GACR,IAAAC,eAAO,EAACN,MAAM,CAAC,IAAIA,MAAM,CAACO,MAAM,KAAK,CAAC,IAAI,IAAAC,gBAAQ,EAACR,MAAM,CAAC,CAAC,CAAC,CAAC,GACzDA,MAAM,CAAC,CAAC,CAAC,GACTA,MAAM;EAEZ,MAAMS,IAAI,GAAGd,IAAI,KAAK,KAAK,IAAID,IAAI,KAAK,GAAG,GAAGJ,GAAG,CAACoB,OAAO,CAACC,IAAI,GAAGC,SAAS;EAE1E,OAAO;IACL,GAAGC,kBAAkB,CAACvB,GAAG,CAAC;IAC1B,CAACa,GAAG,GAAGE,IAAI;IACXI,IAAI;IACJK,qBAAqB,EAAE;EACzB,CAAC;AACH;AAEO,SAASD,kBAAkBA,CAAC;EAAEnB,IAAI,GAAG;AAAG,CAAC,EAAE;EAChD,MAAMqB,MAAM,GAAG,CAAC,CAAC;EACjB,IAAIrB,IAAI,KAAK,IAAI,EAAEqB,MAAM,CAACC,OAAO,GAAG,IAAI;EACxC,IAAItB,IAAI,KAAK,KAAK,EAAEqB,MAAM,CAACE,UAAU,GAAG,WAAW;EACnD,IAAIvB,IAAI,KAAK,QAAQ,EAAEqB,MAAM,CAACG,IAAI,GAAG,IAAI;EACzC,IAAIxB,IAAI,KAAK,GAAG,EAAE;IAChBqB,MAAM,CAACE,UAAU,GAAG,WAAW;IAC/BF,MAAM,CAACI,KAAK,GAAG,MAAM;EACvB;EAEA,IAAI,CAACJ,MAAM,CAACG,IAAI,IAAI,CAACH,MAAM,CAACE,UAAU,IAAI,CAACF,MAAM,CAACC,OAAO,EAAE;IACzDD,MAAM,CAACK,KAAK,GAAG1B,IAAI;EACrB;EAEA,OAAOqB,MAAM;AACf;AAEO,SAASM,SAASA,CAACC,IAAI,EAAE;EAC9B,IAAI,IAAAC,eAAO,EAACD,IAAI,CAAC,IAAI,CAAC,IAAAd,gBAAQ,EAACc,IAAI,CAAC,EAAE;IACpC,OAAO,EAAE;EACX;EAEA,OAAOE,4BAAW,CAACC,QAAQ,CAACH,IAAI,EAAE;IAAEI,cAAc,EAAE;EAAK,CAAC,CAAC;AAC7D;AAEO,SAASC,KAAKA,CAACC,UAAU,EAAE;EAChC,IAAI,IAAAL,eAAO,EAACK,UAAU,CAAC,IAAI,CAAC,IAAApB,gBAAQ,EAACoB,UAAU,CAAC,EAAE;IAChD,OAAO,EAAE;EACX;EAEA,MAAMC,GAAG,GAAGR,SAAS,CAACO,UAAU,CAAC;EACjC,OAAO,IAAA3B,eAAO,EAAC,IAAAC,WAAG,EAAC2B,GAAG,EAAExC,gBAAgB,CAAC,CAAC;AAC5C","ignoreList":[]}