@lighthouse/common 6.6.0-canary.0 → 6.6.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/dist/pdf/issue/index.js
CHANGED
|
@@ -33,19 +33,19 @@ var _helpers2 = require("../../helpers");
|
|
|
33
33
|
* @param {object} data.zones - zone documents
|
|
34
34
|
* @returns {Promise} returns pdfmake definition object
|
|
35
35
|
*/
|
|
36
|
+
|
|
37
|
+
const publicSubmissionTextColor = '#FF8C2F';
|
|
38
|
+
const staffSubmissionTextColor = '#00AAE4';
|
|
36
39
|
function buildIssuePdf(pdfOptions, data) {
|
|
37
40
|
const {
|
|
38
41
|
entity,
|
|
39
42
|
timezone
|
|
40
43
|
} = data;
|
|
41
|
-
const {
|
|
42
|
-
plugins = {}
|
|
43
|
-
} = pdfOptions;
|
|
44
44
|
const sequenceId = entity.sequenceId;
|
|
45
45
|
const timestamp = entity.createdAt;
|
|
46
46
|
const title = entity.title || 'Unknown';
|
|
47
47
|
const fileTitle = `Issue Report - ${title}`;
|
|
48
|
-
return generateContent(data,
|
|
48
|
+
return generateContent(data, pdfOptions).then(content => (0, _helpers.generateDefinition)({
|
|
49
49
|
content,
|
|
50
50
|
fileTitle,
|
|
51
51
|
sequenceId,
|
|
@@ -55,7 +55,7 @@ function buildIssuePdf(pdfOptions, data) {
|
|
|
55
55
|
...pdfOptions
|
|
56
56
|
}));
|
|
57
57
|
}
|
|
58
|
-
function generateContent(data,
|
|
58
|
+
function generateContent(data, pdfOptions) {
|
|
59
59
|
const {
|
|
60
60
|
entity,
|
|
61
61
|
timezone
|
|
@@ -66,6 +66,9 @@ function generateContent(data, plugins) {
|
|
|
66
66
|
timeline = [],
|
|
67
67
|
title
|
|
68
68
|
} = entity;
|
|
69
|
+
const {
|
|
70
|
+
plugins = {}
|
|
71
|
+
} = pdfOptions;
|
|
69
72
|
const entityDetails = (0, _helpers2.getIssueDetails)(data);
|
|
70
73
|
const {
|
|
71
74
|
assigneeNames,
|
|
@@ -142,8 +145,8 @@ function generateContent(data, plugins) {
|
|
|
142
145
|
const assigneeValueText = (0, _helpers.text)(assigneeNames);
|
|
143
146
|
metaTable.table.body.push([assigneeLabelText, assigneeValueText]);
|
|
144
147
|
if (plugins.publicForms?.enabled) {
|
|
145
|
-
const sourceText = isPublicSubmission ? '
|
|
146
|
-
const sourceColor = isPublicSubmission ?
|
|
148
|
+
const sourceText = isPublicSubmission ? 'PUBLIC SUBMISSION' : 'STAFF SUBMISSION';
|
|
149
|
+
const sourceColor = isPublicSubmission ? publicSubmissionTextColor : staffSubmissionTextColor;
|
|
147
150
|
const sourceLabelText = (0, _helpers.text)('Source', {
|
|
148
151
|
bold: true
|
|
149
152
|
});
|
package/lib/pdf/issue/index.js
CHANGED
|
@@ -31,16 +31,17 @@ import { getIssueDetails, getStatusDetails, getTimezoneAbbr, getTimezoneDatetime
|
|
|
31
31
|
* @param {object} data.zones - zone documents
|
|
32
32
|
* @returns {Promise} returns pdfmake definition object
|
|
33
33
|
*/
|
|
34
|
+
|
|
35
|
+
var publicSubmissionTextColor = '#FF8C2F';
|
|
36
|
+
var staffSubmissionTextColor = '#00AAE4';
|
|
34
37
|
export function buildIssuePdf(pdfOptions, data) {
|
|
35
38
|
var entity = data.entity,
|
|
36
39
|
timezone = data.timezone;
|
|
37
|
-
var _pdfOptions$plugins = pdfOptions.plugins,
|
|
38
|
-
plugins = _pdfOptions$plugins === void 0 ? {} : _pdfOptions$plugins;
|
|
39
40
|
var sequenceId = entity.sequenceId;
|
|
40
41
|
var timestamp = entity.createdAt;
|
|
41
42
|
var title = entity.title || 'Unknown';
|
|
42
43
|
var fileTitle = "Issue Report - ".concat(title);
|
|
43
|
-
return generateContent(data,
|
|
44
|
+
return generateContent(data, pdfOptions).then(function (content) {
|
|
44
45
|
return generateDefinition(_objectSpread({
|
|
45
46
|
content: content,
|
|
46
47
|
fileTitle: fileTitle,
|
|
@@ -51,7 +52,7 @@ export function buildIssuePdf(pdfOptions, data) {
|
|
|
51
52
|
}, pdfOptions));
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
|
-
function generateContent(data,
|
|
55
|
+
function generateContent(data, pdfOptions) {
|
|
55
56
|
var _plugins$publicForms;
|
|
56
57
|
var entity = data.entity,
|
|
57
58
|
timezone = data.timezone;
|
|
@@ -61,6 +62,8 @@ function generateContent(data, plugins) {
|
|
|
61
62
|
_entity$timeline = entity.timeline,
|
|
62
63
|
timeline = _entity$timeline === void 0 ? [] : _entity$timeline,
|
|
63
64
|
title = entity.title;
|
|
65
|
+
var _pdfOptions$plugins = pdfOptions.plugins,
|
|
66
|
+
plugins = _pdfOptions$plugins === void 0 ? {} : _pdfOptions$plugins;
|
|
64
67
|
var entityDetails = getIssueDetails(data);
|
|
65
68
|
var assigneeNames = entityDetails.assigneeNames,
|
|
66
69
|
durationText = entityDetails.durationText,
|
|
@@ -135,8 +138,8 @@ function generateContent(data, plugins) {
|
|
|
135
138
|
var assigneeValueText = text(assigneeNames);
|
|
136
139
|
metaTable.table.body.push([assigneeLabelText, assigneeValueText]);
|
|
137
140
|
if ((_plugins$publicForms = plugins.publicForms) !== null && _plugins$publicForms !== void 0 && _plugins$publicForms.enabled) {
|
|
138
|
-
var sourceText = isPublicSubmission ? '
|
|
139
|
-
var sourceColor = isPublicSubmission ?
|
|
141
|
+
var sourceText = isPublicSubmission ? 'PUBLIC SUBMISSION' : 'STAFF SUBMISSION';
|
|
142
|
+
var sourceColor = isPublicSubmission ? publicSubmissionTextColor : staffSubmissionTextColor;
|
|
140
143
|
var sourceLabelText = text('Source', {
|
|
141
144
|
bold: true
|
|
142
145
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","buildIssuePdf","pdfOptions","data","entity","timezone","_pdfOptions$plugins","plugins","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","_plugins$publicForms","entry","_entity$gps","gps","_entity$timeline","timeline","entityDetails","assigneeNames","durationText","gpsText","isPublicSubmission","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","publicForms","enabled","sourceText","sourceColor","sourceLabelText","sourceValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n const { plugins = {} } = pdfOptions\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data, plugins).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data, plugins) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n isPublicSubmission,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n if (plugins.publicForms?.enabled) {\n const sourceText = isPublicSubmission\n ? 'Public Submission'\n : 'Staff Submission'\n\n const sourceColor = isPublicSubmission ? '#FF8C2F' : '#000000'\n const sourceLabelText = text('Source', { bold: true })\n const sourceValueText = text(sourceText, { color: sourceColor })\n metaTable.table.body.push([sourceLabelText, sourceValueText])\n }\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, (item) => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["get","filter","isEmpty","map","moment","buildTemplateContent","generateDefinition","getFormattedAddress","horizontalLine","table","text","threeColumnTable","getIssueDetails","getStatusDetails","getTimezoneAbbr","getTimezoneDatetime","publicSubmissionTextColor","staffSubmissionTextColor","buildIssuePdf","pdfOptions","data","entity","timezone","sequenceId","timestamp","createdAt","title","fileTitle","concat","generateContent","then","content","_objectSpread","type","_plugins$publicForms","entry","_entity$gps","gps","_entity$timeline","timeline","_pdfOptions$plugins","plugins","entityDetails","assigneeNames","durationText","gpsText","isPublicSubmission","locationText","statusColor","statusText","reverseGeocoded","subTitle","headerTitle","style","headerSubTitle","address","headerAddress","body","submittedAtInTimezone","submittedAt","tz","format","showSimplifiedDuration","push","startedAtInTimezone","startedAt","momentDuration","duration","Math","abs","formDuration","days","floor","asDays","toString","padStart","hours","minutes","seconds","formattedFormDuration","titleTable","layout","statusLabelText","bold","statusValueText","color","metaTable","durationLabelText","durationValueText","assigneeLabelText","assigneeValueText","publicForms","enabled","sourceText","sourceColor","sourceLabelText","sourceValueText","timelineTitle","timelineHorizontalLine","timelineTable","createTimelineTable","formGroups","_toConsumableArray","timezoneAbbr","timelineHeaderRow","alignment","statusUpdates","timelineBodyRows","colSpan","item","_item$meta","meta","source","next","firstName","lastName","fullName","isNew","isUpdate","isOpen","statusDetails","nextStatusText","activity","datetime","showTzAbbr"],"sources":["../../../src/pdf/issue/index.js"],"sourcesContent":["import { get, filter, isEmpty, map } from 'lodash'\nimport moment from 'moment-timezone'\n\nimport {\n buildTemplateContent,\n generateDefinition,\n getFormattedAddress,\n horizontalLine,\n table,\n text,\n threeColumnTable,\n} from '../helpers'\n\nimport {\n getIssueDetails,\n getStatusDetails,\n getTimezoneAbbr,\n getTimezoneDatetime,\n} from '../../helpers'\n\n/**\n * buildIssuePdf\n *\n * @param {object} pdfOptions - the pdf options\n * @param {string} pdfOptions.fileTitle - pdf file title\n * @param {function} pdfOptions.footer - function executed to generate footer\n * @param {function} pdfOptions.header - function executed to generate header\n * @param {string} pdfOptions.logoUrl - pdf logo url\n * @param {array} pdfOptions.pageMargins - pdf page margins\n * @param {string} pdfOptions.pageOrientation - pdf page orientation\n * @param {string} pdfOptions.pageSize - pdf page size\n * @param {object} pdfOptions.styles - pdf styles\n * @param {object} pdfOptions.title - pdf title\n * @param {object} data - pdf data\n * @param {object} data.entity - issue document\n * @param {object} data.locations - locations documents\n * @param {object} data.settings - settings properties\n * @param {string} data.settings.awsS3BaseUrl - aws S3 base url\n * @param {string} data.settings.cloudinaryBaseUrl - cloudinary base url\n * @param {string} data.timezone - timezone string\n * @param {object} data.users - application user documents\n * @param {object} data.zones - zone documents\n * @returns {Promise} returns pdfmake definition object\n */\n\nconst publicSubmissionTextColor = '#FF8C2F'\nconst staffSubmissionTextColor = '#00AAE4'\n\nexport function buildIssuePdf(pdfOptions, data) {\n const { entity, timezone } = data\n\n const sequenceId = entity.sequenceId\n const timestamp = entity.createdAt\n const title = entity.title || 'Unknown'\n\n const fileTitle = `Issue Report - ${title}`\n\n return generateContent(data, pdfOptions).then((content) =>\n generateDefinition({\n content,\n fileTitle,\n sequenceId,\n timestamp,\n timezone,\n type: 'Issue',\n ...pdfOptions,\n })\n )\n}\n\nfunction generateContent(data, pdfOptions) {\n const { entity, timezone } = data\n const { entry, gps = {}, timeline = [], title } = entity\n const { plugins = {} } = pdfOptions\n\n const entityDetails = getIssueDetails(data)\n\n const {\n assigneeNames,\n durationText,\n gpsText,\n isPublicSubmission,\n locationText,\n statusColor,\n statusText,\n } = entityDetails\n\n const reverseGeocoded = gps.reverseGeocoded\n\n const subTitle = `${locationText || gpsText}`\n const headerTitle = text(title, { style: 'title' })\n const headerSubTitle = text(subTitle, { style: 'subTitle' })\n const address = !isEmpty(reverseGeocoded)\n ? getFormattedAddress(reverseGeocoded)\n : ''\n const headerAddress = text(address, { style: 'small' })\n\n const body = !isEmpty(reverseGeocoded)\n ? [[headerTitle], [headerSubTitle], [headerAddress]]\n : [[headerTitle], [headerSubTitle]]\n\n const submittedAtInTimezone = entity.submittedAt\n ? moment(entity.submittedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const submittedAt = text(`Submitted: ${submittedAtInTimezone}`, {\n style: 'small',\n })\n\n if (entity.showSimplifiedDuration) {\n body.push([submittedAt])\n } else {\n const startedAtInTimezone = entity.startedAt\n ? moment(entity.startedAt).tz(timezone).format('YYYY-MM-DD HH:mm:ss z')\n : 'Not recorded'\n const startedAt = text(`Started: ${startedAtInTimezone}`, {\n style: 'small',\n })\n\n const momentDuration = moment.duration(Math.abs(entity.formDuration))\n const days = Math.floor(momentDuration.asDays()).toString().padStart(2, '0')\n const hours = Math.floor(momentDuration.hours()).toString().padStart(2, '0')\n const minutes = momentDuration.minutes().toString().padStart(2, '0')\n const seconds = momentDuration.seconds().toString().padStart(2, '0')\n const formattedFormDuration = entity.formDuration\n ? `${\n entity.formDuration < 0 ? '-' : ''\n }${days}:${hours}:${minutes}:${seconds}`\n : 'Not recorded'\n const formDuration = text(\n `Form Duration (DD:HH:MM:SS): ${formattedFormDuration}`,\n {\n style: 'small',\n }\n )\n\n body.push([startedAt])\n body.push([submittedAt])\n body.push([formDuration])\n }\n\n const titleTable = table({\n body,\n layout: 'noBorders',\n style: 'titleTable',\n })\n\n const statusLabelText = text('Status', { bold: true })\n const statusValueText = text(statusText, { color: statusColor })\n\n const metaTable = table({\n body: [[statusLabelText, statusValueText]],\n layout: 'noBorders',\n style: 'metaTable',\n })\n\n if (statusText === 'CLOSED') {\n const durationLabelText = text('Duration', { bold: true })\n const durationValueText = text(durationText)\n metaTable.table.body.push([durationLabelText, durationValueText])\n }\n\n const assigneeLabelText = text('Assignees', { bold: true })\n const assigneeValueText = text(assigneeNames)\n metaTable.table.body.push([assigneeLabelText, assigneeValueText])\n\n if (plugins.publicForms?.enabled) {\n const sourceText = isPublicSubmission\n ? 'PUBLIC SUBMISSION'\n : 'STAFF SUBMISSION'\n\n const sourceColor = isPublicSubmission\n ? publicSubmissionTextColor\n : staffSubmissionTextColor\n const sourceLabelText = text('Source', { bold: true })\n const sourceValueText = text(sourceText, { color: sourceColor })\n metaTable.table.body.push([sourceLabelText, sourceValueText])\n }\n\n const timelineTitle = text('Timeline', { style: 'timelineTitle' })\n const timelineHorizontalLine = horizontalLine()\n const timelineTable = createTimelineTable(timeline, timezone)\n\n return buildTemplateContent(entry.formGroups, data).then((entry) => [\n titleTable,\n metaTable,\n timelineTitle,\n timelineHorizontalLine,\n timelineTable,\n ...entry,\n ])\n}\n\nfunction createTimelineTable(timeline, timezone) {\n const timezoneAbbr = getTimezoneAbbr(timezone)\n\n const timelineHeaderRow = [\n text('Activity', { bold: true }),\n text('User', { bold: true }),\n text(`Date & Timestamp (${timezoneAbbr})`, {\n alignment: 'right',\n bold: true,\n }),\n ]\n\n const statusUpdates = filter(timeline, ['meta.field', 'status'])\n\n const timelineBodyRows = isEmpty(statusUpdates)\n ? [text('No Timeline activity', { colSpan: 3 })]\n : map(statusUpdates, (item) => {\n const { meta = {}, source, timestamp, type } = item\n\n const next = get(meta, 'next')\n const firstName = get(source, 'meta.firstName')\n const lastName = get(source, 'meta.lastName')\n\n const fullName =\n firstName && lastName ? `${firstName} ${lastName}` : 'Unknown User'\n\n const isNew = type === 'issue-new'\n const isUpdate = type === 'issue-update'\n const isOpen = next === 'open'\n\n const statusDetails = getStatusDetails(next)\n const nextStatusText = statusDetails.text\n\n const activity =\n isNew && isOpen\n ? 'Issue opened'\n : isNew && !isOpen\n ? `Issue opened with status ${nextStatusText}`\n : isUpdate\n ? `Issue updated to ${nextStatusText}`\n : 'Unknown status timeline change'\n\n const datetime = getTimezoneDatetime({\n format: 'ddd, MMM D h:mm:ssa z',\n showTzAbbr: false,\n timestamp,\n timezone,\n })\n\n return [\n text(activity),\n text(fullName),\n text(datetime, { alignment: 'right' }),\n ]\n })\n\n const timelineTable = threeColumnTable({\n body: [timelineHeaderRow, ...timelineBodyRows],\n })\n\n return timelineTable\n}\n"],"mappings":"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","ignoreList":[]}
|