UNPKG

@antv/narrative-text-schema

Version:

Json schema of narrative text visualization

65 lines 4.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.generateSentence = void 0; /** * parse string template to phrases * @example * str = `<%= time %>, <%= columnAlias$$metric_name$$ %> is <%= price$$metric_value$$ %>` * data = { time: "2020", columnAlias: "price total", price: "123" } * => * [ * { type: "text", value: "2020" }, * { type: "text", value: ", " }, * { type: "entity", value: "price total", metadata: { entityType: metric_name } }, * { type: "text", value: " is " }, * { type: "entity", value: "123", metadata: { entityType: metric_value } }, * ] */ function generateSentence(template, formattedData, originalData) { var splitReg = /(<%= [\s\S]*?(::\w*?)? %>)/; var variableReg = /<%= ([\s\S]*?)(\$\$(\w*)\$\$)? %>/; return template.split(splitReg).reduce(function (prev, curr) { if (curr) { var variable = variableReg.exec(curr); if (variable && variable[1] && formattedData && typeof formattedData[variable[1]] === 'string') { var formattedVal = formattedData[variable[1]]; if (variable[3]) { var eType = variable[3]; var result = { type: 'entity', value: formattedVal, metadata: { entityType: eType, }, }; var origin_1 = originalData ? originalData[variable[1]] : undefined; if ((result.metadata.entityType === 'delta_value' || result.metadata.entityType === 'ratio_value') && typeof origin_1 === 'number') { if (origin_1 > 0) { result.metadata.assessment = 'positive'; } if (origin_1 < 0) { result.metadata.assessment = 'negative'; } } prev.push(result); } else { prev.push({ type: 'text', value: formattedVal, }); } } else { prev.push({ type: 'text', value: curr, }); } } return prev; }, []); } exports.generateSentence = generateSentence; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9vbHMvdGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILFNBQWdCLGdCQUFnQixDQUM5QixRQUFnQixFQUNoQixhQUFzQyxFQUN0QyxZQUFzQztJQUV0QyxJQUFNLFFBQVEsR0FBRyw0QkFBNEIsQ0FBQztJQUM5QyxJQUFNLFdBQVcsR0FBRyxtQ0FBbUMsQ0FBQztJQUN4RCxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFlLFVBQUMsSUFBSSxFQUFFLElBQUk7UUFDOUQsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFNLFFBQVEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxhQUFhLElBQUksT0FBTyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUM5RixJQUFNLFlBQVksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hELElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFO29CQUNmLElBQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQWUsQ0FBQztvQkFDeEMsSUFBTSxNQUFNLEdBQWU7d0JBQ3pCLElBQUksRUFBRSxRQUFRO3dCQUNkLEtBQUssRUFBRSxZQUFZO3dCQUNuQixRQUFRLEVBQUU7NEJBQ1IsVUFBVSxFQUFFLEtBQUs7eUJBQ2xCO3FCQUNGLENBQUM7b0JBRUYsSUFBTSxRQUFNLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDcEUsSUFDRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxLQUFLLGFBQWEsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsS0FBSyxhQUFhLENBQUM7d0JBQzlGLE9BQU8sUUFBTSxLQUFLLFFBQVEsRUFDMUI7d0JBQ0EsSUFBSSxRQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQzt5QkFDekM7d0JBQ0QsSUFBSSxRQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUNkLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQzt5QkFDekM7cUJBQ0Y7b0JBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztpQkFDbkI7cUJBQU07b0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDUixJQUFJLEVBQUUsTUFBTTt3QkFDWixLQUFLLEVBQUUsWUFBWTtxQkFDcEIsQ0FBQyxDQUFDO2lCQUNKO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQztvQkFDUixJQUFJLEVBQUUsTUFBTTtvQkFDWixLQUFLLEVBQUUsSUFBSTtpQkFDWixDQUFDLENBQUM7YUFDSjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDVCxDQUFDO0FBbkRELDRDQW1EQyJ9