物管理前端
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.

567 lines
46 KiB

  1. const e="aaa9be68-db1f-4bd3-8812-2ba0fa7b2cf3",t="custom-3d-piechart",n="3D立体饼图",a='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1697434948946" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10369" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M931.76 423.52l-0.34 121.13-433.37 7.03 0.34-121.13 433.37-7.03z" fill="#CBD0D8" p-id="10370"></path><path d="M498.39 430.55l-0.34 121.13-305.61 177.6 0.34-121.13 305.61-177.6z" fill="#D1D5E0" p-id="10371"></path><path d="M64.78 429.31l-0.34 121.13c-0.18 64.69 42.51 129.48 128 178.84l0.34-121.13C107.3 558.79 64.6 494 64.78 429.31z" fill="#C0C6CE" p-id="10372"></path><path d="M804 253c81.85 47.25 124.45 108.65 127.78 170.57l-433.37 7-305.63 177.58C22.9 510.06 22 351 190.78 252.95S634.1 154.87 804 253z" fill="#E1E4EF" p-id="10373"></path><path d="M959.36 449.41a153 153 0 0 1 0 16.09C955.9 526.72 914 587.29 833.55 634L526 456.44z" fill="#F98282" p-id="10374"></path><path d="M959.56 457.74q0 3.88-0.22 7.76-0.15 2.75-0.42 5.5c-0.06 0.6-0.13 1.2-0.2 1.8-0.13 1.23-0.26 2.46-0.43 3.69-0.09 0.72-0.21 1.44-0.32 2.16-0.16 1.11-0.33 2.22-0.51 3.32-0.13 0.77-0.28 1.53-0.42 2.3-0.19 1-0.38 2-0.6 3.06s-0.49 2.23-0.74 3.34c-0.2 0.86-0.39 1.72-0.61 2.58-0.28 1.14-0.6 2.28-0.91 3.42-0.23 0.83-0.44 1.65-0.68 2.48-0.35 1.2-0.73 2.39-1.11 3.59-0.24 0.76-0.47 1.53-0.72 2.29-0.45 1.35-0.93 2.69-1.42 4-0.22 0.61-0.42 1.22-0.65 1.83q-1.12 3-2.36 5.92c-0.19 0.44-0.4 0.89-0.59 1.33-0.66 1.53-1.32 3-2 4.57-0.33 0.72-0.69 1.43-1 2.14-0.6 1.24-1.2 2.49-1.83 3.73-0.4 0.79-0.83 1.58-1.25 2.37-0.61 1.16-1.23 2.32-1.88 3.47-0.43 0.77-0.87 1.54-1.31 2.3q-1.12 2-2.3 3.89-0.7 1.15-1.41 2.29c-0.82 1.32-1.68 2.63-2.54 3.94-0.47 0.71-0.93 1.42-1.4 2.12-1.05 1.55-2.14 3.1-3.25 4.65-0.32 0.44-0.61 0.88-0.93 1.32q-2.16 3-4.47 5.9c-0.29 0.38-0.61 0.75-0.9 1.12q-2.21 2.79-4.56 5.55l-1.61 1.89q-2.4 2.77-4.92 5.52l-0.94 1q-3 3.2-6.14 6.36l-1.74 1.76q-2.51 2.47-5.12 4.92c-0.66 0.61-1.3 1.23-2 1.84-1.06 1-2.14 1.94-3.23 2.9-0.85 0.75-1.69 1.51-2.55 2.26-1.13 1-2.3 2-3.46 2.94-0.85 0.72-1.69 1.44-2.56 2.15-1.24 1-2.5 2-3.77 3-0.83 0.66-1.65 1.33-2.49 2-1.43 1.12-2.89 2.22-4.36 3.33-0.72 0.54-1.41 1.09-2.14 1.63q-3.31 2.46-6.73 4.88l-0.19 0.13q-3.34 2.36-6.79 4.67c-0.78 0.52-1.59 1-2.38 1.56-1.6 1.06-3.21 2.12-4.85 3.17-1 0.61-1.95 1.22-2.92 1.83-1.51 0.94-3 1.89-4.55 2.82-2.2 1.33-4.42 2.66-6.67 4l-0.34 121.13q3-1.76 6-3.56l0.68-0.42c1.52-0.93 3-1.86 4.51-2.8 1-0.62 2-1.23 3-1.85 1.63-1 3.23-2.1 4.83-3.15 0.79-0.52 1.61-1 2.39-1.57q3.51-2.36 6.91-4.75h0.07q3.43-2.42 6.73-4.88c0.74-0.55 1.45-1.11 2.18-1.66 1.45-1.1 2.9-2.19 4.32-3.3 0.85-0.66 1.67-1.33 2.5-2 1.26-1 2.52-2 3.76-3 0.87-0.72 1.71-1.44 2.57-2.16 1.16-1 2.32-2 3.45-2.94 0.87-0.75 1.71-1.51 2.56-2.27 1.08-1 2.16-1.92 3.21-2.89l0.85-0.77c0.39-0.36 0.74-0.72 1.12-1.08q2.61-2.44 5.11-4.91l1.68-1.66q3.15-3.16 6.14-6.36l0.94-1q2.52-2.75 4.92-5.52l1.62-1.89q2.34-2.76 4.55-5.55c0.23-0.29 0.48-0.57 0.7-0.85l0.2-0.27q2.3-2.94 4.47-5.9c0.32-0.44 0.62-0.88 0.93-1.32 1.11-1.55 2.2-3.09 3.26-4.65 0.48-0.7 0.93-1.41 1.4-2.12 0.87-1.31 1.72-2.62 2.54-3.94q0.72-1.14 1.41-2.29 1.18-1.94 2.3-3.89c0.27-0.47 0.56-0.93 0.82-1.4 0.17-0.3 0.32-0.61 0.49-0.91a295.241 295.241 0 0 0 3.13-5.84c0.63-1.24 1.24-2.49 1.84-3.73 0.34-0.71 0.7-1.42 1-2.13 0.71-1.52 1.38-3.05 2-4.58 0.19-0.44 0.39-0.88 0.58-1.32q1.24-3 2.36-5.93l0.06-0.16c0.21-0.55 0.38-1.1 0.58-1.65 0.49-1.35 1-2.69 1.43-4 0.25-0.76 0.48-1.53 0.72-2.29 0.38-1.2 0.76-2.39 1.11-3.59 0.24-0.82 0.46-1.65 0.68-2.48 0.31-1.14 0.62-2.28 0.91-3.42 0.21-0.86 0.41-1.72 0.61-2.58 0.26-1.11 0.51-2.23 0.74-3.35 0.07-0.32 0.15-0.63 0.21-1 0.14-0.7 0.25-1.41 0.39-2.11s0.29-1.53 0.42-2.29c0.19-1.11 0.35-2.22 0.52-3.33 0.11-0.72 0.22-1.44 0.31-2.16 0.16-1.23 0.29-2.46 0.43-3.69 0.06-0.6 0.14-1.2 0.2-1.8q0.26-2.75 0.42-5.5 0.1-1.89 0.16-3.77t0.06-4z" fill="#F7706C" p-id="10375"></path><path d="M833.55 634.03l-0.34 121.13-307.59-177.59 0.34-121.13 307.59 177.59z" fill="#E86262
  2. "nodes": [
  3. {
  4. "id": "6f18dc4b-ebff-47b9-89e3-4ff1d967b64f",
  5. "type": "custom-3d-piechart",
  6. "x": 200,
  7. "y": 200,
  8. "text": {
  9. "value": "",
  10. "x": 200,
  11. "y": 200
  12. },
  13. "properties": {
  14. "id": "6f18dc4b-ebff-47b9-89e3-4ff1d967b64f",
  15. "width": 350,
  16. "height": 200,
  17. "x": 200,
  18. "y": 200,
  19. "rotation": 0,
  20. "opacity": 1,
  21. "codeConfig": "return option;",
  22. "nodeAlias": "3D立体饼图",
  23. "showDefaultValue": false,
  24. "showUnit": false,
  25. "valueColor": "rgba(245, 166, 35, 1)",
  26. "fontSize": 12,
  27. "legendFontColor": "#50e3c2",
  28. "color": "#50e3c2",
  29. "labelTextColor": "#50e3c2",
  30. "itemColors": [
  31. {
  32. "color": "#00B5EC"
  33. },
  34. {
  35. "color": "#F39800"
  36. },
  37. {
  38. "color": "#8FC31F"
  39. },
  40. {
  41. "color": "#F29C9F"
  42. },
  43. {
  44. "color": "#009944"
  45. },
  46. {
  47. "color": "#8A8000"
  48. }
  49. ],
  50. "tooltip": {
  51. "borderColor": "rgba(0, 141, 255, 0.6)",
  52. "backgroundColor": "rgba(70,94,144,0.6)",
  53. "style": {
  54. "color": "rgba(255, 255, 255, 1)"
  55. },
  56. "borderWidth": 1,
  57. "borderRadius": 6
  58. },
  59. "dynamic": {
  60. "normalData": {
  61. "dataPoint": "",
  62. "compareType": "",
  63. "conditionVariables": [],
  64. "defaultValue": "",
  65. "unit": "",
  66. "renderIntervalEnabled": true,
  67. "legendNameType": "attrName",
  68. "dataShowTypes": "oneThingManyAttr"
  69. }
  70. }
  71. }
  72. }
  73. ]
  74. }`,javascript:`const { createApp, createVNode, render } = Vue;
  75. const app = createApp({})
  76. const timeArr = new Array(24).fill('');
  77. const totals = [];
  78. // timeArr.forEach((i, index) => { const t = window.dayjs().hour(index).valueOf(); totals.push({ val: Math.random(1000) * 100, ts: t, attrKey: "A29" }) });
  79. const defaultSocketValue = totals;
  80. let myChart = null;
  81. // 图例格式化
  82. const assembleLegend = (api, thingKey, attrkey, dataShowTypes, legendNameType, datas) => {
  83. if (api) {
  84. const infos = window.totalDeviceInfos[api];
  85. const thing = infos[datas[0].thingCode];
  86. const thingName = thing.entityName;
  87. const attrName = thing.attrs[attrkey].name;
  88. if (dataShowTypes.value === 'oneThingOneAttr') {
  89. switch (legendNameType.value) {
  90. case "thingName":
  91. return thing.entityName;
  92. case "thingCode":
  93. return thingKey;
  94. case "attrName":
  95. return attrName;
  96. case "attrCode":
  97. return attrkey;
  98. case "thingNameAttrName":
  99. return thingName + '-' + attrName;
  100. case "thingCodeAttrCode":
  101. return thingKey + '-' + attrkey;
  102. }
  103. } else if (dataShowTypes.value === 'oneThingManyAttr') {
  104. switch (legendNameType.value) {
  105. case "attrName":
  106. return thing.attrs[attrkey].name;
  107. case "attrCode":
  108. return attrkey;
  109. case "thingNameAttrName":
  110. return thingName + '-' + attrName;
  111. case "thingCodeAttrCode":
  112. return thingKey + '-' + thingKey
  113. }
  114. } else if (dataShowTypes.value === 'manyThingManyAttr') {
  115. switch (legendNameType.value) {
  116. case "thingNameAttrName":
  117. const attrName = thing.attrs[attrKey].name
  118. return thingName + '-' + attrName;
  119. case "thingCodeAttrCode":
  120. return thingKey + '-' + thingKey;
  121. }
  122. } else if (dataShowTypes.value === 'manyThingOneAttr') {
  123. switch (legendNameType.value) {
  124. case "thingName":
  125. return thingName;
  126. case "thingCode":
  127. return thingKey;
  128. case "thingNameAttrName":
  129. const attrName = thing.attrs[attrKey].name
  130. return thingName + '-' + attrName;
  131. case "thingCodeAttrCode":
  132. return thingKey + '-' + thingKey;
  133. }
  134. }
  135. } else {
  136. return attrkey;
  137. }
  138. }
  139. const PieChart3D = {
  140. template: '<div :id="lineId" :style="getStyle" class="highcharts-wrapper pie-3d-container"></div>',
  141. props: {
  142. lineId: {
  143. type: String,
  144. default: ''
  145. },
  146. historyDatas: {
  147. type: Array,
  148. default: () => []
  149. },
  150. width: {
  151. type: Number,
  152. default: 350
  153. },
  154. height: {
  155. type: Number,
  156. default: 150
  157. },
  158. codeConfig: {
  159. type: String,
  160. default: ''
  161. },
  162. legendFontColor: {
  163. type: String,
  164. default: ''
  165. },
  166. labelTextColor: {
  167. type: String,
  168. default: ''
  169. },
  170. dataShowTypes: {
  171. type: String,
  172. default: 'oneThingManyAttr',
  173. },
  174. legendNameType: {
  175. type: String,
  176. default: 'attrName',
  177. },
  178. apiid: {
  179. type: String,
  180. default: '',
  181. },
  182. itemColors: {
  183. type: Array,
  184. default: () =>
  185. [
  186. {
  187. "color":
  188. "#00B5EC"
  189. },
  190. {
  191. "color":
  192. "#F39800"
  193. },
  194. {
  195. "color":
  196. "#8FC31F"
  197. },
  198. {
  199. "color":
  200. "#F29C9F"
  201. },
  202. {
  203. "color":
  204. "#009944"
  205. },
  206. {
  207. "color":
  208. "#8A8000"
  209. }
  210. ]
  211. },
  212. tooltip: {
  213. type: Object,
  214. default: () => ({
  215. backgroundColor: "rgba(70,94,144,0.6)",
  216. borderColor: "rgba(0, 141, 255, 0.6)",
  217. borderRadius: 6,
  218. borderWidth: 1,
  219. style: {
  220. color: "#fff"
  221. }
  222. })
  223. }
  224. },
  225. computed: {
  226. getStyle() {
  227. return {
  228. width: \`\${this.width}px\`,
  229. height: \`\${this.height}px\`
  230. }
  231. }
  232. },
  233. setup(props) {
  234. const { onMounted, nextTick, toRefs, watch } = Vue;
  235. const { historyDatas, codeConfig, apiid, dataShowTypes, legendNameType, tooltip, itemColors } = toRefs(props);
  236. const initChart = (datas) => {
  237. // 基于准备好的dom,初始化echarts实例
  238. const dom = document.getElementById(props.lineId);
  239. if (dom) {
  240. if (myChart) {
  241. myChart.destroy();
  242. myChart = null;
  243. }
  244. if (datas) {
  245. let totalDatas = [];
  246. let totalAmount = 0
  247. if (datas.length > 0) {
  248. const thingGrouped = window._.groupBy(datas, 'thingCode');
  249. for (const thingKey in thingGrouped) {
  250. const attrGrouped = window._.groupBy(thingGrouped[thingKey], 'attrKey')
  251. for (const key in attrGrouped) {
  252. let serieData = attrGrouped[key];
  253. const legendKey = assembleLegend(apiid.value, thingKey, key, dataShowTypes, legendNameType, serieData);
  254. totalDatas.push([legendKey, serieData[0].val]);
  255. totalAmount += serieData[0].val;
  256. }
  257. }
  258. totalDatas = totalDatas.map(i => {
  259. i[1] = Number((i[1] / totalAmount * 100).toFixed(2));
  260. return i;
  261. })
  262. } else {
  263. totalDatas = [
  264. ['Firefox', 45.0],
  265. ['IE', 26.8],
  266. {
  267. name: 'Chrome',
  268. y: 12.8,
  269. sliced: true,
  270. selected: true
  271. },
  272. ['Safari', 8.5],
  273. ['Opera', 6.2],
  274. ['Others', 0.7]
  275. ]
  276. }
  277. // 指定图表的配置项和数据
  278. var option = {
  279. chart: {
  280. accessibility: {
  281. enabled: false
  282. },
  283. reflow: true,
  284. type: "pie",
  285. borderWidth: null,
  286. plotBorderWidth: null,
  287. options3d: {
  288. enabled: true,
  289. alpha: 50,
  290. beta: 0
  291. },
  292. events: {
  293. // load: function () {
  294. // const each = Highcharts.each;
  295. // const points = this.series[0].points;
  296. // each(points, function (p, i) {
  297. // p.graphic.attr({
  298. // translateY: -p.shapeArgs.ran
  299. // });
  300. // p.graphic.side1.attr({
  301. // translateY: -p.shapeArgs.ran
  302. // });
  303. // p.graphic.side2.attr({
  304. // translateY: -p.shapeArgs.ran
  305. // });
  306. // });
  307. // }
  308. },
  309. backgroundColor: null,
  310. marginRight: 130,
  311. marginBottom: 0,
  312. spacingBottom: 0
  313. },
  314. title: {
  315. text: ""
  316. },
  317. exporting: {
  318. enabled: false
  319. },
  320. credits: {
  321. enabled: false
  322. },
  323. tooltip: {
  324. pointFormat: "{series.name}: <b>{point.percentage:.1f}%</b>",
  325. ...tooltip.value
  326. },
  327. plotOptions: {
  328. pie: {
  329. allowPointSelect: true,
  330. cursor: "pointer",
  331. depth: 25,
  332. dataLabels: {
  333. enabled: true,
  334. formatter: function () {
  335. return \`<span style='color: \${props.labelTextColor}'>\${this.point.name}</span>\`;
  336. },
  337. connectorColor: "#02AAD0",
  338. style: {
  339. textOverflow: "ellipsis",
  340. textOutline: "none"
  341. }
  342. },
  343. showInLegend: true,
  344. states: {
  345. hover: {
  346. halo: {
  347. size: 10,
  348. opacity: 0.5,
  349. attributes: {
  350. // fill: "white"
  351. }
  352. }
  353. }
  354. }
  355. }
  356. },
  357. series: [
  358. {
  359. type: "pie",
  360. name: "当月用能占比",
  361. size: "50%",
  362. data: totalDatas
  363. }
  364. ],
  365. legend: {
  366. layout: "vertical",
  367. floating: true,
  368. backgroundColor: "none",
  369. align: "right",
  370. verticalAlign: "top",
  371. x: 10,
  372. y: 45,
  373. itemStyle: { cursor: "pointer", color: props.legendFontColor, textOverflow: "ellipsis", textOutline: "none" },
  374. itemWidth: 70,
  375. itemHoverStyle: { color: "#34dcfc" },
  376. symbolWidth: 12,
  377. symbolHeight: 8,
  378. symbolRadius: 0,
  379. itemMarginBottom: 5,
  380. },
  381. colors: itemColors.value.map( i => i.color)
  382. };
  383. const func = new Function('option', 'datas', codeConfig.value);
  384. const opt = func(window._.cloneDeep(option), datas);
  385. // 使用刚指定的配置项和数据显示图表。
  386. nextTick(() => {
  387. myChart = Highcharts.chart(props.lineId, opt);
  388. })
  389. }
  390. }
  391. }
  392. watch(historyDatas, (val) => {
  393. if (val) {
  394. nextTick(() => {
  395. initChart(val);
  396. })
  397. }
  398. }, {
  399. immediate: true
  400. })
  401. }
  402. }
  403. class Custom3DPieChartNode extends HtmlResize.view {
  404. chartRendered = false
  405. historyDatas = []
  406. oldProperties = {}
  407. setHtml(rootEl) {
  408. if (!rootEl) return;
  409. const { properties, width, height, } = this.props.model;
  410. const { nodeAlias, grid, title, legend, tooltip, xAxis, yAxis, codeConfig, legendFontColor, labelTextColor, apiid, itemColors } = properties;
  411. const { dataShowTypes, legendNameType, } = properties.normalData || {};
  412. const el = document.createElement('div');
  413. rootEl.innerHTML = '';
  414. const instance = createVNode(PieChart3D, {
  415. name: nodeAlias,
  416. lineId: \`line-\${properties.id}\`,
  417. historyDatas: this.historyDatas,
  418. width,
  419. height,
  420. grid, title, legend, tooltip, xAxis, yAxis,
  421. codeConfig,
  422. legendFontColor, labelTextColor,
  423. dataShowTypes, legendNameType, apiid, itemColors
  424. })
  425. instance.appContext = app._context
  426. render(instance, el)
  427. rootEl.appendChild(el);
  428. }
  429. sameProps(properties) {
  430. const isSame = window._.isEqual(this.oldProperties, properties);
  431. if (isSame) return true;
  432. this.oldProperties = properties;
  433. return false
  434. }
  435. filterHistoryData(thingCodeArr, dataPointArr, apiid, renderIntervalEnabled) {
  436. if (dataPointArr && dataPointArr.length > 0) {
  437. let datas = []
  438. if (renderIntervalEnabled) {
  439. datas = window.totalHistoryDatas[apiid];
  440. } else {
  441. if (window.globalDashboardDatas[apiid]) {
  442. datas = window.globalDashboardDatas[apiid].values;
  443. }
  444. }
  445. if (datas && datas.length > 0) {
  446. const gotValues = datas.filter((val) => thingCodeArr.includes(val.thingCode) && dataPointArr.includes(val.attrKey))
  447. this.historyDatas = gotValues
  448. this.chartRendered = true;
  449. }
  450. }
  451. }
  452. // 生命周期 支持重写内容, 但格式需一致
  453. shouldUpdate() {
  454. const { properties } = this.props.model;
  455. const { apiid } = properties;
  456. const { normalData } = properties.dynamic || {};
  457. const { dataPointArr, defaultValue, thingCodeArr } = normalData || {}
  458. if (normalData && !normalData.dataPoint && !normalData.defaultValue) {
  459. this.historyDatas = defaultSocketValue;
  460. return true
  461. } else if (normalData && !normalData.dataPoint && normalData.defaultValue) {
  462. this.historyDatas = JSON.parse(defaultValue);
  463. return true
  464. }
  465. const propertiesBack = window._.cloneDeep(properties);
  466. if (propertiesBack.dynamic.normalData) {
  467. propertiesBack.dynamic.normalData.defaultValue = '';
  468. if (this.sameProps(propertiesBack) && this.chartRendered) {
  469. return false
  470. }
  471. if (dataPointArr && apiid && !this.chartRendered) {
  472. this.filterHistoryData(thingCodeArr, dataPointArr, apiid, normalData.renderIntervalEnabled);
  473. return true;
  474. }
  475. }
  476. return true;
  477. }
  478. updateHtml() {
  479. this.setHtml(this.rootEl);
  480. }
  481. componentDidMount() {
  482. const { properties } = this.props.model;
  483. const { normalData } = properties.dynamic || {};
  484. const { renderInterval, dataPointArr, thingCodeArr } = normalData || {};
  485. if (this.shouldUpdate()) {
  486. this.setHtml(this.rootEl);
  487. }
  488. let inters = parseInt(renderInterval || '300000')
  489. if (normalData && !normalData.renderIntervalEnabled) {
  490. inters = 1000
  491. }
  492. setInterval(() => {
  493. if (window.totalHistoryDatas[properties.apiid]) {
  494. this.filterHistoryData(thingCodeArr, dataPointArr, properties.apiid, normalData.renderIntervalEnabled);
  495. this.setHtml(this.rootEl);
  496. }
  497. }, inters)
  498. // 防止拖动时候频繁渲染图表
  499. this.updateHtmlDebounced = window._.debounce(this.updateHtml.bind(this), 500);
  500. }
  501. componentDidUpdate() {
  502. if (this.shouldUpdate()) {
  503. this.updateHtmlDebounced();
  504. }
  505. }
  506. }
  507. class Custom3DPieChartModel extends HtmlResize.model {
  508. initNodeData(data) {
  509. // 自定义组件,需最开始重置一下text 。
  510. data.text = {
  511. value: "",
  512. x: data.x,
  513. y: data.y,
  514. };
  515. super.initNodeData(data);
  516. const { properties } = this;
  517. this.width = properties.width || 80;
  518. this.height = properties.height || 35;
  519. this.text.editable = false; // 不允许文本被编辑
  520. }
  521. setAttributes() {
  522. // 自定义组件需重置 text
  523. const { x, y, properties } = this;
  524. const { textHorizontalMove = 0, textVerticalMove = 0 } = properties;
  525. this.text = {
  526. ...this.text,
  527. x: x + textHorizontalMove,
  528. y: y + textVerticalMove,
  529. value: "",
  530. }
  531. }
  532. }
  533. lf.register({
  534. type: 'custom-3d-piechart',
  535. view: Custom3DPieChartNode,
  536. model: Custom3DPieChartModel,
  537. })`,css:`.highcharts-wrapper .highcharts-root {\r
  538. stroke: none;\r
  539. }`,fakeData:""},u={id:e,name:t,aliasName:n,image:a,imageType:l,groupName:i,groupType:o,isRemote:!1,isDefault:!0,sectionType:s,config:r,files:d};export{n as aliasName,r as config,u as default,d as files,i as groupName,o as groupType,e as id,a as image,l as imageType,p as isDefault,c as isRemote,t as name,s as sectionType};