@lighthouse/common 4.22.0 → 4.23.0-canary.110.1388
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.
|
@@ -45,8 +45,10 @@ function convertToPdfMake(obj) {
|
|
|
45
45
|
// the string, so that the styles can be applied
|
|
46
46
|
|
|
47
47
|
const text = (0, _lodash.isArray)(parsed) && parsed.length === 1 && (0, _lodash.isString)(parsed[0]) ? parsed[0] : parsed;
|
|
48
|
+
const link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined;
|
|
48
49
|
return { ...getStyleAttributes(obj),
|
|
49
50
|
[key]: text,
|
|
51
|
+
link,
|
|
50
52
|
preserveLeadingSpaces: true
|
|
51
53
|
};
|
|
52
54
|
}
|
|
@@ -59,6 +61,11 @@ function getStyleAttributes({
|
|
|
59
61
|
if (name === 'ins') result.decoration = 'underline';
|
|
60
62
|
if (name === 'strong') result.bold = true;
|
|
61
63
|
|
|
64
|
+
if (name === 'a') {
|
|
65
|
+
result.decoration = 'underline';
|
|
66
|
+
result.color = 'blue';
|
|
67
|
+
}
|
|
68
|
+
|
|
62
69
|
if (!result.bold && !result.decoration && !result.italics) {
|
|
63
70
|
result.style = name;
|
|
64
71
|
}
|
|
@@ -41,7 +41,8 @@ export function convertToPdfMake(obj) {
|
|
|
41
41
|
// the string, so that the styles can be applied
|
|
42
42
|
|
|
43
43
|
var text = isArray(parsed) && parsed.length === 1 && isString(parsed[0]) ? parsed[0] : parsed;
|
|
44
|
-
|
|
44
|
+
var link = type === 'tag' && name === 'a' ? obj.attribs.href : undefined;
|
|
45
|
+
return _objectSpread(_objectSpread({}, getStyleAttributes(obj)), {}, (_objectSpread2 = {}, _defineProperty(_objectSpread2, key, text), _defineProperty(_objectSpread2, "link", link), _defineProperty(_objectSpread2, "preserveLeadingSpaces", true), _objectSpread2));
|
|
45
46
|
}
|
|
46
47
|
export function getStyleAttributes(_ref) {
|
|
47
48
|
var _ref$name = _ref.name,
|
|
@@ -51,6 +52,11 @@ export function getStyleAttributes(_ref) {
|
|
|
51
52
|
if (name === 'ins') result.decoration = 'underline';
|
|
52
53
|
if (name === 'strong') result.bold = true;
|
|
53
54
|
|
|
55
|
+
if (name === 'a') {
|
|
56
|
+
result.decoration = 'underline';
|
|
57
|
+
result.color = 'blue';
|
|
58
|
+
}
|
|
59
|
+
|
|
54
60
|
if (!result.bold && !result.decoration && !result.italics) {
|
|
55
61
|
result.style = name;
|
|
56
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/pdf/helpers/html-transformer/index.js"],"names":["compact","includes","isArray","isEmpty","isPlainObject","isString","map","reject","htmlparser2","LIST_KEY_MATCHER","NEW_LINE_MATCHER","WHITSPACE_MATCHER","convertToPdfMake","obj","children","data","name","type","trimmed","replace","filtered","parsed","key","text","length","getStyleAttributes","result","italics","decoration","bold","style","parseHtml","html","parseDOM","decodeEntities","toPdf","htmlString","arr"],"mappings":";;;;;;AAAA,SACEA,OADF,EAEEC,QAFF,EAGEC,OAHF,EAIEC,OAJF,EAKEC,aALF,EAMEC,QANF,EAOEC,GAPF,EAQEC,MARF,QASO,QATP;AAUA,SAASC,WAAT,QAA4B,mBAA5B;AAEA,IAAMC,gBAAgB,GAAG,CAAC,IAAD,EAAO,IAAP,CAAzB;AACA,IAAMC,gBAAgB,GAAG,QAAzB,C,CACA;;AACA,IAAMC,iBAAiB,GAAG,aAA1B;AAEA,OAAO,SAASC,gBAAT,CAA0BC,GAA1B,EAA+B;AAAA;;AACpC,MAAI,CAACT,aAAa,CAACS,GAAD,CAAlB,EAAyB;AACvB,WAAO,EAAP;AACD;;AAHmC,sBAKkBA,GALlB,CAK5BC,QAL4B;AAAA,MAK5BA,QAL4B,8BAKjB,EALiB;AAAA,kBAKkBD,GALlB,CAKbE,IALa;AAAA,MAKbA,IALa,0BAKN,EALM;AAAA,kBAKkBF,GALlB,CAKFG,IALE;AAAA,MAKFA,IALE,0BAKK,EALL;AAAA,MAKSC,IALT,GAKkBJ,GALlB,CAKSI,IALT;;AAOpC,MAAIA,IAAI,KAAK,MAAT,IAAmBF,IAAvB,EAA6B;AAC3B,QAAMG,OAAO,GAAGH,IAAI,CAACI,OAAL,CAAaR,iBAAb,EAAgC,EAAhC,CAAhB,CAD2B,CAG3B;AACA;AACA;AACA;;AACA,WAAOO,OAAP;AACD,GAfmC,CAiBpC;;;AACA,MAAME,QAAQ,GAAGb,MAAM,CAACO,QAAD,EAAW,CAAC,MAAD,EAASJ,gBAAT,CAAX,CAAvB;AACA,MAAMW,MAAM,GAAGrB,OAAO,CAACM,GAAG,CAACc,QAAD,EAAWR,gBAAX,CAAJ,CAAtB;AAEA,MAAMU,GAAG,GAAGrB,QAAQ,CAACQ,gBAAD,EAAmBO,IAAnB,CAAR,GAAmCA,IAAnC,GAA0C,MAAtD,CArBoC,CAsBpC;AACA;;AACA,MAAMO,IAAI,GACRrB,OAAO,CAACmB,MAAD,CAAP,IAAmBA,MAAM,CAACG,MAAP,KAAkB,CAArC,IAA0CnB,QAAQ,CAACgB,MAAM,CAAC,CAAD,CAAP,CAAlD,GACIA,MAAM,CAAC,CAAD,CADV,GAEIA,MAHN;AAKA,
|
|
1
|
+
{"version":3,"sources":["../../../../src/pdf/helpers/html-transformer/index.js"],"names":["compact","includes","isArray","isEmpty","isPlainObject","isString","map","reject","htmlparser2","LIST_KEY_MATCHER","NEW_LINE_MATCHER","WHITSPACE_MATCHER","convertToPdfMake","obj","children","data","name","type","trimmed","replace","filtered","parsed","key","text","length","link","attribs","href","undefined","getStyleAttributes","result","italics","decoration","bold","color","style","parseHtml","html","parseDOM","decodeEntities","toPdf","htmlString","arr"],"mappings":"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","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"],"file":"index.js"}
|