| 1855 | |
| 1856 | var _graphviz$prototype; |
| 1857 | function Graphviz(selection, options) { |
| 1858 | var _this = this; |
| 1859 | this._options = { |
| 1860 | useWorker: true, |
| 1861 | useSharedWorker: false, |
| 1862 | engine: 'dot', |
| 1863 | keyMode: 'title', |
| 1864 | fade: true, |
| 1865 | tweenPaths: true, |
| 1866 | tweenShapes: true, |
| 1867 | convertEqualSidedPolygons: true, |
| 1868 | tweenPrecision: 1, |
| 1869 | growEnteringEdges: true, |
| 1870 | zoom: true, |
| 1871 | zoomScaleExtent: [0.1, 10], |
| 1872 | zoomTranslateExtent: [[-Infinity, -Infinity], [+Infinity, +Infinity]], |
| 1873 | width: null, |
| 1874 | height: null, |
| 1875 | scale: 1, |
| 1876 | fit: false |
| 1877 | }; |
| 1878 | if (options instanceof Object) { |
| 1879 | for (var _i = 0, _Object$keys = Object.keys(options); _i < _Object$keys.length; _i++) { |
| 1880 | var option = _Object$keys[_i]; |
| 1881 | this._options[option] = options[option]; |
| 1882 | } |
| 1883 | } else if (typeof options == 'boolean') { |
| 1884 | this._options.useWorker = options; |
| 1885 | } |
| 1886 | var useWorker = this._options.useWorker; |
| 1887 | var useSharedWorker = this._options.useSharedWorker; |
| 1888 | if (typeof Worker == 'undefined') { |
| 1889 | useWorker = false; |
| 1890 | } |
| 1891 | if (typeof SharedWorker == 'undefined') { |
| 1892 | useSharedWorker = false; |
| 1893 | } |
| 1894 | if (useWorker || useSharedWorker) { |
| 1895 | var scripts = d3__namespace.selectAll('script'); |
| 1896 | var vizScript = scripts.filter(function () { |
| 1897 | return d3__namespace.select(this).attr('type') == 'javascript/worker' || d3__namespace.select(this).attr('src') && d3__namespace.select(this).attr('src').match(/.*\/@hpcc-js\/wasm/); |
| 1898 | }); |
| 1899 | if (vizScript.size() == 0) { |
| 1900 | console.warn('No script tag of type "javascript/worker" was found and "useWorker" is true. Not using web worker.'); |
| 1901 | useWorker = false; |
| 1902 | useSharedWorker = false; |
| 1903 | } else { |
| 1904 | this._vizURL = vizScript.attr('src'); |
| 1905 | if (!this._vizURL) { |
| 1906 | console.warn('No "src" attribute of was found on the "javascript/worker" script tag and "useWorker" is true. Not using web worker.'); |
| 1907 | useWorker = false; |
| 1908 | useSharedWorker = false; |
| 1909 | } |
| 1910 | } |
| 1911 | } |
| 1912 | if (useSharedWorker) { |
| 1913 | var url = 'data:application/javascript;base64,' + btoa(workerCodeBody.toString() + '(' + sharedWorkerCode.toString() + ')()'); |
| 1914 | this._worker = this._worker = new SharedWorker(url); |