suyiScreen/node_modules/.cache/vue-loader/37886d555680b8beb8dca1101b0...

1 line
16 KiB
JSON

{"remainingRequest":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\@jiaminghi\\data-view\\lib\\components\\percentPond\\src\\main.vue?vue&type=script&lang=js&","dependencies":[{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\@jiaminghi\\data-view\\lib\\components\\percentPond\\src\\main.vue","mtime":1670640065294},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1670640066936},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1670640073542},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\babel-loader\\lib\\index.js","mtime":1670640065986},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1670640066936},{"path":"C:\\hjmWeb\\suyiScreen\\suyiScreen\\node_modules\\vue-loader\\lib\\index.js","mtime":1670640074287}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICdAamlhbWluZ2hpL2NoYXJ0cy9saWIvdXRpbC9pbmRleCcNCg0KaW1wb3J0IHsgZGVlcENsb25lIH0gZnJvbSAnQGppYW1pbmdoaS9jLXJlbmRlci9saWIvcGx1Z2luL3V0aWwnDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogJ0R2UGVyY2VudFBvbmQnLA0KICBwcm9wczogew0KICAgIGNvbmZpZzogew0KICAgICAgdHlwZTogT2JqZWN0LA0KICAgICAgZGVmYXVsdDogKCkgPT4gKHt9KQ0KICAgIH0NCiAgfSwNCiAgZGF0YSAoKSB7DQogICAgY29uc3QgdGltZXN0YW1wID0gRGF0ZS5ub3coKQ0KICAgIHJldHVybiB7DQogICAgICBncmFkaWVudElkMTogYHBlcmNlbnQtcG9uZC1ncmFkaWVudElkMS0ke3RpbWVzdGFtcH1gLA0KICAgICAgZ3JhZGllbnRJZDI6IGBwZXJjZW50LXBvbmQtZ3JhZGllbnRJZDItJHt0aW1lc3RhbXB9YCwNCg0KICAgICAgd2lkdGg6IDAsDQogICAgICBoZWlnaHQ6IDAsDQoNCiAgICAgIGRlZmF1bHRDb25maWc6IHsNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBWYWx1ZQ0KICAgICAgICAgKiBAdHlwZSB7TnVtYmVyfQ0KICAgICAgICAgKiBAZGVmYXVsdCB2YWx1ZSA9IDANCiAgICAgICAgICovDQogICAgICAgIHZhbHVlOiAwLA0KICAgICAgICAvKioNCiAgICAgICAgICogQGRlc2NyaXB0aW9uIENvbG9ycyAoaGV4fHJnYnxyZ2JhfGNvbG9yIGtleXdvcmRzKQ0KICAgICAgICAgKiBAdHlwZSB7QXJyYXk8U3RyaW5nPn0NCiAgICAgICAgICogQGRlZmF1bHQgY29sb3JzID0gWycjMDBCQUZGJywgJyMzREU3QzknXQ0KICAgICAgICAgKiBAZXhhbXBsZSBjb2xvcnMgPSBbJyMwMDAnLCAncmdiKDAsIDAsIDApJywgJ3JnYmEoMCwgMCwgMCwgMSknLCAncmVkJ10NCiAgICAgICAgICovDQogICAgICAgIGNvbG9yczogWycjM0RFN0M5JywgJyMwMEJBRkYnXSwNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBCb3JkZXIgd2lkdGgNCiAgICAgICAgICogQHR5cGUge051bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyV2lkdGggPSAzDQogICAgICAgICAqLw0KICAgICAgICBib3JkZXJXaWR0aDogMywNCiAgICAgICAgLyoqDQogICAgICAgICAqIEBkZXNjcmlwdGlvbiBHYXAgYmV0d2VlbiBib3JkZXIgYW5kIHBvbmQNCiAgICAgICAgICogQHR5cGUge051bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyR2FwID0gMw0KICAgICAgICAgKi8NCiAgICAgICAgYm9yZGVyR2FwOiAzLA0KICAgICAgICAvKioNCiAgICAgICAgICogQGRlc2NyaXB0aW9uIExpbmUgZGFzaA0KICAgICAgICAgKiBAdHlwZSB7QXJyYXk8TnVtYmVyPn0NCiAgICAgICAgICogQGRlZmF1bHQgbGluZURhc2ggPSBbNSwgMV0NCiAgICAgICAgICovDQogICAgICAgIGxpbmVEYXNoOiBbNSwgMV0sDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gVGV4dCBjb2xvcg0KICAgICAgICAgKiBAdHlwZSB7U3RyaW5nfQ0KICAgICAgICAgKiBAZGVmYXVsdCB0ZXh0Q29sb3IgPSAnI2ZmZicNCiAgICAgICAgICovDQogICAgICAgIHRleHRDb2xvcjogJyNmZmYnLA0KICAgICAgICAvKioNCiAgICAgICAgICogQGRlc2NyaXB0aW9uIEJvcmRlciByYWRpdXMNCiAgICAgICAgICogQHR5cGUge051bWJlcn0NCiAgICAgICAgICogQGRlZmF1bHQgYm9yZGVyUmFkaXVzID0gNQ0KICAgICAgICAgKi8NCiAgICAgICAgYm9yZGVyUmFkaXVzOiA1LA0KICAgICAgICAvKioNCiAgICAgICAgICogQGRlc2NyaXB0aW9uIExvY2FsIEdyYWRpZW50DQogICAgICAgICAqIEB0eXBlIHtCb29sZWFufQ0KICAgICAgICAgKiBAZGVmYXVsdCBsb2NhbEdyYWRpZW50ID0gZmFsc2UNCiAgICAgICAgICogQGV4YW1wbGUgbG9jYWxHcmFkaWVudCA9IGZhbHNlIHwgdHJ1ZQ0KICAgICAgICAgKi8NCiAgICAgICAgbG9jYWxHcmFkaWVudDogZmFsc2UsDQogICAgICAgIC8qKg0KICAgICAgICAgKiBAZGVzY3JpcHRpb24gRm9ybWF0dGVyDQogICAgICAgICAqIEB0eXBlIHtTdHJpbmd9DQogICAgICAgICAqIEBkZWZhdWx0IGZvcm1hdHRlciA9ICd7dmFsdWV9JScNCiAgICAgICAgICovDQogICAgICAgIGZvcm1hdHRlcjogJ3t2YWx1ZX0lJw0KICAgICAgfSwNCg0KICAgICAgbWVyZ2VkQ29uZmlnOiBudWxsDQogICAgfQ0KICB9LA0KICBjb21wdXRlZDogew0KICAgIHJlY3RXaWR0aCAoKSB7DQogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZywgd2lkdGggfSA9IHRoaXMNCg0KICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAwDQoNCiAgICAgIGNvbnN0IHsgYm9yZGVyV2lkdGggfSA9IG1lcmdlZENvbmZpZw0KDQogICAgICByZXR1cm4gd2lkdGggLSBib3JkZXJXaWR0aA0KICAgIH0sDQogICAgcmVjdEhlaWdodCAoKSB7DQogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZywgaGVpZ2h0IH0gPSB0aGlzDQoNCiAgICAgIGlmICghbWVyZ2VkQ29uZmlnKSByZXR1cm4gMA0KDQogICAgICBjb25zdCB7IGJvcmRlcldpZHRoIH0gPSBtZXJnZWRDb25maWcNCg0KICAgICAgcmV0dXJuIGhlaWdodCAtIGJvcmRlcldpZHRoDQogICAgfSwNCiAgICBwb2ludHMgKCkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIHdpZHRoLCBoZWlnaHQgfSA9IHRoaXMNCg0KICAgICAgY29uc3QgaGFsZkhlaWdodCA9IGhlaWdodCAvIDINCg0KICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiBgMCwgJHtoYWxmSGVpZ2h0fSAwLCAke2hhbGZIZWlnaHR9YA0KDQogICAgICBjb25zdCB7IGJvcmRlcldpZHRoLCBib3JkZXJHYXAsIHZhbHVlIH0gPSBtZXJnZWRDb25maWcNCg0KICAgICAgY29uc3QgcG9seWxpbmVMZW5ndGggPSAod2lkdGggLSAoYm9yZGVyV2lkdGggKyBib3JkZXJHYXApICogMikgLyAxMDAgKiB2YWx1ZQ0KDQogICAgICByZXR1cm4gYA0KICAgICAgICAke2JvcmRlcldpZHRoICsgYm9yZGVyR2FwfSwgJHtoYWxmSGVpZ2h0fQ0KICAgICAgICAke2JvcmRlcldpZHRoICsgYm9yZGVyR2FwICsgcG9seWxpbmVMZW5ndGh9LCAke2hhbGZIZWlnaHQgKyAwLjAwMX0NCiAgICAgIGANCiAgICB9LA0KICAgIHBvbHlsaW5lV2lkdGggKCkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcsIGhlaWdodCB9ID0gdGhpcw0KDQogICAgICBpZiAoIW1lcmdlZENvbmZpZykgcmV0dXJuIDANCg0KICAgICAgY29uc3QgeyBib3JkZXJXaWR0aCwgYm9yZGVyR2FwIH0gPSBtZXJnZWRDb25maWcNCg0KICAgICAgcmV0dXJuIGhlaWdodCAtIChib3JkZXJXaWR0aCArIGJvcmRlckdhcCkgKiAyDQogICAgfSwNCiAgICBsaW5lYXJHcmFkaWVudCAoKSB7DQogICAgICBjb25zdCB7IG1lcmdlZENvbmZpZyB9ID0gdGhpcw0KDQogICAgICBpZiAoIW1lcmdlZENvbmZpZykgcmV0dXJuIFtdDQoNCiAgICAgIGNvbnN0IHsgY29sb3JzIH0gPSBtZXJnZWRDb25maWcNCg0KICAgICAgY29uc3QgY29sb3JOdW0gPSBjb2xvcnMubGVuZ3RoDQoNCiAgICAgIGNvbnN0IGNvbG9yT2Zmc2V0R2FwID0gMTAwIC8gKGNvbG9yTnVtIC0gMSkNCg0KICAgICAgcmV0dXJuIGNvbG9ycy5tYXAoKGMsIGkpID0+IFtjb2xvck9mZnNldEdhcCAqIGksIGNdKQ0KICAgIH0sDQogICAgcG9seWxpbmVHcmFkaWVudCAoKSB7DQogICAgICBjb25zdCB7IGdyYWRpZW50SWQxLCBncmFkaWVudElkMiwgbWVyZ2VkQ29uZmlnIH0gPSB0aGlzDQoNCiAgICAgIGlmICghbWVyZ2VkQ29uZmlnKSByZXR1cm4gZ3JhZGllbnRJZDINCg0KICAgICAgaWYgKG1lcmdlZENvbmZpZy5sb2NhbEdyYWRpZW50KSByZXR1cm4gZ3JhZGllbnRJZDENCg0KICAgICAgcmV0dXJuIGdyYWRpZW50SWQyDQogICAgfSwNCiAgICBncmFkaWVudDJYUG9zICgpIHsNCiAgICAgIGNvbnN0IHsgbWVyZ2VkQ29uZmlnIH0gPSB0aGlzDQoNCiAgICAgIGlmICghbWVyZ2VkQ29uZmlnKSByZXR1cm4gJzEwMCUnDQoNCiAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IG1lcmdlZENvbmZpZw0KDQogICAgICByZXR1cm4gYCR7MjAwIC0gdmFsdWV9JWANCiAgICB9LA0KICAgIGRldGFpbHMgKCkgew0KICAgICAgY29uc3QgeyBtZXJnZWRDb25maWcgfSA9IHRoaXMNCg0KICAgICAgaWYgKCFtZXJnZWRDb25maWcpIHJldHVybiAnJw0KDQogICAgICBjb25zdCB7IHZhbHVlLCBmb3JtYXR0ZXIgfSA9IG1lcmdlZENvbmZpZw0KDQogICAgICByZXR1cm4gZm9ybWF0dGVyLnJlcGxhY2UoJ3t2YWx1ZX0nLCB2YWx1ZSkNCiAgICB9DQogIH0sDQogIHdhdGNoOiB7DQogICAgY29uZmlnICgpIHsNCiAgICAgIGNvbnN0IHsgbWVyZ2VDb25maWcgfSA9IHRoaXMNCg0KICAgICAgbWVyZ2VDb25maWcoKQ0KICAgIH0NCiAgfSwNCiAgbWV0aG9kczogew0KICAgIGFzeW5jIGluaXQgKCkgew0KICAgICAgY29uc3QgeyBpbml0V0gsIGNvbmZpZywgbWVyZ2VDb25maWcgfSA9IHRoaXMNCg0KICAgICAgYXdhaXQgaW5pdFdIKCkNCg0KICAgICAgaWYgKCFjb25maWcpIHJldHVybg0KDQogICAgICBtZXJnZUNvbmZpZygpDQogICAgfSwNCiAgICBhc3luYyBpbml0V0ggKCkgew0KICAgICAgY29uc3QgeyAkbmV4dFRpY2ssICRyZWZzIH0gPSB0aGlzDQoNCiAgICAgIGF3YWl0ICRuZXh0VGljaygpDQoNCiAgICAgIGNvbnN0IGRvbSA9ICRyZWZzWydwZXJjZW50LXBvbmQnXQ0KDQogICAgICB0aGlzLndpZHRoID0gZG9tLmNsaWVudFdpZHRoDQogICAgICB0aGlzLmhlaWdodCA9IGRvbS5jbGllbnRIZWlnaHQNCiAgICB9LA0KICAgIG1lcmdlQ29uZmlnICgpIHsNCiAgICAgIGNvbnN0IHsgY29uZmlnLCBkZWZhdWx0Q29uZmlnIH0gPSB0aGlzDQoNCiAgICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gZGVlcE1lcmdlKGRlZXBDbG9uZShkZWZhdWx0Q29uZmlnLCB0cnVlKSwgY29uZmlnIHx8IHt9KQ0KICAgIH0NCiAgfSwNCiAgbW91bnRlZCAoKSB7DQogICAgY29uc3QgeyBpbml0IH0gPSB0aGlzDQoNCiAgICBpbml0KCkNCiAgfQ0KfQ0K"},{"version":3,"sources":["main.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA","file":"main.vue","sourceRoot":"node_modules/@jiaminghi/data-view/lib/components/percentPond/src","sourcesContent":["<template>\r\n <div class=\"dv-percent-pond\" ref=\"percent-pond\">\r\n <svg>\r\n <defs>\r\n <linearGradient :id=\"gradientId1\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\r\n <stop v-for=\"lc in linearGradient\" :key=\"lc[0]\"\r\n :offset=\"`${lc[0]}%`\"\r\n :stop-color=\"lc[1]\" />\r\n </linearGradient>\r\n\r\n <linearGradient :id=\"gradientId2\" x1=\"0%\" y1=\"0%\" :x2=\"gradient2XPos\" y2=\"0%\">\r\n <stop v-for=\"lc in linearGradient\" :key=\"lc[0]\"\r\n :offset=\"`${lc[0]}%`\"\r\n :stop-color=\"lc[1]\" />\r\n </linearGradient>\r\n </defs>\r\n <rect\r\n :x=\"mergedConfig ? mergedConfig.borderWidth / 2 : '0'\"\r\n :y=\"mergedConfig ? mergedConfig.borderWidth / 2 : '0'\"\r\n :rx=\"mergedConfig ? mergedConfig.borderRadius : '0'\"\r\n :ry=\"mergedConfig ? mergedConfig.borderRadius : '0'\"\r\n fill=\"transparent\"\r\n :stroke-width=\"mergedConfig ? mergedConfig.borderWidth : '0'\"\r\n :stroke=\"`url(#${gradientId1})`\"\r\n :width=\"rectWidth > 0 ? rectWidth : 0\"\r\n :height=\"rectHeight > 0 ? rectHeight : 0\"\r\n />\r\n <polyline\r\n :stroke-width=\"polylineWidth\"\r\n :stroke-dasharray=\"mergedConfig ? mergedConfig.lineDash.join(',') : '0'\"\r\n :stroke=\"`url(#${polylineGradient})`\"\r\n :points=\"points\"\r\n />\r\n <text\r\n :stroke=\"mergedConfig ? mergedConfig.textColor : '#fff'\"\r\n :fill=\"mergedConfig ? mergedConfig.textColor : '#fff'\"\r\n :x=\"width / 2\"\r\n :y=\"height / 2\"\r\n >\r\n {{ details }}\r\n </text>\r\n </svg>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { deepMerge } from '@jiaminghi/charts/lib/util/index'\r\n\r\nimport { deepClone } from '@jiaminghi/c-render/lib/plugin/util'\r\n\r\nexport default {\r\n name: 'DvPercentPond',\r\n props: {\r\n config: {\r\n type: Object,\r\n default: () => ({})\r\n }\r\n },\r\n data () {\r\n const timestamp = Date.now()\r\n return {\r\n gradientId1: `percent-pond-gradientId1-${timestamp}`,\r\n gradientId2: `percent-pond-gradientId2-${timestamp}`,\r\n\r\n width: 0,\r\n height: 0,\r\n\r\n defaultConfig: {\r\n /**\r\n * @description Value\r\n * @type {Number}\r\n * @default value = 0\r\n */\r\n value: 0,\r\n /**\r\n * @description Colors (hex|rgb|rgba|color keywords)\r\n * @type {Array<String>}\r\n * @default colors = ['#00BAFF', '#3DE7C9']\r\n * @example colors = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']\r\n */\r\n colors: ['#3DE7C9', '#00BAFF'],\r\n /**\r\n * @description Border width\r\n * @type {Number}\r\n * @default borderWidth = 3\r\n */\r\n borderWidth: 3,\r\n /**\r\n * @description Gap between border and pond\r\n * @type {Number}\r\n * @default borderGap = 3\r\n */\r\n borderGap: 3,\r\n /**\r\n * @description Line dash\r\n * @type {Array<Number>}\r\n * @default lineDash = [5, 1]\r\n */\r\n lineDash: [5, 1],\r\n /**\r\n * @description Text color\r\n * @type {String}\r\n * @default textColor = '#fff'\r\n */\r\n textColor: '#fff',\r\n /**\r\n * @description Border radius\r\n * @type {Number}\r\n * @default borderRadius = 5\r\n */\r\n borderRadius: 5,\r\n /**\r\n * @description Local Gradient\r\n * @type {Boolean}\r\n * @default localGradient = false\r\n * @example localGradient = false | true\r\n */\r\n localGradient: false,\r\n /**\r\n * @description Formatter\r\n * @type {String}\r\n * @default formatter = '{value}%'\r\n */\r\n formatter: '{value}%'\r\n },\r\n\r\n mergedConfig: null\r\n }\r\n },\r\n computed: {\r\n rectWidth () {\r\n const { mergedConfig, width } = this\r\n\r\n if (!mergedConfig) return 0\r\n\r\n const { borderWidth } = mergedConfig\r\n\r\n return width - borderWidth\r\n },\r\n rectHeight () {\r\n const { mergedConfig, height } = this\r\n\r\n if (!mergedConfig) return 0\r\n\r\n const { borderWidth } = mergedConfig\r\n\r\n return height - borderWidth\r\n },\r\n points () {\r\n const { mergedConfig, width, height } = this\r\n\r\n const halfHeight = height / 2\r\n\r\n if (!mergedConfig) return `0, ${halfHeight} 0, ${halfHeight}`\r\n\r\n const { borderWidth, borderGap, value } = mergedConfig\r\n\r\n const polylineLength = (width - (borderWidth + borderGap) * 2) / 100 * value\r\n\r\n return `\r\n ${borderWidth + borderGap}, ${halfHeight}\r\n ${borderWidth + borderGap + polylineLength}, ${halfHeight + 0.001}\r\n `\r\n },\r\n polylineWidth () {\r\n const { mergedConfig, height } = this\r\n\r\n if (!mergedConfig) return 0\r\n\r\n const { borderWidth, borderGap } = mergedConfig\r\n\r\n return height - (borderWidth + borderGap) * 2\r\n },\r\n linearGradient () {\r\n const { mergedConfig } = this\r\n\r\n if (!mergedConfig) return []\r\n\r\n const { colors } = mergedConfig\r\n\r\n const colorNum = colors.length\r\n\r\n const colorOffsetGap = 100 / (colorNum - 1)\r\n\r\n return colors.map((c, i) => [colorOffsetGap * i, c])\r\n },\r\n polylineGradient () {\r\n const { gradientId1, gradientId2, mergedConfig } = this\r\n\r\n if (!mergedConfig) return gradientId2\r\n\r\n if (mergedConfig.localGradient) return gradientId1\r\n\r\n return gradientId2\r\n },\r\n gradient2XPos () {\r\n const { mergedConfig } = this\r\n\r\n if (!mergedConfig) return '100%'\r\n\r\n const { value } = mergedConfig\r\n\r\n return `${200 - value}%`\r\n },\r\n details () {\r\n const { mergedConfig } = this\r\n\r\n if (!mergedConfig) return ''\r\n\r\n const { value, formatter } = mergedConfig\r\n\r\n return formatter.replace('{value}', value)\r\n }\r\n },\r\n watch: {\r\n config () {\r\n const { mergeConfig } = this\r\n\r\n mergeConfig()\r\n }\r\n },\r\n methods: {\r\n async init () {\r\n const { initWH, config, mergeConfig } = this\r\n\r\n await initWH()\r\n\r\n if (!config) return\r\n\r\n mergeConfig()\r\n },\r\n async initWH () {\r\n const { $nextTick, $refs } = this\r\n\r\n await $nextTick()\r\n\r\n const dom = $refs['percent-pond']\r\n\r\n this.width = dom.clientWidth\r\n this.height = dom.clientHeight\r\n },\r\n mergeConfig () {\r\n const { config, defaultConfig } = this\r\n\r\n this.mergedConfig = deepMerge(deepClone(defaultConfig, true), config || {})\r\n }\r\n },\r\n mounted () {\r\n const { init } = this\r\n\r\n init()\r\n }\r\n}\r\n</script>"]}]}