框架源码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3212 lines
101 KiB

4 years ago
  1. module.exports =
  2. /******/ (function(modules) { // webpackBootstrap
  3. /******/ // The module cache
  4. /******/ var installedModules = {};
  5. /******/
  6. /******/ // The require function
  7. /******/ function __webpack_require__(moduleId) {
  8. /******/
  9. /******/ // Check if module is in cache
  10. /******/ if(installedModules[moduleId]) {
  11. /******/ return installedModules[moduleId].exports;
  12. /******/ }
  13. /******/ // Create a new module (and put it into the cache)
  14. /******/ var module = installedModules[moduleId] = {
  15. /******/ i: moduleId,
  16. /******/ l: false,
  17. /******/ exports: {}
  18. /******/ };
  19. /******/
  20. /******/ // Execute the module function
  21. /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
  22. /******/
  23. /******/ // Flag the module as loaded
  24. /******/ module.l = true;
  25. /******/
  26. /******/ // Return the exports of the module
  27. /******/ return module.exports;
  28. /******/ }
  29. /******/
  30. /******/
  31. /******/ // expose the modules object (__webpack_modules__)
  32. /******/ __webpack_require__.m = modules;
  33. /******/
  34. /******/ // expose the module cache
  35. /******/ __webpack_require__.c = installedModules;
  36. /******/
  37. /******/ // define getter function for harmony exports
  38. /******/ __webpack_require__.d = function(exports, name, getter) {
  39. /******/ if(!__webpack_require__.o(exports, name)) {
  40. /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
  41. /******/ }
  42. /******/ };
  43. /******/
  44. /******/ // define __esModule on exports
  45. /******/ __webpack_require__.r = function(exports) {
  46. /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
  47. /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
  48. /******/ }
  49. /******/ Object.defineProperty(exports, '__esModule', { value: true });
  50. /******/ };
  51. /******/
  52. /******/ // create a fake namespace object
  53. /******/ // mode & 1: value is a module id, require it
  54. /******/ // mode & 2: merge all properties of value into the ns
  55. /******/ // mode & 4: return value when already ns object
  56. /******/ // mode & 8|1: behave like require
  57. /******/ __webpack_require__.t = function(value, mode) {
  58. /******/ if(mode & 1) value = __webpack_require__(value);
  59. /******/ if(mode & 8) return value;
  60. /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
  61. /******/ var ns = Object.create(null);
  62. /******/ __webpack_require__.r(ns);
  63. /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
  64. /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
  65. /******/ return ns;
  66. /******/ };
  67. /******/
  68. /******/ // getDefaultExport function for compatibility with non-harmony modules
  69. /******/ __webpack_require__.n = function(module) {
  70. /******/ var getter = module && module.__esModule ?
  71. /******/ function getDefault() { return module['default']; } :
  72. /******/ function getModuleExports() { return module; };
  73. /******/ __webpack_require__.d(getter, 'a', getter);
  74. /******/ return getter;
  75. /******/ };
  76. /******/
  77. /******/ // Object.prototype.hasOwnProperty.call
  78. /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
  79. /******/
  80. /******/ // __webpack_public_path__
  81. /******/ __webpack_require__.p = "/dist/";
  82. /******/
  83. /******/
  84. /******/ // Load entry module and return exports
  85. /******/ return __webpack_require__(__webpack_require__.s = 258);
  86. /******/ })
  87. /************************************************************************/
  88. /******/ ({
  89. /***/ 109:
  90. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  91. "use strict";
  92. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return bar; });
  93. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return histogram; });
  94. /* harmony import */ var main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
  95. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
  96. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  97. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(utils_lite__WEBPACK_IMPORTED_MODULE_2__);
  98. // default opacity of bar while dim-axis type is 'value'
  99. var VALUE_AXIS_OPACITY = 0.5;
  100. function getBarDimAxis(args) {
  101. var innerRows = args.innerRows,
  102. dimAxisName = args.dimAxisName,
  103. dimension = args.dimension,
  104. axisVisible = args.axisVisible,
  105. dimAxisType = args.dimAxisType,
  106. dims = args.dims;
  107. return dimension.map(function (item) {
  108. return {
  109. type: 'category',
  110. name: dimAxisName,
  111. nameLocation: 'middle',
  112. nameGap: 22,
  113. data: dimAxisType === 'value' ? getValueAxisData(dims) : innerRows.map(function (row) {
  114. return row[item];
  115. }),
  116. axisLabel: {
  117. formatter: function formatter(v) {
  118. return String(v);
  119. }
  120. },
  121. show: axisVisible,
  122. axisLine: {
  123. lineStyle: {
  124. color: '#FFF'
  125. }
  126. }
  127. };
  128. });
  129. }
  130. function getValueAxisData(dims) {
  131. var max = Math.max.apply(null, dims);
  132. var min = Math.min.apply(null, dims);
  133. var result = [];
  134. for (var i = min; i <= max; i++) {
  135. result.push(i);
  136. }
  137. return result;
  138. }
  139. function getBarMeaAxis(args) {
  140. var meaAxisName = args.meaAxisName,
  141. meaAxisType = args.meaAxisType,
  142. axisVisible = args.axisVisible,
  143. digit = args.digit,
  144. scale = args.scale,
  145. min = args.min,
  146. max = args.max;
  147. var meaAxisBase = {
  148. type: 'value',
  149. axisTick: {
  150. show: false
  151. },
  152. show: axisVisible,
  153. axisLine: {
  154. lineStyle: {
  155. color: '#FFF'
  156. }
  157. }
  158. };
  159. var meaAxis = [];
  160. var _loop = function _loop(i) {
  161. if (meaAxisType[i]) {
  162. meaAxis[i] = Object.assign({}, meaAxisBase, {
  163. axisLabel: {
  164. formatter: function formatter(val) {
  165. return Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(val, meaAxisType[i], digit);
  166. }
  167. }
  168. });
  169. } else {
  170. meaAxis[i] = Object.assign({}, meaAxisBase);
  171. }
  172. meaAxis[i].name = meaAxisName[i] || '';
  173. meaAxis[i].scale = scale[i] || false;
  174. meaAxis[i].min = min[i] || null;
  175. meaAxis[i].max = max[i] || null;
  176. };
  177. for (var i = 0; i < 2; i++) {
  178. _loop(i);
  179. }
  180. return meaAxis;
  181. }
  182. function getBarTooltip(args) {
  183. var axisSite = args.axisSite,
  184. isHistogram = args.isHistogram,
  185. meaAxisType = args.meaAxisType,
  186. digit = args.digit,
  187. labelMap = args.labelMap;
  188. var secondAxis = isHistogram ? axisSite.right || [] : axisSite.top || [];
  189. if (labelMap) {
  190. secondAxis = secondAxis.map(function (item) {
  191. return labelMap[item] === undefined ? item : labelMap[item];
  192. });
  193. }
  194. return {
  195. trigger: 'axis',
  196. formatter: function formatter(items) {
  197. var tpl = [];
  198. tpl.push(items[0].name + '<br>');
  199. items.forEach(function (item) {
  200. var seriesName = item.seriesName;
  201. var type = ~secondAxis.indexOf(seriesName) ? meaAxisType[1] : meaAxisType[0];
  202. tpl.push(Object(main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__[/* itemPoint */ "g"])(item.color));
  203. tpl.push(seriesName + ': ');
  204. tpl.push(Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(item.value, type, digit));
  205. tpl.push('<br>');
  206. });
  207. return tpl.join('');
  208. }
  209. };
  210. }
  211. function getValueData(seriesTemp, dims) {
  212. var max = Math.max.apply(null, dims);
  213. var min = Math.min.apply(null, dims);
  214. var result = [];
  215. for (var i = min; i <= max; i++) {
  216. var index = dims.indexOf(i);
  217. if (~index) {
  218. result.push(seriesTemp[index]);
  219. } else {
  220. result.push(null);
  221. }
  222. }
  223. return result;
  224. }
  225. function getBarSeries(args) {
  226. var innerRows = args.innerRows,
  227. metrics = args.metrics,
  228. stack = args.stack,
  229. axisSite = args.axisSite,
  230. isHistogram = args.isHistogram,
  231. labelMap = args.labelMap,
  232. itemStyle = args.itemStyle,
  233. label = args.label,
  234. _args$showLine = args.showLine,
  235. showLine = _args$showLine === undefined ? [] : _args$showLine,
  236. dimAxisType = args.dimAxisType,
  237. barGap = args.barGap,
  238. opacity = args.opacity,
  239. dims = args.dims;
  240. var series = [];
  241. var seriesTemp = {};
  242. var secondAxis = isHistogram ? axisSite.right || [] : axisSite.top || [];
  243. var secondDimAxisIndex = isHistogram ? 'yAxisIndex' : 'xAxisIndex';
  244. var stackMap = stack && Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getStackMap */ "e"])(stack);
  245. metrics.forEach(function (item) {
  246. seriesTemp[item] = [];
  247. });
  248. innerRows.forEach(function (row) {
  249. metrics.forEach(function (item) {
  250. seriesTemp[item].push(row[item]);
  251. });
  252. });
  253. series = Object.keys(seriesTemp).map(function (item, index) {
  254. var _seriesItem;
  255. var data = dimAxisType === 'value' ? getValueData(seriesTemp[item], dims) : seriesTemp[item];
  256. var seriesItem = (_seriesItem = {
  257. name: labelMap[item] != null ? labelMap[item] : item,
  258. type: ~showLine.indexOf(item) ? 'line' : 'bar',
  259. data: data
  260. }, _seriesItem[secondDimAxisIndex] = ~secondAxis.indexOf(item) ? '1' : '0', _seriesItem);
  261. if (stack && stackMap[item]) seriesItem.stack = stackMap[item];
  262. if (label) seriesItem.label = label;
  263. if (itemStyle) seriesItem.itemStyle = itemStyle;
  264. var itemOpacity = opacity || Object(utils_lite__WEBPACK_IMPORTED_MODULE_2__["get"])(seriesItem, 'itemStyle.normal.opacity');
  265. if (dimAxisType === 'value') {
  266. seriesItem.barGap = barGap;
  267. seriesItem.barCategoryGap = '1%';
  268. if (itemOpacity == null) itemOpacity = VALUE_AXIS_OPACITY;
  269. }
  270. if (itemOpacity != null) {
  271. Object(utils_lite__WEBPACK_IMPORTED_MODULE_2__["set"])(seriesItem, 'itemStyle.normal.opacity', itemOpacity);
  272. }
  273. return seriesItem;
  274. });
  275. return series.length ? series : false;
  276. }
  277. function getLegend(args) {
  278. var metrics = args.metrics,
  279. labelMap = args.labelMap,
  280. legendName = args.legendName;
  281. if (!legendName && !labelMap) return { data: metrics };
  282. var data = labelMap ? metrics.map(function (item) {
  283. return labelMap[item] == null ? item : labelMap[item];
  284. }) : metrics;
  285. return {
  286. data: data,
  287. formatter: function formatter(name) {
  288. return legendName[name] != null ? legendName[name] : name;
  289. }
  290. };
  291. }
  292. function getDims(rows, dimension) {
  293. return rows.map(function (row) {
  294. return row[dimension[0]];
  295. });
  296. }
  297. var bar = function bar(columns, rows, settings, extra) {
  298. var innerRows = Object(utils_lite__WEBPACK_IMPORTED_MODULE_2__["cloneDeep"])(rows);
  299. var _settings$axisSite = settings.axisSite,
  300. axisSite = _settings$axisSite === undefined ? {} : _settings$axisSite,
  301. _settings$dimension = settings.dimension,
  302. dimension = _settings$dimension === undefined ? [columns[0]] : _settings$dimension,
  303. _settings$stack = settings.stack,
  304. stack = _settings$stack === undefined ? {} : _settings$stack,
  305. _settings$axisVisible = settings.axisVisible,
  306. axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,
  307. _settings$digit = settings.digit,
  308. digit = _settings$digit === undefined ? 2 : _settings$digit,
  309. _settings$dataOrder = settings.dataOrder,
  310. dataOrder = _settings$dataOrder === undefined ? false : _settings$dataOrder,
  311. _settings$scale = settings.scale,
  312. scale = _settings$scale === undefined ? [false, false] : _settings$scale,
  313. _settings$min = settings.min,
  314. min = _settings$min === undefined ? [null, null] : _settings$min,
  315. _settings$max = settings.max,
  316. max = _settings$max === undefined ? [null, null] : _settings$max,
  317. _settings$legendName = settings.legendName,
  318. legendName = _settings$legendName === undefined ? {} : _settings$legendName,
  319. _settings$labelMap = settings.labelMap,
  320. labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,
  321. label = settings.label,
  322. itemStyle = settings.itemStyle,
  323. showLine = settings.showLine,
  324. _settings$barGap = settings.barGap,
  325. barGap = _settings$barGap === undefined ? '-100%' : _settings$barGap,
  326. opacity = settings.opacity;
  327. var tooltipVisible = extra.tooltipVisible,
  328. legendVisible = extra.legendVisible;
  329. var metrics = columns.slice();
  330. if (axisSite.top && axisSite.bottom) {
  331. metrics = axisSite.top.concat(axisSite.bottom);
  332. } else if (axisSite.bottom && !axisSite.right) {
  333. metrics = axisSite.bottom;
  334. } else if (settings.metrics) {
  335. metrics = settings.metrics;
  336. } else {
  337. metrics.splice(columns.indexOf(dimension[0]), 1);
  338. }
  339. var meaAxisType = settings.xAxisType || ['normal', 'normal'];
  340. var dimAxisType = settings.yAxisType || 'category';
  341. var meaAxisName = settings.xAxisName || [];
  342. var dimAxisName = settings.yAxisName || '';
  343. var isHistogram = false;
  344. if (dataOrder) {
  345. var _label = dataOrder.label,
  346. order = dataOrder.order;
  347. if (!_label || !order) {
  348. console.warn('Need to provide name and order parameters');
  349. } else {
  350. innerRows.sort(function (a, b) {
  351. if (order === 'desc') {
  352. return a[_label] - b[_label];
  353. } else {
  354. return b[_label] - a[_label];
  355. }
  356. });
  357. }
  358. }
  359. var dims = getDims(innerRows, dimension);
  360. var legend = legendVisible && getLegend({ metrics: metrics, labelMap: labelMap, legendName: legendName });
  361. var yAxis = getBarDimAxis({
  362. innerRows: innerRows,
  363. dimAxisName: dimAxisName,
  364. dimension: dimension,
  365. axisVisible: axisVisible,
  366. dimAxisType: dimAxisType,
  367. dims: dims
  368. });
  369. var xAxis = getBarMeaAxis({
  370. meaAxisName: meaAxisName,
  371. meaAxisType: meaAxisType,
  372. axisVisible: axisVisible,
  373. digit: digit,
  374. scale: scale,
  375. min: min,
  376. max: max
  377. });
  378. var series = getBarSeries({
  379. innerRows: innerRows,
  380. metrics: metrics,
  381. stack: stack,
  382. axisSite: axisSite,
  383. isHistogram: isHistogram,
  384. labelMap: labelMap,
  385. itemStyle: itemStyle,
  386. label: label,
  387. showLine: showLine,
  388. dimAxisType: dimAxisType,
  389. dimension: dimension,
  390. barGap: barGap,
  391. opacity: opacity,
  392. dims: dims
  393. });
  394. var tooltipParams = { axisSite: axisSite, isHistogram: isHistogram, meaAxisType: meaAxisType, digit: digit, labelMap: labelMap };
  395. var tooltip = tooltipVisible && getBarTooltip(tooltipParams);
  396. var options = { legend: legend, yAxis: yAxis, series: series, xAxis: xAxis, tooltip: tooltip };
  397. return options;
  398. };
  399. var histogram = function histogram(columns, rows, settings, status) {
  400. var innerRows = Object(utils_lite__WEBPACK_IMPORTED_MODULE_2__["cloneDeep"])(rows);
  401. var _settings$axisSite2 = settings.axisSite,
  402. axisSite = _settings$axisSite2 === undefined ? {} : _settings$axisSite2,
  403. _settings$dimension2 = settings.dimension,
  404. dimension = _settings$dimension2 === undefined ? [columns[0]] : _settings$dimension2,
  405. _settings$stack2 = settings.stack,
  406. stack = _settings$stack2 === undefined ? {} : _settings$stack2,
  407. _settings$axisVisible2 = settings.axisVisible,
  408. axisVisible = _settings$axisVisible2 === undefined ? true : _settings$axisVisible2,
  409. _settings$digit2 = settings.digit,
  410. digit = _settings$digit2 === undefined ? 2 : _settings$digit2,
  411. _settings$dataOrder2 = settings.dataOrder,
  412. dataOrder = _settings$dataOrder2 === undefined ? false : _settings$dataOrder2,
  413. _settings$scale2 = settings.scale,
  414. scale = _settings$scale2 === undefined ? [false, false] : _settings$scale2,
  415. _settings$min2 = settings.min,
  416. min = _settings$min2 === undefined ? [null, null] : _settings$min2,
  417. _settings$max2 = settings.max,
  418. max = _settings$max2 === undefined ? [null, null] : _settings$max2,
  419. _settings$labelMap2 = settings.labelMap,
  420. labelMap = _settings$labelMap2 === undefined ? {} : _settings$labelMap2,
  421. _settings$legendName2 = settings.legendName,
  422. legendName = _settings$legendName2 === undefined ? {} : _settings$legendName2,
  423. label = settings.label,
  424. itemStyle = settings.itemStyle,
  425. showLine = settings.showLine,
  426. _settings$barGap2 = settings.barGap,
  427. barGap = _settings$barGap2 === undefined ? '-100%' : _settings$barGap2,
  428. opacity = settings.opacity;
  429. if (dataOrder) {
  430. var _label2 = dataOrder.label,
  431. order = dataOrder.order;
  432. if (!_label2 || !order) {
  433. console.warn('Need to provide name and order parameters');
  434. } else {
  435. innerRows.sort(function (a, b) {
  436. if (order === 'desc') {
  437. return a[_label2] - b[_label2];
  438. } else {
  439. return b[_label2] - a[_label2];
  440. }
  441. });
  442. }
  443. }
  444. var tooltipVisible = status.tooltipVisible,
  445. legendVisible = status.legendVisible;
  446. var metrics = columns.slice();
  447. if (axisSite.left && axisSite.right) {
  448. metrics = axisSite.left.concat(axisSite.right);
  449. } else if (axisSite.left && !axisSite.right) {
  450. metrics = axisSite.left;
  451. } else if (settings.metrics) {
  452. metrics = settings.metrics;
  453. } else {
  454. metrics.splice(columns.indexOf(dimension[0]), 1);
  455. }
  456. var meaAxisType = settings.yAxisType || ['normal', 'normal'];
  457. var dimAxisType = settings.xAxisType || 'category';
  458. var meaAxisName = settings.yAxisName || [];
  459. var dimAxisName = settings.xAxisName || '';
  460. var isHistogram = true;
  461. var dims = getDims(innerRows, dimension);
  462. var legend = legendVisible && getLegend({ metrics: metrics, labelMap: labelMap, legendName: legendName });
  463. var xAxis = getBarDimAxis({
  464. innerRows: innerRows,
  465. dimAxisName: dimAxisName,
  466. dimension: dimension,
  467. axisVisible: axisVisible,
  468. dimAxisType: dimAxisType,
  469. dims: dims
  470. });
  471. var yAxis = getBarMeaAxis({
  472. meaAxisName: meaAxisName,
  473. meaAxisType: meaAxisType,
  474. axisVisible: axisVisible,
  475. digit: digit,
  476. scale: scale,
  477. min: min,
  478. max: max
  479. });
  480. var series = getBarSeries({
  481. innerRows: innerRows,
  482. metrics: metrics,
  483. stack: stack,
  484. axisSite: axisSite,
  485. isHistogram: isHistogram,
  486. labelMap: labelMap,
  487. itemStyle: itemStyle,
  488. label: label,
  489. showLine: showLine,
  490. dimAxisType: dimAxisType,
  491. dimension: dimension,
  492. barGap: barGap,
  493. opacity: opacity,
  494. dims: dims
  495. });
  496. var tooltipParams = { axisSite: axisSite, isHistogram: isHistogram, meaAxisType: meaAxisType, digit: digit, labelMap: labelMap };
  497. var tooltip = tooltipVisible && getBarTooltip(tooltipParams);
  498. var options = { legend: legend, yAxis: yAxis, series: series, xAxis: xAxis, tooltip: tooltip };
  499. return options;
  500. };
  501. /***/ }),
  502. /***/ 110:
  503. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  504. "use strict";
  505. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pie; });
  506. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ring; });
  507. /* harmony import */ var main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
  508. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
  509. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3);
  510. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(utils_lite__WEBPACK_IMPORTED_MODULE_2__);
  511. var pieRadius = 100;
  512. var ringRadius = [80, 100];
  513. var roseRingRadius = [20, 100];
  514. var pieOffsetY = 200;
  515. function getPieSeries(args) {
  516. var innerRows = args.innerRows,
  517. dataType = args.dataType,
  518. percentShow = args.percentShow,
  519. dimension = args.dimension,
  520. metrics = args.metrics,
  521. radius = args.radius,
  522. offsetY = args.offsetY,
  523. selectedMode = args.selectedMode,
  524. hoverAnimation = args.hoverAnimation,
  525. digit = args.digit,
  526. roseType = args.roseType,
  527. label = args.label,
  528. level = args.level,
  529. limitShowNum = args.limitShowNum,
  530. isRing = args.isRing,
  531. labelLine = args.labelLine,
  532. itemStyle = args.itemStyle;
  533. var series = [];
  534. var levelTemp = {};
  535. var rowsTemp = [];
  536. if (level) {
  537. level.forEach(function (levelItems, index) {
  538. levelItems.forEach(function (item) {
  539. Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* setArrayValue */ "f"])(levelTemp, item, index);
  540. });
  541. });
  542. innerRows.forEach(function (row) {
  543. var itemLevel = levelTemp[row[dimension]];
  544. if (itemLevel && itemLevel.length) {
  545. itemLevel.forEach(function (levelItem) {
  546. Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* setArrayValue */ "f"])(rowsTemp, levelItem, row);
  547. });
  548. }
  549. });
  550. } else {
  551. rowsTemp.push(innerRows);
  552. }
  553. var seriesBase = {
  554. type: 'pie',
  555. selectedMode: selectedMode,
  556. hoverAnimation: hoverAnimation,
  557. roseType: roseType,
  558. center: ['50%', offsetY]
  559. };
  560. var rowsTempLength = rowsTemp.length;
  561. rowsTemp.forEach(function (dataRows, index) {
  562. var seriesItem = Object.assign({ data: [] }, seriesBase);
  563. var centerWidth = radius / rowsTempLength;
  564. if (!index) {
  565. seriesItem.radius = isRing ? radius : centerWidth;
  566. } else {
  567. var outerWidth = centerWidth + radius / (2 * rowsTempLength) * (2 * index - 1);
  568. var innerWidth = outerWidth + radius / (2 * rowsTempLength);
  569. seriesItem.radius = [outerWidth, innerWidth];
  570. }
  571. if (rowsTempLength > 1 && index === 0) {
  572. seriesItem.label = {
  573. normal: { position: 'inner' }
  574. };
  575. }
  576. if (label) seriesItem.label = label;
  577. if (labelLine) seriesItem.labelLine = labelLine;
  578. if (itemStyle) seriesItem.itemStyle = itemStyle;
  579. if (percentShow) {
  580. seriesItem.label = {
  581. normal: {
  582. show: true,
  583. position: rowsTempLength > 1 && index === 0 ? 'inner' : 'outside',
  584. formatter: function formatter(item) {
  585. var tpl = [];
  586. tpl.push(item.name + ':');
  587. tpl.push(Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(item.value, dataType, digit));
  588. tpl.push('(' + item.percent + '%)');
  589. return tpl.join(' ');
  590. }
  591. }
  592. };
  593. }
  594. seriesItem.data = dataRows.map(function (row) {
  595. return {
  596. name: row[dimension],
  597. value: row[metrics]
  598. };
  599. });
  600. series.push(seriesItem);
  601. });
  602. if (limitShowNum && limitShowNum < series[0].data.length) {
  603. var firstData = series[0].data;
  604. var remainArr = firstData.slice(limitShowNum, firstData.length);
  605. var sum = 0;
  606. remainArr.forEach(function (item) {
  607. sum += item.value;
  608. });
  609. series[0].data = firstData.slice(0, limitShowNum);
  610. series[0].data.push({ name: '其他', value: sum });
  611. }
  612. return series;
  613. }
  614. function getPieLegend(args) {
  615. var innerRows = args.innerRows,
  616. dimension = args.dimension,
  617. legendLimit = args.legendLimit,
  618. legendName = args.legendName,
  619. level = args.level,
  620. limitShowNum = args.limitShowNum;
  621. var legend = [];
  622. var levelTemp = [];
  623. if (level) {
  624. level.forEach(function (levelItem) {
  625. levelItem.forEach(function (item) {
  626. levelTemp.push(item);
  627. });
  628. });
  629. legend = levelTemp;
  630. } else if (limitShowNum && limitShowNum < innerRows.length) {
  631. for (var i = 0; i < limitShowNum; i++) {
  632. legend.push(innerRows[i][dimension]);
  633. }
  634. legend.push('其他');
  635. } else {
  636. legend = innerRows.map(function (row) {
  637. return row[dimension];
  638. });
  639. }
  640. if (legend.length) {
  641. return {
  642. data: legend,
  643. show: legend.length < legendLimit,
  644. formatter: function formatter(name) {
  645. return legendName[name] != null ? legendName[name] : name;
  646. }
  647. };
  648. } else {
  649. return false;
  650. }
  651. }
  652. function getPieTooltip(args) {
  653. var dataType = args.dataType,
  654. innerRows = args.innerRows,
  655. limitShowNum = args.limitShowNum,
  656. digit = args.digit,
  657. metrics = args.metrics,
  658. dimension = args.dimension;
  659. var sum = 0;
  660. var remainArr = innerRows.map(function (row) {
  661. sum += row[metrics];
  662. return {
  663. name: row[dimension],
  664. value: row[metrics]
  665. };
  666. }).slice(limitShowNum, innerRows.length);
  667. return {
  668. formatter: function formatter(item) {
  669. var tpl = [];
  670. tpl.push(Object(main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__[/* itemPoint */ "g"])(item.color));
  671. if (limitShowNum && item.name === '其他') {
  672. tpl.push('其他:');
  673. remainArr.forEach(function (_ref) {
  674. var name = _ref.name,
  675. value = _ref.value;
  676. var percent = Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(value / sum, 'percent');
  677. tpl.push('<br>' + name + ':');
  678. tpl.push(Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(value, dataType, digit));
  679. tpl.push('(' + percent + ')');
  680. });
  681. } else {
  682. tpl.push(item.name + ':');
  683. tpl.push(Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(item.value, dataType, digit));
  684. tpl.push('(' + item.percent + '%)');
  685. }
  686. return tpl.join(' ');
  687. }
  688. };
  689. }
  690. var pie = function pie(columns, rows, settings, extra, isRing) {
  691. var innerRows = Object(utils_lite__WEBPACK_IMPORTED_MODULE_2__["cloneDeep"])(rows);
  692. var _settings$dataType = settings.dataType,
  693. dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,
  694. percentShow = settings.percentShow,
  695. _settings$dimension = settings.dimension,
  696. dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
  697. _settings$metrics = settings.metrics,
  698. metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,
  699. _settings$roseType = settings.roseType,
  700. roseType = _settings$roseType === undefined ? false : _settings$roseType,
  701. _settings$radius = settings.radius,
  702. radius = _settings$radius === undefined ? isRing ? roseType ? roseRingRadius : ringRadius : pieRadius : _settings$radius,
  703. _settings$offsetY = settings.offsetY,
  704. offsetY = _settings$offsetY === undefined ? pieOffsetY : _settings$offsetY,
  705. _settings$legendLimit = settings.legendLimit,
  706. legendLimit = _settings$legendLimit === undefined ? 30 : _settings$legendLimit,
  707. _settings$selectedMod = settings.selectedMode,
  708. selectedMode = _settings$selectedMod === undefined ? false : _settings$selectedMod,
  709. _settings$hoverAnimat = settings.hoverAnimation,
  710. hoverAnimation = _settings$hoverAnimat === undefined ? true : _settings$hoverAnimat,
  711. _settings$digit = settings.digit,
  712. digit = _settings$digit === undefined ? 2 : _settings$digit,
  713. _settings$legendName = settings.legendName,
  714. legendName = _settings$legendName === undefined ? {} : _settings$legendName,
  715. _settings$label = settings.label,
  716. label = _settings$label === undefined ? false : _settings$label,
  717. _settings$level = settings.level,
  718. level = _settings$level === undefined ? false : _settings$level,
  719. _settings$limitShowNu = settings.limitShowNum,
  720. limitShowNum = _settings$limitShowNu === undefined ? 0 : _settings$limitShowNu,
  721. labelLine = settings.labelLine,
  722. itemStyle = settings.itemStyle;
  723. var tooltipVisible = extra.tooltipVisible,
  724. legendVisible = extra.legendVisible;
  725. if (limitShowNum) innerRows.sort(function (a, b) {
  726. return b[metrics] - a[metrics];
  727. });
  728. var seriesParams = {
  729. innerRows: innerRows,
  730. dataType: dataType,
  731. percentShow: percentShow,
  732. dimension: dimension,
  733. metrics: metrics,
  734. radius: radius,
  735. offsetY: offsetY,
  736. selectedMode: selectedMode,
  737. hoverAnimation: hoverAnimation,
  738. digit: digit,
  739. roseType: roseType,
  740. label: label,
  741. level: level,
  742. legendName: legendName,
  743. limitShowNum: limitShowNum,
  744. isRing: isRing,
  745. labelLine: labelLine,
  746. itemStyle: itemStyle
  747. };
  748. var series = getPieSeries(seriesParams);
  749. var legendParams = {
  750. innerRows: innerRows,
  751. dimension: dimension,
  752. legendLimit: legendLimit,
  753. legendName: legendName,
  754. level: level,
  755. limitShowNum: limitShowNum
  756. };
  757. var legend = legendVisible && getPieLegend(legendParams);
  758. var tooltip = tooltipVisible && getPieTooltip({
  759. dataType: dataType,
  760. innerRows: innerRows,
  761. limitShowNum: limitShowNum,
  762. digit: digit,
  763. metrics: metrics,
  764. dimension: dimension
  765. });
  766. var options = { series: series, legend: legend, tooltip: tooltip };
  767. return options;
  768. };
  769. var ring = function ring(columns, rows, settings, extra) {
  770. return pie(columns, rows, settings, extra, true);
  771. };
  772. /***/ }),
  773. /***/ 112:
  774. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  775. "use strict";
  776. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return line; });
  777. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32);
  778. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  779. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(utils_lite__WEBPACK_IMPORTED_MODULE_1__);
  780. function getLineXAxis(args) {
  781. var dimension = args.dimension,
  782. rows = args.rows,
  783. xAxisName = args.xAxisName,
  784. axisVisible = args.axisVisible,
  785. xAxisType = args.xAxisType;
  786. return dimension.map(function (item, index) {
  787. return {
  788. type: xAxisType,
  789. nameLocation: 'middle',
  790. nameGap: 22,
  791. name: xAxisName[index] || '',
  792. axisTick: { show: true, lineStyle: { color: '#eee' } },
  793. data: rows.map(function (row) {
  794. return row[item];
  795. }),
  796. show: axisVisible,
  797. axisLine: {
  798. lineStyle: {
  799. color: '#FFF'
  800. }
  801. }
  802. };
  803. });
  804. }
  805. function getLineSeries(args) {
  806. var rows = args.rows,
  807. axisSite = args.axisSite,
  808. metrics = args.metrics,
  809. area = args.area,
  810. stack = args.stack,
  811. nullAddZero = args.nullAddZero,
  812. labelMap = args.labelMap,
  813. label = args.label,
  814. itemStyle = args.itemStyle,
  815. lineStyle = args.lineStyle,
  816. areaStyle = args.areaStyle,
  817. dimension = args.dimension;
  818. var series = [];
  819. var dataTemp = {};
  820. var stackMap = stack && Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getStackMap */ "e"])(stack);
  821. metrics.forEach(function (item) {
  822. dataTemp[item] = [];
  823. });
  824. rows.forEach(function (row) {
  825. metrics.forEach(function (item) {
  826. var value = null;
  827. if (row[item] != null) {
  828. value = row[item];
  829. } else if (nullAddZero) {
  830. value = 0;
  831. }
  832. dataTemp[item].push([row[dimension[0]], value]);
  833. });
  834. });
  835. metrics.forEach(function (item) {
  836. var seriesItem = {
  837. name: labelMap[item] != null ? labelMap[item] : item,
  838. type: 'line',
  839. data: dataTemp[item]
  840. };
  841. if (area) seriesItem.areaStyle = { normal: {} };
  842. if (axisSite.right) {
  843. seriesItem.yAxisIndex = ~axisSite.right.indexOf(item) ? 1 : 0;
  844. }
  845. if (stack && stackMap[item]) seriesItem.stack = stackMap[item];
  846. if (label) seriesItem.label = label;
  847. if (itemStyle) seriesItem.itemStyle = itemStyle;
  848. if (lineStyle) seriesItem.lineStyle = lineStyle;
  849. if (areaStyle) seriesItem.areaStyle = areaStyle;
  850. series.push(seriesItem);
  851. });
  852. return series;
  853. }
  854. function getLineYAxis(args) {
  855. var yAxisName = args.yAxisName,
  856. yAxisType = args.yAxisType,
  857. axisVisible = args.axisVisible,
  858. scale = args.scale,
  859. min = args.min,
  860. max = args.max,
  861. digit = args.digit;
  862. var yAxisBase = {
  863. type: 'value',
  864. axisTick: {
  865. show: false
  866. },
  867. show: axisVisible,
  868. axisLine: {
  869. lineStyle: {
  870. color: '#FFF'
  871. }
  872. }
  873. };
  874. var yAxis = [];
  875. var _loop = function _loop(i) {
  876. if (yAxisType[i]) {
  877. yAxis[i] = Object.assign({}, yAxisBase, {
  878. axisLabel: {
  879. formatter: function formatter(val) {
  880. return Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getFormated */ "c"])(val, yAxisType[i], digit);
  881. }
  882. }
  883. });
  884. } else {
  885. yAxis[i] = Object.assign({}, yAxisBase);
  886. }
  887. yAxis[i].name = yAxisName[i] || '';
  888. yAxis[i].scale = scale[i] || false;
  889. yAxis[i].min = min[i] || null;
  890. yAxis[i].max = max[i] || null;
  891. };
  892. for (var i = 0; i < 2; i++) {
  893. _loop(i);
  894. }
  895. return yAxis;
  896. }
  897. function getLineTooltip(args) {
  898. var axisSite = args.axisSite,
  899. yAxisType = args.yAxisType,
  900. digit = args.digit,
  901. labelMap = args.labelMap,
  902. tooltipFormatter = args.tooltipFormatter;
  903. var rightItems = axisSite.right || [];
  904. var rightList = labelMap ? rightItems.map(function (item) {
  905. return labelMap[item] === undefined ? item : labelMap[item];
  906. }) : rightItems;
  907. return {
  908. trigger: 'axis',
  909. formatter: function formatter(items) {
  910. if (tooltipFormatter) {
  911. return tooltipFormatter.apply(null, arguments);
  912. }
  913. var tpl = [];
  914. var _items$ = items[0],
  915. name = _items$.name,
  916. axisValueLabel = _items$.axisValueLabel;
  917. var title = name || axisValueLabel;
  918. tpl.push(title + '<br>');
  919. items.forEach(function (_ref) {
  920. var seriesName = _ref.seriesName,
  921. data = _ref.data,
  922. marker = _ref.marker;
  923. var showData = null;
  924. var type = ~rightList.indexOf(seriesName) ? yAxisType[1] : yAxisType[0];
  925. var itemData = Object(utils_lite__WEBPACK_IMPORTED_MODULE_1__["isArray"])(data) ? data[1] : data;
  926. showData = Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getFormated */ "c"])(itemData, type, digit);
  927. tpl.push(marker);
  928. tpl.push(seriesName + ': ' + showData);
  929. tpl.push('<br>');
  930. });
  931. return tpl.join('');
  932. }
  933. };
  934. }
  935. function getLegend(args) {
  936. var metrics = args.metrics,
  937. legendName = args.legendName,
  938. labelMap = args.labelMap;
  939. if (!legendName && !labelMap) return { data: metrics };
  940. var data = labelMap ? metrics.map(function (item) {
  941. return labelMap[item] == null ? item : labelMap[item];
  942. }) : metrics;
  943. return {
  944. data: data,
  945. formatter: function formatter(name) {
  946. return legendName[name] != null ? legendName[name] : name;
  947. }
  948. };
  949. }
  950. var line = function line(columns, rows, settings, extra) {
  951. rows = Object(utils_lite__WEBPACK_IMPORTED_MODULE_1__["isArray"])(rows) ? rows : [];
  952. columns = Object(utils_lite__WEBPACK_IMPORTED_MODULE_1__["isArray"])(columns) ? columns : [];
  953. var _settings$axisSite = settings.axisSite,
  954. axisSite = _settings$axisSite === undefined ? {} : _settings$axisSite,
  955. _settings$yAxisType = settings.yAxisType,
  956. yAxisType = _settings$yAxisType === undefined ? ['normal', 'normal'] : _settings$yAxisType,
  957. _settings$xAxisType = settings.xAxisType,
  958. xAxisType = _settings$xAxisType === undefined ? 'category' : _settings$xAxisType,
  959. _settings$yAxisName = settings.yAxisName,
  960. yAxisName = _settings$yAxisName === undefined ? [] : _settings$yAxisName,
  961. _settings$dimension = settings.dimension,
  962. dimension = _settings$dimension === undefined ? [columns[0]] : _settings$dimension,
  963. _settings$xAxisName = settings.xAxisName,
  964. xAxisName = _settings$xAxisName === undefined ? [] : _settings$xAxisName,
  965. _settings$axisVisible = settings.axisVisible,
  966. axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,
  967. area = settings.area,
  968. stack = settings.stack,
  969. _settings$scale = settings.scale,
  970. scale = _settings$scale === undefined ? [false, false] : _settings$scale,
  971. _settings$min = settings.min,
  972. min = _settings$min === undefined ? [null, null] : _settings$min,
  973. _settings$max = settings.max,
  974. max = _settings$max === undefined ? [null, null] : _settings$max,
  975. _settings$nullAddZero = settings.nullAddZero,
  976. nullAddZero = _settings$nullAddZero === undefined ? false : _settings$nullAddZero,
  977. _settings$digit = settings.digit,
  978. digit = _settings$digit === undefined ? 2 : _settings$digit,
  979. _settings$legendName = settings.legendName,
  980. legendName = _settings$legendName === undefined ? {} : _settings$legendName,
  981. _settings$labelMap = settings.labelMap,
  982. labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,
  983. label = settings.label,
  984. itemStyle = settings.itemStyle,
  985. lineStyle = settings.lineStyle,
  986. areaStyle = settings.areaStyle;
  987. var tooltipVisible = extra.tooltipVisible,
  988. legendVisible = extra.legendVisible,
  989. tooltipFormatter = extra.tooltipFormatter;
  990. var metrics = columns.slice();
  991. if (axisSite.left && axisSite.right) {
  992. metrics = axisSite.left.concat(axisSite.right);
  993. } else if (axisSite.left && !axisSite.right) {
  994. metrics = axisSite.left;
  995. } else if (settings.metrics) {
  996. metrics = settings.metrics;
  997. } else {
  998. metrics.splice(columns.indexOf(dimension[0]), 1);
  999. }
  1000. var legend = legendVisible && getLegend({ metrics: metrics, legendName: legendName, labelMap: labelMap });
  1001. var tooltip = tooltipVisible && getLineTooltip({
  1002. axisSite: axisSite,
  1003. yAxisType: yAxisType,
  1004. digit: digit,
  1005. labelMap: labelMap,
  1006. xAxisType: xAxisType,
  1007. tooltipFormatter: tooltipFormatter
  1008. });
  1009. var xAxis = getLineXAxis({
  1010. dimension: dimension,
  1011. rows: rows,
  1012. xAxisName: xAxisName,
  1013. axisVisible: axisVisible,
  1014. xAxisType: xAxisType
  1015. });
  1016. var yAxis = getLineYAxis({
  1017. yAxisName: yAxisName,
  1018. yAxisType: yAxisType,
  1019. axisVisible: axisVisible,
  1020. scale: scale,
  1021. min: min,
  1022. max: max,
  1023. digit: digit
  1024. });
  1025. var series = getLineSeries({
  1026. rows: rows,
  1027. axisSite: axisSite,
  1028. metrics: metrics,
  1029. area: area,
  1030. stack: stack,
  1031. nullAddZero: nullAddZero,
  1032. labelMap: labelMap,
  1033. label: label,
  1034. itemStyle: itemStyle,
  1035. lineStyle: lineStyle,
  1036. areaStyle: areaStyle,
  1037. xAxisType: xAxisType,
  1038. dimension: dimension
  1039. });
  1040. var options = { legend: legend, xAxis: xAxis, series: series, yAxis: yAxis, tooltip: tooltip };
  1041. return options;
  1042. };
  1043. /***/ }),
  1044. /***/ 12:
  1045. /***/ (function(module, exports) {
  1046. /**
  1047. * When source maps are enabled, `style-loader` uses a link element with a data-uri to
  1048. * embed the css on the page. This breaks all relative urls because now they are relative to a
  1049. * bundle instead of the current page.
  1050. *
  1051. * One solution is to only use full urls, but that may be impossible.
  1052. *
  1053. * Instead, this function "fixes" the relative urls to be absolute according to the current page location.
  1054. *
  1055. * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.
  1056. *
  1057. */
  1058. module.exports = function (css) {
  1059. // get current location
  1060. var location = typeof window !== "undefined" && window.location;
  1061. if (!location) {
  1062. throw new Error("fixUrls requires window.location");
  1063. }
  1064. // blank or null?
  1065. if (!css || typeof css !== "string") {
  1066. return css;
  1067. }
  1068. var baseUrl = location.protocol + "//" + location.host;
  1069. var currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
  1070. // convert each url(...)
  1071. /*
  1072. This regular expression is just a way to recursively match brackets within
  1073. a string.
  1074. /url\s*\( = Match on the word "url" with any whitespace after it and then a parens
  1075. ( = Start a capturing group
  1076. (?: = Start a non-capturing group
  1077. [^)(] = Match anything that isn't a parentheses
  1078. | = OR
  1079. \( = Match a start parentheses
  1080. (?: = Start another non-capturing groups
  1081. [^)(]+ = Match anything that isn't a parentheses
  1082. | = OR
  1083. \( = Match a start parentheses
  1084. [^)(]* = Match anything that isn't a parentheses
  1085. \) = Match a end parentheses
  1086. ) = End Group
  1087. *\) = Match anything and then a close parens
  1088. ) = Close non-capturing group
  1089. * = Match anything
  1090. ) = Close capturing group
  1091. \) = Match a close parens
  1092. /gi = Get all matches, not the first. Be case insensitive.
  1093. */
  1094. var fixedCss = css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
  1095. // strip quotes (if they exist)
  1096. var unquotedOrigUrl = origUrl
  1097. .trim()
  1098. .replace(/^"(.*)"$/, function(o, $1){ return $1; })
  1099. .replace(/^'(.*)'$/, function(o, $1){ return $1; });
  1100. // already a full url? no change
  1101. if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(unquotedOrigUrl)) {
  1102. return fullMatch;
  1103. }
  1104. // convert the url to a full url
  1105. var newUrl;
  1106. if (unquotedOrigUrl.indexOf("//") === 0) {
  1107. //TODO: should we add protocol?
  1108. newUrl = unquotedOrigUrl;
  1109. } else if (unquotedOrigUrl.indexOf("/") === 0) {
  1110. // path should be relative to the base url
  1111. newUrl = baseUrl + unquotedOrigUrl; // already starts with '/'
  1112. } else {
  1113. // path should be relative to current directory
  1114. newUrl = currentDir + unquotedOrigUrl.replace(/^\.\//, ""); // Strip leading './'
  1115. }
  1116. // send back the fixed url(...)
  1117. return "url(" + JSON.stringify(newUrl) + ")";
  1118. });
  1119. // send back the fixed css
  1120. return fixedCss;
  1121. };
  1122. /***/ }),
  1123. /***/ 135:
  1124. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1125. "use strict";
  1126. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return waterfall; });
  1127. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32);
  1128. function getWaterfallTooltip(dataType, digit) {
  1129. return {
  1130. trigger: 'axis',
  1131. axisPointer: { type: 'shadow' },
  1132. formatter: function formatter(items) {
  1133. var item = items[1];
  1134. return [item.name + '<br/>' + item.seriesName + ' :', '' + Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getFormated */ "c"])(item.value, dataType, digit)].join('');
  1135. }
  1136. };
  1137. }
  1138. function getWaterfallXAxis(args) {
  1139. var dimension = args.dimension,
  1140. rows = args.rows,
  1141. remainStatus = args.remainStatus,
  1142. totalName = args.totalName,
  1143. remainName = args.remainName,
  1144. labelMap = args.labelMap,
  1145. xAxisName = args.xAxisName,
  1146. axisVisible = args.axisVisible;
  1147. var xAxisData = [totalName].concat(rows.map(function (row) {
  1148. return row[dimension];
  1149. }));
  1150. if (remainStatus === 'have-remain') {
  1151. xAxisData = xAxisData.concat([remainName]);
  1152. }
  1153. return {
  1154. type: 'category',
  1155. name: labelMap && labelMap[xAxisName] || xAxisName,
  1156. splitLine: { show: false },
  1157. data: xAxisData,
  1158. show: axisVisible
  1159. };
  1160. }
  1161. function getWaterfallYAxis(args) {
  1162. var dataType = args.dataType,
  1163. yAxisName = args.yAxisName,
  1164. axisVisible = args.axisVisible,
  1165. digit = args.digit,
  1166. labelMap = args.labelMap;
  1167. return {
  1168. type: 'value',
  1169. name: labelMap[yAxisName] != null ? labelMap[yAxisName] : yAxisName,
  1170. axisTick: { show: false },
  1171. axisLabel: {
  1172. formatter: function formatter(val) {
  1173. return Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getFormated */ "c"])(val, dataType, digit);
  1174. }
  1175. },
  1176. show: axisVisible
  1177. };
  1178. }
  1179. function getWaterfallSeries(args) {
  1180. var dataType = args.dataType,
  1181. rows = args.rows,
  1182. metrics = args.metrics,
  1183. totalNum = args.totalNum,
  1184. remainStatus = args.remainStatus,
  1185. dataSum = args.dataSum,
  1186. digit = args.digit;
  1187. var seriesBase = { type: 'bar', stack: '总量' };
  1188. var dataSumTemp = dataSum;
  1189. var totalNumTemp = totalNum;
  1190. var assistData = void 0;
  1191. var mainData = void 0;
  1192. var rowData = rows.map(function (row) {
  1193. return row[metrics];
  1194. });
  1195. if (remainStatus === 'have-remain') {
  1196. assistData = [0].concat(rows.map(function (row) {
  1197. totalNumTemp -= row[metrics];
  1198. return totalNumTemp;
  1199. })).concat([0]);
  1200. mainData = [totalNum].concat(rowData).concat([totalNum - dataSum]);
  1201. } else {
  1202. assistData = [0].concat(rows.map(function (row) {
  1203. dataSumTemp -= row[metrics];
  1204. return dataSumTemp;
  1205. }));
  1206. mainData = [dataSum].concat(rowData);
  1207. }
  1208. var series = [];
  1209. series.push(Object.assign({
  1210. name: '辅助',
  1211. itemStyle: {
  1212. normal: { opacity: 0 },
  1213. emphasis: { opacity: 0 }
  1214. },
  1215. data: assistData
  1216. }, seriesBase));
  1217. series.push(Object.assign({
  1218. name: '数值',
  1219. label: {
  1220. normal: {
  1221. show: true,
  1222. position: 'top',
  1223. formatter: function formatter(item) {
  1224. return Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_0__[/* getFormated */ "c"])(item.value, dataType, digit);
  1225. }
  1226. }
  1227. },
  1228. data: mainData
  1229. }, seriesBase));
  1230. return series;
  1231. }
  1232. function getWaterfallRemainStatus(dataSum, totalNum) {
  1233. if (!totalNum) return 'not-total';
  1234. return totalNum > dataSum ? 'have-remain' : 'none-remain';
  1235. }
  1236. var waterfall = function waterfall(columns, rows, settings, extra) {
  1237. var _settings$dataType = settings.dataType,
  1238. dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,
  1239. _settings$dimension = settings.dimension,
  1240. dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
  1241. _settings$totalName = settings.totalName,
  1242. totalName = _settings$totalName === undefined ? '总计' : _settings$totalName,
  1243. totalNum = settings.totalNum,
  1244. _settings$remainName = settings.remainName,
  1245. remainName = _settings$remainName === undefined ? '其他' : _settings$remainName,
  1246. _settings$xAxisName = settings.xAxisName,
  1247. xAxisName = _settings$xAxisName === undefined ? dimension : _settings$xAxisName,
  1248. _settings$labelMap = settings.labelMap,
  1249. labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,
  1250. _settings$axisVisible = settings.axisVisible,
  1251. axisVisible = _settings$axisVisible === undefined ? true : _settings$axisVisible,
  1252. _settings$digit = settings.digit,
  1253. digit = _settings$digit === undefined ? 2 : _settings$digit;
  1254. var tooltipVisible = extra.tooltipVisible;
  1255. var metricsTemp = columns.slice();
  1256. metricsTemp.splice(metricsTemp.indexOf(dimension), 1);
  1257. var metrics = metricsTemp[0];
  1258. var yAxisName = metrics;
  1259. var tooltip = tooltipVisible && getWaterfallTooltip(dataType, digit);
  1260. var dataSum = parseFloat(rows.reduce(function (pre, cur) {
  1261. return pre + Number(cur[metrics]);
  1262. }, 0).toFixed(digit));
  1263. var remainStatus = getWaterfallRemainStatus(dataSum, totalNum);
  1264. var xAxisParams = {
  1265. dimension: dimension,
  1266. rows: rows,
  1267. remainStatus: remainStatus,
  1268. totalName: totalName,
  1269. remainName: remainName,
  1270. xAxisName: xAxisName,
  1271. labelMap: labelMap,
  1272. axisVisible: axisVisible
  1273. };
  1274. var xAxis = getWaterfallXAxis(xAxisParams);
  1275. var yAxis = getWaterfallYAxis({ dataType: dataType, yAxisName: yAxisName, axisVisible: axisVisible, digit: digit, labelMap: labelMap });
  1276. var seriesParams = {
  1277. dataType: dataType,
  1278. rows: rows,
  1279. dimension: dimension,
  1280. metrics: metrics,
  1281. totalNum: totalNum,
  1282. remainStatus: remainStatus,
  1283. dataSum: dataSum,
  1284. digit: digit
  1285. };
  1286. var series = getWaterfallSeries(seriesParams);
  1287. var options = { tooltip: tooltip, xAxis: xAxis, yAxis: yAxis, series: series };
  1288. return options;
  1289. };
  1290. /***/ }),
  1291. /***/ 136:
  1292. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1293. "use strict";
  1294. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return funnel; });
  1295. /* harmony import */ var main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
  1296. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
  1297. function getFunnelTooltip(dataType, digit) {
  1298. return {
  1299. trigger: 'item',
  1300. formatter: function formatter(item) {
  1301. var tpl = [];
  1302. tpl.push(Object(main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__[/* itemPoint */ "g"])(item.color));
  1303. tpl.push(item.name + ': ' + Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(item.data.realValue, dataType, digit));
  1304. return tpl.join('');
  1305. }
  1306. };
  1307. }
  1308. function getFunnelLegend(args) {
  1309. var data = args.data,
  1310. legendName = args.legendName;
  1311. return {
  1312. data: data,
  1313. formatter: function formatter(name) {
  1314. return legendName[name] != null ? legendName[name] : name;
  1315. }
  1316. };
  1317. }
  1318. function getFunnelSeries(args) {
  1319. var dimension = args.dimension,
  1320. metrics = args.metrics,
  1321. rows = args.rows,
  1322. sequence = args.sequence,
  1323. ascending = args.ascending,
  1324. label = args.label,
  1325. labelLine = args.labelLine,
  1326. itemStyle = args.itemStyle,
  1327. filterZero = args.filterZero,
  1328. useDefaultOrder = args.useDefaultOrder;
  1329. var series = { type: 'funnel' };
  1330. var innerRows = rows.sort(function (a, b) {
  1331. return sequence.indexOf(a[dimension]) - sequence.indexOf(b[dimension]);
  1332. });
  1333. if (filterZero) {
  1334. innerRows = innerRows.filter(function (row) {
  1335. return row[metrics];
  1336. });
  1337. }
  1338. var falseFunnel = false;
  1339. innerRows.some(function (row, index) {
  1340. if (index && row[metrics] > innerRows[index - 1][metrics]) {
  1341. falseFunnel = true;
  1342. return true;
  1343. }
  1344. });
  1345. var step = 100 / innerRows.length;
  1346. if (falseFunnel && !useDefaultOrder) {
  1347. series.data = innerRows.slice().reverse().map(function (row, index) {
  1348. return {
  1349. name: row[dimension],
  1350. value: (index + 1) * step,
  1351. realValue: row[metrics]
  1352. };
  1353. });
  1354. } else {
  1355. series.data = innerRows.map(function (row) {
  1356. return {
  1357. name: row[dimension],
  1358. value: row[metrics],
  1359. realValue: row[metrics]
  1360. };
  1361. });
  1362. }
  1363. if (ascending) series.sort = 'ascending';
  1364. if (label) series.label = label;
  1365. if (labelLine) series.labelLine = labelLine;
  1366. if (itemStyle) series.itemStyle = itemStyle;
  1367. return series;
  1368. }
  1369. var funnel = function funnel(outerColumns, outerRows, settings, extra) {
  1370. var columns = outerColumns.slice();
  1371. var rows = outerRows.slice();
  1372. var _settings$dataType = settings.dataType,
  1373. dataType = _settings$dataType === undefined ? 'normal' : _settings$dataType,
  1374. _settings$dimension = settings.dimension,
  1375. dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
  1376. _settings$sequence = settings.sequence,
  1377. sequence = _settings$sequence === undefined ? rows.map(function (row) {
  1378. return row[dimension];
  1379. }) : _settings$sequence,
  1380. _settings$digit = settings.digit,
  1381. digit = _settings$digit === undefined ? 2 : _settings$digit,
  1382. ascending = settings.ascending,
  1383. label = settings.label,
  1384. labelLine = settings.labelLine,
  1385. _settings$legendName = settings.legendName,
  1386. legendName = _settings$legendName === undefined ? {} : _settings$legendName,
  1387. itemStyle = settings.itemStyle,
  1388. filterZero = settings.filterZero,
  1389. useDefaultOrder = settings.useDefaultOrder;
  1390. var tooltipVisible = extra.tooltipVisible,
  1391. legendVisible = extra.legendVisible;
  1392. var metrics = void 0;
  1393. if (settings.metrics) {
  1394. metrics = settings.metrics;
  1395. } else {
  1396. var metricsTemp = columns.slice();
  1397. metricsTemp.splice(columns.indexOf(dimension), 1);
  1398. metrics = metricsTemp[0];
  1399. }
  1400. var tooltip = tooltipVisible && getFunnelTooltip(dataType, digit);
  1401. var legend = legendVisible && getFunnelLegend({ data: sequence, legendName: legendName });
  1402. var series = getFunnelSeries({
  1403. dimension: dimension,
  1404. metrics: metrics,
  1405. rows: rows,
  1406. sequence: sequence,
  1407. ascending: ascending,
  1408. label: label,
  1409. labelLine: labelLine,
  1410. itemStyle: itemStyle,
  1411. filterZero: filterZero,
  1412. useDefaultOrder: useDefaultOrder
  1413. });
  1414. var options = { tooltip: tooltip, legend: legend, series: series };
  1415. return options;
  1416. };
  1417. /***/ }),
  1418. /***/ 137:
  1419. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1420. "use strict";
  1421. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return radar; });
  1422. /* harmony import */ var main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15);
  1423. /* harmony import */ var main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32);
  1424. function getRadarLegend(rows, dimension, legendName) {
  1425. var legendData = rows.map(function (row) {
  1426. return row[dimension];
  1427. });
  1428. return {
  1429. data: legendData,
  1430. formatter: function formatter(name) {
  1431. return legendName[name] != null ? legendName[name] : name;
  1432. }
  1433. };
  1434. }
  1435. function getRadarTooltip(dataType, radar, digit) {
  1436. var typeTemp = [];
  1437. var nameTemp = [];
  1438. radar.indicator.map(function (item, index) {
  1439. typeTemp[index] = dataType[item.name];
  1440. nameTemp[index] = item.name;
  1441. });
  1442. return {
  1443. formatter: function formatter(item) {
  1444. var tpl = [];
  1445. tpl.push(Object(main_utils_charts_constants__WEBPACK_IMPORTED_MODULE_0__[/* itemPoint */ "g"])(item.color));
  1446. tpl.push(item.name + '<br />');
  1447. item.data.value.forEach(function (val, index) {
  1448. tpl.push(nameTemp[index] + ': ');
  1449. tpl.push(Object(main_utils_charts_utils__WEBPACK_IMPORTED_MODULE_1__[/* getFormated */ "c"])(val, typeTemp[index], digit) + '<br />');
  1450. });
  1451. return tpl.join('');
  1452. }
  1453. };
  1454. }
  1455. function getRadarSetting(rows, metrics, labelMap) {
  1456. var settingBase = {
  1457. indicator: [],
  1458. shape: 'circle',
  1459. splitNumber: 5
  1460. };
  1461. var indicatorTemp = {};
  1462. rows.forEach(function (items) {
  1463. metrics.forEach(function (item) {
  1464. var key = labelMap[item] != null ? labelMap[item] : item;
  1465. if (!indicatorTemp[key]) {
  1466. indicatorTemp[key] = [items[item]];
  1467. } else {
  1468. indicatorTemp[key].push(items[item]);
  1469. }
  1470. });
  1471. });
  1472. settingBase.indicator = Object.keys(indicatorTemp).map(function (key) {
  1473. return {
  1474. name: key,
  1475. max: Math.max.apply(null, indicatorTemp[key])
  1476. };
  1477. });
  1478. return settingBase;
  1479. }
  1480. function getRadarSeries(args) {
  1481. var rows = args.rows,
  1482. dimension = args.dimension,
  1483. metrics = args.metrics,
  1484. radar = args.radar,
  1485. label = args.label,
  1486. itemStyle = args.itemStyle,
  1487. lineStyle = args.lineStyle,
  1488. labelMap = args.labelMap,
  1489. areaStyle = args.areaStyle;
  1490. var radarIndexObj = {};
  1491. radar.indicator.forEach(function (item, index) {
  1492. var name = item.name;
  1493. radarIndexObj[name] = index;
  1494. });
  1495. var seriesData = rows.map(function (row) {
  1496. var serieData = {
  1497. value: [],
  1498. name: row[dimension]
  1499. };
  1500. Object.keys(row).forEach(function (key) {
  1501. if (~metrics.indexOf(key)) {
  1502. var k = labelMap[key] != null ? radarIndexObj[labelMap[key]] : radarIndexObj[key];
  1503. serieData.value[k] = row[key];
  1504. }
  1505. });
  1506. return serieData;
  1507. });
  1508. var result = {
  1509. name: dimension,
  1510. type: 'radar',
  1511. data: seriesData
  1512. };
  1513. if (label) result.label = label;
  1514. if (itemStyle) result.itemStyle = itemStyle;
  1515. if (lineStyle) result.lineStyle = lineStyle;
  1516. if (areaStyle) result.areaStyle = areaStyle;
  1517. return [result];
  1518. }
  1519. var radar = function radar(columns, rows, settings, extra) {
  1520. var _settings$dataType = settings.dataType,
  1521. dataType = _settings$dataType === undefined ? {} : _settings$dataType,
  1522. _settings$legendName = settings.legendName,
  1523. legendName = _settings$legendName === undefined ? {} : _settings$legendName,
  1524. _settings$labelMap = settings.labelMap,
  1525. labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,
  1526. _settings$dimension = settings.dimension,
  1527. dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
  1528. _settings$digit = settings.digit,
  1529. digit = _settings$digit === undefined ? 2 : _settings$digit,
  1530. label = settings.label,
  1531. itemStyle = settings.itemStyle,
  1532. lineStyle = settings.lineStyle,
  1533. areaStyle = settings.areaStyle;
  1534. var tooltipVisible = extra.tooltipVisible,
  1535. legendVisible = extra.legendVisible;
  1536. var metrics = columns.slice();
  1537. if (settings.metrics) {
  1538. metrics = settings.metrics;
  1539. } else {
  1540. metrics.splice(columns.indexOf(dimension), 1);
  1541. }
  1542. var legend = legendVisible && getRadarLegend(rows, dimension, legendName);
  1543. var radar = getRadarSetting(rows, metrics, labelMap);
  1544. var tooltip = tooltipVisible && getRadarTooltip(dataType, radar, digit);
  1545. var series = getRadarSeries({
  1546. rows: rows,
  1547. dimension: dimension,
  1548. metrics: metrics,
  1549. radar: radar,
  1550. label: label,
  1551. itemStyle: itemStyle,
  1552. lineStyle: lineStyle,
  1553. labelMap: labelMap,
  1554. areaStyle: areaStyle
  1555. });
  1556. var options = { legend: legend, tooltip: tooltip, radar: radar, series: series };
  1557. return options;
  1558. };
  1559. /***/ }),
  1560. /***/ 15:
  1561. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1562. "use strict";
  1563. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return DEFAULT_THEME; });
  1564. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DEFAULT_COLORS; });
  1565. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return HEAT_MAP_COLOR; });
  1566. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return HEAT_BMAP_COLOR; });
  1567. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return itemPoint; });
  1568. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return STATIC_PROPS; });
  1569. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ECHARTS_SETTINGS; });
  1570. var DEFAULT_THEME = {
  1571. categoryAxis: {
  1572. axisLine: { show: false },
  1573. axisTick: { show: false },
  1574. splitLine: { show: false }
  1575. },
  1576. valueAxis: {
  1577. axisLine: { show: false }
  1578. },
  1579. line: {
  1580. smooth: true
  1581. },
  1582. grid: {
  1583. containLabel: true,
  1584. left: 10,
  1585. right: 10
  1586. }
  1587. };
  1588. var DEFAULT_COLORS = ['#19d4ae', '#5ab1ef', '#fa6e86', '#ffb980', '#0067a6', '#c4b4e4', '#d87a80', '#9cbbff', '#d9d0c7', '#87a997', '#d49ea2', '#5b4947', '#7ba3a8'];
  1589. var HEAT_MAP_COLOR = ['#313695', '#4575b4', '#74add1', '#abd9e9', '#e0f3f8', '#ffffbf', '#fee090', '#fdae61', '#f46d43', '#d73027', '#a50026'];
  1590. var HEAT_BMAP_COLOR = ['blue', 'blue', 'green', 'yellow', 'red'];
  1591. var itemPoint = function itemPoint(color) {
  1592. return ['<span style="', 'background-color:' + color + ';', 'display: inline-block;', 'width: 10px;', 'height: 10px;', 'border-radius: 50%;', 'margin-right:2px;', '"></span>'].join('');
  1593. };
  1594. var STATIC_PROPS = ['initOptions', 'loading', 'dataEmpty', 'judgeWidth', 'widthChangeDelay'];
  1595. var ECHARTS_SETTINGS = ['grid', 'dataZoom', 'visualMap', 'toolbox', 'title', 'legend', 'xAxis', 'yAxis', 'radar', 'tooltip', 'axisPointer', 'brush', 'geo', 'timeline', 'graphic', 'series', 'backgroundColor', 'textStyle'];
  1596. /***/ }),
  1597. /***/ 17:
  1598. /***/ (function(module, exports) {
  1599. module.exports = require("echarts/lib/echarts");
  1600. /***/ }),
  1601. /***/ 2:
  1602. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1603. "use strict";
  1604. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; });
  1605. /* globals __VUE_SSR_CONTEXT__ */
  1606. // IMPORTANT: Do NOT use ES2015 features in this file (except for modules).
  1607. // This module is a runtime utility for cleaner component module output and will
  1608. // be included in the final webpack user bundle.
  1609. function normalizeComponent (
  1610. scriptExports,
  1611. render,
  1612. staticRenderFns,
  1613. functionalTemplate,
  1614. injectStyles,
  1615. scopeId,
  1616. moduleIdentifier, /* server only */
  1617. shadowMode /* vue-cli only */
  1618. ) {
  1619. // Vue.extend constructor export interop
  1620. var options = typeof scriptExports === 'function'
  1621. ? scriptExports.options
  1622. : scriptExports
  1623. // render functions
  1624. if (render) {
  1625. options.render = render
  1626. options.staticRenderFns = staticRenderFns
  1627. options._compiled = true
  1628. }
  1629. // functional template
  1630. if (functionalTemplate) {
  1631. options.functional = true
  1632. }
  1633. // scopedId
  1634. if (scopeId) {
  1635. options._scopeId = 'data-v-' + scopeId
  1636. }
  1637. var hook
  1638. if (moduleIdentifier) { // server build
  1639. hook = function (context) {
  1640. // 2.3 injection
  1641. context =
  1642. context || // cached call
  1643. (this.$vnode && this.$vnode.ssrContext) || // stateful
  1644. (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional
  1645. // 2.2 with runInNewContext: true
  1646. if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
  1647. context = __VUE_SSR_CONTEXT__
  1648. }
  1649. // inject component styles
  1650. if (injectStyles) {
  1651. injectStyles.call(this, context)
  1652. }
  1653. // register component module identifier for async chunk inferrence
  1654. if (context && context._registeredComponents) {
  1655. context._registeredComponents.add(moduleIdentifier)
  1656. }
  1657. }
  1658. // used by ssr in case component is cached and beforeCreate
  1659. // never gets called
  1660. options._ssrRegister = hook
  1661. } else if (injectStyles) {
  1662. hook = shadowMode
  1663. ? function () {
  1664. injectStyles.call(
  1665. this,
  1666. (options.functional ? this.parent : this).$root.$options.shadowRoot
  1667. )
  1668. }
  1669. : injectStyles
  1670. }
  1671. if (hook) {
  1672. if (options.functional) {
  1673. // for template-only hot-reload because in that case the render fn doesn't
  1674. // go through the normalizer
  1675. options._injectStyles = hook
  1676. // register for functional component in vue file
  1677. var originalRender = options.render
  1678. options.render = function renderWithStyleInjection (h, context) {
  1679. hook.call(context)
  1680. return originalRender(h, context)
  1681. }
  1682. } else {
  1683. // inject component registration as beforeCreate hook
  1684. var existing = options.beforeCreate
  1685. options.beforeCreate = existing
  1686. ? [].concat(existing, hook)
  1687. : [hook]
  1688. }
  1689. }
  1690. return {
  1691. exports: scriptExports,
  1692. options: options
  1693. }
  1694. }
  1695. /***/ }),
  1696. /***/ 258:
  1697. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1698. "use strict";
  1699. __webpack_require__.r(__webpack_exports__);
  1700. /* harmony import */ var _c_bar_main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(109);
  1701. /* harmony import */ var _c_line_main__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(112);
  1702. /* harmony import */ var _c_pie_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(110);
  1703. /* harmony import */ var _c_funnel_main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(136);
  1704. /* harmony import */ var _c_radar_main__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(137);
  1705. /* harmony import */ var _c_waterfall_main__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(135);
  1706. /* harmony import */ var main_utils_charts_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(43);
  1707. /* harmony default export */ __webpack_exports__["default"] = (Object.assign({}, main_utils_charts_core__WEBPACK_IMPORTED_MODULE_6__[/* default */ "a"], {
  1708. name: 'VeChart',
  1709. data: function data() {
  1710. this.chartLib = {
  1711. bar: _c_bar_main__WEBPACK_IMPORTED_MODULE_0__[/* bar */ "a"],
  1712. histogram: _c_bar_main__WEBPACK_IMPORTED_MODULE_0__[/* histogram */ "b"],
  1713. line: _c_line_main__WEBPACK_IMPORTED_MODULE_1__[/* line */ "a"],
  1714. pie: _c_pie_main__WEBPACK_IMPORTED_MODULE_2__[/* pie */ "a"],
  1715. ring: _c_pie_main__WEBPACK_IMPORTED_MODULE_2__[/* ring */ "b"],
  1716. funnel: _c_funnel_main__WEBPACK_IMPORTED_MODULE_3__[/* funnel */ "a"],
  1717. radar: _c_radar_main__WEBPACK_IMPORTED_MODULE_4__[/* radar */ "a"],
  1718. waterfall: _c_waterfall_main__WEBPACK_IMPORTED_MODULE_5__[/* waterfall */ "a"]
  1719. };
  1720. this.chartHandler = this.chartLib[this.settings.type];
  1721. return {};
  1722. }
  1723. }));
  1724. /***/ }),
  1725. /***/ 3:
  1726. /***/ (function(module, exports) {
  1727. module.exports = require("utils-lite");
  1728. /***/ }),
  1729. /***/ 31:
  1730. /***/ (function(module, exports) {
  1731. module.exports = require("numerify");
  1732. /***/ }),
  1733. /***/ 32:
  1734. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1735. "use strict";
  1736. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return getFormated; });
  1737. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return getStackMap; });
  1738. /* unused harmony export $get */
  1739. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return getMapJSON; });
  1740. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getBmap; });
  1741. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return getAmap; });
  1742. /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return setArrayValue; });
  1743. /* harmony import */ var numerify__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31);
  1744. /* harmony import */ var numerify__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(numerify__WEBPACK_IMPORTED_MODULE_0__);
  1745. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);
  1746. /* harmony import */ var utils_lite__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(utils_lite__WEBPACK_IMPORTED_MODULE_1__);
  1747. var getFormated = function getFormated(val, type, digit) {
  1748. var defaultVal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '-';
  1749. if (isNaN(val)) return defaultVal;
  1750. if (!type) return val;
  1751. if (Object(utils_lite__WEBPACK_IMPORTED_MODULE_1__["isFunction"])(type)) return type(val, numerify__WEBPACK_IMPORTED_MODULE_0___default.a);
  1752. digit = isNaN(digit) ? 0 : ++digit;
  1753. var digitStr = '.[' + new Array(digit).join(0) + ']';
  1754. var formatter = type;
  1755. switch (type) {
  1756. case 'KMB':
  1757. formatter = digit ? '0,0' + digitStr + 'a' : '0,0a';
  1758. break;
  1759. case 'normal':
  1760. formatter = digit ? '0,0' + digitStr : '0,0';
  1761. break;
  1762. case 'percent':
  1763. formatter = digit ? '0,0' + digitStr + '%' : '0,0.[00]%';
  1764. break;
  1765. }
  1766. return numerify__WEBPACK_IMPORTED_MODULE_0___default()(val, formatter);
  1767. };
  1768. var getStackMap = function getStackMap(stack) {
  1769. var stackMap = {};
  1770. Object.keys(stack).forEach(function (item) {
  1771. stack[item].forEach(function (name) {
  1772. stackMap[name] = item;
  1773. });
  1774. });
  1775. return stackMap;
  1776. };
  1777. var $get = function $get(url) {
  1778. /* eslint-disable */
  1779. return new Promise(function (resolve, reject) {
  1780. var xhr = new XMLHttpRequest();
  1781. xhr.open('GET', url);
  1782. xhr.send(null);
  1783. xhr.onload = function () {
  1784. resolve(JSON.parse(xhr.responseText));
  1785. };
  1786. xhr.onerror = function () {
  1787. reject(JSON.parse(xhr.responseText));
  1788. };
  1789. });
  1790. };
  1791. var mapPromise = {};
  1792. var getMapJSON = function getMapJSON(_ref) {
  1793. var position = _ref.position,
  1794. positionJsonLink = _ref.positionJsonLink,
  1795. beforeRegisterMapOnce = _ref.beforeRegisterMapOnce,
  1796. mapURLProfix = _ref.mapURLProfix;
  1797. var link = positionJsonLink || '' + mapURLProfix + position + '.json';
  1798. if (!mapPromise[link]) {
  1799. mapPromise[link] = $get(link).then(function (res) {
  1800. if (beforeRegisterMapOnce) res = beforeRegisterMapOnce(res);
  1801. return res;
  1802. });
  1803. }
  1804. return mapPromise[link];
  1805. };
  1806. var bmapPromise = null;
  1807. var amapPromise = null;
  1808. var getBmap = function getBmap(key, v) {
  1809. if (!bmapPromise) {
  1810. bmapPromise = new Promise(function (resolve, reject) {
  1811. var callbackName = 'bmap' + Date.now();
  1812. window[callbackName] = resolve;
  1813. var script = document.createElement('script');
  1814. script.src = ['https://api.map.baidu.com/api?v=' + (v || '2.0'), 'ak=' + key, 'callback=' + callbackName].join('&');
  1815. document.body.appendChild(script);
  1816. });
  1817. }
  1818. return bmapPromise;
  1819. };
  1820. var getAmap = function getAmap(key, v) {
  1821. if (!amapPromise) {
  1822. amapPromise = new Promise(function (resolve, reject) {
  1823. var callbackName = 'amap' + Date.now();
  1824. window[callbackName] = resolve;
  1825. var script = document.createElement('script');
  1826. script.src = ['https://webapi.amap.com/maps?v=' + (v || '1.4.3'), 'key=' + key, 'callback=' + callbackName].join('&');
  1827. document.body.appendChild(script);
  1828. });
  1829. }
  1830. return amapPromise;
  1831. };
  1832. function setArrayValue(arr, index, value) {
  1833. if (arr[index] !== undefined) {
  1834. arr[index].push(value);
  1835. } else {
  1836. arr[index] = [value];
  1837. }
  1838. }
  1839. /***/ }),
  1840. /***/ 39:
  1841. /***/ (function(module, exports, __webpack_require__) {
  1842. var content = __webpack_require__(57);
  1843. if(typeof content === 'string') content = [[module.i, content, '']];
  1844. var transform;
  1845. var insertInto;
  1846. var options = {"hmr":true}
  1847. options.transform = transform
  1848. options.insertInto = undefined;
  1849. var update = __webpack_require__(6)(content, options);
  1850. if(content.locals) module.exports = content.locals;
  1851. if(false) {}
  1852. /***/ }),
  1853. /***/ 40:
  1854. /***/ (function(module, exports, __webpack_require__) {
  1855. var content = __webpack_require__(59);
  1856. if(typeof content === 'string') content = [[module.i, content, '']];
  1857. var transform;
  1858. var insertInto;
  1859. var options = {"hmr":true}
  1860. options.transform = transform
  1861. options.insertInto = undefined;
  1862. var update = __webpack_require__(6)(content, options);
  1863. if(content.locals) module.exports = content.locals;
  1864. if(false) {}
  1865. /***/ }),
  1866. /***/ 43:
  1867. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  1868. "use strict";
  1869. // EXTERNAL MODULE: external "echarts/lib/echarts"
  1870. var echarts_ = __webpack_require__(17);
  1871. var echarts_default = /*#__PURE__*/__webpack_require__.n(echarts_);
  1872. // EXTERNAL MODULE: external "echarts/lib/component/tooltip"
  1873. var tooltip_ = __webpack_require__(54);
  1874. // EXTERNAL MODULE: external "echarts/lib/component/legend"
  1875. var legend_ = __webpack_require__(55);
  1876. // EXTERNAL MODULE: external "numerify"
  1877. var external_numerify_ = __webpack_require__(31);
  1878. var external_numerify_default = /*#__PURE__*/__webpack_require__.n(external_numerify_);
  1879. // EXTERNAL MODULE: external "utils-lite"
  1880. var external_utils_lite_ = __webpack_require__(3);
  1881. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/utils/charts/components/loading.vue?vue&type=template&id=6d18fb16&
  1882. var loadingvue_type_template_id_6d18fb16_render = function() {
  1883. var _vm = this
  1884. var _h = _vm.$createElement
  1885. var _c = _vm._self._c || _h
  1886. return _c("div", { staticClass: "v-charts-component-loading" }, [
  1887. _c("div", { staticClass: "loader" }, [
  1888. _c("div", { staticClass: "loading-spinner" }, [
  1889. _c(
  1890. "svg",
  1891. { staticClass: "circular", attrs: { viewBox: "25 25 50 50" } },
  1892. [
  1893. _c("circle", {
  1894. staticClass: "path",
  1895. attrs: { cx: "50", cy: "50", r: "20", fill: "none" }
  1896. })
  1897. ]
  1898. )
  1899. ])
  1900. ])
  1901. ])
  1902. }
  1903. var staticRenderFns = []
  1904. loadingvue_type_template_id_6d18fb16_render._withStripped = true
  1905. // CONCATENATED MODULE: ./src/utils/charts/components/loading.vue?vue&type=template&id=6d18fb16&
  1906. // EXTERNAL MODULE: ./src/utils/charts/components/loading.vue?vue&type=style&index=0&lang=css&
  1907. var loadingvue_type_style_index_0_lang_css_ = __webpack_require__(56);
  1908. // EXTERNAL MODULE: ./node_modules/vue-loader/lib/runtime/componentNormalizer.js
  1909. var componentNormalizer = __webpack_require__(2);
  1910. // CONCATENATED MODULE: ./src/utils/charts/components/loading.vue
  1911. var script = {}
  1912. /* normalize component */
  1913. var component = Object(componentNormalizer["a" /* default */])(
  1914. script,
  1915. loadingvue_type_template_id_6d18fb16_render,
  1916. staticRenderFns,
  1917. false,
  1918. null,
  1919. null,
  1920. null
  1921. )
  1922. /* hot reload */
  1923. if (false) { var api; }
  1924. component.options.__file = "src/utils/charts/components/loading.vue"
  1925. /* harmony default export */ var loading = (component.exports);
  1926. // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./src/utils/charts/components/data-empty.vue?vue&type=template&id=1f2f0a80&
  1927. var data_emptyvue_type_template_id_1f2f0a80_render = function() {
  1928. var _vm = this
  1929. var _h = _vm.$createElement
  1930. var _c = _vm._self._c || _h
  1931. return _c("div", { staticClass: "v-charts-data-empty" }, [
  1932. _vm._v("\n 暂无数据\n")
  1933. ])
  1934. }
  1935. var data_emptyvue_type_template_id_1f2f0a80_staticRenderFns = []
  1936. data_emptyvue_type_template_id_1f2f0a80_render._withStripped = true
  1937. // CONCATENATED MODULE: ./src/utils/charts/components/data-empty.vue?vue&type=template&id=1f2f0a80&
  1938. // EXTERNAL MODULE: ./src/utils/charts/components/data-empty.vue?vue&type=style&index=0&lang=css&
  1939. var data_emptyvue_type_style_index_0_lang_css_ = __webpack_require__(58);
  1940. // CONCATENATED MODULE: ./src/utils/charts/components/data-empty.vue
  1941. var data_empty_script = {}
  1942. /* normalize component */
  1943. var data_empty_component = Object(componentNormalizer["a" /* default */])(
  1944. data_empty_script,
  1945. data_emptyvue_type_template_id_1f2f0a80_render,
  1946. data_emptyvue_type_template_id_1f2f0a80_staticRenderFns,
  1947. false,
  1948. null,
  1949. null,
  1950. null
  1951. )
  1952. /* hot reload */
  1953. if (false) { var data_empty_api; }
  1954. data_empty_component.options.__file = "src/utils/charts/components/data-empty.vue"
  1955. /* harmony default export */ var data_empty = (data_empty_component.exports);
  1956. // EXTERNAL MODULE: ./src/utils/charts/constants.js
  1957. var constants = __webpack_require__(15);
  1958. // CONCATENATED MODULE: ./src/utils/charts/modules/extend.js
  1959. /* harmony default export */ var modules_extend = (function (options, extend) {
  1960. Object.keys(extend).forEach(function (attr) {
  1961. var value = extend[attr];
  1962. if (~attr.indexOf('.')) {
  1963. // eg: a.b.c a.1.b
  1964. Object(external_utils_lite_["set"])(options, attr, value);
  1965. } else if (typeof value === 'function') {
  1966. // get callback value
  1967. options[attr] = value(options[attr]);
  1968. } else {
  1969. // mixin extend value
  1970. if (Object(external_utils_lite_["isArray"])(options[attr]) && Object(external_utils_lite_["isObject"])(options[attr][0])) {
  1971. // eg: [{ xx: 1 }, { xx: 2 }]
  1972. options[attr].forEach(function (option, index) {
  1973. options[attr][index] = Object.assign({}, option, value);
  1974. });
  1975. } else if (Object(external_utils_lite_["isObject"])(options[attr])) {
  1976. // eg: { xx: 1, yy: 2 }
  1977. options[attr] = Object.assign({}, options[attr], value);
  1978. } else {
  1979. options[attr] = value;
  1980. }
  1981. }
  1982. });
  1983. });
  1984. // CONCATENATED MODULE: ./src/utils/charts/modules/mark.js
  1985. /* harmony default export */ var mark = (function (seriesItem, marks) {
  1986. Object.keys(marks).forEach(function (key) {
  1987. if (marks[key]) seriesItem[key] = marks[key];
  1988. });
  1989. });
  1990. // CONCATENATED MODULE: ./src/utils/charts/modules/animation.js
  1991. /* harmony default export */ var animation = (function (options, animation) {
  1992. Object.keys(animation).forEach(function (key) {
  1993. options[key] = animation[key];
  1994. });
  1995. });
  1996. // CONCATENATED MODULE: ./src/utils/charts/core.js
  1997. /* harmony default export */ var core = __webpack_exports__["a"] = ({
  1998. render: function render(h) {
  1999. return h('div', {
  2000. class: [Object(external_utils_lite_["camelToKebab"])(this.$options.name || this.$options._componentTag)],
  2001. style: this.canvasStyle
  2002. }, [h('div', {
  2003. style: this.canvasStyle,
  2004. class: { 'v-charts-mask-status': this.dataEmpty || this.loading },
  2005. ref: 'canvas'
  2006. }), h(data_empty, {
  2007. style: { display: this.dataEmpty ? '' : 'none' }
  2008. }), h(loading, {
  2009. style: { display: this.loading ? '' : 'none' }
  2010. }), this.$slots.default]);
  2011. },
  2012. props: {
  2013. data: { type: [Object, Array], default: function _default() {
  2014. return {};
  2015. }
  2016. },
  2017. settings: { type: Object, default: function _default() {
  2018. return {};
  2019. }
  2020. },
  2021. width: { type: String, default: 'auto' },
  2022. height: { type: String, default: '400px' },
  2023. beforeConfig: { type: Function },
  2024. afterConfig: { type: Function },
  2025. afterSetOption: { type: Function },
  2026. afterSetOptionOnce: { type: Function },
  2027. events: { type: Object },
  2028. grid: { type: [Object, Array] },
  2029. colors: { type: Array },
  2030. tooltipVisible: { type: Boolean, default: true },
  2031. legendVisible: { type: Boolean, default: true },
  2032. legendPosition: { type: String },
  2033. markLine: { type: Object },
  2034. markArea: { type: Object },
  2035. markPoint: { type: Object },
  2036. visualMap: { type: [Object, Array] },
  2037. dataZoom: { type: [Object, Array] },
  2038. toolbox: { type: [Object, Array] },
  2039. initOptions: { type: Object, default: function _default() {
  2040. return {};
  2041. }
  2042. },
  2043. title: [Object, Array],
  2044. legend: [Object, Array],
  2045. xAxis: [Object, Array],
  2046. yAxis: [Object, Array],
  2047. radar: Object,
  2048. tooltip: Object,
  2049. axisPointer: [Object, Array],
  2050. brush: [Object, Array],
  2051. geo: [Object, Array],
  2052. timeline: [Object, Array],
  2053. graphic: [Object, Array],
  2054. series: [Object, Array],
  2055. backgroundColor: [Object, String],
  2056. textStyle: [Object, Array],
  2057. animation: Object,
  2058. theme: Object,
  2059. themeName: String,
  2060. loading: Boolean,
  2061. dataEmpty: Boolean,
  2062. extend: Object,
  2063. judgeWidth: { type: Boolean, default: false },
  2064. widthChangeDelay: { type: Number, default: 300 },
  2065. tooltipFormatter: { type: Function },
  2066. resizeable: { type: Boolean, default: true },
  2067. resizeDelay: { type: Number, default: 200 },
  2068. changeDelay: { type: Number, default: 0 },
  2069. setOptionOpts: { type: [Boolean, Object], default: true },
  2070. cancelResizeCheck: Boolean,
  2071. notSetUnchange: Array,
  2072. log: Boolean
  2073. },
  2074. watch: {
  2075. data: {
  2076. deep: true,
  2077. handler: function handler(v) {
  2078. if (v) {
  2079. this.changeHandler();
  2080. }
  2081. }
  2082. },
  2083. settings: {
  2084. deep: true,
  2085. handler: function handler(v) {
  2086. if (v.type && this.chartLib) this.chartHandler = this.chartLib[v.type];
  2087. this.changeHandler();
  2088. }
  2089. },
  2090. width: 'nextTickResize',
  2091. height: 'nextTickResize',
  2092. events: {
  2093. deep: true,
  2094. handler: 'createEventProxy'
  2095. },
  2096. theme: {
  2097. deep: true,
  2098. handler: 'themeChange'
  2099. },
  2100. themeName: 'themeChange',
  2101. resizeable: 'resizeableHandler'
  2102. },
  2103. computed: {
  2104. canvasStyle: function canvasStyle() {
  2105. return {
  2106. width: this.width,
  2107. height: this.height,
  2108. position: 'relative'
  2109. };
  2110. },
  2111. chartColor: function chartColor() {
  2112. return this.colors || this.theme && this.theme.color || constants["a" /* DEFAULT_COLORS */];
  2113. }
  2114. },
  2115. methods: {
  2116. dataHandler: function dataHandler() {
  2117. if (!this.chartHandler) return;
  2118. var data = this.data;
  2119. var _data = data,
  2120. _data$columns = _data.columns,
  2121. columns = _data$columns === undefined ? [] : _data$columns,
  2122. _data$rows = _data.rows,
  2123. rows = _data$rows === undefined ? [] : _data$rows;
  2124. var extra = {
  2125. tooltipVisible: this.tooltipVisible,
  2126. legendVisible: this.legendVisible,
  2127. echarts: this.echarts,
  2128. color: this.chartColor,
  2129. tooltipFormatter: this.tooltipFormatter,
  2130. _once: this._once
  2131. };
  2132. if (this.beforeConfig) data = this.beforeConfig(data);
  2133. var options = this.chartHandler(columns, rows, this.settings, extra);
  2134. if (options) {
  2135. if (typeof options.then === 'function') {
  2136. options.then(this.optionsHandler);
  2137. } else {
  2138. this.optionsHandler(options);
  2139. }
  2140. }
  2141. },
  2142. nextTickResize: function nextTickResize() {
  2143. this.$nextTick(this.resize);
  2144. },
  2145. resize: function resize() {
  2146. if (!this.cancelResizeCheck) {
  2147. if (this.$el && this.$el.clientWidth && this.$el.clientHeight) {
  2148. this.echartsResize();
  2149. }
  2150. } else {
  2151. this.echartsResize();
  2152. }
  2153. },
  2154. echartsResize: function echartsResize() {
  2155. this.echarts && this.echarts.resize();
  2156. },
  2157. optionsHandler: function optionsHandler(options) {
  2158. var _this = this;
  2159. // legend
  2160. if (this.legendPosition && options.legend) {
  2161. options.legend[this.legendPosition] = 10;
  2162. if (~['left', 'right'].indexOf(this.legendPosition)) {
  2163. options.legend.top = 'middle';
  2164. options.legend.orient = 'vertical';
  2165. }
  2166. }
  2167. // color
  2168. options.color = this.chartColor;
  2169. // echarts self settings
  2170. constants["c" /* ECHARTS_SETTINGS */].forEach(function (setting) {
  2171. if (_this[setting]) options[setting] = _this[setting];
  2172. });
  2173. // animation
  2174. if (this.animation) animation(options, this.animation);
  2175. // marks
  2176. if (this.markArea || this.markLine || this.markPoint) {
  2177. var marks = {
  2178. markArea: this.markArea,
  2179. markLine: this.markLine,
  2180. markPoint: this.markPoint
  2181. };
  2182. var series = options.series;
  2183. if (Object(external_utils_lite_["isArray"])(series)) {
  2184. series.forEach(function (item) {
  2185. mark(item, marks);
  2186. });
  2187. } else if (Object(external_utils_lite_["isObject"])(series)) {
  2188. mark(series, marks);
  2189. }
  2190. }
  2191. // change inited echarts settings
  2192. if (this.extend) modules_extend(options, this.extend);
  2193. if (this.afterConfig) options = this.afterConfig(options);
  2194. var setOptionOpts = this.setOptionOpts;
  2195. // map chart not merge
  2196. if ((this.settings.bmap || this.settings.amap) && !Object(external_utils_lite_["isObject"])(setOptionOpts)) {
  2197. setOptionOpts = false;
  2198. }
  2199. // exclude unchange options
  2200. if (this.notSetUnchange && this.notSetUnchange.length) {
  2201. this.notSetUnchange.forEach(function (item) {
  2202. var value = options[item];
  2203. if (value) {
  2204. if (Object(external_utils_lite_["isEqual"])(value, _this._store[item])) {
  2205. options[item] = undefined;
  2206. } else {
  2207. _this._store[item] = Object(external_utils_lite_["cloneDeep"])(value);
  2208. }
  2209. }
  2210. });
  2211. if (Object(external_utils_lite_["isObject"])(setOptionOpts)) {
  2212. setOptionOpts.notMerge = false;
  2213. } else {
  2214. setOptionOpts = false;
  2215. }
  2216. }
  2217. if (this._isDestroyed) return;
  2218. if (this.log) console.log(options);
  2219. console.log('options------->', options);
  2220. console.log('setOptions----->', setOptionOpts);
  2221. // 设置一些基本参数
  2222. options.legend.textStyle = {
  2223. color: '#FFF'
  2224. };
  2225. this.echarts.setOption(options, setOptionOpts);
  2226. this.$emit('ready', this.echarts, options, echarts_default.a);
  2227. if (!this._once['ready-once']) {
  2228. this._once['ready-once'] = true;
  2229. this.$emit('ready-once', this.echarts, options, echarts_default.a);
  2230. }
  2231. if (this.judgeWidth) this.judgeWidthHandler(options);
  2232. if (this.afterSetOption) this.afterSetOption(this.echarts, options, echarts_default.a);
  2233. if (this.afterSetOptionOnce && !this._once['afterSetOptionOnce']) {
  2234. this._once['afterSetOptionOnce'] = true;
  2235. this.afterSetOptionOnce(this.echarts, options, echarts_default.a);
  2236. }
  2237. },
  2238. judgeWidthHandler: function judgeWidthHandler(options) {
  2239. var _this2 = this;
  2240. var widthChangeDelay = this.widthChangeDelay,
  2241. resize = this.resize;
  2242. if (this.$el.clientWidth || this.$el.clientHeight) {
  2243. resize();
  2244. } else {
  2245. this.$nextTick(function (_) {
  2246. if (_this2.$el.clientWidth || _this2.$el.clientHeight) {
  2247. resize();
  2248. } else {
  2249. setTimeout(function (_) {
  2250. resize();
  2251. if (!_this2.$el.clientWidth || !_this2.$el.clientHeight) {
  2252. console.warn(' Can\'t get dom width or height ');
  2253. }
  2254. }, widthChangeDelay);
  2255. }
  2256. });
  2257. }
  2258. },
  2259. resizeableHandler: function resizeableHandler(resizeable) {
  2260. if (resizeable && !this._once.onresize) this.addResizeListener();
  2261. if (!resizeable && this._once.onresize) this.removeResizeListener();
  2262. },
  2263. init: function init() {
  2264. if (this.echarts) return;
  2265. var themeName = this.themeName || this.theme || constants["b" /* DEFAULT_THEME */];
  2266. this.echarts = echarts_default.a.init(this.$refs.canvas, themeName, this.initOptions);
  2267. if (this.data) this.changeHandler();
  2268. this.createEventProxy();
  2269. if (this.resizeable) this.addResizeListener();
  2270. },
  2271. addResizeListener: function addResizeListener() {
  2272. window.addEventListener('resize', this.resizeHandler);
  2273. this._once.onresize = true;
  2274. },
  2275. removeResizeListener: function removeResizeListener() {
  2276. window.removeEventListener('resize', this.resizeHandler);
  2277. this._once.onresize = false;
  2278. },
  2279. addWatchToProps: function addWatchToProps() {
  2280. var _this3 = this;
  2281. var watchedVariable = this._watchers.map(function (watcher) {
  2282. return watcher.expression;
  2283. });
  2284. Object.keys(this.$props).forEach(function (prop) {
  2285. if (!~watchedVariable.indexOf(prop) && !~constants["f" /* STATIC_PROPS */].indexOf(prop)) {
  2286. var opts = {};
  2287. if (~['[object Object]', '[object Array]'].indexOf(Object(external_utils_lite_["getType"])(_this3.$props[prop]))) {
  2288. opts.deep = true;
  2289. }
  2290. _this3.$watch(prop, function () {
  2291. _this3.changeHandler();
  2292. }, opts);
  2293. }
  2294. });
  2295. },
  2296. createEventProxy: function createEventProxy() {
  2297. var _this4 = this;
  2298. // 只要用户使用 on 方法绑定的事件都做一层代理,
  2299. // 是否真正执行相应的事件方法取决于该方法是否仍然存在 events 中
  2300. // 实现 events 的动态响应
  2301. var self = this;
  2302. var keys = Object.keys(this.events || {});
  2303. keys.length && keys.forEach(function (ev) {
  2304. if (_this4.registeredEvents.indexOf(ev) === -1) {
  2305. _this4.registeredEvents.push(ev);
  2306. _this4.echarts.on(ev, function (ev) {
  2307. return function () {
  2308. if (ev in self.events) {
  2309. for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
  2310. args[_key] = arguments[_key];
  2311. }
  2312. self.events[ev].apply(null, args);
  2313. }
  2314. };
  2315. }(ev));
  2316. }
  2317. });
  2318. },
  2319. themeChange: function themeChange(theme) {
  2320. this.clean();
  2321. this.echarts = null;
  2322. this.init();
  2323. },
  2324. clean: function clean() {
  2325. if (this.resizeable) this.removeResizeListener();
  2326. this.echarts.dispose();
  2327. }
  2328. },
  2329. created: function created() {
  2330. this.echarts = null;
  2331. this.registeredEvents = [];
  2332. this._once = {};
  2333. this._store = {};
  2334. this.resizeHandler = Object(external_utils_lite_["debounce"])(this.resize, this.resizeDelay);
  2335. this.changeHandler = Object(external_utils_lite_["debounce"])(this.dataHandler, this.changeDelay);
  2336. this.addWatchToProps();
  2337. },
  2338. mounted: function mounted() {
  2339. this.init();
  2340. },
  2341. beforeDestroy: function beforeDestroy() {
  2342. this.clean();
  2343. },
  2344. _numerify: external_numerify_default.a
  2345. });
  2346. /***/ }),
  2347. /***/ 5:
  2348. /***/ (function(module, exports, __webpack_require__) {
  2349. "use strict";
  2350. /*
  2351. MIT License http://www.opensource.org/licenses/mit-license.php
  2352. Author Tobias Koppers @sokra
  2353. */
  2354. // css base code, injected by the css-loader
  2355. module.exports = function (useSourceMap) {
  2356. var list = []; // return the list of modules as css string
  2357. list.toString = function toString() {
  2358. return this.map(function (item) {
  2359. var content = cssWithMappingToString(item, useSourceMap);
  2360. if (item[2]) {
  2361. return '@media ' + item[2] + '{' + content + '}';
  2362. } else {
  2363. return content;
  2364. }
  2365. }).join('');
  2366. }; // import a list of modules into the list
  2367. list.i = function (modules, mediaQuery) {
  2368. if (typeof modules === 'string') {
  2369. modules = [[null, modules, '']];
  2370. }
  2371. var alreadyImportedModules = {};
  2372. for (var i = 0; i < this.length; i++) {
  2373. var id = this[i][0];
  2374. if (id != null) {
  2375. alreadyImportedModules[id] = true;
  2376. }
  2377. }
  2378. for (i = 0; i < modules.length; i++) {
  2379. var item = modules[i]; // skip already imported module
  2380. // this implementation is not 100% perfect for weird media query combinations
  2381. // when a module is imported multiple times with different media queries.
  2382. // I hope this will never occur (Hey this way we have smaller bundles)
  2383. if (item[0] == null || !alreadyImportedModules[item[0]]) {
  2384. if (mediaQuery && !item[2]) {
  2385. item[2] = mediaQuery;
  2386. } else if (mediaQuery) {
  2387. item[2] = '(' + item[2] + ') and (' + mediaQuery + ')';
  2388. }
  2389. list.push(item);
  2390. }
  2391. }
  2392. };
  2393. return list;
  2394. };
  2395. function cssWithMappingToString(item, useSourceMap) {
  2396. var content = item[1] || '';
  2397. var cssMapping = item[3];
  2398. if (!cssMapping) {
  2399. return content;
  2400. }
  2401. if (useSourceMap && typeof btoa === 'function') {
  2402. var sourceMapping = toComment(cssMapping);
  2403. var sourceURLs = cssMapping.sources.map(function (source) {
  2404. return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */';
  2405. });
  2406. return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
  2407. }
  2408. return [content].join('\n');
  2409. } // Adapted from convert-source-map (MIT)
  2410. function toComment(sourceMap) {
  2411. // eslint-disable-next-line no-undef
  2412. var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
  2413. var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
  2414. return '/*# ' + data + ' */';
  2415. }
  2416. /***/ }),
  2417. /***/ 54:
  2418. /***/ (function(module, exports) {
  2419. module.exports = require("echarts/lib/component/tooltip");
  2420. /***/ }),
  2421. /***/ 55:
  2422. /***/ (function(module, exports) {
  2423. module.exports = require("echarts/lib/component/legend");
  2424. /***/ }),
  2425. /***/ 56:
  2426. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2427. "use strict";
  2428. /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_loading_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39);
  2429. /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_loading_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_loading_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  2430. /* unused harmony reexport * */
  2431. /***/ }),
  2432. /***/ 57:
  2433. /***/ (function(module, exports, __webpack_require__) {
  2434. exports = module.exports = __webpack_require__(5)(false);
  2435. // Module
  2436. exports.push([module.i, "\n.v-charts-component-loading {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, .9);\n}\n.v-charts-mask-status {\n filter: blur(1px);\n}\n.v-charts-component-loading .circular {\n width: 42px;\n height: 42px;\n animation: loading-rotate 2s linear infinite;\n}\n.v-charts-component-loading .path {\n animation: loading-dash 1.5s ease-in-out infinite;\n stroke-dasharray: 90,150;\n stroke-dashoffset: 0;\n stroke-width: 2;\n stroke: #20a0ff;\n stroke-linecap: round;\n}\n@keyframes loading-rotate {\n100% {\n transform: rotate(360deg);\n}\n}\n@keyframes loading-dash {\n0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n}\n50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -40px;\n}\n100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -120px;\n}\n}\n", ""]);
  2437. /***/ }),
  2438. /***/ 58:
  2439. /***/ (function(module, __webpack_exports__, __webpack_require__) {
  2440. "use strict";
  2441. /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_data_empty_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40);
  2442. /* harmony import */ var _node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_data_empty_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_index_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_data_empty_vue_vue_type_style_index_0_lang_css___WEBPACK_IMPORTED_MODULE_0__);
  2443. /* unused harmony reexport * */
  2444. /***/ }),
  2445. /***/ 59:
  2446. /***/ (function(module, exports, __webpack_require__) {
  2447. exports = module.exports = __webpack_require__(5)(false);
  2448. // Module
  2449. exports.push([module.i, "\n.v-charts-data-empty {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, .9);\n color: #888;\n font-size: 14px;\n}\n", ""]);
  2450. /***/ }),
  2451. /***/ 6:
  2452. /***/ (function(module, exports, __webpack_require__) {
  2453. /*
  2454. MIT License http://www.opensource.org/licenses/mit-license.php
  2455. Author Tobias Koppers @sokra
  2456. */
  2457. var stylesInDom = {};
  2458. var memoize = function (fn) {
  2459. var memo;
  2460. return function () {
  2461. if (typeof memo === "undefined") memo = fn.apply(this, arguments);
  2462. return memo;
  2463. };
  2464. };
  2465. var isOldIE = memoize(function () {
  2466. // Test for IE <= 9 as proposed by Browserhacks
  2467. // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
  2468. // Tests for existence of standard globals is to allow style-loader
  2469. // to operate correctly into non-standard environments
  2470. // @see https://github.com/webpack-contrib/style-loader/issues/177
  2471. return window && document && document.all && !window.atob;
  2472. });
  2473. var getTarget = function (target, parent) {
  2474. if (parent){
  2475. return parent.querySelector(target);
  2476. }
  2477. return document.querySelector(target);
  2478. };
  2479. var getElement = (function (fn) {
  2480. var memo = {};
  2481. return function(target, parent) {
  2482. // If passing function in options, then use it for resolve "head" element.
  2483. // Useful for Shadow Root style i.e
  2484. // {
  2485. // insertInto: function () { return document.querySelector("#foo").shadowRoot }
  2486. // }
  2487. if (typeof target === 'function') {
  2488. return target();
  2489. }
  2490. if (typeof memo[target] === "undefined") {
  2491. var styleTarget = getTarget.call(this, target, parent);
  2492. // Special case to return head of iframe instead of iframe itself
  2493. if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
  2494. try {
  2495. // This will throw an exception if access to iframe is blocked
  2496. // due to cross-origin restrictions
  2497. styleTarget = styleTarget.contentDocument.head;
  2498. } catch(e) {
  2499. styleTarget = null;
  2500. }
  2501. }
  2502. memo[target] = styleTarget;
  2503. }
  2504. return memo[target]
  2505. };
  2506. })();
  2507. var singleton = null;
  2508. var singletonCounter = 0;
  2509. var stylesInsertedAtTop = [];
  2510. var fixUrls = __webpack_require__(12);
  2511. module.exports = function(list, options) {
  2512. if (typeof DEBUG !== "undefined" && DEBUG) {
  2513. if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment");
  2514. }
  2515. options = options || {};
  2516. options.attrs = typeof options.attrs === "object" ? options.attrs : {};
  2517. // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>
  2518. // tags it will allow on a page
  2519. if (!options.singleton && typeof options.singleton !== "boolean") options.singleton = isOldIE();
  2520. // By default, add <style> tags to the <head> element
  2521. if (!options.insertInto) options.insertInto = "head";
  2522. // By default, add <style> tags to the bottom of the target
  2523. if (!options.insertAt) options.insertAt = "bottom";
  2524. var styles = listToStyles(list, options);
  2525. addStylesToDom(styles, options);
  2526. return function update (newList) {
  2527. var mayRemove = [];
  2528. for (var i = 0; i < styles.length; i++) {
  2529. var item = styles[i];
  2530. var domStyle = stylesInDom[item.id];
  2531. domStyle.refs--;
  2532. mayRemove.push(domStyle);
  2533. }
  2534. if(newList) {
  2535. var newStyles = listToStyles(newList, options);
  2536. addStylesToDom(newStyles, options);
  2537. }
  2538. for (var i = 0; i < mayRemove.length; i++) {
  2539. var domStyle = mayRemove[i];
  2540. if(domStyle.refs === 0) {
  2541. for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
  2542. delete stylesInDom[domStyle.id];
  2543. }
  2544. }
  2545. };
  2546. };
  2547. function addStylesToDom (styles, options) {
  2548. for (var i = 0; i < styles.length; i++) {
  2549. var item = styles[i];
  2550. var domStyle = stylesInDom[item.id];
  2551. if(domStyle) {
  2552. domStyle.refs++;
  2553. for(var j = 0; j < domStyle.parts.length; j++) {
  2554. domStyle.parts[j](item.parts[j]);
  2555. }
  2556. for(; j < item.parts.length; j++) {
  2557. domStyle.parts.push(addStyle(item.parts[j], options));
  2558. }
  2559. } else {
  2560. var parts = [];
  2561. for(var j = 0; j < item.parts.length; j++) {
  2562. parts.push(addStyle(item.parts[j], options));
  2563. }
  2564. stylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};
  2565. }
  2566. }
  2567. }
  2568. function listToStyles (list, options) {
  2569. var styles = [];
  2570. var newStyles = {};
  2571. for (var i = 0; i < list.length; i++) {
  2572. var item = list[i];
  2573. var id = options.base ? item[0] + options.base : item[0];
  2574. var css = item[1];
  2575. var media = item[2];
  2576. var sourceMap = item[3];
  2577. var part = {css: css, media: media, sourceMap: sourceMap};
  2578. if(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});
  2579. else newStyles[id].parts.push(part);
  2580. }
  2581. return styles;
  2582. }
  2583. function insertStyleElement (options, style) {
  2584. var target = getElement(options.insertInto)
  2585. if (!target) {
  2586. throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
  2587. }
  2588. var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
  2589. if (options.insertAt === "top") {
  2590. if (!lastStyleElementInsertedAtTop) {
  2591. target.insertBefore(style, target.firstChild);
  2592. } else if (lastStyleElementInsertedAtTop.nextSibling) {
  2593. target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);
  2594. } else {
  2595. target.appendChild(style);
  2596. }
  2597. stylesInsertedAtTop.push(style);
  2598. } else if (options.insertAt === "bottom") {
  2599. target.appendChild(style);
  2600. } else if (typeof options.insertAt === "object" && options.insertAt.before) {
  2601. var nextSibling = getElement(options.insertAt.before, target);
  2602. target.insertBefore(style, nextSibling);
  2603. } else {
  2604. throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
  2605. }
  2606. }
  2607. function removeStyleElement (style) {
  2608. if (style.parentNode === null) return false;
  2609. style.parentNode.removeChild(style);
  2610. var idx = stylesInsertedAtTop.indexOf(style);
  2611. if(idx >= 0) {
  2612. stylesInsertedAtTop.splice(idx, 1);
  2613. }
  2614. }
  2615. function createStyleElement (options) {
  2616. var style = document.createElement("style");
  2617. if(options.attrs.type === undefined) {
  2618. options.attrs.type = "text/css";
  2619. }
  2620. if(options.attrs.nonce === undefined) {
  2621. var nonce = getNonce();
  2622. if (nonce) {
  2623. options.attrs.nonce = nonce;
  2624. }
  2625. }
  2626. addAttrs(style, options.attrs);
  2627. insertStyleElement(options, style);
  2628. return style;
  2629. }
  2630. function createLinkElement (options) {
  2631. var link = document.createElement("link");
  2632. if(options.attrs.type === undefined) {
  2633. options.attrs.type = "text/css";
  2634. }
  2635. options.attrs.rel = "stylesheet";
  2636. addAttrs(link, options.attrs);
  2637. insertStyleElement(options, link);
  2638. return link;
  2639. }
  2640. function addAttrs (el, attrs) {
  2641. Object.keys(attrs).forEach(function (key) {
  2642. el.setAttribute(key, attrs[key]);
  2643. });
  2644. }
  2645. function getNonce() {
  2646. if (false) {}
  2647. return __webpack_require__.nc;
  2648. }
  2649. function addStyle (obj, options) {
  2650. var style, update, remove, result;
  2651. // If a transform function was defined, run it on the css
  2652. if (options.transform && obj.css) {
  2653. result = typeof options.transform === 'function'
  2654. ? options.transform(obj.css)
  2655. : options.transform.default(obj.css);
  2656. if (result) {
  2657. // If transform returns a value, use that instead of the original css.
  2658. // This allows running runtime transformations on the css.
  2659. obj.css = result;
  2660. } else {
  2661. // If the transform function returns a falsy value, don't add this css.
  2662. // This allows conditional loading of css
  2663. return function() {
  2664. // noop
  2665. };
  2666. }
  2667. }
  2668. if (options.singleton) {
  2669. var styleIndex = singletonCounter++;
  2670. style = singleton || (singleton = createStyleElement(options));
  2671. update = applyToSingletonTag.bind(null, style, styleIndex, false);
  2672. remove = applyToSingletonTag.bind(null, style, styleIndex, true);
  2673. } else if (
  2674. obj.sourceMap &&
  2675. typeof URL === "function" &&
  2676. typeof URL.createObjectURL === "function" &&
  2677. typeof URL.revokeObjectURL === "function" &&
  2678. typeof Blob === "function" &&
  2679. typeof btoa === "function"
  2680. ) {
  2681. style = createLinkElement(options);
  2682. update = updateLink.bind(null, style, options);
  2683. remove = function () {
  2684. removeStyleElement(style);
  2685. if(style.href) URL.revokeObjectURL(style.href);
  2686. };
  2687. } else {
  2688. style = createStyleElement(options);
  2689. update = applyToTag.bind(null, style);
  2690. remove = function () {
  2691. removeStyleElement(style);
  2692. };
  2693. }
  2694. update(obj);
  2695. return function updateStyle (newObj) {
  2696. if (newObj) {
  2697. if (
  2698. newObj.css === obj.css &&
  2699. newObj.media === obj.media &&
  2700. newObj.sourceMap === obj.sourceMap
  2701. ) {
  2702. return;
  2703. }
  2704. update(obj = newObj);
  2705. } else {
  2706. remove();
  2707. }
  2708. };
  2709. }
  2710. var replaceText = (function () {
  2711. var textStore = [];
  2712. return function (index, replacement) {
  2713. textStore[index] = replacement;
  2714. return textStore.filter(Boolean).join('\n');
  2715. };
  2716. })();
  2717. function applyToSingletonTag (style, index, remove, obj) {
  2718. var css = remove ? "" : obj.css;
  2719. if (style.styleSheet) {
  2720. style.styleSheet.cssText = replaceText(index, css);
  2721. } else {
  2722. var cssNode = document.createTextNode(css);
  2723. var childNodes = style.childNodes;
  2724. if (childNodes[index]) style.removeChild(childNodes[index]);
  2725. if (childNodes.length) {
  2726. style.insertBefore(cssNode, childNodes[index]);
  2727. } else {
  2728. style.appendChild(cssNode);
  2729. }
  2730. }
  2731. }
  2732. function applyToTag (style, obj) {
  2733. var css = obj.css;
  2734. var media = obj.media;
  2735. if(media) {
  2736. style.setAttribute("media", media)
  2737. }
  2738. if(style.styleSheet) {
  2739. style.styleSheet.cssText = css;
  2740. } else {
  2741. while(style.firstChild) {
  2742. style.removeChild(style.firstChild);
  2743. }
  2744. style.appendChild(document.createTextNode(css));
  2745. }
  2746. }
  2747. function updateLink (link, options, obj) {
  2748. var css = obj.css;
  2749. var sourceMap = obj.sourceMap;
  2750. /*
  2751. If convertToAbsoluteUrls isn't defined, but sourcemaps are enabled
  2752. and there is no publicPath defined then lets turn convertToAbsoluteUrls
  2753. on by default. Otherwise default to the convertToAbsoluteUrls option
  2754. directly
  2755. */
  2756. var autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;
  2757. if (options.convertToAbsoluteUrls || autoFixUrls) {
  2758. css = fixUrls(css);
  2759. }
  2760. if (sourceMap) {
  2761. // http://stackoverflow.com/a/26603875
  2762. css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */";
  2763. }
  2764. var blob = new Blob([css], { type: "text/css" });
  2765. var oldSrc = link.href;
  2766. link.href = URL.createObjectURL(blob);
  2767. if(oldSrc) URL.revokeObjectURL(oldSrc);
  2768. }
  2769. /***/ })
  2770. /******/ });