/* Viz.js 2.1.2 (Graphviz 2.40.1, Expat {{EXPAT_VERSION}}, Emscripten 1.37.36) Copyright (c) 2014-2018 Michael Daines Licensed under MIT license This distribution contains other software in object code form: Graphviz Licensed under Eclipse Public License - v 1.0 http://www.graphviz.org Expat Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd and Clark Cooper Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Expat maintainers. Licensed under MIT license http://www.libexpat.org zlib Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler http://www.zlib.net/zlib_license.html */ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var WorkerWrapper = function () { function WorkerWrapper(worker) { var _this = this; classCallCheck(this, WorkerWrapper); this.worker = worker; this.listeners = []; this.nextId = 0; this.worker.addEventListener('message', function (event) { var id = event.data.id; var error = event.data.error; var result = event.data.result; _this.listeners[id](error, result); delete _this.listeners[id]; }); } createClass(WorkerWrapper, [{ key: 'render', value: function render(src, options) { var _this2 = this; return new Promise(function (resolve, reject) { var id = _this2.nextId++; _this2.listeners[id] = function (error, result) { if (error) { reject(new Error(error.message, error.fileName, error.lineNumber)); return; } resolve(result); }; _this2.worker.postMessage({ id: id, src: src, options: options }); }); } }]); return WorkerWrapper; }(); var ModuleWrapper = function ModuleWrapper(module, render) { classCallCheck(this, ModuleWrapper); var instance = module(); this.render = function (src, options) { return new Promise(function (resolve, reject) { try { resolve(render(instance, src, options)); } catch (error) { reject(error); } }); }; }; // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding var Viz = function () { function Viz() { var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, workerURL = _ref3.workerURL, worker = _ref3.worker, Module = _ref3.Module, render = _ref3.render; classCallCheck(this, Viz); if (typeof workerURL !== 'undefined') { this.wrapper = new WorkerWrapper(new Worker(workerURL)); } else if (typeof worker !== 'undefined') { this.wrapper = new WorkerWrapper(worker); } else if (typeof Module !== 'undefined' && typeof render !== 'undefined') { this.wrapper = new ModuleWrapper(Module, render); } else if (typeof Viz.Module !== 'undefined' && typeof Viz.render !== 'undefined') { this.wrapper = new ModuleWrapper(Viz.Module, Viz.render); } else { throw new Error('Must specify workerURL or worker option, Module and render options, or include one of full.render.js or lite.render.js after viz.js.'); } } createClass(Viz, [{ key: 'renderString', value: function renderString(src) { var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, _ref4$format = _ref4.format, format = _ref4$format === undefined ? 'svg' : _ref4$format, _ref4$engine = _ref4.engine, engine = _ref4$engine === undefined ? 'dot' : _ref4$engine, _ref4$files = _ref4.files, files = _ref4$files === undefined ? [] : _ref4$files, _ref4$images = _ref4.images, images = _ref4$images === undefined ? [] : _ref4$images, _ref4$yInvert = _ref4.yInvert, yInvert = _ref4$yInvert === undefined ? false : _ref4$yInvert, _ref4$nop = _ref4.nop, nop = _ref4$nop === undefined ? 0 : _ref4$nop; for (var i = 0; i < images.length; i++) { files.push({ path: images[i].path, data: '\n\n' }); } return this.wrapper.render(src, { format: format, engine: engine, files: files, images: images, yInvert: yInvert, nop: nop }); } }, { key: 'renderJSONObject', value: function renderJSONObject(src) { var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var format = options.format; if (format !== 'json' || format !== 'json0') { format = 'json'; } return this.renderString(src, _extends({}, options, { format: format })).then(function (str) { return JSON.parse(str); }); } }]); return Viz; }(); export default Viz;