{"version":3,"sources":["webpack:///./node_modules/echarts-wordcloud/src/wordCloud.js","webpack:///./node_modules/echarts-wordcloud/src/WordCloudSeries.js","webpack:///./src/views/institution.vue?6687","webpack:///./src/components/general/institutionCard.vue?abd7","webpack:///src/components/general/institutionCard.vue","webpack:///./src/components/general/institutionCard.vue?9ed8","webpack:///./src/components/general/institutionCard.vue","webpack:///./src/components/general/wordcloud.vue?a9aa","webpack:///src/components/general/wordcloud.vue","webpack:///./src/components/general/wordcloud.vue?d23c","webpack:///./src/components/general/wordcloud.vue?3da1","webpack:///src/views/institution.vue","webpack:///./src/views/institution.vue?657f","webpack:///./src/views/institution.vue?f368","webpack:///./src/assets/img/institution.png","webpack:///./node_modules/echarts-wordcloud/src/layout.js","webpack:///./node_modules/echarts-wordcloud/index.js","webpack:///./src/views/institution.vue?81a1","webpack:///./src/components/general/wordcloud.vue?2f63","webpack:///./node_modules/echarts-wordcloud/src/WordCloudView.js","webpack:///./src/components/general/institutionCard.vue?c0d1"],"names":["echarts","layoutUtil","wordCloudLayoutHelper","isSupported","Error","updateCanvasMask","maskCanvas","ctx","getContext","imageData","getImageData","width","height","newImageData","createImageData","toneSum","toneCnt","i","data","length","alpha","tone","threshold","putImageData","registerLayout","ecModel","api","eachSeriesByType","seriesModel","gridRect","getLayoutRect","getBoxLayoutParams","getWidth","getHeight","getData","canvas","document","createElement","maskImage","get","drawImage","e","console","error","toString","sizeRange","rotationRange","valueExtent","getDataExtent","DEGREE_TO_RAD","Math","PI","gridSize","onWordCloudDrawn","item","detail","drawn","layoutInstance","ondraw","gx","x","gy","y","list","mapArray","value","idx","itemModel","getItemModel","getName","number","linearMap","sort","a","b","fontFamily","fontWeight","ellipticity","minRotation","maxRotation","clearCanvas","rotateRatio","rotationStep","drawOutOfBound","shuffle","shape","addEventListener","dispose","removeEventListener","preventDefault","registerPreprocessor","option","series","util","isArray","compats","compatTextStyle","textStyle","each","key","hasOwnProperty","format","capitalFirst","seriesItem","type","normal","emphasis","completeDimensions","extendSeriesModel","visualColorAccessPath","optionUpdated","this","max","floor","getInitialData","dimensions","List","initData","defaultOption","left","top","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","directives","name","rawName","expression","paper","_v","entity","wordcloud","bar","coauthor","flag","staticRenderFns","padding","_s","iname","component","module","exports","window","setImmediate","msSetImmediate","webkitSetImmediate","mozSetImmediate","oSetImmediate","postMessage","callbacks","undefined","message","setZeroTimeout","callback","id","push","evt","substr","stopImmediatePropagation","parseInt","clearImmediate","fn","setTimeout","msClearImmediate","webkitClearImmediate","mozClearImmediate","oClearImmediate","timer","clearTimeout","global","fillText","Array","prototype","some","minFontSize","hanWidth","mWidth","size","font","measureText","shuffleArray","arr","j","random","WordCloud","elements","options","forEach","el","getElementById","tagName","appendChild","settings","color","minSize","weightFactor","backgroundColor","origin","drawMask","maskColor","maskGapWidth","wait","abortThreshold","abort","classes","hover","click","factor","pt","theta","sin","thetaPrime","cos","sqrt","grid","ngx","ngy","center","maxRadius","escapeTime","getTextColor","g","maskRectWidth","abs","min","random_hsl_color","getTextClasses","hovered","interactive","infoGrid","getInfoGridFromMouseTouchEvent","clientX","clientY","currentTarget","rect","getBoundingClientRect","touches","eventX","eventY","wordcloudhover","info","dimension","wordcloudclick","pointsAtRadius","getPointsAtRadius","radius","T","t","points","rx","exceedTime","Date","getTime","getRotateDeg","round","getTextInfo","word","weight","rotateDeg","debug","fontSize","mu","fcanvas","fctx","willReadFrequently","fw","fh","boxWidth","boxHeight","fgw","ceil","fgh","fillTextOffsetX","fillTextOffsetY","cgh","cgw","setAttribute","body","save","scale","translate","rotate","fillStyle","textBaseline","strokeRect","restore","occupied","bounds","singleGridLoop","fillRect","gw","gh","fillTextWidth","fillTextHeight","canFitText","px","py","drawText","distance","attributes","span","transformRule","styleRules","cssProp","textContent","style","attribute","className","fillGridAt","updateGrid","w","h","putWord","r","tryToPutWordAtPoint","gxy","rot","concat","res","sendEvent","cancelable","createEvent","initCustomEvent","dispatchEvent","start","loopingFunction","stoppingFunction","clearRect","position","bctx","bgPixel","webkitTapHighlightColor","stopInteraction","listener","anotherWordCloudStart","loop","canceled","toFixed","extendChartView","group","removeAll","text","dataIdx","textStyleModel","getModel","emphasisTextStyleModel","textEl","graphic","Text","setTextStyle","textFill","getItemVisual","rotation","add","setItemGraphicEl","setHoverStyle","forMerge","_model","remove"],"mappings":"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","file":"js/chunk-3a702198.b63cd667.js","sourcesContent":["var echarts = require('echarts/lib/echarts');\nvar layoutUtil = require('echarts/lib/util/layout');\n\nrequire('./WordCloudSeries');\nrequire('./WordCloudView');\n\nvar wordCloudLayoutHelper = require('./layout');\n\nif (!wordCloudLayoutHelper.isSupported) {\n throw new Error('Sorry your browser not support wordCloud');\n}\n\n// https://github.com/timdream/wordcloud2.js/blob/c236bee60436e048949f9becc4f0f67bd832dc5c/index.js#L233\nfunction updateCanvasMask(maskCanvas) {\n var ctx = maskCanvas.getContext('2d');\n var imageData = ctx.getImageData(\n 0, 0, maskCanvas.width, maskCanvas.height);\n var newImageData = ctx.createImageData(imageData);\n\n var toneSum = 0;\n var toneCnt = 0;\n for (var i = 0; i < imageData.data.length; i += 4) {\n var alpha = imageData.data[i + 3];\n if (alpha > 128) {\n var tone = imageData.data[i]\n + imageData.data[i + 1]\n + imageData.data[i + 2];\n toneSum += tone;\n ++toneCnt;\n }\n }\n var threshold = toneSum / toneCnt;\n\n for (var i = 0; i < imageData.data.length; i += 4) {\n var tone = imageData.data[i]\n + imageData.data[i + 1]\n + imageData.data[i + 2];\n var alpha = imageData.data[i + 3];\n\n if (alpha < 128 || tone > threshold) {\n // Area not to draw\n newImageData.data[i] = 0;\n newImageData.data[i + 1] = 0;\n newImageData.data[i + 2] = 0;\n newImageData.data[i + 3] = 0;\n }\n else {\n // Area to draw\n // The color must be same with backgroundColor\n newImageData.data[i] = 255;\n newImageData.data[i + 1] = 255;\n newImageData.data[i + 2] = 255;\n newImageData.data[i + 3] = 255;\n }\n }\n\n ctx.putImageData(newImageData, 0, 0);\n}\n\necharts.registerLayout(function (ecModel, api) {\n ecModel.eachSeriesByType('wordCloud', function (seriesModel) {\n var gridRect = layoutUtil.getLayoutRect(\n seriesModel.getBoxLayoutParams(), {\n width: api.getWidth(),\n height: api.getHeight()\n }\n );\n var data = seriesModel.getData();\n\n var canvas = document.createElement('canvas');\n canvas.width = gridRect.width;\n canvas.height = gridRect.height;\n\n var ctx = canvas.getContext('2d');\n var maskImage = seriesModel.get('maskImage');\n if (maskImage) {\n try {\n ctx.drawImage(maskImage, 0, 0, canvas.width, canvas.height);\n updateCanvasMask(canvas);\n }\n catch (e) {\n console.error('Invalid mask image');\n console.error(e.toString());\n }\n }\n\n var sizeRange = seriesModel.get('sizeRange');\n var rotationRange = seriesModel.get('rotationRange');\n var valueExtent = data.getDataExtent('value');\n\n var DEGREE_TO_RAD = Math.PI / 180;\n var gridSize = seriesModel.get('gridSize');\n wordCloudLayoutHelper(canvas, {\n list: data.mapArray('value', function (value, idx) {\n var itemModel = data.getItemModel(idx);\n return [\n data.getName(idx),\n itemModel.get('textStyle.normal.textSize', true)\n || echarts.number.linearMap(value, valueExtent, sizeRange),\n idx\n ];\n }).sort(function (a, b) {\n // Sort from large to small in case there is no more room for more words\n return b[1] - a[1];\n }),\n fontFamily: seriesModel.get('textStyle.normal.fontFamily')\n || seriesModel.get('textStyle.emphasis.fontFamily')\n || ecModel.get('textStyle.fontFamily'),\n fontWeight: seriesModel.get('textStyle.normal.fontWeight')\n || seriesModel.get('textStyle.emphasis.fontWeight')\n || ecModel.get('textStyle.fontWeight'),\n gridSize: gridSize,\n\n ellipticity: gridRect.height / gridRect.width,\n\n minRotation: rotationRange[0] * DEGREE_TO_RAD,\n maxRotation: rotationRange[1] * DEGREE_TO_RAD,\n\n clearCanvas: !maskImage,\n\n rotateRatio: 1,\n\n rotationStep: seriesModel.get('rotationStep') * DEGREE_TO_RAD,\n\n drawOutOfBound: seriesModel.get('drawOutOfBound'),\n\n shuffle: false,\n\n shape: seriesModel.get('shape')\n });\n\n function onWordCloudDrawn(e) {\n var item = e.detail.item;\n if (e.detail.drawn && seriesModel.layoutInstance.ondraw) {\n e.detail.drawn.gx += gridRect.x / gridSize;\n e.detail.drawn.gy += gridRect.y / gridSize;\n seriesModel.layoutInstance.ondraw(\n item[0], item[1], item[2], e.detail.drawn\n );\n }\n }\n\n canvas.addEventListener('wordclouddrawn', onWordCloudDrawn);\n\n if (seriesModel.layoutInstance) {\n // Dispose previous\n seriesModel.layoutInstance.dispose();\n }\n\n seriesModel.layoutInstance = {\n ondraw: null,\n\n dispose: function () {\n canvas.removeEventListener('wordclouddrawn', onWordCloudDrawn);\n // Abort\n canvas.addEventListener('wordclouddrawn', function (e) {\n // Prevent default to cancle the event and stop the loop\n e.preventDefault();\n });\n }\n };\n });\n});\n\necharts.registerPreprocessor(function (option) {\n var series = (option || {}).series;\n !echarts.util.isArray(series) && (series = series ? [series] : []);\n\n var compats = ['shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\n echarts.util.each(series, function (seriesItem) {\n if (seriesItem && seriesItem.type === 'wordCloud') {\n var textStyle = seriesItem.textStyle || {};\n\n compatTextStyle(textStyle.normal);\n compatTextStyle(textStyle.emphasis);\n }\n });\n\n function compatTextStyle(textStyle) {\n textStyle && echarts.util.each(compats, function (key) {\n if (textStyle.hasOwnProperty(key)) {\n textStyle['text' + echarts.format.capitalFirst(key)] = textStyle[key];\n }\n });\n }\n});\n","var completeDimensions = require('echarts/lib/data/helper/completeDimensions');\nvar echarts = require('echarts/lib/echarts');\n\necharts.extendSeriesModel({\n\n type: 'series.wordCloud',\n\n visualColorAccessPath: 'textStyle.normal.color',\n\n optionUpdated: function () {\n var option = this.option;\n option.gridSize = Math.max(Math.floor(option.gridSize), 4);\n },\n\n getInitialData: function (option, ecModel) {\n var dimensions = completeDimensions(['value'], option.data);\n var list = new echarts.List(dimensions, this);\n list.initData(option.data);\n return list;\n },\n\n // Most of options are from https://github.com/timdream/wordcloud2.js/blob/gh-pages/API.md\n defaultOption: {\n\n maskImage: null,\n\n // Shape can be 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star'\n shape: 'circle',\n\n left: 'center',\n\n top: 'center',\n\n width: '70%',\n\n height: '80%',\n\n sizeRange: [12, 60],\n\n rotationRange: [-90, 90],\n\n rotationStep: 45,\n\n gridSize: 8,\n\n drawOutOfBound: false,\n\n textStyle: {\n normal: {\n fontWeight: 'normal'\n }\n }\n }\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"display-view container\"},[_c('div',{staticClass:\"display-info \"},[_c('el-row',{attrs:{\"gutter\":24}},[_c('el-col',{attrs:{\"md\":17,\"sm\":24,\"xs\":24}},[_c('institution-card',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"display-author\",attrs:{\"name\":_vm.name}}),_c('div',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.isLoading),expression:\"isLoading\"}],staticClass:\"display-data\",attrs:{\"element-loading-text\":\"loading……\"}},[_c('institution-paper',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"paper\":_vm.paper}})],1)],1),_c('el-col',{staticClass:\"right\",attrs:{\"md\":7,\"sm\":24,\"xs\":24}},[_c('div',{staticClass:\"display-visual\"},[_c('p',{staticClass:\"up\"},[_vm._v(\"Bio-entities\"),_c('el-tooltip',{attrs:{\"effect\":\"dark\",\"content\":\"3 types of bio-entities ranked by frequency mentioned in papers published. The second column is the number of papers.\",\"placement\":\"top-start\"}},[_c('i',{staticClass:\"el-icon-question\"})])],1),_c('entityList',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"display-visual\",attrs:{\"entity\":_vm.entity}}),_c('wordcloud',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"wordcloud\":_vm.wordcloud}}),_c('bar',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],staticClass:\"down\",attrs:{\"bar\":_vm.bar}})],1),_c('co-author',{directives:[{name:\"loading\",rawName:\"v-loading\",value:(_vm.loading),expression:\"loading\"}],attrs:{\"coauthor\":_vm.coauthor,\"flag\":_vm.flag}})],1)],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"info-card\",attrs:{\"body-style\":{ padding: '0px' },\"shadow\":\"hover\"}},[_c('el-row',{attrs:{\"gutter\":24}},[_c('el-col',{attrs:{\"md\":24,\"lg\":6}},[_c('div',{staticClass:\"info-image\"},[_c('img',{attrs:{\"src\":require(\"./../../assets/img/institution.png\")}})])]),_c('el-col',{attrs:{\"md\":24,\"lg\":16}},[_c('div',{staticClass:\"info-text\"},[_c('div',{staticClass:\"info-item\"},[_c('span',{staticClass:\"info-item-title\",attrs:{\"id\":\"name\"}},[_vm._v(_vm._s(_vm.iname))])])])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institutionCard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institutionCard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./institutionCard.vue?vue&type=template&id=efa485be&scoped=true&xmlns%3Aimg=http%3A%2F%2Fwww.w3.org%2F1999%2Fhtml&\"\nimport script from \"./institutionCard.vue?vue&type=script&lang=js&\"\nexport * from \"./institutionCard.vue?vue&type=script&lang=js&\"\nimport style0 from \"./institutionCard.vue?vue&type=style&index=0&id=efa485be&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"efa485be\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-card',{staticClass:\"box-card\",attrs:{\"shadow\":\"hover\"}},[_c('div',{staticClass:\"wordcloud\",attrs:{\"id\":\"icloud\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wordcloud.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wordcloud.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./wordcloud.vue?vue&type=template&id=59fe0d7a&\"\nimport script from \"./wordcloud.vue?vue&type=script&lang=js&\"\nexport * from \"./wordcloud.vue?vue&type=script&lang=js&\"\nimport style0 from \"./wordcloud.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institution.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institution.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./institution.vue?vue&type=template&id=75aafeda&\"\nimport script from \"./institution.vue?vue&type=script&lang=js&\"\nexport * from \"./institution.vue?vue&type=script&lang=js&\"\nimport style0 from \"./institution.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","module.exports = __webpack_public_path__ + \"img/institution.56ae3b11.png\";","/*!\n * wordcloud2.js\n * http://timdream.org/wordcloud2.js/\n *\n * Copyright 2011 - 2013 Tim Chien\n * Released under the MIT license\n */\n\n'use strict';\n\n// setImmediate\nif (!window.setImmediate) {\n window.setImmediate = (function setupSetImmediate() {\n return window.msSetImmediate ||\n window.webkitSetImmediate ||\n window.mozSetImmediate ||\n window.oSetImmediate ||\n (function setupSetZeroTimeout() {\n if (!window.postMessage || !window.addEventListener) {\n return null;\n }\n\n var callbacks = [undefined];\n var message = 'zero-timeout-message';\n\n // Like setTimeout, but only takes a function argument. There's\n // no time argument (always zero) and no arguments (you have to\n // use a closure).\n var setZeroTimeout = function setZeroTimeout(callback) {\n var id = callbacks.length;\n callbacks.push(callback);\n window.postMessage(message + id.toString(36), '*');\n\n return id;\n };\n\n window.addEventListener('message', function setZeroTimeoutMessage(evt) {\n // Skipping checking event source, retarded IE confused this window\n // object with another in the presence of iframe\n if (typeof evt.data !== 'string' ||\n evt.data.substr(0, message.length) !== message/* ||\n evt.source !== window */) {\n return;\n }\n\n evt.stopImmediatePropagation();\n\n var id = parseInt(evt.data.substr(message.length), 36);\n if (!callbacks[id]) {\n return;\n }\n\n callbacks[id]();\n callbacks[id] = undefined;\n }, true);\n\n /* specify clearImmediate() here since we need the scope */\n window.clearImmediate = function clearZeroTimeout(id) {\n if (!callbacks[id]) {\n return;\n }\n\n callbacks[id] = undefined;\n };\n\n return setZeroTimeout;\n })() ||\n // fallback\n function setImmediateFallback(fn) {\n window.setTimeout(fn, 0);\n };\n })();\n}\n\nif (!window.clearImmediate) {\n window.clearImmediate = (function setupClearImmediate() {\n return window.msClearImmediate ||\n window.webkitClearImmediate ||\n window.mozClearImmediate ||\n window.oClearImmediate ||\n // \"clearZeroTimeout\" is implement on the previous block ||\n // fallback\n function clearImmediateFallback(timer) {\n window.clearTimeout(timer);\n };\n })();\n}\n\n(function(global) {\n\n // Check if WordCloud can run on this browser\n var isSupported = (function isSupported() {\n var canvas = document.createElement('canvas');\n if (!canvas || !canvas.getContext) {\n return false;\n }\n\n var ctx = canvas.getContext('2d');\n if (!ctx.getImageData) {\n return false;\n }\n if (!ctx.fillText) {\n return false;\n }\n\n if (!Array.prototype.some) {\n return false;\n }\n if (!Array.prototype.push) {\n return false;\n }\n\n return true;\n }());\n\n // Find out if the browser impose minium font size by\n // drawing small texts on a canvas and measure it's width.\n var minFontSize = (function getMinFontSize() {\n if (!isSupported) {\n return;\n }\n\n var ctx = document.createElement('canvas').getContext('2d');\n\n // start from 20\n var size = 20;\n\n // two sizes to measure\n var hanWidth, mWidth;\n\n while (size) {\n ctx.font = size.toString(10) + 'px sans-serif';\n if ((ctx.measureText('\\uFF37').width === hanWidth) &&\n (ctx.measureText('m').width) === mWidth) {\n return (size + 1);\n }\n\n hanWidth = ctx.measureText('\\uFF37').width;\n mWidth = ctx.measureText('m').width;\n\n size--;\n }\n\n return 0;\n })();\n\n // Based on http://jsfromhell.com/array/shuffle\n var shuffleArray = function shuffleArray(arr) {\n for (var j, x, i = arr.length; i;\n j = Math.floor(Math.random() * i),\n x = arr[--i], arr[i] = arr[j],\n arr[j] = x) {}\n return arr;\n };\n\n var WordCloud = function WordCloud(elements, options) {\n if (!isSupported) {\n return;\n }\n\n if (!Array.isArray(elements)) {\n elements = [elements];\n }\n\n elements.forEach(function(el, i) {\n if (typeof el === 'string') {\n elements[i] = document.getElementById(el);\n if (!elements[i]) {\n throw 'The element id specified is not found.';\n }\n } else if (!el.tagName && !el.appendChild) {\n throw 'You must pass valid HTML elements, or ID of the element.';\n }\n });\n\n /* Default values to be overwritten by options object */\n var settings = {\n list: [],\n fontFamily: '\"Trebuchet MS\", \"Heiti TC\", \"微軟正黑體\", ' +\n '\"Arial Unicode MS\", \"Droid Fallback Sans\", sans-serif',\n fontWeight: 'normal',\n color: 'random-dark',\n minSize: 0, // 0 to disable\n weightFactor: 1,\n clearCanvas: true,\n backgroundColor: '#fff', // opaque white = rgba(255, 255, 255, 1)\n\n gridSize: 8,\n drawOutOfBound: false,\n origin: null,\n\n drawMask: false,\n maskColor: 'rgba(255,0,0,0.3)',\n maskGapWidth: 0.3,\n\n wait: 0,\n abortThreshold: 0, // disabled\n abort: function noop() {},\n\n minRotation: - Math.PI / 2,\n maxRotation: Math.PI / 2,\n rotationStep: 0.1,\n\n shuffle: true,\n rotateRatio: 0.1,\n\n shape: 'circle',\n ellipticity: 0.65,\n\n classes: null,\n\n hover: null,\n click: null\n };\n\n if (options) {\n for (var key in options) {\n if (key in settings) {\n settings[key] = options[key];\n }\n }\n }\n\n /* Convert weightFactor into a function */\n if (typeof settings.weightFactor !== 'function') {\n var factor = settings.weightFactor;\n settings.weightFactor = function weightFactor(pt) {\n return pt * factor; //in px\n };\n }\n\n /* Convert shape into a function */\n if (typeof settings.shape !== 'function') {\n switch (settings.shape) {\n case 'circle':\n /* falls through */\n default:\n // 'circle' is the default and a shortcut in the code loop.\n settings.shape = 'circle';\n break;\n\n case 'cardioid':\n settings.shape = function shapeCardioid(theta) {\n return 1 - Math.sin(theta);\n };\n break;\n\n /*\n To work out an X-gon, one has to calculate \"m\",\n where 1/(cos(2*PI/X)+m*sin(2*PI/X)) = 1/(cos(0)+m*sin(0))\n http://www.wolframalpha.com/input/?i=1%2F%28cos%282*PI%2FX%29%2Bm*sin%28\n 2*PI%2FX%29%29+%3D+1%2F%28cos%280%29%2Bm*sin%280%29%29\n Copy the solution into polar equation r = 1/(cos(t') + m*sin(t'))\n where t' equals to mod(t, 2PI/X);\n */\n\n case 'diamond':\n case 'square':\n // http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+\n // %28t%2C+PI%2F2%29%29%2Bsin%28mod+%28t%2C+PI%2F2%29%29%29%2C+t+%3D\n // +0+..+2*PI\n settings.shape = function shapeSquare(theta) {\n var thetaPrime = theta % (2 * Math.PI / 4);\n return 1 / (Math.cos(thetaPrime) + Math.sin(thetaPrime));\n };\n break;\n\n case 'triangle-forward':\n // http://www.wolframalpha.com/input/?i=plot+r+%3D+1%2F%28cos%28mod+\n // %28t%2C+2*PI%2F3%29%29%2Bsqrt%283%29sin%28mod+%28t%2C+2*PI%2F3%29\n // %29%29%2C+t+%3D+0+..+2*PI\n settings.shape = function shapeTriangle(theta) {\n var thetaPrime = theta % (2 * Math.PI / 3);\n return 1 / (Math.cos(thetaPrime) +\n Math.sqrt(3) * Math.sin(thetaPrime));\n };\n break;\n\n case 'triangle':\n case 'triangle-upright':\n settings.shape = function shapeTriangle(theta) {\n var thetaPrime = (theta + Math.PI * 3 / 2) % (2 * Math.PI / 3);\n return 1 / (Math.cos(thetaPrime) +\n Math.sqrt(3) * Math.sin(thetaPrime));\n };\n break;\n\n case 'pentagon':\n settings.shape = function shapePentagon(theta) {\n var thetaPrime = (theta + 0.955) % (2 * Math.PI / 5);\n return 1 / (Math.cos(thetaPrime) +\n 0.726543 * Math.sin(thetaPrime));\n };\n break;\n\n case 'star':\n settings.shape = function shapeStar(theta) {\n var thetaPrime = (theta + 0.955) % (2 * Math.PI / 10);\n if ((theta + 0.955) % (2 * Math.PI / 5) - (2 * Math.PI / 10) >= 0) {\n return 1 / (Math.cos((2 * Math.PI / 10) - thetaPrime) +\n 3.07768 * Math.sin((2 * Math.PI / 10) - thetaPrime));\n } else {\n return 1 / (Math.cos(thetaPrime) +\n 3.07768 * Math.sin(thetaPrime));\n }\n };\n break;\n }\n }\n\n /* Make sure gridSize is a whole number and is not smaller than 4px */\n settings.gridSize = Math.max(Math.floor(settings.gridSize), 4);\n\n /* shorthand */\n var g = settings.gridSize;\n var maskRectWidth = g - settings.maskGapWidth;\n\n /* normalize rotation settings */\n var rotationRange = Math.abs(settings.maxRotation - settings.minRotation);\n var minRotation = Math.min(settings.maxRotation, settings.minRotation);\n var rotationStep = settings.rotationStep;\n\n /* information/object available to all functions, set when start() */\n var grid, // 2d array containing filling information\n ngx, ngy, // width and height of the grid\n center, // position of the center of the cloud\n maxRadius;\n\n /* timestamp for measuring each putWord() action */\n var escapeTime;\n\n /* function for getting the color of the text */\n var getTextColor;\n function random_hsl_color(min, max) {\n return 'hsl(' +\n (Math.random() * 360).toFixed() + ',' +\n (Math.random() * 30 + 70).toFixed() + '%,' +\n (Math.random() * (max - min) + min).toFixed() + '%)';\n }\n switch (settings.color) {\n case 'random-dark':\n getTextColor = function getRandomDarkColor() {\n return random_hsl_color(10, 50);\n };\n break;\n\n case 'random-light':\n getTextColor = function getRandomLightColor() {\n return random_hsl_color(50, 90);\n };\n break;\n\n default:\n if (typeof settings.color === 'function') {\n getTextColor = settings.color;\n }\n break;\n }\n\n /* function for getting the classes of the text */\n var getTextClasses = null;\n if (typeof settings.classes === 'function') {\n getTextClasses = settings.classes;\n }\n\n /* Interactive */\n var interactive = false;\n var infoGrid = [];\n var hovered;\n\n var getInfoGridFromMouseTouchEvent =\n function getInfoGridFromMouseTouchEvent(evt) {\n var canvas = evt.currentTarget;\n var rect = canvas.getBoundingClientRect();\n var clientX;\n var clientY;\n /** Detect if touches are available */\n if (evt.touches) {\n clientX = evt.touches[0].clientX;\n clientY = evt.touches[0].clientY;\n } else {\n clientX = evt.clientX;\n clientY = evt.clientY;\n }\n var eventX = clientX - rect.left;\n var eventY = clientY - rect.top;\n\n var x = Math.floor(eventX * ((canvas.width / rect.width) || 1) / g);\n var y = Math.floor(eventY * ((canvas.height / rect.height) || 1) / g);\n\n return infoGrid[x][y];\n };\n\n var wordcloudhover = function wordcloudhover(evt) {\n var info = getInfoGridFromMouseTouchEvent(evt);\n\n if (hovered === info) {\n return;\n }\n\n hovered = info;\n if (!info) {\n settings.hover(undefined, undefined, evt);\n\n return;\n }\n\n settings.hover(info.item, info.dimension, evt);\n\n };\n\n var wordcloudclick = function wordcloudclick(evt) {\n var info = getInfoGridFromMouseTouchEvent(evt);\n if (!info) {\n return;\n }\n\n settings.click(info.item, info.dimension, evt);\n evt.preventDefault();\n };\n\n /* Get points on the grid for a given radius away from the center */\n var pointsAtRadius = [];\n var getPointsAtRadius = function getPointsAtRadius(radius) {\n if (pointsAtRadius[radius]) {\n return pointsAtRadius[radius];\n }\n\n // Look for these number of points on each radius\n var T = radius * 8;\n\n // Getting all the points at this radius\n var t = T;\n var points = [];\n\n if (radius === 0) {\n points.push([center[0], center[1], 0]);\n }\n\n while (t--) {\n // distort the radius to put the cloud in shape\n var rx = 1;\n if (settings.shape !== 'circle') {\n rx = settings.shape(t / T * 2 * Math.PI); // 0 to 1\n }\n\n // Push [x, y, t]; t is used solely for getTextColor()\n points.push([\n center[0] + radius * rx * Math.cos(-t / T * 2 * Math.PI),\n center[1] + radius * rx * Math.sin(-t / T * 2 * Math.PI) *\n settings.ellipticity,\n t / T * 2 * Math.PI]);\n }\n\n pointsAtRadius[radius] = points;\n return points;\n };\n\n /* Return true if we had spent too much time */\n var exceedTime = function exceedTime() {\n return ((settings.abortThreshold > 0) &&\n ((new Date()).getTime() - escapeTime > settings.abortThreshold));\n };\n\n /* Get the deg of rotation according to settings, and luck. */\n var getRotateDeg = function getRotateDeg() {\n if (settings.rotateRatio === 0) {\n return 0;\n }\n\n if (Math.random() > settings.rotateRatio) {\n return 0;\n }\n\n if (rotationRange === 0) {\n return minRotation;\n }\n\n return minRotation + Math.round(Math.random() * rotationRange / rotationStep) * rotationStep;\n };\n\n var getTextInfo = function getTextInfo(word, weight, rotateDeg) {\n // calculate the acutal font size\n // fontSize === 0 means weightFactor function wants the text skipped,\n // and size < minSize means we cannot draw the text.\n var debug = false;\n var fontSize = settings.weightFactor(weight);\n if (fontSize <= settings.minSize) {\n return false;\n }\n\n // Scale factor here is to make sure fillText is not limited by\n // the minium font size set by browser.\n // It will always be 1 or 2n.\n var mu = 1;\n if (fontSize < minFontSize) {\n mu = (function calculateScaleFactor() {\n var mu = 2;\n while (mu * fontSize < minFontSize) {\n mu += 2;\n }\n return mu;\n })();\n }\n\n var fcanvas = document.createElement('canvas');\n var fctx = fcanvas.getContext('2d', { willReadFrequently: true });\n\n fctx.font = settings.fontWeight + ' ' +\n (fontSize * mu).toString(10) + 'px ' + settings.fontFamily;\n\n // Estimate the dimension of the text with measureText().\n var fw = fctx.measureText(word).width / mu;\n var fh = Math.max(fontSize * mu,\n fctx.measureText('m').width,\n fctx.measureText('\\uFF37').width) / mu;\n\n // Create a boundary box that is larger than our estimates,\n // so text don't get cut of (it sill might)\n var boxWidth = fw + fh * 2;\n var boxHeight = fh * 3;\n var fgw = Math.ceil(boxWidth / g);\n var fgh = Math.ceil(boxHeight / g);\n boxWidth = fgw * g;\n boxHeight = fgh * g;\n\n // Calculate the proper offsets to make the text centered at\n // the preferred position.\n\n // This is simply half of the width.\n var fillTextOffsetX = - fw / 2;\n // Instead of moving the box to the exact middle of the preferred\n // position, for Y-offset we move 0.4 instead, so Latin alphabets look\n // vertical centered.\n var fillTextOffsetY = - fh * 0.4;\n\n // Calculate the actual dimension of the canvas, considering the rotation.\n var cgh = Math.ceil((boxWidth * Math.abs(Math.sin(rotateDeg)) +\n boxHeight * Math.abs(Math.cos(rotateDeg))) / g);\n var cgw = Math.ceil((boxWidth * Math.abs(Math.cos(rotateDeg)) +\n boxHeight * Math.abs(Math.sin(rotateDeg))) / g);\n var width = cgw * g;\n var height = cgh * g;\n\n fcanvas.setAttribute('width', width);\n fcanvas.setAttribute('height', height);\n\n if (debug) {\n // Attach fcanvas to the DOM\n document.body.appendChild(fcanvas);\n // Save it's state so that we could restore and draw the grid correctly.\n fctx.save();\n }\n\n // Scale the canvas with |mu|.\n fctx.scale(1 / mu, 1 / mu);\n fctx.translate(width * mu / 2, height * mu / 2);\n fctx.rotate(- rotateDeg);\n\n // Once the width/height is set, ctx info will be reset.\n // Set it again here.\n fctx.font = settings.fontWeight + ' ' +\n (fontSize * mu).toString(10) + 'px ' + settings.fontFamily;\n\n // Fill the text into the fcanvas.\n // XXX: We cannot because textBaseline = 'top' here because\n // Firefox and Chrome uses different default line-height for canvas.\n // Please read https://bugzil.la/737852#c6.\n // Here, we use textBaseline = 'middle' and draw the text at exactly\n // 0.5 * fontSize lower.\n fctx.fillStyle = '#000';\n fctx.textBaseline = 'middle';\n fctx.fillText(word, fillTextOffsetX * mu,\n (fillTextOffsetY + fontSize * 0.5) * mu);\n\n // Get the pixels of the text\n var imageData = fctx.getImageData(0, 0, width, height).data;\n\n if (exceedTime()) {\n return false;\n }\n\n if (debug) {\n // Draw the box of the original estimation\n fctx.strokeRect(fillTextOffsetX * mu,\n fillTextOffsetY, fw * mu, fh * mu);\n fctx.restore();\n }\n\n // Read the pixels and save the information to the occupied array\n var occupied = [];\n var gx = cgw, gy, x, y;\n var bounds = [cgh / 2, cgw / 2, cgh / 2, cgw / 2];\n while (gx--) {\n gy = cgh;\n while (gy--) {\n y = g;\n singleGridLoop: {\n while (y--) {\n x = g;\n while (x--) {\n if (imageData[((gy * g + y) * width +\n (gx * g + x)) * 4 + 3]) {\n occupied.push([gx, gy]);\n\n if (gx < bounds[3]) {\n bounds[3] = gx;\n }\n if (gx > bounds[1]) {\n bounds[1] = gx;\n }\n if (gy < bounds[0]) {\n bounds[0] = gy;\n }\n if (gy > bounds[2]) {\n bounds[2] = gy;\n }\n\n if (debug) {\n fctx.fillStyle = 'rgba(255, 0, 0, 0.5)';\n fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5);\n }\n break singleGridLoop;\n }\n }\n }\n if (debug) {\n fctx.fillStyle = 'rgba(0, 0, 255, 0.5)';\n fctx.fillRect(gx * g, gy * g, g - 0.5, g - 0.5);\n }\n }\n }\n }\n\n if (debug) {\n fctx.fillStyle = 'rgba(0, 255, 0, 0.5)';\n fctx.fillRect(bounds[3] * g,\n bounds[0] * g,\n (bounds[1] - bounds[3] + 1) * g,\n (bounds[2] - bounds[0] + 1) * g);\n }\n\n // Return information needed to create the text on the real canvas\n return {\n mu: mu,\n occupied: occupied,\n bounds: bounds,\n gw: cgw,\n gh: cgh,\n fillTextOffsetX: fillTextOffsetX,\n fillTextOffsetY: fillTextOffsetY,\n fillTextWidth: fw,\n fillTextHeight: fh,\n fontSize: fontSize\n };\n };\n\n /* Determine if there is room available in the given dimension */\n var canFitText = function canFitText(gx, gy, gw, gh, occupied) {\n // Go through the occupied points,\n // return false if the space is not available.\n var i = occupied.length;\n while (i--) {\n var px = gx + occupied[i][0];\n var py = gy + occupied[i][1];\n\n if (px >= ngx || py >= ngy || px < 0 || py < 0) {\n if (!settings.drawOutOfBound) {\n return false;\n }\n continue;\n }\n\n if (!grid[px][py]) {\n return false;\n }\n }\n return true;\n };\n\n /* Actually draw the text on the grid */\n var drawText = function drawText(gx, gy, info, word, weight,\n distance, theta, rotateDeg, attributes) {\n\n var fontSize = info.fontSize;\n var color;\n if (getTextColor) {\n color = getTextColor(word, weight, fontSize, distance, theta);\n } else {\n color = settings.color;\n }\n\n var classes;\n if (getTextClasses) {\n classes = getTextClasses(word, weight, fontSize, distance, theta);\n } else {\n classes = settings.classes;\n }\n\n var dimension;\n var bounds = info.bounds;\n dimension = {\n x: (gx + bounds[3]) * g,\n y: (gy + bounds[0]) * g,\n w: (bounds[1] - bounds[3] + 1) * g,\n h: (bounds[2] - bounds[0] + 1) * g\n };\n\n elements.forEach(function(el) {\n if (el.getContext) {\n var ctx = el.getContext('2d');\n var mu = info.mu;\n\n // Save the current state before messing it\n ctx.save();\n ctx.scale(1 / mu, 1 / mu);\n\n ctx.font = settings.fontWeight + ' ' +\n (fontSize * mu).toString(10) + 'px ' + settings.fontFamily;\n ctx.fillStyle = color;\n\n // Translate the canvas position to the origin coordinate of where\n // the text should be put.\n ctx.translate((gx + info.gw / 2) * g * mu,\n (gy + info.gh / 2) * g * mu);\n\n if (rotateDeg !== 0) {\n ctx.rotate(- rotateDeg);\n }\n\n // Finally, fill the text.\n\n // XXX: We cannot because textBaseline = 'top' here because\n // Firefox and Chrome uses different default line-height for canvas.\n // Please read https://bugzil.la/737852#c6.\n // Here, we use textBaseline = 'middle' and draw the text at exactly\n // 0.5 * fontSize lower.\n ctx.textBaseline = 'middle';\n ctx.fillText(word, info.fillTextOffsetX * mu,\n (info.fillTextOffsetY + fontSize * 0.5) * mu);\n\n // The below box is always matches how s are positioned\n /* ctx.strokeRect(info.fillTextOffsetX, info.fillTextOffsetY,\n info.fillTextWidth, info.fillTextHeight); */\n\n // Restore the state.\n ctx.restore();\n } else {\n // drawText on DIV element\n var span = document.createElement('span');\n var transformRule = '';\n transformRule = 'rotate(' + (- rotateDeg / Math.PI * 180) + 'deg) ';\n if (info.mu !== 1) {\n transformRule +=\n 'translateX(-' + (info.fillTextWidth / 4) + 'px) ' +\n 'scale(' + (1 / info.mu) + ')';\n }\n var styleRules = {\n 'position': 'absolute',\n 'display': 'block',\n 'font': settings.fontWeight + ' ' +\n (fontSize * info.mu) + 'px ' + settings.fontFamily,\n 'left': ((gx + info.gw / 2) * g + info.fillTextOffsetX) + 'px',\n 'top': ((gy + info.gh / 2) * g + info.fillTextOffsetY) + 'px',\n 'width': info.fillTextWidth + 'px',\n 'height': info.fillTextHeight + 'px',\n 'lineHeight': fontSize + 'px',\n 'whiteSpace': 'nowrap',\n 'transform': transformRule,\n 'webkitTransform': transformRule,\n 'msTransform': transformRule,\n 'transformOrigin': '50% 40%',\n 'webkitTransformOrigin': '50% 40%',\n 'msTransformOrigin': '50% 40%'\n };\n if (color) {\n styleRules.color = color;\n }\n span.textContent = word;\n for (var cssProp in styleRules) {\n span.style[cssProp] = styleRules[cssProp];\n }\n if (attributes) {\n for (var attribute in attributes) {\n span.setAttribute(attribute, attributes[attribute]);\n }\n }\n if (classes) {\n span.className += classes;\n }\n el.appendChild(span);\n }\n });\n };\n\n /* Help function to updateGrid */\n var fillGridAt = function fillGridAt(x, y, drawMask, dimension, item) {\n if (x >= ngx || y >= ngy || x < 0 || y < 0) {\n return;\n }\n\n grid[x][y] = false;\n\n if (drawMask) {\n var ctx = elements[0].getContext('2d');\n ctx.fillRect(x * g, y * g, maskRectWidth, maskRectWidth);\n }\n\n if (interactive) {\n infoGrid[x][y] = { item: item, dimension: dimension };\n }\n };\n\n /* Update the filling information of the given space with occupied points.\n Draw the mask on the canvas if necessary. */\n var updateGrid = function updateGrid(gx, gy, gw, gh, info, item) {\n var occupied = info.occupied;\n var drawMask = settings.drawMask;\n var ctx;\n if (drawMask) {\n ctx = elements[0].getContext('2d');\n ctx.save();\n ctx.fillStyle = settings.maskColor;\n }\n\n var dimension;\n if (interactive) {\n var bounds = info.bounds;\n dimension = {\n x: (gx + bounds[3]) * g,\n y: (gy + bounds[0]) * g,\n w: (bounds[1] - bounds[3] + 1) * g,\n h: (bounds[2] - bounds[0] + 1) * g\n };\n }\n\n var i = occupied.length;\n while (i--) {\n var px = gx + occupied[i][0];\n var py = gy + occupied[i][1];\n\n if (px >= ngx || py >= ngy || px < 0 || py < 0) {\n continue;\n }\n\n fillGridAt(px, py, drawMask, dimension, item);\n }\n\n if (drawMask) {\n ctx.restore();\n }\n };\n\n /* putWord() processes each item on the list,\n calculate it's size and determine it's position, and actually\n put it on the canvas. */\n var putWord = function putWord(item) {\n var word, weight, attributes;\n if (Array.isArray(item)) {\n word = item[0];\n weight = item[1];\n } else {\n word = item.word;\n weight = item.weight;\n attributes = item.attributes;\n }\n var rotateDeg = getRotateDeg();\n\n // get info needed to put the text onto the canvas\n var info = getTextInfo(word, weight, rotateDeg);\n\n // not getting the info means we shouldn't be drawing this one.\n if (!info) {\n return false;\n }\n\n if (exceedTime()) {\n return false;\n }\n\n // If drawOutOfBound is set to false,\n // skip the loop if we have already know the bounding box of\n // word is larger than the canvas.\n if (!settings.drawOutOfBound) {\n var bounds = info.bounds;\n if ((bounds[1] - bounds[3] + 1) > ngx ||\n (bounds[2] - bounds[0] + 1) > ngy) {\n return false;\n }\n }\n\n // Determine the position to put the text by\n // start looking for the nearest points\n var r = maxRadius + 1;\n\n var tryToPutWordAtPoint = function(gxy) {\n var gx = Math.floor(gxy[0] - info.gw / 2);\n var gy = Math.floor(gxy[1] - info.gh / 2);\n var gw = info.gw;\n var gh = info.gh;\n\n // If we cannot fit the text at this position, return false\n // and go to the next position.\n if (!canFitText(gx, gy, gw, gh, info.occupied)) {\n return false;\n }\n\n // Actually put the text on the canvas\n drawText(gx, gy, info, word, weight,\n (maxRadius - r), gxy[2], rotateDeg, attributes);\n\n // Mark the spaces on the grid as filled\n updateGrid(gx, gy, gw, gh, info, item);\n\n return {\n gx: gx,\n gy: gy,\n rot: rotateDeg,\n info: info\n };\n };\n\n while (r--) {\n var points = getPointsAtRadius(maxRadius - r);\n\n if (settings.shuffle) {\n points = [].concat(points);\n shuffleArray(points);\n }\n\n // Try to fit the words by looking at each point.\n // array.some() will stop and return true\n // when putWordAtPoint() returns true.\n for (var i = 0; i < points.length; i++) {\n var res = tryToPutWordAtPoint(points[i]);\n if (res) {\n return res;\n }\n }\n\n // var drawn = points.some(tryToPutWordAtPoint);\n // if (drawn) {\n // // leave putWord() and return true\n // return true;\n // }\n }\n // we tried all distances but text won't fit, return null\n return null;\n };\n\n /* Send DOM event to all elements. Will stop sending event and return\n if the previous one is canceled (for cancelable events). */\n var sendEvent = function sendEvent(type, cancelable, detail) {\n if (cancelable) {\n return !elements.some(function(el) {\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(type, true, cancelable, detail || {});\n return !el.dispatchEvent(evt);\n }, this);\n } else {\n elements.forEach(function(el) {\n var evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(type, true, cancelable, detail || {});\n el.dispatchEvent(evt);\n }, this);\n }\n };\n\n /* Start drawing on a canvas */\n var start = function start() {\n // For dimensions, clearCanvas etc.,\n // we only care about the first element.\n var canvas = elements[0];\n\n if (canvas.getContext) {\n ngx = Math.ceil(canvas.width / g);\n ngy = Math.ceil(canvas.height / g);\n } else {\n var rect = canvas.getBoundingClientRect();\n ngx = Math.ceil(rect.width / g);\n ngy = Math.ceil(rect.height / g);\n }\n\n // Sending a wordcloudstart event which cause the previous loop to stop.\n // Do nothing if the event is canceled.\n if (!sendEvent('wordcloudstart', true)) {\n return;\n }\n\n // Determine the center of the word cloud\n center = (settings.origin) ?\n [settings.origin[0]/g, settings.origin[1]/g] :\n [ngx / 2, ngy / 2];\n\n // Maxium radius to look for space\n maxRadius = Math.floor(Math.sqrt(ngx * ngx + ngy * ngy));\n\n /* Clear the canvas only if the clearCanvas is set,\n if not, update the grid to the current canvas state */\n grid = [];\n\n var gx, gy, i;\n if (!canvas.getContext || settings.clearCanvas) {\n elements.forEach(function(el) {\n if (el.getContext) {\n var ctx = el.getContext('2d');\n ctx.fillStyle = settings.backgroundColor;\n ctx.clearRect(0, 0, ngx * (g + 1), ngy * (g + 1));\n ctx.fillRect(0, 0, ngx * (g + 1), ngy * (g + 1));\n } else {\n el.textContent = '';\n el.style.backgroundColor = settings.backgroundColor;\n el.style.position = 'relative';\n }\n });\n\n /* fill the grid with empty state */\n gx = ngx;\n while (gx--) {\n grid[gx] = [];\n gy = ngy;\n while (gy--) {\n grid[gx][gy] = true;\n }\n }\n } else {\n /* Determine bgPixel by creating\n another canvas and fill the specified background color. */\n var bctx = document.createElement('canvas').getContext('2d');\n\n bctx.fillStyle = settings.backgroundColor;\n bctx.fillRect(0, 0, 1, 1);\n var bgPixel = bctx.getImageData(0, 0, 1, 1).data;\n\n /* Read back the pixels of the canvas we got to tell which part of the\n canvas is empty.\n (no clearCanvas only works with a canvas, not divs) */\n var imageData =\n canvas.getContext('2d').getImageData(0, 0, ngx * g, ngy * g).data;\n\n gx = ngx;\n var x, y;\n while (gx--) {\n grid[gx] = [];\n gy = ngy;\n while (gy--) {\n y = g;\n singleGridLoop: while (y--) {\n x = g;\n while (x--) {\n i = 4;\n while (i--) {\n if (imageData[((gy * g + y) * ngx * g +\n (gx * g + x)) * 4 + i] !== bgPixel[i]) {\n grid[gx][gy] = false;\n break singleGridLoop;\n }\n }\n }\n }\n if (grid[gx][gy] !== false) {\n grid[gx][gy] = true;\n }\n }\n }\n\n imageData = bctx = bgPixel = undefined;\n }\n\n // fill the infoGrid with empty state if we need it\n if (settings.hover || settings.click) {\n\n interactive = true;\n\n /* fill the grid with empty state */\n gx = ngx + 1;\n while (gx--) {\n infoGrid[gx] = [];\n }\n\n if (settings.hover) {\n canvas.addEventListener('mousemove', wordcloudhover);\n }\n\n if (settings.click) {\n canvas.addEventListener('click', wordcloudclick);\n canvas.addEventListener('touchstart', wordcloudclick);\n canvas.addEventListener('touchend', function (e) {\n e.preventDefault();\n });\n canvas.style.webkitTapHighlightColor = 'rgba(0, 0, 0, 0)';\n }\n\n canvas.addEventListener('wordcloudstart', function stopInteraction() {\n canvas.removeEventListener('wordcloudstart', stopInteraction);\n\n canvas.removeEventListener('mousemove', wordcloudhover);\n canvas.removeEventListener('click', wordcloudclick);\n hovered = undefined;\n });\n }\n\n i = 0;\n var loopingFunction, stoppingFunction;\n if (settings.wait !== 0) {\n loopingFunction = window.setTimeout;\n stoppingFunction = window.clearTimeout;\n } else {\n loopingFunction = window.setImmediate;\n stoppingFunction = window.clearImmediate;\n }\n\n var addEventListener = function addEventListener(type, listener) {\n elements.forEach(function(el) {\n el.addEventListener(type, listener);\n }, this);\n };\n\n var removeEventListener = function removeEventListener(type, listener) {\n elements.forEach(function(el) {\n el.removeEventListener(type, listener);\n }, this);\n };\n\n var anotherWordCloudStart = function anotherWordCloudStart() {\n removeEventListener('wordcloudstart', anotherWordCloudStart);\n stoppingFunction(timer);\n };\n\n addEventListener('wordcloudstart', anotherWordCloudStart);\n\n var timer = loopingFunction(function loop() {\n if (i >= settings.list.length) {\n stoppingFunction(timer);\n sendEvent('wordcloudstop', false);\n removeEventListener('wordcloudstart', anotherWordCloudStart);\n\n return;\n }\n escapeTime = (new Date()).getTime();\n var drawn = putWord(settings.list[i]);\n var canceled = !sendEvent('wordclouddrawn', true, {\n item: settings.list[i], drawn: drawn });\n if (exceedTime() || canceled) {\n stoppingFunction(timer);\n settings.abort();\n sendEvent('wordcloudabort', false);\n sendEvent('wordcloudstop', false);\n removeEventListener('wordcloudstart', anotherWordCloudStart);\n return;\n }\n i++;\n timer = loopingFunction(loop, settings.wait);\n }, settings.wait);\n };\n\n // All set, start the drawing\n start();\n };\n\n WordCloud.isSupported = isSupported;\n WordCloud.minFontSize = minFontSize;\n\n // Expose the library as an AMD module\n if (typeof define === 'function' && define.amd) {\n define('wordcloud', [], function() { return WordCloud; });\n } else if (typeof module !== 'undefined' && module.exports) {\n module.exports = WordCloud;\n } else {\n global.WordCloud = WordCloud;\n }\n\n})(this); //jshint ignore:line","module.exports = require('./src/wordCloud');","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institution.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institution.vue?vue&type=style&index=0&lang=css&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wordcloud.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wordcloud.vue?vue&type=style&index=0&lang=css&\"","var echarts = require('echarts/lib/echarts');\n\nfunction getShallow(model, path) {\n return model && model.getShallow(path);\n}\n\necharts.extendChartView({\n\n type: 'wordCloud',\n\n render: function (seriesModel, ecModel, api) {\n var group = this.group;\n group.removeAll();\n\n var data = seriesModel.getData();\n\n var gridSize = seriesModel.get('gridSize');\n\n seriesModel.layoutInstance.ondraw = function (text, size, dataIdx, drawn) {\n var itemModel = data.getItemModel(dataIdx);\n var textStyleModel = itemModel.getModel('textStyle.normal');\n var emphasisTextStyleModel = itemModel.getModel('textStyle.emphasis');\n\n var textEl = new echarts.graphic.Text({\n style: echarts.graphic.setTextStyle({}, textStyleModel, {\n x: drawn.info.fillTextOffsetX,\n y: drawn.info.fillTextOffsetY + size * 0.5,\n text: text,\n textBaseline: 'middle',\n textFill: data.getItemVisual(dataIdx, 'color'),\n fontSize: size\n }),\n scale: [1 / drawn.info.mu, 1 / drawn.info.mu],\n position: [\n (drawn.gx + drawn.info.gw / 2) * gridSize,\n (drawn.gy + drawn.info.gh / 2) * gridSize\n ],\n rotation: drawn.rot\n });\n\n group.add(textEl);\n\n data.setItemGraphicEl(dataIdx, textEl);\n\n echarts.graphic.setHoverStyle(\n textEl,\n echarts.graphic.setTextStyle({}, emphasisTextStyleModel, null, {forMerge: true}, true)\n );\n };\n\n this._model = seriesModel;\n },\n\n remove: function () {\n this.group.removeAll();\n\n this._model.layoutInstance.dispose();\n },\n\n dispose: function () {\n this._model.layoutInstance.dispose();\n }\n});\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institutionCard.vue?vue&type=style&index=0&id=efa485be&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./institutionCard.vue?vue&type=style&index=0&id=efa485be&scoped=true&lang=css&\""],"sourceRoot":""}