UNPKG

excel-builder

Version:

An easy way of building Excel files with javascript

60 lines (50 loc) 1.68 kB
"use strict"; var _ = require('lodash'); var util = require('./util'); var Paths = require('./Paths'); /** * @module Excel/RelationshipManager */ var RelationshipManager = function () { this.relations = {}; this.lastId = 1; }; _.uniqueId('rId'); //priming _.extend(RelationshipManager.prototype, { importData: function (data) { this.relations = data.relations; this.lastId = data.lastId; }, exportData: function () { return { relations: this.relations, lastId: this.lastId }; }, addRelation: function (object, type) { this.relations[object.id] = { id: _.uniqueId('rId'), schema: util.schemas[type], object: object }; return this.relations[object.id].id; }, getRelationshipId: function (object) { return this.relations[object.id] ? this.relations[object.id].id : null; }, toXML: function () { var doc = util.createXmlDoc(util.schemas.relationshipPackage, 'Relationships'); var relationships = doc.documentElement; _.each(this.relations, function (data, id) { var relationship = util.createElement(doc, 'Relationship', [ ['Id', data.id], ['Type', data.schema], ['Target', data.object.target || Paths[id]] ]); data.object.targetMode && relationship.setAttribute('TargetMode', data.object.targetMode); relationships.appendChild(relationship); }); return doc; } }); module.exports = RelationshipManager;