@antv/narrative-text-schema
Version:
Json schema of narrative text visualization
60 lines • 4.66 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getVariableMap = void 0;
// extract the variables from the schema
var getVariableMap = function (spec) {
var variableMap = {};
var headline = spec.headline, sections = spec.sections;
var allPhrases = [];
if (headline === null || headline === void 0 ? void 0 : headline.phrases) {
allPhrases.push.apply(allPhrases, headline.phrases);
}
var addPhrases = function (paragraph) {
var _a;
switch (paragraph === null || paragraph === void 0 ? void 0 : paragraph.type) {
case 'heading1':
case 'heading2':
case 'heading3':
case 'heading4':
case 'heading5':
case 'heading6':
case 'normal': {
var phrases = paragraph.phrases;
if (phrases === null || phrases === void 0 ? void 0 : phrases.length) {
allPhrases.push.apply(allPhrases, phrases);
}
break;
}
case 'bullets':
(_a = paragraph.bullets) === null || _a === void 0 ? void 0 : _a.forEach(function (bullet) {
var subBullet = bullet.subBullet, phrases = bullet.phrases;
if (phrases === null || phrases === void 0 ? void 0 : phrases.length) {
allPhrases.push.apply(allPhrases, phrases);
}
if (subBullet) {
addPhrases(subBullet);
}
});
break;
default:
break;
}
};
sections === null || sections === void 0 ? void 0 : sections.forEach(function (section) {
var _a;
(_a = section.paragraphs) === null || _a === void 0 ? void 0 : _a.forEach(function (paragraph) {
addPhrases(paragraph);
});
});
var variableIndex = 0;
allPhrases.forEach(function (phrase) {
var _a;
if (phrase.type === 'entity') {
var variableKey = ((_a = phrase.metadata) === null || _a === void 0 ? void 0 : _a.sourceId) || "variable_".concat((variableIndex += 1));
variableMap[variableKey] = phrase;
}
});
return variableMap;
};
exports.getVariableMap = getVariableMap;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0VmFyaWFibGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rvb2xzL2dldFZhcmlhYmxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx3Q0FBd0M7QUFDakMsSUFBTSxjQUFjLEdBQUcsVUFBQyxJQUF1QjtJQUNwRCxJQUFNLFdBQVcsR0FBcUMsRUFBRSxDQUFDO0lBQ2pELElBQUEsUUFBUSxHQUFlLElBQUksU0FBbkIsRUFBRSxRQUFRLEdBQUssSUFBSSxTQUFULENBQVU7SUFDcEMsSUFBTSxVQUFVLEdBQWlCLEVBQUUsQ0FBQztJQUNwQyxJQUFJLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxPQUFPLEVBQUU7UUFDckIsVUFBVSxDQUFDLElBQUksT0FBZixVQUFVLEVBQVMsUUFBUSxDQUFDLE9BQU8sRUFBRTtLQUN0QztJQUVELElBQU0sVUFBVSxHQUFHLFVBQUMsU0FBd0I7O1FBQzFDLFFBQVEsU0FBUyxhQUFULFNBQVMsdUJBQVQsU0FBUyxDQUFFLElBQUksRUFBRTtZQUN2QixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLFFBQVEsQ0FBQyxDQUFDO2dCQUNiLElBQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxPQUF1QixDQUFDO2dCQUNsRCxJQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxNQUFNLEVBQUU7b0JBQ25CLFVBQVUsQ0FBQyxJQUFJLE9BQWYsVUFBVSxFQUFTLE9BQU8sRUFBRTtpQkFDN0I7Z0JBQ0QsTUFBTTthQUNQO1lBQ0QsS0FBSyxTQUFTO2dCQUNaLE1BQUMsU0FBUyxDQUFDLE9BQTJDLDBDQUFFLE9BQU8sQ0FBQyxVQUFDLE1BQU07b0JBQzdELElBQUEsU0FBUyxHQUFjLE1BQU0sVUFBcEIsRUFBRSxPQUFPLEdBQUssTUFBTSxRQUFYLENBQVk7b0JBQ3RDLElBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE1BQU0sRUFBRTt3QkFDbkIsVUFBVSxDQUFDLElBQUksT0FBZixVQUFVLEVBQVMsT0FBTyxFQUFFO3FCQUM3QjtvQkFDRCxJQUFJLFNBQVMsRUFBRTt3QkFDYixVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7cUJBQ3ZCO2dCQUNILENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDUjtnQkFDRSxNQUFNO1NBQ1Q7SUFDSCxDQUFDLENBQUM7SUFFRixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsT0FBTyxDQUFDLFVBQUMsT0FBTzs7UUFDeEIsTUFBQyxPQUFPLENBQUMsVUFBOEIsMENBQUUsT0FBTyxDQUFDLFVBQUMsU0FBUztZQUN6RCxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILElBQUksYUFBYSxHQUFHLENBQUMsQ0FBQztJQUN0QixVQUFVLENBQUMsT0FBTyxDQUFDLFVBQUMsTUFBTTs7UUFDeEIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUM1QixJQUFNLFdBQVcsR0FBRyxDQUFBLE1BQUEsTUFBTSxDQUFDLFFBQVEsMENBQUUsUUFBUSxLQUFJLG1CQUFZLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxDQUFFLENBQUM7WUFDcEYsV0FBVyxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztTQUNuQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQyxDQUFDO0FBckRXLFFBQUEsY0FBYyxrQkFxRHpCIn0=