bbj-screen-widget 2.4.60 → 2.4.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/core/package.json +2 -10
  2. package/core/src/service/baidu-map.service.ts +107 -0
  3. package/karma.conf.js +32 -0
  4. package/ng-package.json +59 -0
  5. package/package.json +4 -13
  6. package/src/lib/announcement/announcement.component.html +3 -0
  7. package/src/lib/announcement/announcement.component.less +5 -0
  8. package/src/lib/announcement/announcement.component.spec.ts +25 -0
  9. package/src/lib/announcement/announcement.component.ts +55 -0
  10. package/src/lib/announcement/announcement.module.ts +19 -0
  11. package/src/lib/audio/audio.component.html +6 -0
  12. package/src/lib/audio/audio.component.less +12 -0
  13. package/src/lib/audio/audio.component.spec.ts +25 -0
  14. package/src/lib/audio/audio.component.ts +167 -0
  15. package/src/lib/audio/audio.module.ts +15 -0
  16. package/src/lib/background/background.component.html +1 -0
  17. package/src/lib/background/background.component.less +6 -0
  18. package/src/lib/background/background.component.spec.ts +25 -0
  19. package/src/lib/background/background.component.ts +33 -0
  20. package/src/lib/background/background.module.ts +14 -0
  21. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.html +1 -0
  22. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.less +8 -0
  23. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.spec.ts +25 -0
  24. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.ts +271 -0
  25. package/src/lib/bar-chart-three-d/bar-chart-three-d.module.ts +15 -0
  26. package/src/lib/basic-bar-chart/basic-bar-chart.component.html +7 -0
  27. package/src/lib/basic-bar-chart/basic-bar-chart.component.less +5 -0
  28. package/src/lib/basic-bar-chart/basic-bar-chart.component.spec.ts +25 -0
  29. package/src/lib/basic-bar-chart/basic-bar-chart.component.ts +493 -0
  30. package/src/lib/basic-bar-chart/basic-bar-chart.module.ts +21 -0
  31. package/src/lib/basic-line-chart/basic-line-chart.component.html +7 -0
  32. package/src/lib/basic-line-chart/basic-line-chart.component.less +8 -0
  33. package/src/lib/basic-line-chart/basic-line-chart.component.spec.ts +25 -0
  34. package/src/lib/basic-line-chart/basic-line-chart.component.ts +654 -0
  35. package/src/lib/basic-line-chart/basic-line-chart.module.ts +15 -0
  36. package/src/lib/basic-pie-chart/basic-pie-chart.component.html +7 -0
  37. package/src/lib/basic-pie-chart/basic-pie-chart.component.less +8 -0
  38. package/src/lib/basic-pie-chart/basic-pie-chart.component.spec.ts +25 -0
  39. package/src/lib/basic-pie-chart/basic-pie-chart.component.ts +439 -0
  40. package/src/lib/basic-pie-chart/basic-pie-chart.module.ts +15 -0
  41. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.html +2 -0
  42. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.less +9 -0
  43. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.spec.ts +25 -0
  44. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.ts +211 -0
  45. package/src/lib/basic-planimetric-map/basic-planimetric-map.module.ts +16 -0
  46. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.css +0 -0
  47. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.html +1 -0
  48. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.spec.ts +25 -0
  49. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.ts +487 -0
  50. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.module.ts +14 -0
  51. package/src/lib/bubble-chart/bubble-chart.component.html +7 -0
  52. package/src/lib/bubble-chart/bubble-chart.component.less +8 -0
  53. package/src/lib/bubble-chart/bubble-chart.component.spec.ts +25 -0
  54. package/src/lib/bubble-chart/bubble-chart.component.ts +307 -0
  55. package/src/lib/bubble-chart/bubble-chart.module.ts +15 -0
  56. package/src/lib/bulletin-board/bulletin-board.component.html +15 -0
  57. package/src/lib/bulletin-board/bulletin-board.component.less +27 -0
  58. package/src/lib/bulletin-board/bulletin-board.component.spec.ts +25 -0
  59. package/src/lib/bulletin-board/bulletin-board.component.ts +127 -0
  60. package/src/lib/bulletin-board/bulletin-board.module.ts +20 -0
  61. package/src/lib/button/button.component.html +1 -0
  62. package/src/lib/button/button.component.less +17 -0
  63. package/src/lib/button/button.component.spec.ts +25 -0
  64. package/src/lib/button/button.component.ts +137 -0
  65. package/src/lib/button/button.module.ts +16 -0
  66. package/src/lib/calendar/background-events/background-events.component.html +0 -0
  67. package/src/lib/calendar/background-events/background-events.component.less +0 -0
  68. package/src/lib/calendar/background-events/background-events.component.spec.ts +25 -0
  69. package/src/lib/calendar/background-events/background-events.component.ts +51 -0
  70. package/src/lib/calendar/calendar-events-child.ts +27 -0
  71. package/src/lib/calendar/calendar.component.html +2 -0
  72. package/src/lib/calendar/calendar.component.less +14 -0
  73. package/src/lib/calendar/calendar.component.spec.ts +25 -0
  74. package/src/lib/calendar/calendar.component.ts +151 -0
  75. package/src/lib/calendar/calendar.module.ts +27 -0
  76. package/src/lib/calendar/calendar.util.ts +14 -0
  77. package/src/lib/calendar/events/events.component.html +0 -0
  78. package/src/lib/calendar/events/events.component.less +0 -0
  79. package/src/lib/calendar/events/events.component.spec.ts +25 -0
  80. package/src/lib/calendar/events/events.component.ts +61 -0
  81. package/src/lib/checkbox/checkbox.component.html +61 -0
  82. package/src/lib/checkbox/checkbox.component.less +104 -0
  83. package/src/lib/checkbox/checkbox.component.spec.ts +25 -0
  84. package/src/lib/checkbox/checkbox.component.ts +292 -0
  85. package/src/lib/checkbox/checkbox.module.ts +16 -0
  86. package/src/lib/cross-table/cross-table.component.html +16 -0
  87. package/src/lib/cross-table/cross-table.component.less +75 -0
  88. package/src/lib/cross-table/cross-table.component.spec.ts +25 -0
  89. package/src/lib/cross-table/cross-table.component.ts +257 -0
  90. package/src/lib/cross-table/cross-table.module.ts +18 -0
  91. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.html +32 -0
  92. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.less +11 -0
  93. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.spec.ts +25 -0
  94. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.ts +689 -0
  95. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.html +0 -0
  96. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.less +0 -0
  97. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.spec.ts +25 -0
  98. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.ts +248 -0
  99. package/src/lib/custom-baidu-map/base-layer.ts +50 -0
  100. package/src/lib/custom-baidu-map/custom-baidu-map.component.html +15 -0
  101. package/src/lib/custom-baidu-map/custom-baidu-map.component.less +69 -0
  102. package/src/lib/custom-baidu-map/custom-baidu-map.component.spec.ts +25 -0
  103. package/src/lib/custom-baidu-map/custom-baidu-map.component.ts +652 -0
  104. package/src/lib/custom-baidu-map/custom-baidu-map.module.ts +41 -0
  105. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.html +0 -0
  106. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.less +0 -0
  107. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.spec.ts +25 -0
  108. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.ts +99 -0
  109. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.html +0 -0
  110. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.less +0 -0
  111. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.spec.ts +25 -0
  112. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.ts +404 -0
  113. package/src/lib/data-map/data-map.component.html +9 -0
  114. package/src/lib/data-map/data-map.component.less +0 -0
  115. package/src/lib/data-map/data-map.component.spec.ts +25 -0
  116. package/src/lib/data-map/data-map.component.ts +105 -0
  117. package/src/lib/data-map/data-map.module.ts +15 -0
  118. package/src/lib/date-picker/date-picker.component.html +32 -0
  119. package/src/lib/date-picker/date-picker.component.less +20 -0
  120. package/src/lib/date-picker/date-picker.component.spec.ts +25 -0
  121. package/src/lib/date-picker/date-picker.component.ts +389 -0
  122. package/src/lib/date-picker/date-picker.module.ts +18 -0
  123. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.html +25 -0
  124. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.less +35 -0
  125. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.spec.ts +25 -0
  126. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.ts +117 -0
  127. package/src/lib/drop-down-detail-list/drop-down-detail-list.module.ts +15 -0
  128. package/src/lib/dynamic-list/dynamic-list.component.html +15 -0
  129. package/src/lib/dynamic-list/dynamic-list.component.less +31 -0
  130. package/src/lib/dynamic-list/dynamic-list.component.spec.ts +25 -0
  131. package/src/lib/dynamic-list/dynamic-list.component.ts +57 -0
  132. package/src/lib/dynamic-list/dynamic-list.module.ts +15 -0
  133. package/src/lib/funnel-chart/funnel-chart.component.html +7 -0
  134. package/src/lib/funnel-chart/funnel-chart.component.less +8 -0
  135. package/src/lib/funnel-chart/funnel-chart.component.spec.ts +25 -0
  136. package/src/lib/funnel-chart/funnel-chart.component.ts +198 -0
  137. package/src/lib/funnel-chart/funnel-chart.module.ts +15 -0
  138. package/src/lib/gantt/gantt.component.html +10 -0
  139. package/src/lib/gantt/gantt.component.less +76 -0
  140. package/src/lib/gantt/gantt.component.spec.ts +25 -0
  141. package/src/lib/gantt/gantt.component.ts +213 -0
  142. package/src/lib/gantt/gantt.module.ts +37 -0
  143. package/src/lib/gauge/gauge.component.html +1 -0
  144. package/src/lib/gauge/gauge.component.less +8 -0
  145. package/src/lib/gauge/gauge.component.spec.ts +25 -0
  146. package/src/lib/gauge/gauge.component.ts +268 -0
  147. package/src/lib/gauge/gauge.module.ts +15 -0
  148. package/src/lib/gauge-progress/gauge-progress.component.html +29 -0
  149. package/src/lib/gauge-progress/gauge-progress.component.less +51 -0
  150. package/src/lib/gauge-progress/gauge-progress.component.ts +293 -0
  151. package/src/lib/gauge-progress/gauge.module.ts +17 -0
  152. package/src/lib/general-text/general-text.component.html +7 -0
  153. package/src/lib/general-text/general-text.component.less +8 -0
  154. package/src/lib/general-text/general-text.component.spec.ts +25 -0
  155. package/src/lib/general-text/general-text.component.ts +114 -0
  156. package/src/lib/general-text/general-text.module.ts +15 -0
  157. package/src/lib/iconfont/icon.ts +198 -0
  158. package/src/lib/iconfont/iconfont.component.html +4 -0
  159. package/src/lib/iconfont/iconfont.component.less +5 -0
  160. package/src/lib/iconfont/iconfont.component.spec.ts +25 -0
  161. package/src/lib/iconfont/iconfont.component.ts +42 -0
  162. package/src/lib/iconfont/iconfont.module.ts +15 -0
  163. package/src/lib/iframe/iframe.component.html +1 -0
  164. package/src/lib/iframe/iframe.component.less +13 -0
  165. package/src/lib/iframe/iframe.component.spec.ts +25 -0
  166. package/src/lib/iframe/iframe.component.ts +34 -0
  167. package/src/lib/iframe/iframe.module.ts +15 -0
  168. package/src/lib/image/image.component.html +2 -0
  169. package/src/lib/image/image.component.less +13 -0
  170. package/src/lib/image/image.component.spec.ts +25 -0
  171. package/src/lib/image/image.component.ts +79 -0
  172. package/src/lib/image/image.module.ts +14 -0
  173. package/src/lib/item-swiper/item-swiper.component.html +48 -0
  174. package/src/lib/item-swiper/item-swiper.component.less +75 -0
  175. package/src/lib/item-swiper/item-swiper.component.spec.ts +25 -0
  176. package/src/lib/item-swiper/item-swiper.component.ts +277 -0
  177. package/src/lib/item-swiper/item-swiper.module.ts +17 -0
  178. package/src/lib/line-bar-chart/line-bar-chart.component.html +7 -0
  179. package/src/lib/line-bar-chart/line-bar-chart.component.less +3 -0
  180. package/src/lib/line-bar-chart/line-bar-chart.component.spec.ts +25 -0
  181. package/src/lib/line-bar-chart/line-bar-chart.component.ts +346 -0
  182. package/src/lib/line-bar-chart/line-bar-chart.module.ts +15 -0
  183. package/src/lib/line-light-flow/line-light-flow.component.css +0 -0
  184. package/src/lib/line-light-flow/line-light-flow.component.html +3 -0
  185. package/src/lib/line-light-flow/line-light-flow.component.spec.ts +25 -0
  186. package/src/lib/line-light-flow/line-light-flow.component.ts +274 -0
  187. package/src/lib/line-light-flow/line-light-flow.module.ts +21 -0
  188. package/src/lib/liquid-fill/liquid-fill.component.html +1 -0
  189. package/src/lib/liquid-fill/liquid-fill.component.less +8 -0
  190. package/src/lib/liquid-fill/liquid-fill.component.spec.ts +25 -0
  191. package/src/lib/liquid-fill/liquid-fill.component.ts +127 -0
  192. package/src/lib/liquid-fill/liquid-fill.module.ts +15 -0
  193. package/src/lib/marquee/marquee.component.html +5 -0
  194. package/src/lib/marquee/marquee.component.less +9 -0
  195. package/src/lib/marquee/marquee.component.spec.ts +25 -0
  196. package/src/lib/marquee/marquee.component.ts +84 -0
  197. package/src/lib/marquee/marquee.module.ts +14 -0
  198. package/src/lib/mip-anim/mip-anim.component.html +1 -0
  199. package/src/lib/mip-anim/mip-anim.component.less +7 -0
  200. package/src/lib/mip-anim/mip-anim.component.spec.ts +25 -0
  201. package/src/lib/mip-anim/mip-anim.component.ts +18 -0
  202. package/src/lib/mip-anim/mip-anim.module.ts +14 -0
  203. package/src/lib/multi-title-gauge/multi-title-gauge.component.html +1 -0
  204. package/src/lib/multi-title-gauge/multi-title-gauge.component.less +9 -0
  205. package/src/lib/multi-title-gauge/multi-title-gauge.component.spec.ts +25 -0
  206. package/src/lib/multi-title-gauge/multi-title-gauge.component.ts +231 -0
  207. package/src/lib/multi-title-gauge/multi-title-gauge.module.ts +19 -0
  208. package/src/lib/number-flop/number-flop.component.html +31 -0
  209. package/src/lib/number-flop/number-flop.component.less +155 -0
  210. package/src/lib/number-flop/number-flop.component.spec.ts +25 -0
  211. package/src/lib/number-flop/number-flop.component.ts +96 -0
  212. package/src/lib/number-flop/number-flop.module.ts +14 -0
  213. package/src/lib/parent-container/parent-container.component.html +0 -0
  214. package/src/lib/parent-container/parent-container.component.less +0 -0
  215. package/src/lib/parent-container/parent-container.component.spec.ts +25 -0
  216. package/src/lib/parent-container/parent-container.component.ts +21 -0
  217. package/src/lib/parent-container/parent-container.module.ts +14 -0
  218. package/src/lib/percent-pie-chart/percent-pie-chart.component.html +8 -0
  219. package/src/lib/percent-pie-chart/percent-pie-chart.component.less +8 -0
  220. package/src/lib/percent-pie-chart/percent-pie-chart.component.spec.ts +25 -0
  221. package/src/lib/percent-pie-chart/percent-pie-chart.component.ts +213 -0
  222. package/src/lib/percent-pie-chart/percent-pie-chart.module.ts +15 -0
  223. package/src/lib/pie3d-chart/pie3d-chart.component.html +1 -0
  224. package/src/lib/pie3d-chart/pie3d-chart.component.less +9 -0
  225. package/src/lib/pie3d-chart/pie3d-chart.component.spec.ts +25 -0
  226. package/src/lib/pie3d-chart/pie3d-chart.component.ts +278 -0
  227. package/src/lib/pie3d-chart/pie3d-chart.module.ts +16 -0
  228. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.html +0 -0
  229. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.less +0 -0
  230. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.spec.ts +25 -0
  231. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.ts +411 -0
  232. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.ts +13 -0
  233. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.html +1 -0
  234. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.less +0 -0
  235. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.spec.ts +25 -0
  236. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.ts +235 -0
  237. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.ts +16 -0
  238. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.html +0 -0
  239. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.less +0 -0
  240. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.spec.ts +25 -0
  241. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.ts +107 -0
  242. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.ts +17 -0
  243. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.html +0 -0
  244. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.less +0 -0
  245. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.spec.ts +25 -0
  246. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.ts +337 -0
  247. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.ts +18 -0
  248. package/src/lib/planimetric-map2d/planimetric-map2d.component.html +11 -0
  249. package/src/lib/planimetric-map2d/planimetric-map2d.component.less +9 -0
  250. package/src/lib/planimetric-map2d/planimetric-map2d.component.spec.ts +25 -0
  251. package/src/lib/planimetric-map2d/planimetric-map2d.component.ts +690 -0
  252. package/src/lib/planimetric-map2d/planimetric-map2d.module.ts +29 -0
  253. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.html +0 -0
  254. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.less +0 -0
  255. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.spec.ts +25 -0
  256. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.ts +123 -0
  257. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.ts +14 -0
  258. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.html +0 -0
  259. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.less +0 -0
  260. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.spec.ts +25 -0
  261. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.ts +229 -0
  262. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.ts +14 -0
  263. package/src/lib/planimetric-map3d/planimetric-map3d.component.html +2 -0
  264. package/src/lib/planimetric-map3d/planimetric-map3d.component.less +10 -0
  265. package/src/lib/planimetric-map3d/planimetric-map3d.component.spec.ts +25 -0
  266. package/src/lib/planimetric-map3d/planimetric-map3d.component.ts +227 -0
  267. package/src/lib/planimetric-map3d/planimetric-map3d.module.ts +17 -0
  268. package/src/lib/radar-chart/radar-chart.component.html +7 -0
  269. package/src/lib/radar-chart/radar-chart.component.less +8 -0
  270. package/src/lib/radar-chart/radar-chart.component.spec.ts +25 -0
  271. package/src/lib/radar-chart/radar-chart.component.ts +219 -0
  272. package/src/lib/radar-chart/radar-chart.module.ts +15 -0
  273. package/src/lib/radio/radio.component.html +18 -0
  274. package/src/lib/radio/radio.component.less +61 -0
  275. package/src/lib/radio/radio.component.spec.ts +25 -0
  276. package/src/lib/radio/radio.component.ts +116 -0
  277. package/src/lib/radio/radio.module.ts +16 -0
  278. package/src/lib/rate/rate.component.html +16 -0
  279. package/src/lib/rate/rate.component.less +39 -0
  280. package/src/lib/rate/rate.component.spec.ts +25 -0
  281. package/src/lib/rate/rate.component.ts +40 -0
  282. package/src/lib/rate/rate.module.ts +18 -0
  283. package/src/lib/scatter3d/scatter3d.component.html +1 -0
  284. package/src/lib/scatter3d/scatter3d.component.less +8 -0
  285. package/src/lib/scatter3d/scatter3d.component.spec.ts +25 -0
  286. package/src/lib/scatter3d/scatter3d.component.ts +129 -0
  287. package/src/lib/scatter3d/scatter3d.module.ts +15 -0
  288. package/src/lib/screen-widget.module.ts +592 -0
  289. package/src/lib/search/search.component.html +30 -0
  290. package/src/lib/search/search.component.less +30 -0
  291. package/src/lib/search/search.component.spec.ts +25 -0
  292. package/src/lib/search/search.component.ts +103 -0
  293. package/src/lib/search/search.module.ts +22 -0
  294. package/src/lib/select/select.component.html +30 -0
  295. package/src/lib/select/select.component.less +117 -0
  296. package/src/lib/select/select.component.spec.ts +25 -0
  297. package/src/lib/select/select.component.ts +297 -0
  298. package/src/lib/select/select.module.ts +18 -0
  299. package/src/lib/shape/shape.component.html +39 -0
  300. package/src/lib/shape/shape.component.less +8 -0
  301. package/src/lib/shape/shape.component.spec.ts +25 -0
  302. package/src/lib/shape/shape.component.ts +207 -0
  303. package/src/lib/shape/shape.module.ts +14 -0
  304. package/src/lib/shared/component/video-player/video-player.component.html +2 -0
  305. package/src/lib/shared/component/video-player/video-player.component.less +15 -0
  306. package/src/lib/shared/component/video-player/video-player.component.spec.ts +25 -0
  307. package/src/lib/shared/component/video-player/video-player.component.ts +132 -0
  308. package/src/lib/shared/component/video-player/video-player.module.ts +11 -0
  309. package/src/lib/shared/model/scale.token.ts +8 -0
  310. package/src/lib/shared/service/common.service.ts +28 -0
  311. package/src/lib/shared/service/file-url.service.ts +8 -0
  312. package/src/lib/shared/service/gaode-map.service.ts +37 -0
  313. package/src/lib/shared/service/highcharts.service.ts +29 -0
  314. package/src/lib/shared/service/http.service.ts +15 -0
  315. package/src/lib/shared/util/base.util.ts +4 -0
  316. package/src/lib/shared/util/echarts.util.ts +11 -0
  317. package/src/lib/shared/util/style.util.ts +12 -0
  318. package/src/lib/shuffling-list/color.pipe.ts +21 -0
  319. package/src/lib/shuffling-list/shuffling-list.component.html +37 -0
  320. package/src/lib/shuffling-list/shuffling-list.component.less +55 -0
  321. package/src/lib/shuffling-list/shuffling-list.component.spec.ts +25 -0
  322. package/src/lib/shuffling-list/shuffling-list.component.ts +534 -0
  323. package/src/lib/shuffling-list/shuffling-list.module.ts +17 -0
  324. package/src/lib/table/table.component.html +123 -0
  325. package/src/lib/table/table.component.less +76 -0
  326. package/src/lib/table/table.component.spec.ts +25 -0
  327. package/src/lib/table/table.component.ts +608 -0
  328. package/src/lib/table/table.module.ts +33 -0
  329. package/src/lib/tabs/tab/tab.component.html +1 -0
  330. package/src/lib/tabs/tab/tab.component.less +5 -0
  331. package/src/lib/tabs/tab/tab.component.spec.ts +25 -0
  332. package/src/lib/tabs/tab/tab.component.ts +18 -0
  333. package/src/lib/tabs/tabs.component.html +13 -0
  334. package/src/lib/tabs/tabs.component.less +40 -0
  335. package/src/lib/tabs/tabs.component.spec.ts +25 -0
  336. package/src/lib/tabs/tabs.component.ts +68 -0
  337. package/src/lib/tabs/tabs.module.ts +17 -0
  338. package/src/lib/temporary-data/temporary-data.component.html +1 -0
  339. package/src/lib/temporary-data/temporary-data.component.less +4 -0
  340. package/src/lib/temporary-data/temporary-data.component.spec.ts +25 -0
  341. package/src/lib/temporary-data/temporary-data.component.ts +46 -0
  342. package/src/lib/temporary-data/temporary-data.module.ts +15 -0
  343. package/src/lib/text/text.component.css +0 -0
  344. package/src/lib/text/text.component.html +3 -0
  345. package/src/lib/text/text.component.spec.ts +25 -0
  346. package/src/lib/text/text.component.ts +22 -0
  347. package/src/lib/text/text.module.ts +14 -0
  348. package/src/lib/time-picker/time-picker.component.html +1 -0
  349. package/src/lib/time-picker/time-picker.component.less +14 -0
  350. package/src/lib/time-picker/time-picker.component.spec.ts +25 -0
  351. package/src/lib/time-picker/time-picker.component.ts +86 -0
  352. package/src/lib/time-picker/time-picker.module.ts +19 -0
  353. package/src/lib/timer/timer.component.html +7 -0
  354. package/src/lib/timer/timer.component.less +24 -0
  355. package/src/lib/timer/timer.component.spec.ts +25 -0
  356. package/src/lib/timer/timer.component.ts +74 -0
  357. package/src/lib/timer/timer.module.ts +15 -0
  358. package/src/lib/tree-control/tree-control.component.html +97 -0
  359. package/src/lib/tree-control/tree-control.component.less +111 -0
  360. package/src/lib/tree-control/tree-control.component.spec.ts +25 -0
  361. package/src/lib/tree-control/tree-control.component.ts +363 -0
  362. package/src/lib/tree-control/tree-control.module.ts +18 -0
  363. package/src/lib/tree-ring-chart/tree-ring-chart.component.html +7 -0
  364. package/src/lib/tree-ring-chart/tree-ring-chart.component.less +8 -0
  365. package/src/lib/tree-ring-chart/tree-ring-chart.component.spec.ts +25 -0
  366. package/src/lib/tree-ring-chart/tree-ring-chart.component.ts +192 -0
  367. package/src/lib/tree-ring-chart/tree-ring-chart.module.ts +15 -0
  368. package/src/lib/upload/upload.component.html +32 -0
  369. package/src/lib/upload/upload.component.less +14 -0
  370. package/src/lib/upload/upload.component.spec.ts +25 -0
  371. package/src/lib/upload/upload.component.ts +109 -0
  372. package/src/lib/upload/upload.module.ts +19 -0
  373. package/src/lib/video-grid/video-grid.component.html +33 -0
  374. package/src/lib/video-grid/video-grid.component.less +68 -0
  375. package/src/lib/video-grid/video-grid.component.spec.ts +25 -0
  376. package/src/lib/video-grid/video-grid.component.ts +115 -0
  377. package/src/lib/video-grid/video-grid.module.ts +17 -0
  378. package/src/lib/visual-map-chart/visual-map-chart.component.html +8 -0
  379. package/src/lib/visual-map-chart/visual-map-chart.component.less +21 -0
  380. package/src/lib/visual-map-chart/visual-map-chart.component.spec.ts +25 -0
  381. package/src/lib/visual-map-chart/visual-map-chart.component.ts +365 -0
  382. package/src/lib/visual-map-chart/visual-map-chart.module.ts +18 -0
  383. package/src/lib/vote/vote.component.html +6 -0
  384. package/src/lib/vote/vote.component.less +41 -0
  385. package/src/lib/vote/vote.component.spec.ts +25 -0
  386. package/src/lib/vote/vote.component.ts +71 -0
  387. package/src/lib/vote/vote.module.ts +16 -0
  388. package/src/lib/weather/weather.component.html +27 -0
  389. package/src/lib/weather/weather.component.less +67 -0
  390. package/src/lib/weather/weather.component.spec.ts +25 -0
  391. package/src/lib/weather/weather.component.ts +78 -0
  392. package/src/lib/weather/weather.module.ts +16 -0
  393. package/src/lib/wordart/wordart.component.html +2 -0
  394. package/src/lib/wordart/wordart.component.less +12 -0
  395. package/src/lib/wordart/wordart.component.spec.ts +25 -0
  396. package/src/lib/wordart/wordart.component.ts +56 -0
  397. package/src/lib/wordart/wordart.module.ts +14 -0
  398. package/src/lib/workbench-widget.module.ts +675 -0
  399. package/{public-api.d.ts → src/public-api.ts} +46 -35
  400. package/src/test.ts +22 -0
  401. package/tsconfig.lib.json +37 -0
  402. package/tsconfig.lib.prod.json +9 -0
  403. package/tsconfig.spec.json +17 -0
  404. package/tslint.json +17 -0
  405. package/bbj-screen-widget.d.ts +0 -119
  406. package/bbj-screen-widget.metadata.json +0 -1
  407. package/bundles/bbj-screen-widget-core.umd.js +0 -606
  408. package/bundles/bbj-screen-widget-core.umd.js.map +0 -1
  409. package/bundles/bbj-screen-widget-core.umd.min.js +0 -2
  410. package/bundles/bbj-screen-widget-core.umd.min.js.map +0 -1
  411. package/bundles/bbj-screen-widget.umd.js +0 -21720
  412. package/bundles/bbj-screen-widget.umd.js.map +0 -1
  413. package/bundles/bbj-screen-widget.umd.min.js +0 -2
  414. package/bundles/bbj-screen-widget.umd.min.js.map +0 -1
  415. package/core/bbj-screen-widget-core.d.ts +0 -4
  416. package/core/bbj-screen-widget-core.metadata.json +0 -1
  417. package/core/service/baidu-map.service.d.ts +0 -16
  418. package/esm2015/bbj-screen-widget.js +0 -120
  419. package/esm2015/core/bbj-screen-widget-core.js +0 -5
  420. package/esm2015/core/public_api.js +0 -2
  421. package/esm2015/core/service/baidu-map.service.js +0 -101
  422. package/esm2015/lib/announcement/announcement.component.js +0 -80
  423. package/esm2015/lib/announcement/announcement.module.js +0 -25
  424. package/esm2015/lib/audio/audio.component.js +0 -167
  425. package/esm2015/lib/audio/audio.module.js +0 -20
  426. package/esm2015/lib/background/background.component.js +0 -52
  427. package/esm2015/lib/background/background.module.js +0 -19
  428. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.component.js +0 -323
  429. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.module.js +0 -20
  430. package/esm2015/lib/basic-bar-chart/basic-bar-chart.component.js +0 -604
  431. package/esm2015/lib/basic-bar-chart/basic-bar-chart.module.js +0 -27
  432. package/esm2015/lib/basic-line-chart/basic-line-chart.component.js +0 -782
  433. package/esm2015/lib/basic-line-chart/basic-line-chart.module.js +0 -20
  434. package/esm2015/lib/basic-pie-chart/basic-pie-chart.component.js +0 -471
  435. package/esm2015/lib/basic-pie-chart/basic-pie-chart.module.js +0 -20
  436. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.component.js +0 -233
  437. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.module.js +0 -21
  438. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.component.js +0 -503
  439. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.module.js +0 -19
  440. package/esm2015/lib/bubble-chart/bubble-chart.component.js +0 -348
  441. package/esm2015/lib/bubble-chart/bubble-chart.module.js +0 -20
  442. package/esm2015/lib/bulletin-board/bulletin-board.component.js +0 -160
  443. package/esm2015/lib/bulletin-board/bulletin-board.module.js +0 -23
  444. package/esm2015/lib/button/button.component.js +0 -186
  445. package/esm2015/lib/button/button.module.js +0 -21
  446. package/esm2015/lib/calendar/background-events/background-events.component.js +0 -65
  447. package/esm2015/lib/calendar/calendar-events-child.js +0 -28
  448. package/esm2015/lib/calendar/calendar.component.js +0 -168
  449. package/esm2015/lib/calendar/calendar.module.js +0 -32
  450. package/esm2015/lib/calendar/calendar.util.js +0 -12
  451. package/esm2015/lib/calendar/events/events.component.js +0 -75
  452. package/esm2015/lib/checkbox/checkbox.component.js +0 -333
  453. package/esm2015/lib/checkbox/checkbox.module.js +0 -21
  454. package/esm2015/lib/cross-table/cross-table.component.js +0 -291
  455. package/esm2015/lib/cross-table/cross-table.module.js +0 -20
  456. package/esm2015/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.js +0 -732
  457. package/esm2015/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.js +0 -278
  458. package/esm2015/lib/custom-baidu-map/base-layer.js +0 -53
  459. package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +0 -675
  460. package/esm2015/lib/custom-baidu-map/custom-baidu-map.module.js +0 -46
  461. package/esm2015/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.js +0 -116
  462. package/esm2015/lib/custom-baidu-map/wind-layer/wind-layer.component.js +0 -331
  463. package/esm2015/lib/date-picker/date-picker.component.js +0 -447
  464. package/esm2015/lib/date-picker/date-picker.module.js +0 -22
  465. package/esm2015/lib/funnel-chart/funnel-chart.component.js +0 -241
  466. package/esm2015/lib/funnel-chart/funnel-chart.module.js +0 -20
  467. package/esm2015/lib/gantt/gantt.component.js +0 -222
  468. package/esm2015/lib/gantt/gantt.module.js +0 -39
  469. package/esm2015/lib/gauge/gauge.component.js +0 -324
  470. package/esm2015/lib/gauge/gauge.module.js +0 -20
  471. package/esm2015/lib/gauge-progress/gauge-progress.component.js +0 -356
  472. package/esm2015/lib/gauge-progress/gauge.module.js +0 -22
  473. package/esm2015/lib/general-text/general-text.component.js +0 -144
  474. package/esm2015/lib/general-text/general-text.module.js +0 -20
  475. package/esm2015/lib/iconfont/icon.js +0 -199
  476. package/esm2015/lib/iconfont/iconfont.component.js +0 -56
  477. package/esm2015/lib/iconfont/iconfont.module.js +0 -20
  478. package/esm2015/lib/iframe/iframe.component.js +0 -46
  479. package/esm2015/lib/iframe/iframe.module.js +0 -20
  480. package/esm2015/lib/image/image.component.js +0 -98
  481. package/esm2015/lib/image/image.module.js +0 -19
  482. package/esm2015/lib/item-swiper/item-swiper.component.js +0 -343
  483. package/esm2015/lib/item-swiper/item-swiper.module.js +0 -22
  484. package/esm2015/lib/line-bar-chart/line-bar-chart.component.js +0 -398
  485. package/esm2015/lib/line-bar-chart/line-bar-chart.module.js +0 -20
  486. package/esm2015/lib/line-light-flow/line-light-flow.component.js +0 -241
  487. package/esm2015/lib/line-light-flow/line-light-flow.module.js +0 -24
  488. package/esm2015/lib/liquid-fill/liquid-fill.component.js +0 -158
  489. package/esm2015/lib/liquid-fill/liquid-fill.module.js +0 -20
  490. package/esm2015/lib/marquee/marquee.component.js +0 -110
  491. package/esm2015/lib/marquee/marquee.module.js +0 -19
  492. package/esm2015/lib/mip-anim/mip-anim.component.js +0 -26
  493. package/esm2015/lib/mip-anim/mip-anim.module.js +0 -19
  494. package/esm2015/lib/multi-title-gauge/multi-title-gauge.component.js +0 -277
  495. package/esm2015/lib/multi-title-gauge/multi-title-gauge.module.js +0 -22
  496. package/esm2015/lib/number-flop/number-flop.component.js +0 -124
  497. package/esm2015/lib/number-flop/number-flop.module.js +0 -19
  498. package/esm2015/lib/parent-container/parent-container.component.js +0 -21
  499. package/esm2015/lib/parent-container/parent-container.module.js +0 -19
  500. package/esm2015/lib/percent-pie-chart/percent-pie-chart.component.js +0 -248
  501. package/esm2015/lib/percent-pie-chart/percent-pie-chart.module.js +0 -20
  502. package/esm2015/lib/pie3d-chart/pie3d-chart.component.js +0 -303
  503. package/esm2015/lib/pie3d-chart/pie3d-chart.module.js +0 -19
  504. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.js +0 -431
  505. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.js +0 -19
  506. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.js +0 -252
  507. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.js +0 -19
  508. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.js +0 -124
  509. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.js +0 -19
  510. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.js +0 -359
  511. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.js +0 -21
  512. package/esm2015/lib/planimetric-map2d/planimetric-map2d.component.js +0 -753
  513. package/esm2015/lib/planimetric-map2d/planimetric-map2d.module.js +0 -34
  514. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.js +0 -128
  515. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.js +0 -19
  516. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.js +0 -242
  517. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.js +0 -19
  518. package/esm2015/lib/planimetric-map3d/planimetric-map3d.component.js +0 -265
  519. package/esm2015/lib/planimetric-map3d/planimetric-map3d.module.js +0 -22
  520. package/esm2015/lib/radar-chart/radar-chart.component.js +0 -255
  521. package/esm2015/lib/radar-chart/radar-chart.module.js +0 -20
  522. package/esm2015/lib/radio/radio.component.js +0 -148
  523. package/esm2015/lib/radio/radio.module.js +0 -21
  524. package/esm2015/lib/rate/rate.component.js +0 -57
  525. package/esm2015/lib/rate/rate.module.js +0 -23
  526. package/esm2015/lib/scatter3d/scatter3d.component.js +0 -166
  527. package/esm2015/lib/scatter3d/scatter3d.module.js +0 -20
  528. package/esm2015/lib/screen-widget.module.js +0 -536
  529. package/esm2015/lib/search/search.component.js +0 -130
  530. package/esm2015/lib/search/search.module.js +0 -29
  531. package/esm2015/lib/select/select.component.js +0 -359
  532. package/esm2015/lib/select/select.module.js +0 -22
  533. package/esm2015/lib/shape/shape.component.js +0 -248
  534. package/esm2015/lib/shape/shape.module.js +0 -19
  535. package/esm2015/lib/shared/component/video-player/video-player.component.js +0 -114
  536. package/esm2015/lib/shared/component/video-player/video-player.module.js +0 -14
  537. package/esm2015/lib/shared/service/common.service.js +0 -39
  538. package/esm2015/lib/shared/service/file-url.service.js +0 -12
  539. package/esm2015/lib/shared/service/gaode-map.service.js +0 -36
  540. package/esm2015/lib/shared/service/highcharts.service.js +0 -36
  541. package/esm2015/lib/shared/service/http.service.js +0 -20
  542. package/esm2015/lib/shared/util/base.util.js +0 -5
  543. package/esm2015/lib/shared/util/echarts.util.js +0 -12
  544. package/esm2015/lib/shared/util/style.util.js +0 -19
  545. package/esm2015/lib/shuffling-list/color.pipe.js +0 -23
  546. package/esm2015/lib/shuffling-list/shuffling-list.component.js +0 -601
  547. package/esm2015/lib/shuffling-list/shuffling-list.module.js +0 -22
  548. package/esm2015/lib/table/table.component.js +0 -657
  549. package/esm2015/lib/table/table.module.js +0 -38
  550. package/esm2015/lib/tabs/tab/tab.component.js +0 -27
  551. package/esm2015/lib/tabs/tabs.component.js +0 -85
  552. package/esm2015/lib/tabs/tabs.module.js +0 -22
  553. package/esm2015/lib/temporary-data/temporary-data.component.js +0 -49
  554. package/esm2015/lib/temporary-data/temporary-data.module.js +0 -20
  555. package/esm2015/lib/time-picker/time-picker.component.js +0 -112
  556. package/esm2015/lib/time-picker/time-picker.module.js +0 -21
  557. package/esm2015/lib/timer/timer.component.js +0 -108
  558. package/esm2015/lib/timer/timer.module.js +0 -20
  559. package/esm2015/lib/tree-control/tree-control.component.js +0 -435
  560. package/esm2015/lib/tree-control/tree-control.module.js +0 -24
  561. package/esm2015/lib/tree-ring-chart/tree-ring-chart.component.js +0 -215
  562. package/esm2015/lib/tree-ring-chart/tree-ring-chart.module.js +0 -20
  563. package/esm2015/lib/upload/upload.component.js +0 -127
  564. package/esm2015/lib/upload/upload.module.js +0 -22
  565. package/esm2015/lib/video-grid/video-grid.component.js +0 -140
  566. package/esm2015/lib/video-grid/video-grid.module.js +0 -22
  567. package/esm2015/lib/visual-map-chart/visual-map-chart.component.js +0 -395
  568. package/esm2015/lib/visual-map-chart/visual-map-chart.module.js +0 -20
  569. package/esm2015/lib/vote/vote.component.js +0 -100
  570. package/esm2015/lib/vote/vote.module.js +0 -21
  571. package/esm2015/lib/weather/weather.component.js +0 -92
  572. package/esm2015/lib/weather/weather.module.js +0 -21
  573. package/esm2015/lib/wordart/wordart.component.js +0 -84
  574. package/esm2015/lib/wordart/wordart.module.js +0 -19
  575. package/esm2015/lib/workbench-widget.module.js +0 -620
  576. package/esm2015/public-api.js +0 -40
  577. package/fesm2015/bbj-screen-widget-core.js +0 -107
  578. package/fesm2015/bbj-screen-widget-core.js.map +0 -1
  579. package/fesm2015/bbj-screen-widget.js +0 -20618
  580. package/fesm2015/bbj-screen-widget.js.map +0 -1
  581. package/lib/announcement/announcement.component.d.ts +0 -13
  582. package/lib/announcement/announcement.module.d.ts +0 -5
  583. package/lib/audio/audio.component.d.ts +0 -22
  584. package/lib/audio/audio.module.d.ts +0 -4
  585. package/lib/background/background.component.d.ts +0 -12
  586. package/lib/background/background.module.d.ts +0 -4
  587. package/lib/bar-chart-three-d/bar-chart-three-d.component.d.ts +0 -30
  588. package/lib/bar-chart-three-d/bar-chart-three-d.module.d.ts +0 -4
  589. package/lib/basic-bar-chart/basic-bar-chart.component.d.ts +0 -105
  590. package/lib/basic-bar-chart/basic-bar-chart.module.d.ts +0 -5
  591. package/lib/basic-line-chart/basic-line-chart.component.d.ts +0 -102
  592. package/lib/basic-line-chart/basic-line-chart.module.d.ts +0 -4
  593. package/lib/basic-pie-chart/basic-pie-chart.component.d.ts +0 -56
  594. package/lib/basic-pie-chart/basic-pie-chart.module.d.ts +0 -4
  595. package/lib/basic-planimetric-map/basic-planimetric-map.component.d.ts +0 -18
  596. package/lib/basic-planimetric-map/basic-planimetric-map.module.d.ts +0 -4
  597. package/lib/breathing-bubble-layer/breathing-bubble-layer.component.d.ts +0 -210
  598. package/lib/breathing-bubble-layer/breathing-bubble-layer.module.d.ts +0 -4
  599. package/lib/bubble-chart/bubble-chart.component.d.ts +0 -75
  600. package/lib/bubble-chart/bubble-chart.module.d.ts +0 -4
  601. package/lib/bulletin-board/bulletin-board.component.d.ts +0 -25
  602. package/lib/bulletin-board/bulletin-board.module.d.ts +0 -4
  603. package/lib/button/button.component.d.ts +0 -25
  604. package/lib/button/button.module.d.ts +0 -4
  605. package/lib/calendar/background-events/background-events.component.d.ts +0 -10
  606. package/lib/calendar/calendar-events-child.d.ts +0 -12
  607. package/lib/calendar/calendar.component.d.ts +0 -27
  608. package/lib/calendar/calendar.module.d.ts +0 -4
  609. package/lib/calendar/calendar.util.d.ts +0 -6
  610. package/lib/calendar/events/events.component.d.ts +0 -13
  611. package/lib/checkbox/checkbox.component.d.ts +0 -45
  612. package/lib/checkbox/checkbox.module.d.ts +0 -4
  613. package/lib/cross-table/cross-table.component.d.ts +0 -30
  614. package/lib/cross-table/cross-table.module.d.ts +0 -4
  615. package/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.d.ts +0 -70
  616. package/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.d.ts +0 -23
  617. package/lib/custom-baidu-map/base-layer.d.ts +0 -16
  618. package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +0 -93
  619. package/lib/custom-baidu-map/custom-baidu-map.module.d.ts +0 -4
  620. package/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.d.ts +0 -16
  621. package/lib/custom-baidu-map/wind-layer/wind-layer.component.d.ts +0 -28
  622. package/lib/date-picker/date-picker.component.d.ts +0 -63
  623. package/lib/date-picker/date-picker.module.d.ts +0 -4
  624. package/lib/funnel-chart/funnel-chart.component.d.ts +0 -24
  625. package/lib/funnel-chart/funnel-chart.module.d.ts +0 -4
  626. package/lib/gantt/gantt.component.d.ts +0 -25
  627. package/lib/gantt/gantt.module.d.ts +0 -4
  628. package/lib/gauge/gauge.component.d.ts +0 -37
  629. package/lib/gauge/gauge.module.d.ts +0 -4
  630. package/lib/gauge-progress/gauge-progress.component.d.ts +0 -46
  631. package/lib/gauge-progress/gauge.module.d.ts +0 -5
  632. package/lib/general-text/general-text.component.d.ts +0 -21
  633. package/lib/general-text/general-text.module.d.ts +0 -4
  634. package/lib/iconfont/icon.d.ts +0 -1
  635. package/lib/iconfont/iconfont.component.d.ts +0 -11
  636. package/lib/iconfont/iconfont.module.d.ts +0 -4
  637. package/lib/iframe/iframe.component.d.ts +0 -10
  638. package/lib/iframe/iframe.module.d.ts +0 -4
  639. package/lib/image/image.component.d.ts +0 -21
  640. package/lib/image/image.module.d.ts +0 -4
  641. package/lib/item-swiper/item-swiper.component.d.ts +0 -41
  642. package/lib/item-swiper/item-swiper.module.d.ts +0 -5
  643. package/lib/line-bar-chart/line-bar-chart.component.d.ts +0 -63
  644. package/lib/line-bar-chart/line-bar-chart.module.d.ts +0 -4
  645. package/lib/line-light-flow/line-light-flow.component.d.ts +0 -26
  646. package/lib/line-light-flow/line-light-flow.module.d.ts +0 -4
  647. package/lib/liquid-fill/liquid-fill.component.d.ts +0 -18
  648. package/lib/liquid-fill/liquid-fill.module.d.ts +0 -4
  649. package/lib/marquee/marquee.component.d.ts +0 -20
  650. package/lib/marquee/marquee.module.d.ts +0 -4
  651. package/lib/mip-anim/mip-anim.component.d.ts +0 -6
  652. package/lib/mip-anim/mip-anim.module.d.ts +0 -4
  653. package/lib/multi-title-gauge/multi-title-gauge.component.d.ts +0 -26
  654. package/lib/multi-title-gauge/multi-title-gauge.module.d.ts +0 -4
  655. package/lib/number-flop/number-flop.component.d.ts +0 -22
  656. package/lib/number-flop/number-flop.module.d.ts +0 -4
  657. package/lib/parent-container/parent-container.component.d.ts +0 -9
  658. package/lib/parent-container/parent-container.module.d.ts +0 -4
  659. package/lib/percent-pie-chart/percent-pie-chart.component.d.ts +0 -24
  660. package/lib/percent-pie-chart/percent-pie-chart.module.d.ts +0 -4
  661. package/lib/pie3d-chart/pie3d-chart.component.d.ts +0 -30
  662. package/lib/pie3d-chart/pie3d-chart.module.d.ts +0 -4
  663. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.d.ts +0 -206
  664. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.d.ts +0 -4
  665. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.d.ts +0 -15
  666. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.d.ts +0 -4
  667. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.d.ts +0 -15
  668. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.d.ts +0 -4
  669. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.d.ts +0 -49
  670. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.d.ts +0 -4
  671. package/lib/planimetric-map2d/planimetric-map2d.component.d.ts +0 -49
  672. package/lib/planimetric-map2d/planimetric-map2d.module.d.ts +0 -4
  673. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.d.ts +0 -14
  674. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.d.ts +0 -4
  675. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.d.ts +0 -41
  676. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.d.ts +0 -4
  677. package/lib/planimetric-map3d/planimetric-map3d.component.d.ts +0 -29
  678. package/lib/planimetric-map3d/planimetric-map3d.module.d.ts +0 -4
  679. package/lib/radar-chart/radar-chart.component.d.ts +0 -24
  680. package/lib/radar-chart/radar-chart.module.d.ts +0 -4
  681. package/lib/radio/radio.component.d.ts +0 -21
  682. package/lib/radio/radio.module.d.ts +0 -4
  683. package/lib/rate/rate.component.d.ts +0 -13
  684. package/lib/rate/rate.module.d.ts +0 -4
  685. package/lib/scatter3d/scatter3d.component.d.ts +0 -25
  686. package/lib/scatter3d/scatter3d.module.d.ts +0 -4
  687. package/lib/screen-widget.module.d.ts +0 -4
  688. package/lib/search/search.component.d.ts +0 -21
  689. package/lib/search/search.module.d.ts +0 -6
  690. package/lib/select/select.component.d.ts +0 -37
  691. package/lib/select/select.module.d.ts +0 -4
  692. package/lib/shape/shape.component.d.ts +0 -50
  693. package/lib/shape/shape.module.d.ts +0 -4
  694. package/lib/shared/component/video-player/video-player.component.d.ts +0 -28
  695. package/lib/shared/component/video-player/video-player.module.d.ts +0 -2
  696. package/lib/shared/service/common.service.d.ts +0 -21
  697. package/lib/shared/service/file-url.service.d.ts +0 -3
  698. package/lib/shared/service/gaode-map.service.d.ts +0 -10
  699. package/lib/shared/service/highcharts.service.d.ts +0 -9
  700. package/lib/shared/service/http.service.d.ts +0 -7
  701. package/lib/shared/util/base.util.d.ts +0 -1
  702. package/lib/shared/util/echarts.util.d.ts +0 -1
  703. package/lib/shared/util/style.util.d.ts +0 -1
  704. package/lib/shuffling-list/color.pipe.d.ts +0 -4
  705. package/lib/shuffling-list/shuffling-list.component.d.ts +0 -76
  706. package/lib/shuffling-list/shuffling-list.module.d.ts +0 -4
  707. package/lib/table/table.component.d.ts +0 -65
  708. package/lib/table/table.module.d.ts +0 -4
  709. package/lib/tabs/tab/tab.component.d.ts +0 -7
  710. package/lib/tabs/tabs.component.d.ts +0 -13
  711. package/lib/tabs/tabs.module.d.ts +0 -4
  712. package/lib/temporary-data/temporary-data.component.d.ts +0 -13
  713. package/lib/temporary-data/temporary-data.module.d.ts +0 -4
  714. package/lib/time-picker/time-picker.component.d.ts +0 -17
  715. package/lib/time-picker/time-picker.module.d.ts +0 -4
  716. package/lib/timer/timer.component.d.ts +0 -21
  717. package/lib/timer/timer.module.d.ts +0 -4
  718. package/lib/tree-control/tree-control.component.d.ts +0 -62
  719. package/lib/tree-control/tree-control.module.d.ts +0 -4
  720. package/lib/tree-ring-chart/tree-ring-chart.component.d.ts +0 -24
  721. package/lib/tree-ring-chart/tree-ring-chart.module.d.ts +0 -4
  722. package/lib/upload/upload.component.d.ts +0 -21
  723. package/lib/upload/upload.module.d.ts +0 -4
  724. package/lib/video-grid/video-grid.component.d.ts +0 -23
  725. package/lib/video-grid/video-grid.module.d.ts +0 -4
  726. package/lib/visual-map-chart/visual-map-chart.component.d.ts +0 -49
  727. package/lib/visual-map-chart/visual-map-chart.module.d.ts +0 -4
  728. package/lib/vote/vote.component.d.ts +0 -15
  729. package/lib/vote/vote.module.d.ts +0 -4
  730. package/lib/weather/weather.component.d.ts +0 -26
  731. package/lib/weather/weather.module.d.ts +0 -4
  732. package/lib/wordart/wordart.component.d.ts +0 -14
  733. package/lib/wordart/wordart.module.d.ts +0 -4
  734. package/lib/workbench-widget.module.d.ts +0 -4
  735. /package/core/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../projects/screen-widget/src/lib/shared/service/gaode-map.service.ts","../../../projects/screen-widget/src/lib/shared/service/common.service.ts","../../../node_modules/tslib/tslib.es6.mjs","../../../projects/screen-widget/src/lib/image/image.component.ts","../../../projects/screen-widget/src/lib/image/image.module.ts","../../../projects/screen-widget/src/lib/shared/util/echarts.util.ts","../../../projects/screen-widget/src/lib/basic-line-chart/basic-line-chart.component.ts","../../../projects/screen-widget/src/lib/basic-line-chart/basic-line-chart.module.ts","../../../projects/screen-widget/src/lib/shared/service/http.service.ts","../../../projects/screen-widget/src/lib/button/button.component.ts","../../../projects/screen-widget/src/lib/button/button.module.ts","../../../projects/screen-widget/src/lib/timer/timer.component.ts","../../../projects/screen-widget/src/lib/timer/timer.module.ts","../../../projects/screen-widget/src/lib/number-flop/number-flop.component.ts","../../../projects/screen-widget/src/lib/number-flop/number-flop.module.ts","../../../projects/screen-widget/src/lib/vote/vote.component.ts","../../../projects/screen-widget/src/lib/vote/vote.module.ts","../../../projects/screen-widget/src/lib/select/select.component.ts","../../../projects/screen-widget/src/lib/select/select.module.ts","../../../projects/screen-widget/src/lib/shared/util/style.util.ts","../../../projects/screen-widget/src/lib/search/search.component.ts","../../../projects/screen-widget/src/lib/search/search.module.ts","../../../projects/screen-widget/src/lib/weather/weather.component.ts","../../../projects/screen-widget/src/lib/weather/weather.module.ts","../../../projects/screen-widget/src/lib/radio/radio.component.ts","../../../projects/screen-widget/src/lib/radio/radio.module.ts","../../../projects/screen-widget/src/lib/checkbox/checkbox.component.ts","../../../projects/screen-widget/src/lib/checkbox/checkbox.module.ts","../../../projects/screen-widget/src/lib/rate/rate.component.ts","../../../projects/screen-widget/src/lib/rate/rate.module.ts","../../../projects/screen-widget/src/lib/general-text/general-text.component.ts","../../../projects/screen-widget/src/lib/general-text/general-text.module.ts","../../../projects/screen-widget/src/lib/marquee/marquee.component.ts","../../../projects/screen-widget/src/lib/marquee/marquee.module.ts","../../../projects/screen-widget/src/lib/wordart/wordart.component.ts","../../../projects/screen-widget/src/lib/wordart/wordart.module.ts","../../../projects/screen-widget/src/lib/iconfont/iconfont.component.ts","../../../projects/screen-widget/src/lib/iconfont/iconfont.module.ts","../../../projects/screen-widget/src/lib/shared/service/file-url.service.ts","../../../projects/screen-widget/src/lib/audio/audio.component.ts","../../../projects/screen-widget/src/lib/shared/component/video-player/video-player.component.ts","../../../projects/screen-widget/src/lib/shared/component/video-player/video-player.module.ts","../../../projects/screen-widget/src/lib/audio/audio.module.ts","../../../projects/screen-widget/src/lib/basic-bar-chart/basic-bar-chart.component.ts","../../../projects/screen-widget/src/lib/basic-bar-chart/basic-bar-chart.module.ts","../../../projects/screen-widget/src/lib/basic-pie-chart/basic-pie-chart.component.ts","../../../projects/screen-widget/src/lib/basic-pie-chart/basic-pie-chart.module.ts","../../../projects/screen-widget/src/lib/bar-chart-three-d/bar-chart-three-d.component.ts","../../../projects/screen-widget/src/lib/bar-chart-three-d/bar-chart-three-d.module.ts","../../../projects/screen-widget/src/lib/shape/shape.component.ts","../../../projects/screen-widget/src/lib/shape/shape.module.ts","../../../projects/screen-widget/src/lib/line-bar-chart/line-bar-chart.component.ts","../../../projects/screen-widget/src/lib/line-bar-chart/line-bar-chart.module.ts","../../../projects/screen-widget/src/lib/bubble-chart/bubble-chart.component.ts","../../../projects/screen-widget/src/lib/bubble-chart/bubble-chart.module.ts","../../../projects/screen-widget/src/lib/radar-chart/radar-chart.component.ts","../../../projects/screen-widget/src/lib/radar-chart/radar-chart.module.ts","../../../projects/screen-widget/src/lib/funnel-chart/funnel-chart.component.ts","../../../projects/screen-widget/src/lib/funnel-chart/funnel-chart.module.ts","../../../projects/screen-widget/src/lib/background/background.component.ts","../../../projects/screen-widget/src/lib/background/background.module.ts","../../../projects/screen-widget/src/lib/gauge/gauge.component.ts","../../../projects/screen-widget/src/lib/gauge/gauge.module.ts","../../../projects/screen-widget/src/lib/percent-pie-chart/percent-pie-chart.component.ts","../../../projects/screen-widget/src/lib/percent-pie-chart/percent-pie-chart.module.ts","../../../projects/screen-widget/src/lib/tree-ring-chart/tree-ring-chart.component.ts","../../../projects/screen-widget/src/lib/tree-ring-chart/tree-ring-chart.module.ts","../../../projects/screen-widget/src/lib/liquid-fill/liquid-fill.component.ts","../../../projects/screen-widget/src/lib/liquid-fill/liquid-fill.module.ts","../../../projects/screen-widget/src/lib/shuffling-list/shuffling-list.component.ts","../../../projects/screen-widget/src/lib/shuffling-list/color.pipe.ts","../../../projects/screen-widget/src/lib/shuffling-list/shuffling-list.module.ts","../../../projects/screen-widget/src/lib/parent-container/parent-container.component.ts","../../../projects/screen-widget/src/lib/basic-planimetric-map/basic-planimetric-map.component.ts","../../../projects/screen-widget/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.ts","../../../projects/screen-widget/src/lib/breathing-bubble-layer/breathing-bubble-layer.module.ts","../../../projects/screen-widget/src/lib/basic-planimetric-map/basic-planimetric-map.module.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/planimetric-map2d.component.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map2d/planimetric-map2d.module.ts","../../../projects/screen-widget/src/lib/parent-container/parent-container.module.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/planimetric-map3d.component.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.ts","../../../projects/screen-widget/src/lib/planimetric-map3d/planimetric-map3d.module.ts","../../../projects/screen-widget/src/lib/mip-anim/mip-anim.component.ts","../../../projects/screen-widget/src/lib/mip-anim/mip-anim.module.ts","../../../projects/screen-widget/src/lib/tree-control/tree-control.component.ts","../../../projects/screen-widget/src/lib/tree-control/tree-control.module.ts","../../../projects/screen-widget/src/lib/visual-map-chart/visual-map-chart.component.ts","../../../projects/screen-widget/src/lib/visual-map-chart/visual-map-chart.module.ts","../../../projects/screen-widget/src/lib/date-picker/date-picker.component.ts","../../../projects/screen-widget/src/lib/date-picker/date-picker.module.ts","../../../projects/screen-widget/src/lib/time-picker/time-picker.component.ts","../../../projects/screen-widget/src/lib/time-picker/time-picker.module.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/custom-baidu-map.component.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/wind-layer/wind-layer.component.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/base-layer.ts","../../../projects/screen-widget/src/lib/shared/util/base.util.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.ts","../../../projects/screen-widget/src/lib/custom-baidu-map/custom-baidu-map.module.ts","../../../projects/screen-widget/src/lib/iconfont/icon.ts","../../../projects/screen-widget/src/lib/upload/upload.component.ts","../../../projects/screen-widget/src/lib/upload/upload.module.ts","../../../projects/screen-widget/src/lib/cross-table/cross-table.component.ts","../../../projects/screen-widget/src/lib/cross-table/cross-table.module.ts","../../../projects/screen-widget/src/lib/table/table.component.ts","../../../projects/screen-widget/src/lib/table/table.module.ts","../../../projects/screen-widget/src/lib/shared/service/highcharts.service.ts","../../../projects/screen-widget/src/lib/pie3d-chart/pie3d-chart.component.ts","../../../projects/screen-widget/src/lib/pie3d-chart/pie3d-chart.module.ts","../../../projects/screen-widget/src/lib/multi-title-gauge/multi-title-gauge.component.ts","../../../projects/screen-widget/src/lib/multi-title-gauge/multi-title-gauge.module.ts","../../../projects/screen-widget/src/lib/gauge-progress/gauge-progress.component.ts","../../../projects/screen-widget/src/lib/gauge-progress/gauge.module.ts","../../../projects/screen-widget/src/lib/bulletin-board/bulletin-board.component.ts","../../../projects/screen-widget/src/lib/bulletin-board/bulletin-board.module.ts","../../../projects/screen-widget/src/lib/item-swiper/item-swiper.component.ts","../../../projects/screen-widget/src/lib/item-swiper/item-swiper.module.ts","../../../projects/screen-widget/src/lib/temporary-data/temporary-data.component.ts","../../../projects/screen-widget/src/lib/temporary-data/temporary-data.module.ts","../../../projects/screen-widget/src/lib/line-light-flow/line-light-flow.component.ts","../../../projects/screen-widget/src/lib/line-light-flow/line-light-flow.module.ts","../../../projects/screen-widget/src/lib/iframe/iframe.component.ts","../../../projects/screen-widget/src/lib/iframe/iframe.module.ts","../../../projects/screen-widget/src/lib/video-grid/video-grid.component.ts","../../../projects/screen-widget/src/lib/video-grid/video-grid.module.ts","../../../projects/screen-widget/src/lib/scatter3d/scatter3d.component.ts","../../../projects/screen-widget/src/lib/scatter3d/scatter3d.module.ts","../../../projects/screen-widget/src/lib/screen-widget.module.ts","../../../projects/screen-widget/src/lib/announcement/announcement.component.ts","../../../projects/screen-widget/src/lib/announcement/announcement.module.ts","../../../projects/screen-widget/src/lib/calendar/calendar.util.ts","../../../projects/screen-widget/src/lib/calendar/calendar.component.ts","../../../projects/screen-widget/src/lib/calendar/calendar-events-child.ts","../../../projects/screen-widget/src/lib/calendar/background-events/background-events.component.ts","../../../projects/screen-widget/src/lib/calendar/events/events.component.ts","../../../projects/screen-widget/src/lib/calendar/calendar.module.ts","../../../projects/screen-widget/src/lib/tabs/tabs.component.ts","../../../projects/screen-widget/src/lib/tabs/tab/tab.component.ts","../../../projects/screen-widget/src/lib/tabs/tabs.module.ts","../../../projects/screen-widget/src/lib/gantt/gantt.component.ts","../../../projects/screen-widget/src/lib/gantt/gantt.module.ts","../../../projects/screen-widget/src/lib/workbench-widget.module.ts"],"names":["GaodeMapService","lazy","http","this","prototype","loadMap","AMap","Promise","resolve","loadAmapPromise","loadScript","getWeather","city","jsonp","toPromise","Injectable","args","providedIn","LazyService","HttpClient","CommonService","baiduMapService","gaodeMapService","getMap","BaiduMapService","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__esDecorate","ctor","descriptorIn","contextIn","initializers","extraInitializers","accept","f","_","kind","descriptor","name","done","context","access","addInitializer","push","result","get","set","init","unshift","__runInitializers","thisArg","value","useValue","__propKey","x","concat","__setFunctionName","prefix","description","configurable","__metadata","metadataKey","metadataValue","metadata","__awaiter","_arguments","P","generator","reject","fulfilled","step","next","rejected","then","__generator","body","y","label","sent","trys","ops","g","Iterator","verb","Symbol","iterator","v","op","pop","__createBinding","o","m","k","k2","undefined","__esModule","writable","enumerable","__exportStar","__values","__read","ar","error","__spread","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","l","slice","__await","__asyncGenerator","asyncIterator","q","AsyncIterator","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__importDefault","default","__classPrivateFieldGet","receiver","state","has","__classPrivateFieldSet","__classPrivateFieldIn","__addDisposableResource","env","async","dispose","inner","asyncDispose","stack","_SuppressedError","SuppressedError","suppressed","message","Error","__disposeResources","fail","hasError","tslib_es6","ImageComponent","cd","renderer","elementRef","widgetRef","opacity","shadow","color","X","Y","Z","style","layout","_data","ngOnChanges","changes","image","_a","setStyle","markForCheck","ngOnInit","addClass","element","_c","widget","link","enabled","_b","outputs","nativeElement","Component","selector","template","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","Renderer2","ElementRef","WidgetRef","Property","min","ui","spanLabel","spanControl","max","enum","Data","properties","type","title","Widget","group","icon","widgetService","register","getEchartsTextStyle","font","textStyle","fontFamily","family","fontWeight","weight","fontSize","size","lineHeight","NgModule","declarations","imports","CommonModule","WidgetBaseModule","WidgetService","lineColor","ɵ1","ɵ2","ɵ3","ɵ4","ɵ5","ɵ6","ɵ7","BasicLineChartComponent","space","grid","top","right","bottom","left","align","axisType","lineType","axisColor","axisWidth","xType","yUnit","xUnit","boundaryGap","showY","netLine","netLineType","netLineX","netLineXType","netLineColor","markLine","YmarkLineHeight","YmarkLineName","YmarkLineType","YmarkLineColor","YmarkWidth","XmarkLineLocation","XmarkLineName","XmarkLineType","XmarkLineColor","XmarkWidth","xLabelRotate","xLabelOverflow","zoomOnMouseWheel","chartOption","dataClick","EventEmitter","xData","yData","getTextStyle","dataZoom","getDataZoom","tooltip","getTooltip","legend","getLegend","getGrid","xAxis","getXAxis","yAxis","getYAxis","series","reloadData","nameTextStyle","axisLine","lineStyle","axisLabel","rotate","show","hideXLabel","width","xLabelWidth","overflow","interval","xLabelInterval","splitLine","_this","yMin","yMax","Number","Math","ceil","yMaxAddNum","axisTick","minInterval","yMinInterval","trigger","tooltipFont","axisPointer","insideDataZoom","enableDataZoom","dataZoomMinData","xSet_1","Set","forEach","data","add","start","dataZoomStart","end","dataZoomEnd","sliderDataZoom","zoomLock","brushSelect","seriesMap","dataset","source","record","transform","config","dimension","setSeriesStyle","showDataMarkLine","symbol","position","dataMarkLineFormatter","formatter","eval","marklineStyle","silent","datasetIndex","connectNulls","itemStyle","areaStyle","smooth","symbolSize","encode","uniqueData","splice","getMaxY","toFixed","toString","pow","onChartClick","event","emit","seriesName","hidden","reset","example","background","ɵ0","visibleIf","optionalHelp","text","overlayStyle","whiteSpace","Drill","DataOutput","NgxEchartsModule","HttpService","url","options","post","ButtonComponent","gloabl","borderColor","radius","href","openModel","valueOutput","letterSpacing","borderRadius","boxShadow","openPage","edit","window","open","location","script","Function","fn","GlobalVarService","checkedChildren","unCheckedChildren","autosize","minRows","maxRows","providers","TimerComponent","iconShow","weekShow","iconFontSize","iconMarginRight","iconColor","fontGlow","flowColor","flowSize","format","week","getTime","iconStyle","marginRight","str","substr","clearInterval","timer","setInterval","show_day","Date","getDay","NzIconModule","NumberFlopComponent","prefixContent","prefixFont","numberFont","point","suffixContent","suffixFont","numDigit","serial","tableBar","number","headlineStyle","height","prefixStyle","suffixStyle","numberdate","digits","index","split","hideProperty","VoteComponent","ele","num","btnColor","valueChange","border","setProperty","log","checked","NzCheckboxModule","FormsModule","selectColor","dropdownBg","dropdownBorderColor","ɵ1$1","ɵ2$1","ɵ3$1","ɵ4$1","SelectComponent","hint","dropdownBackgroundColor","selectDropDownColor","selectHoverColor","selectHoverBackgroundColor","dropdownWidth","outputFormat","separator","mode","optionChange","ngStyle","backgroundColor","dropdownStyle","document","selectedValue","option","selectChange","item","find","selectAllData","isArray","join","selectedOption","filter","includes","select","ɵ0$1","DataInput","Event","params","Method","Param","getFontStyle","NzSelectModule","NzButtonModule","SearchComponent","colorExample","btnStyleOption","iconSingleColor","iconSingleSize","btnStyle","btnIconStyle","searchChange","onKeypress","parent","child","iconService","fetchFromIconfont","scriptUrl","NzInputModule","NzPipesModule","NzIconService","WeatherComponent","zone","tempFont","weatherStyleType","iconSize","weatherIcon","weatherImgs","cloudy","rain","overcast","sunny","weatherImgName","tempStyle","reload","localCity","cityName","run","weather","lives","temperature","NgZone","HttpClientJsonpModule","RadioComponent","radioColor","styleType","selectImage","notSelectImage","isCustom","selectRadio","radioValue","radioChange","NzRadioModule","CheckboxComponent","lableLayout","lablePaddNum","allChecked","indeterminate","backgroudColor","updateCheckOptions","checkOptions","map","labelColors","updateSingleChecked","updateValue","currentValue","padd","lablePadd","labelWidthNum","labelWidth","charAt","change","values_1","changed_1","updateAllChecked","showCheckAll","every","checkedAll","arr","host","[class.vertical]","RateComponent","rateValue","sliderValue","NzRateModule","NzSliderModule","GeneralTextComponent","dataChange","textShadow","_d","_e","_f","_g","_h","padding","cursor","textAlign","exportWord","content","replace","p_1","createElement","innerHTML","keys","outerHTML","triggerLink","MarqueeComponent","direction","scrollamount","behavior","display","setTimeout","WordartComponent","offsetHeight","offsetWidth","backgroundImage","IconfontComponent","FileUrlService","getUrl","AudioComponent","fileUrlService","videoType","src","_src","substring","lastIndexOf","_type","ViewChild","list","VideoPlayerComponent","ngAfterViewInit","initd","resetHls","destroy","resetFlv","loadHls","loadHlsPromise","Hls","isSupported","destroyed","hlsPlayer","loadSource","attachMedia","video","loadFlv","flvPlayer","flvjs","createPlayer","hasAudio","hasVideo","isLive","withCredentials","enableWorker","lazyLoadMaxDuration","seekType","attachMediaElement","load","loadFlvPromise","unload","detachMediaElement","ngOnDestroy","Input","static","exports","VideoPlayerModule","barColor","gradient","ɵ1$2","ɵ2$2","ɵ3$2","BasicBarChartComponent","_super","colors","axisShow","scaleShow","labelDirection","barCategoryGap","showBackground","legends","maxNum","fill","hori_1","horizontal","barColors","x2","y2","global","colorStops","offset","yAxis1","yAxis2","inverse","axis","gridIndex","XdisplayScaleShow","YdisplayScaleShow","xAxisIndex","yAxisIndex","normal","barBorderRadius","emphasis","focus","ɵ0$2","colorSwitch","pieColor","ɵ1$3","ɵ2$3","ɵ3$3","BasicPieChartComponent","legentData","lineMark","buoy","roundWidth","addSplit","seriesDataPie","radiusPie","roseType","splitWidth","splitItem","labelLine","borderWidth","getPieData","reduce","abs","parseInt","objData_1","array2obj","addUnit","percent","orient","center","total","unit","array","resObj","getLegentData","class","ɵ0$3","ɵ1$4","ɵ2$4","ɵ3$4","BarChartThreeDComponent","autoRotate","boxWidth","boxDepth","sData","margin","xAxis3D","yAxis3D","zAxis3D","grid3D","viewControl","alpha","beta","zoomSensitivity","autoRotateAfterStill","distance","this_1","shading","temp","count","sort","prev","els","el","ɵ0$4","z","ShapeComponent","resizeObserver","fillet","side","sr","upper","deviation","destroy$","Subject","observe","pipe","takeUntil","subscribe","complete","clientWidth","clientHeight","stroke","strokeWidth","filterId","id","filterUrl","rx","ry","points","offset1","offset2","minX_1","maxX_1","minY_1","maxY_1","scaleX_1","scaleY_1","getEllipsePoint","rx1","ry1","rx2","ry2","cx","cy","rad","PI","cos","sin","NzResizeObserver","ɵ1$5","ɵ2$5","ɵ3$5","LineBarChartComponent","showY1","dataShadow","first","ɵ0$5","bubbleColor","ɵ1$6","ɵ2$6","ɵ3$6","BubbleChartComponent","shadowBlur","shadowOffsetY","shadowColor","ɵ0$6","RadarChartComponent","shape","area","radar","indicator","ext","this_2","seriesColor","ɵ1$7","ɵ2$7","ɵ3$7","FunnelChartComponent","gap","calculable","maxSize","minSize","dimensions","ɵ0$7","BackgroundComponent","pointerEvents","GaugeComponent","pointerColor","pointerShadow","startAngle","endAngle","labelOffset","labelVal","numFont","labelValOffset","axisTickLen","axisTickWidth","axisTickColor","color1","detail","offsetCenter","pointer","shadowOffsetX","ɵ1$8","ɵ2$8","ɵ3$8","PercentPieChartComponent","clockwise","value_per","angleAxis","radiusAxis","polar","coordinateSystem","roundCap","barWidth","barGap","console","ɵ0$8","TreeRingChartComponent","getData","getMax","res","clockWise","hoverAnimation","LiquidFillComponent","cover","bg","level","waveAnimation","insideColor","backgroundStyle","outline","ShufflingListComponent","carousel","lineWrap","time","serialNumberDisplay","headDisplay","headBackground","headFont","fontBling","bindColor","blingColor","borderBlingColor","borderSize","clickTarget","titleStyle","blingNum","oddBackground","evenBackground","contentFont","contentFontBling","contentBlingColor","contentBlingNum","paddingLeft","paddingRight","地区","流量","行为","tableStyle","animationDelay","dateChange","cellClick","columnClick","headStyle","bodyStyle","rowStyle","pageChange","borderBottom","getBlingStyle","wordBreak","schema","totalElements","paged","updateColumns","parentHeight","parentElement","headerHeight","rowHeight","linHeight","_carousel","runtime","placeholder","animation","paused","updateRuntime","loadNextPage","stopLoadNext","now","lastTime","nextPageTimeout","clearTimeout","getNextLoadTime","nextLoadTime","columns","titleStyleMap","keys_1","keys_1_1","property","cellStyle","column","clickable","flex","onClick","mouseover","animationPlayState","mouseout","onMousewheel","deltaY","stopPropagation","preventDefault","onCellClick","row","html","maxItems","items","required","arraySpan","/clickTarget","DataSchema","ColorPipe","_i","bindColor_1","bindColor_1_1","Pipe","NzToolTipModule","ParentContainerComponent","childInit","deleteChild","childId","BasicPlanimetricMapComponent","BasicPlanimetricMapComponent_1","zoom","centerLng","centerLat","hasMap","_children","import","chartInit","bmap","areaColor","roam","mapStyle","styleJson","featureType","elementType","stylers","visibility","childIndex","findIndex","provide","useExisting","forwardRef","children","hideChild","childTypes","BreathingBubbleLayerComponent","bubbleType","geoCoordMap","海门","鄂尔多斯","招远","舟山","齐齐哈尔","盐城","赤峰","青岛","乳山","金昌","泉州","莱西","日照","胶南","南通","拉萨","云浮","梅州","文登","上海","攀枝花","威海","承德","厦门","汕尾","潮州","丹东","太仓","曲靖","烟台","福州","瓦房店","即墨","抚顺","玉溪","张家口","阳泉","莱州","湖州","汕头","昆山","宁波","湛江","揭阳","荣成","连云港","葫芦岛","常熟","东莞","河源","淮安","泰州","南宁","营口","惠州","江阴","蓬莱","韶关","嘉峪关","广州","延安","太原","清远","中山","昆明","寿光","盘锦","长治","深圳","珠海","宿迁","咸阳","铜川","平度","佛山","海口","江门","章丘","肇庆","大连","临汾","吴江","石嘴山","沈阳","苏州","茂名","嘉兴","长春","胶州","银川","张家港","三门峡","锦州","南昌","柳州","三亚","自贡","吉林","阳江","泸州","西宁","宜宾","呼和浩特","成都","大同","镇江","桂林","张家界","宜兴","北海","西安","金坛","东营","牡丹江","遵义","绍兴","扬州","常州","潍坊","重庆","台州","南京","滨州","贵阳","无锡","本溪","克拉玛依","渭南","马鞍山","宝鸡","焦作","句容","北京","徐州","衡水","包头","绵阳","乌鲁木齐","枣庄","杭州","淄博","鞍山","溧阳","库尔勒","安阳","开封","济南","德阳","温州","九江","邯郸","临安","兰州","沧州","临沂","南充","天津","富阳","泰安","诸暨","郑州","哈尔滨","聊城","芜湖","唐山","平顶山","邢台","德州","济宁","荆州","宜昌","义乌","丽水","洛阳","秦皇岛","株洲","石家庄","莱芜","常德","保定","湘潭","金华","岳阳","长沙","衢州","廊坊","菏泽","合肥","武汉","大庆","convertData","getItem","geoCoord","extraData","lat","lng","Inject","spanLabelFixed","BreathingBubbleLayerModule","PlanimetricMap2dComponent","PlanimetricMap2dComponent_1","_areaColor","areaNamefont","showAreaName","triggerType","selectedMode","zoomSwitch","_borderColor","shadowWidth","mapColorStart","mapColorEnd","selectColorStart","selectColorEnd","areaClick","nameMap","Somalia","Liechtenstein","Morocco","W. Sahara","Serbia","Afghanistan","Angola","Albania","Aland","Andorra","United Arab Emirates","Argentina","Armenia","American Samoa","Fr. S. Antarctic Lands","Antigua and Barb.","Australia","Austria","Azerbaijan","Burundi","Belgium","Benin","Burkina Faso","Bangladesh","Bulgaria","Bahrain","Bahamas","Bosnia and Herz.","Belarus","Belize","Bermuda","Bolivia","Brazil","Barbados","Brunei","Bhutan","Botswana","Central African Rep.","Canada","Switzerland","Chile","China","Côte d'Ivoire","Cameroon","Dem. Rep. Congo","Congo","Colombia","Comoros","Cape Verde","Costa Rica","Cuba","Curaçao","Cayman Is.","N. Cyprus","Cyprus","Czech Rep.","Germany","Djibouti","Dominica","Denmark","Dominican Rep.","Algeria","Ecuador","Egypt","Eritrea","Spain","Estonia","Ethiopia","Finland","Fiji","Falkland Is.","France","Faeroe Is.","Micronesia","Gabon","United Kingdom","Georgia","Ghana","Guinea","Gambia","Guinea-Bissau","Eq. Guinea","Greece","Grenada","Greenland","Guatemala","Guam","Guyana","Heard I. and McDonald Is.","Honduras","Croatia","Haiti","Hungary","Indonesia","Isle of Man","India","Br. Indian Ocean Ter.","Ireland","Iran","Iraq","Iceland","Israel","Italy","Jamaica","Jersey","Jordan","Japan","Siachen Glacier","Kazakhstan","Kenya","Kyrgyzstan","Cambodia","Kiribati","Korea","Kuwait","Lao PDR","Lebanon","Liberia","Libya","Saint Lucia","Sri Lanka","Lesotho","Lithuania","Luxembourg","Latvia","Moldova","Madagascar","Mexico","Macedonia","Mali","Malta","Myanmar","Montenegro","Mongolia","N. Mariana Is.","Mozambique","Mauritania","Montserrat","Mauritius","Malawi","Malaysia","Namibia","New Caledonia","Niger","Nigeria","Nicaragua","Niue","Netherlands","Norway","Nepal","New Zealand","Oman","Pakistan","Panama","Peru","Philippines","Palau","Papua New Guinea","Poland","Puerto Rico","Dem. Rep. Korea","Portugal","Paraguay","Palestine","Fr. Polynesia","Qatar","Romania","Russia","Rwanda","Saudi Arabia","Sudan","S. Sudan","Senegal","Singapore","S. Geo. and S. Sandw. Is.","Saint Helena","Solomon Is.","Sierra Leone","El Salvador","St. Pierre and Miquelon","São Tomé and Principe","Suriname","Slovakia","Slovenia","Sweden","Swaziland","Seychelles","Syria","Turks and Caicos Is.","Chad","Togo","Thailand","Tajikistan","Turkmenistan","Timor-Leste","Tonga","Trinidad and Tobago","Tunisia","Turkey","Tanzania","Uganda","Ukraine","Uruguay","United States","Uzbekistan","St. Vin. and Gren.","Venezuela","U.S. Virgin Is.","Vietnam","Vanuatu","Samoa","Yemen","South Africa","Zambia","Zimbabwe","loadedMap","reloadMap","provinces","ngxEcharts","initChart","visualMap","visualMap2","seriesIndex","layer","triggerOn","geo","globalCoord","echarts.getMap","echarts.registerMap","markClick","seriesId","startsWith","geoJson","features","feature","cp","province","rollback","NgxEchartsDirective","FlyLineLayerComponent","fromInfo","toInfo","effect","period","trailLength","curveness","zlevel","fromName","toName","coords","Map2dPolylineLayerComponent","datalist","grouping","polyline","grouppname","groups","ɵ1$9","Map2dMarkLayerComponent","address","information","makerClick","coordinateSyste","imageUrl","rich","obj","ɵ0$9","Map2dVisualLayerComponent","gte","lte","colorEnd","suffix","gradual_1","lucency_1","pieces","piece","isLucency","showLabel","geoIndex","mapType","val","match","exec","FlyLineLayerModule","Map2dPolylineLayerModule","Map2dMarkLayerModule","Map2dVisualLayerModule","buttonEnum","PlanimetricMap3dComponent","PlanimetricMap3dComponent_1","boderWidth","regionHeight","projection","orthographicSize","panMouseButton","rotateMouseButton","bloomIntensity","geo3D","boxHeight","postEffect","enable","bloomEnable","bloom","ɵ1$a","Map3dMarkLayerComponent","groupMap","seriesList","groupName","getSeries","endsWith","responseType","svgStr","svg","DOMParser","parseFromString","paths","getElementsByTagName","path","getAttribute","origin","ɵ0$a","Map3dLineLayerComponent","lineMap","line","Map3dMarkLayerModule","Map3dLineLayerModule","MipAnimComponent","TreeControlComponent","arrayService","checkable","outputType","checkStrictly","showLine","expandAll","expandLevel","iconWidth","iconHeight","iconPosition","nodeDefaultIcon","nodeBackground","selectedBackground","nodeCheckedColor","nodeCheckedBackground","searchBorderColor","searchBackgroundColor","searchPlaceholder","treeScrollbarThumbBackground","parentKey","keyChange","nodes","selectedKeys","toTree","waittingSelect","updateStyle","expand","nodeMap","root","parentKey_value","node","isLeaf","selected","expandedKeys","visitTree","deep","onKeysChange","nodeClick","onCheckBoxChange","onNodeDblclick","renamable","edittingNode","renameInput","renameEnd","rename","showNode","search","searchValue","nodes_1","ArrayService","minimum","precision","showSearch","EventParam","NzTreeModule","NzHighlightModule","VisualMapChartComponent","visualMapPosition","mapColor","selectAreaColor","posi","layoutCenter","layoutSize","buttonStyle","defaultDateEnum","DatePickerComponent","i18n","backImage","dateFormat","selectMode","showTime","timeFormat","alert","allowClear","endDateChange","inputDate","inputEndDate","dateRange","initDefaultDate","rangeMode","getDefaultDate","defaultDate","defaultEndDate","date","onChange","today","startOfDay","addDays","startOfMonth","addMonths","startOfYear","addYears","startOfWeek","addWeeks","setDefaultFormat","datePickerStyle","backgroundSize","nzShowTime","nzFormat","nzHourStep","hourStep","nzMinuteStep","minuteStep","nzSecondStep","secondStep","updateData","disabledDate","updateDisabledDate","parse","nzDisabledDate","current","differenceInCalendarDays","endDate","getDate","input","formatDate","getLocaleId","setValue","NzI18nService","platform","NzDatePickerModule","TimePickerComponent","timeChange","defaultOpenValue","timePickerStyle","NzTimePickerModule","MapTypeEnum","CustomBaiduMapComponent","scale$","minMapShow","showType","dragging","shadeColor","mapCityColor","fillOpacity","strokesize","nightMode","tilt","zoomChange","mapClick","overlaysMap","init$","inited","mapTypeEnum","addLayer","view","removeLayer","setCenter","scale","sx","sy","scaleContent","onStable","take","parentNode","offsetX","parseFloat","offsetY","initMap","loadMapGL","loadMapVGL","mapTypeValue","uploadStyle","runOutsideAngular","BMapGL","Map","container","restrictCenter","centerAndZoom","Point","enableScrollWheelZoom","mapTypeChange","disableDragging","enable3D","setTilt","noAnimation","setDisplayOptions","skyColors","disableTilt","disableRotate","showLocationControl","anchor","BMAP_ANCHOR_TOP_LEFT","Size","locationControl","LocationControl","addControl","stCtrl","PanoramaControl","setOffset","infoWindowBackground","infoWindowColor","infoWindowBorderColor","addEventListener","getCenter","getZoom","mapvgl","View","mapLoaded","setCenterAndZoom","getTilt","setRectCenterAndZoom","minLng","maxLng","minLat","maxLat","pointA","pointB","getDistance","openInfoWindow","infoWindowTemplate","point_1","TemplateUtil","infoWindowWidth","infoWindowHeight","infoWindow_1","InfoWindow","firstOpen","firstOpenPromise","rawClose_1","close","getCanvasOverlay","canvasOverlay","pStart","pEnd","bounds","Bounds","GroundOverlay","canvas","pointToPixel_1","pointToPixel","CanvasLayer","paneName","update","ctx","getContext","clearRect","json_1","polygonData_1","encodeScale_1","UTF8Scale","geometry","coordinates","coordinate","UTF8Encoding","decodePolygon","encodeOffsets","PolygonLayer","lineWidth","fillColor","renderOrder","mapBackColor","maskLayer","MaskLayer","encodeScale","prevX","prevY","charCodeAt","darkStyle","setMapType","BMAP_NORMAL_MAP","setMapStyleV2","BMAP_SATELLITE_MAP","ScaleSubject","Optional","HostBinding","WindLayerComponent","sharpness","updateOverlay","remove","getCanvas","addCanvasOverlay","addOverlay","removeOverlay","startLng_1","startLat_1","endLng_1","endLat_1","multiple_1","c_1","round","groups_1","p1","p2","floor","p3","gnt","createRadialGradient","addColorStop","fillStyle","beginPath","arc","closePath","getTangency","sqrt","atan","t2","quadraticCurveTo","strokeStyle","BaseLayer","layers","updateLayers","removeLayers","createLayers","Directive","getUUID","uuid","ɵ1$b","ɵ2$9","BaiduMarkerLayerComponent","nzContextMenuService","iconUrl","iconOffsetX","iconOffsetY","toCenter","enableMarkerClusterer","clusterMinSize","clusterMaxSize","clusterFont","clusterMaxZoom","labelFont","unselectOnClickBlank","layerMap","dataMap","showLabelMinZoom","updateTextVisible","selectedId","currentSelectedId","move","defaultLayer","createLayer","textOptions","getTextOptions","flat","collides","labelOffsetX","labelOffsetY","blur","textLayer","TextLayer","addPickEvent","PointLayer","duration","trail","CircleLayer","iconOptions","getIconOptions","clusterGradient","gradient_1","maxZoom","ClusterLayer","IconLayer","hide","maxLng_1","minLng_1","maxLat_1","minLat_1","groupData","textData","id_value","getOptions","resetLayer","force","setData","XOffset","YOffset","enablePicked","dataItem","clickData","clickTimeout","subMarkers","data_1","infoWindowData_1","onMousemove","selectedData_1","lastSelectGroup","currentSelectGroup","lastSelect","updateSize","resetLayerData","enlargeOnSelect","ScrollDispatcher","NzContextMenuService","ɵ0$b","BaiduPolylineLayerComponent","strokeWeight","strokeColor","dashInterval","layerOptions","layerLineMap","lineCap","blend","dashArray","LineLayer","EARTH_RADIUS","TyphoonAreaLayerComponent","nw","ne","sw","se","kk","getTF","getPoints","cradius","angle","NzDropDownModule","NzNoAnimationModule","ScrollingModule","icons","UploadComponent","msg","listType","showUploadList","loading","beforeUpload","file","_fileList","Observable","observer","isJpgOrPng","isLt2M","handleChange","info","status","success","response","getBase64","originFileObj","img","avatarUrl","callback","reader","FileReader","readAsDataURL","NzMessageService","NzUploadModule","CrossTableComponent","pageSize","theadBackground","contentAlign","tbodyBackground","showBorder","cross","needPage","crossVal","widthConfig","rows","heads","ths","head","assemble","totalval","nrow","td","NzTableModule","TableComponent","isCount","customCol","isCross","tdChange","trChange","rowChange","tdClick","totalCount","needCount","headers","filterValues","sumData","updateHeader","hasGroup_1","some","subHeader_1","groupMap_1","grouped","field","ismerge","iscount","needlevel","showFilter","col","dataSize","titleSize","updateFilterOptions","groupBy","sumColumns","sum","isNum","valueSet_1","target_1","filterValue","filterMatch","exclude","e_3","myColor","getColor","rowspan","lastTd_1","check","ite","filed","getDataValue","onTdClick","onTdClickByGroup","onTrClick","onCheck","values","filterChecked","filterVisible","export","merges","row1_1","row2_1","colIndex","rowData","rowIndex","row1","tables","querySelectorAll","table","measureRow","cloneNode","querySelector","removeChild","ɵ0$c","HighChartsService","Highcharts","loadHighChartsPromise","load3D","loadHighCharts3DPromise","Pie3dChartComponent","highChartsService","thickness","showLegend","itemDistance","coefficient","alignType","verticalAlign","initPlugin","each","deg2rad","wrap","seriesTypes","pie","proceed","chart","is3d","seriesOptions","depth","options3d","stacking","shapeArgs","shapeType","ran","h","slicedTranslation","translateX","slicedOffset","translateY","SVGRenderer","ret","zTop","zOut","pointFormat","labelFormat","events","graphic","attr","side1","side2","plotOptions","showInLegend","allowPointSelect","legendItemClick","dataLabels","MultiTitleGaugeComponent","detailFont","pointerLength","showPointer","showScale","showAbove","progress","overlap","datas","numa_1","numb_1","GaugeProgressComponent","numfont","slidesPerView","spaceBetween","navigation","navigationMoveVal","navigationLeftIcon","navigationRightIcon","cardBgImg","navigationBtnConfig","prevEl","nextEl","progressColor","progressShadow","sourceData","clip","colorBox","colorInfo","schemas","CUSTOM_ELEMENTS_SCHEMA","BulletinBoardComponent","titleFont","subtitleFont","startColor","endColor","separate","marginSize","contentArr","sp","subtitleStyle","borderLeft","boxStyle","ItemSwiperComponent","titlefont","selectHeight","gourpHeight","valueBottom","isgroup","images","groupfont","showNavigation","imgstyle","onSwiper","swiper","onSlideChange","NzSpaceModule","TemporaryDataComponent","LineLightFlowComponent","lineshadowColor","lineHightLightColor","topDistance","resize","resizeTimeout","opt","currentIndex","lineCanvas","initOpt","_initCanvas","_createPattern","draw","innerW","canvasBox","animating","tabHeight","curDisX","avgSpeed","calcAVGSpeed","tabWidthList","sign","getCurSpeed","_calCurve","bezierCurveTo","devicePixelRatio","canvasObj","moveTo","lineTo","createPattern","pattern","_drawHightlight","_draw","createLinearGradient","requestAnimationFrame","trueorfalse","tableHeight","nextIndex","HostListener","IframeComponent","setUrl","VideoGridComponent","gutter","videos","selectedIndex","updateGutter","addSrc","cellSize","validIndex","toggle","NzGridModule","Scatter3dComponent","symbolSizeMin","symbolSizeMax","visualMapColor","colorAlphaMin","colorAlphaMax","inRange","colorAlpha","maximum","className","ImageModule","BasicLineChartModule","BasicPieChartModule","BasicBarChartModule","LineBarChartModule","BarChartThreeDModule","BubbleChartModule","RadarChartModule","FunnelChartModule","PercentPieChartModule","TreeRingChartModule","GaugeModule","LiquidFillModule","ButtonModule","TimerModule","NumberFlopModule","VoteModule","SelectModule","SearchModule","WeatherModule","RadioModule","CheckboxModule","RateModule","GeneralTextModule","MarqueeModule","WordartModule","IconfontModule","TableModule","AudioModule","ShapeModule","BackgroundModule","ShufflingListModule","BasicPlanimetricMapModule","PlanimetricMap2dModule","ParentContainerModule","PlanimetricMap3dModule","MipAnimModule","TreeControlModule","VisualMapChartModule","DatePickerModule","TimePickerModule","CustomBaiduMapModule","UploadModule","CrossTableModule","Pie3dChartModule","MultiTitleGaugeModule","GaugeProgressModule","ItemSwiperModule","BulletinBoardModule","TemporaryDataModule","LineLightFlowModule","IframeModule","VideoGridModule","Scatter3dModule","AnnouncementComponent","headIconDisplay","dayFormat","updateEndTime","isMatch","CalendarComponent","router","isInitialDate","initialDate","datesSetChange","eventMap","eventClick","extendedProps","setEvents","removeEvents","calendarOptions","delete","headerToolbar","buttonText","dayGridMonth","timeGridWeek","timeGridDay","timeZone","locale","eventTimeFormat","hour","minute","hour12","slotLabelFormat","jsEvent","datesSet","arg","toLowerCase","Router","ɵ0$d","CalendarEventsChild","getEvents","BackgroundEventsComponent","ɵ0$e","EventsComponent","ɵ0$f","FullCalendarModule","registerPlugins","dayGridPlugin","timeGridPlugin","interactionPlugin","TabsComponent","tabPosition","animated","getContainer","selectedChild","TabComponent","NzTabsModule","GanttComponent","contentRenderers","headerContent","progressTransparency","areaRate","progressHeight","project","resources","dateArr","arrIndex","parseISO","eventColor","resourceId","backColor","initialView","scrollTime","aspectRatio","initDate","views","resourceTimelineDay","slotDuration","resourceTimelineTenDay","days","resourceTimelineMonth","day","weekday","resourceTimelineYear","month","slotLabelInterval","editable","resourceAreaHeaderContent","resourceAreaWidth","columnFormat","eventContent","renderEventContent","eventWillUnmount","unrenderEvent","proColor","barStyle","progressStyle","createEmbeddedView","detectChanges","domNodes","rootNodes","resourceTimelinePlugin","hideHead","AnnouncementModule","TabsModule","CalendarModule","GanttModule"],"mappings":"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AO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,MAAOa,MAAO,GAAI8O,OAAQ,GAClC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,CAAE3P,KAAM,KAAMa,MAAO,GAAI8O,OAAQ,GACjC,C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sD,QAAS,CACPC,OAAAA,aACAC,cAAAA,iBACA8sD,SAAAA,iBACAC,YAAAA,oBACAC,UAAAA,gBACA14C,MAAAA,cACA5F,MAAAA,6EA1BuBzO,cAAAA,iBCHpB,IAAMgtD,MAAQ,CACnB,eACA,iBACA,gBACA,sBACA,gBACA,eACA,cACA,eACA,gBACA,YACA,cACA,iBACA,cACA,gBACA,YACA,cACA,aACA,eACA,qBACA,eACA,yBACA,UACA,aACA,aACA,cACA,aACA,eACA,6BACA,eACA,oBACA,oBACA,eACA,cACA,oBACA,YACA,gBACA,aACA,uBACA,YACA,eACA,aACA,YACA,mBACA,gBACA,uBACA,gBACA,kBACA,gBACA,gBACA,cACA,oBACA,eACA,cACA,WACA,eACA,cACA,yBACA,eACA,cACA,sBACA,YACA,iBACA,aACA,uBACA,eACA,aACA,kBACA,cACA,eACA,eACA,eACA,YACA,uBACA,mBACA,gBACA,yBACA,kBACA,qBACA,oBACA,WACA,eACA,cACA,cACA,YACA,aACA,cACA,aACA,WACA,aACA,cACA,iBACA,sBACA,mBACA,aACA,aACA,oBACA,wBACA,oBACA,aACA,eACA,qBACA,eACA,aACA,eACA,eACA,cACA,oBACA,YACA,kBACA,qBACA,aACA,aACA,aACA,aACA,aACA,cACA,mBACA,cACA,wBACA,mBACA,cACA,uBACA,eACA,aACA,gBACA,eACA,oBACA,mBACA,qBACA,sBACA,YACA,aACA,iBACA,cACA,iBACA,gBACA,mBACA,oBACA,iBACA,cACA,iBACA,eACA,eACA,eACA,eACA,aACA,gBACA,YACA,eACA,aACA,cACA,aACA,gBACA,aACA,cACA,wBACA,eACA,cACA,cACA,aACA,aACA,cACA,WACA,eACA,YACA,aACA,cACA,aACA,UACA,gBACA,gBACA,UACA,iBACA,eACA,cACA,aACA,UACA,cACA,aACA,aACA,aACA,YACA,iBACA,uBACA,YACA,aACA,cACA,aACA,kBACA,YACA,iBACA,YACA,cACA,YACA,UACA,kBCpLWC,QAA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","sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { LazyService } from '@delon/util';\r\n\r\n// (window as any)._AMapSecurityConfig = {\r\n// securityJsCode: '1f288f3bf91dc24647c540ef2988ba30',\r\n// };\r\ndeclare const AMap;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class GaodeMapService {\r\n private loadAmapPromise: Promise<any>;\r\n\r\n constructor(public lazy: LazyService, private http: HttpClient) {}\r\n\r\n loadMap(): Promise<any> {\r\n if (typeof AMap !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (!this.loadAmapPromise) {\r\n this.loadAmapPromise = this.lazy.loadScript(\r\n 'https://webapi.amap.com/maps?v=1.4.15&key=803815fd5b53fbb5bfb6656b049f1d37&plugin=AMap.ControlBar',\r\n );\r\n }\r\n return this.loadAmapPromise;\r\n }\r\n\r\n getWeather(city): Promise<any> {\r\n // 高德地图\r\n return this.http\r\n .jsonp(\r\n `https://restapi.amap.com/v3/weather/weatherInfo?key=d633c7a49d34575ad5fb4235856f3a7b&city=${city}`,\r\n 'callback',\r\n )\r\n .toPromise();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BaiduMapService } from 'bbj-screen-widget/core';\r\nimport { GaodeMapService } from './gaode-map.service';\r\n\r\n/**\r\n * @deprecated\r\n * 用BaiduMapService和GaodeMapService替代\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class CommonService {\r\n constructor(private baiduMapService: BaiduMapService, public gaodeMapService: GaodeMapService) {}\r\n\r\n /**\r\n * @deprecated\r\n * 用BaiduMapService.loadMap替代\r\n */\r\n getMap(): Promise<any> {\r\n return this.baiduMapService.loadMap();\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * 用GaodeMapService.loadMap替代\r\n */\r\n loadMap(): Promise<any> {\r\n return this.gaodeMapService.loadMap();\r\n }\r\n}\r\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n OnChanges,\n OnInit,\n Renderer2,\n SimpleChanges,\n} from '@angular/core';\nimport { Data, Property, Widget, WidgetRef } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-picture',\n templateUrl: './image.component.html',\n styleUrls: ['./image.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Widget('图片', { group: 'picture', icon: 'icontupian' })\nexport class ImageComponent implements OnInit, OnChanges {\n @Property('', { min: 1, ui: { widget: 'myUpload', spanLabel: 0, spanControl: 24 } })\n image: string;\n\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n style: any = {};\n hideHead: boolean;\n @Property('布局', {\n enum: [\n { label: '自适应', value: 'auto' },\n { label: '拉伸', value: 'stretch' },\n { label: '重复', value: 'repeat' },\n ],\n })\n layout = 'auto';\n @Data({\n properties: {\n image: { type: 'string', title: '路径' },\n },\n })\n _data: any[] = [];\n backgroundImage: string;\n constructor(\n private cd: ChangeDetectorRef,\n private renderer: Renderer2,\n private elementRef: ElementRef,\n private widgetRef: WidgetRef,\n ) {}\n ngOnChanges(changes: SimpleChanges): void {\n let image: string;\n if (this._data && this._data[0]?.image) {\n image = this._data[0].image;\n } else {\n image = this.image;\n }\n this.setStyle('backgroundImage', image ? `url(${image})` : null);\n this.cd.markForCheck();\n }\n\n ngOnInit() {\n this.renderer.addClass(this.element, this.layout || 'auto');\n this.setStyle('opacity', this.opacity === 1 ? null : this.opacity);\n const { color, X, Y, Z } = this.shadow;\n this.setStyle('boxShadow', color ? `${color} ${X}px ${Y}px ${Z}px` : null);\n const widget: any = this.widgetRef.widget as any;\n if (widget.link?.enabled || widget.outputs?.enabled) {\n this.setStyle('cursor', 'pointer');\n }\n }\n\n get element(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n setStyle(style: string, value: any) {\n this.renderer.setStyle(this.element, style, value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImageComponent } from './image.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [ImageComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class ImageModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(ImageComponent);\n }\n}\n","export function getEchartsTextStyle(font: any) {\r\n const textStyle: any = {};\r\n if (font) {\r\n textStyle.color = font.color;\r\n textStyle.fontFamily = font.family;\r\n textStyle.fontWeight = font.weight;\r\n textStyle.fontSize = font.size;\r\n textStyle.lineHeight = font.lineHeight;\r\n }\r\n return textStyle;\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Data, Property, Widget, Drill, DataOutput } from 'bbj-widget-base';\nimport { getEchartsTextStyle } from '../shared/util/echarts.util';\n\n@Component({\n selector: 'sc-basicLine',\n templateUrl: './basic-line-chart.component.html',\n styleUrls: ['./basic-line-chart.component.less'],\n})\n@Widget('基本折线图', {\n group: 'lineChart',\n image: 'assets/img/screen/basic-line-chart.png',\n icon: 'icontubiao',\n})\nexport class BasicLineChartComponent implements OnInit, OnChanges {\n @Property('类型', { ui: { hidden: true } })\n type = 'basic';\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['lineColor'],\n example: [\n {\n background: 'assets/img/screen/line2.png',\n data: { lineColor: ['#FF851D', '#FFEF66'] },\n },\n {\n background: 'assets/img/screen/line3.png',\n data: { lineColor: ['#00D191', '#00FECB'] },\n },\n {\n background: 'assets/img/screen/line1.png',\n data: { lineColor: ['#3285FF', '#00D2FD'] },\n },\n {\n background: 'assets/img/screen/line4.png',\n data: { lineColor: ['#8934F8', '#FF3699'] },\n },\n ],\n },\n })\n example: any;\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n lineColor = ['#3285FF', '#00D2FD'];\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#595F7A',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 30,\n right: 30,\n bottom: 40,\n left: 36,\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '居中', value: 'center' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'center';\n @Property('提示线样式', {\n ui: { widget: 'select' },\n enum: [\n { label: '直线指示器', value: 'line' },\n { label: '阴影指示器', value: 'shadow' },\n { label: '十字准星指示器', value: 'cross' },\n { label: '无', value: 'none' },\n ],\n })\n axisType = 'none';\n @Property('提示线类型', {\n ui: { widget: 'select' },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n lineType = 'dashed';\n // @Property('轴单位', {ui: {widget: 'myUnit'}})\n // unit = {x: '', y: ''};\n @Property('提示线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n axisColor = '#333333';\n @Property('提示线宽度', { type: 'number' })\n axisWidth = 10;\n @Property('x轴类型', {\n enum: [\n { label: '类目', value: 'category' },\n { label: '时间', value: 'time' },\n ],\n })\n xType = 'category';\n @Property('y轴单位', { type: 'string' })\n yUnit = '';\n @Property('x轴单位', { type: 'string' })\n xUnit = '';\n @Property('y轴最小')\n yMin: number;\n @Property('y轴最大')\n yMax: number;\n @Property('y轴最小间隔')\n yMinInterval: number;\n @Property('y轴最大增减')\n yMaxAddNum: number;\n @Property('坐标留白', { type: 'boolean' })\n boundaryGap = true;\n @Property('显示Y轴', { type: 'boolean' })\n showY = true;\n @Property('y轴网络线', { type: 'boolean' })\n netLine = false;\n\n @Property('y网络线类型', {\n ui: { widget: 'select', visibleIf: { netLine: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n netLineType = 'dashed';\n @Property('x轴网络线', { type: 'boolean' })\n netLineX = false;\n\n @Property('x网络线类型', {\n ui: { widget: 'select', visibleIf: { netLineX: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n netLineXType = 'dashed';\n\n @Property('网络线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n netLineColor = 'rgba(255,255,255,0.2)';\n\n @Property('标签', { type: 'boolean' })\n label = false;\n\n @Property('标线', { type: 'boolean' })\n markLine = false;\n @Property('Y轴标线高度', { type: 'number', ui: { visibleIf: { markLine: [true] } } })\n YmarkLineHeight = 10;\n\n // @Property('显示X轴', {\n // ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n // })\n // showX = true;\n @Property('Y标线标题', {\n type: 'string',\n ui: { visibleIf: { markLine: [true] }, optionalHelp: '此标题需要跟x字段内名字一致' },\n })\n YmarkLineName = '';\n // @Property('标线数值', { type: 'number' })\n // markLineVal = null;\n\n @Property('Y标线类型', {\n ui: { widget: 'select', visibleIf: { markLine: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n YmarkLineType = 'dashed';\n\n @Property('Y标线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n visibleIf: { markLine: [true] },\n },\n })\n YmarkLineColor = '#f00';\n @Property('Y标线粗细', {\n type: 'number',\n ui: { visibleIf: { markLine: [true] } },\n })\n YmarkWidth = 2;\n @Property('X轴标线位置', { type: 'string', ui: { visibleIf: { markLine: [true] } } })\n XmarkLineLocation = '二月';\n @Property('X标线标题', {\n type: 'string',\n ui: { optionalHelp: '此标题需要跟x字段内名字一致', visibleIf: { markLine: [true] } },\n })\n XmarkLineName = '';\n @Property('X标线类型', {\n ui: { widget: 'select', visibleIf: { markLine: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n XmarkLineType = 'dashed';\n\n @Property('X标线颜色', {\n ui: {\n visibleIf: { markLine: [true] },\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n XmarkLineColor = '#f00';\n @Property('X标线粗细', {\n type: 'number',\n ui: { visibleIf: { markLine: [true] } },\n })\n XmarkWidth = 2;\n @Property('数据标线')\n showDataMarkLine: boolean;\n @Property('数据标线格式化', {\n ui: { visibleIf: { showDataMarkLine: [true] }, optionalHelp: 'function(params){return params.data.value}' },\n })\n dataMarkLineFormatter: string;\n @Property('隐藏x轴标签')\n hideXLabel: boolean;\n @Property('x轴标签角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 10, visibleIf: { hideXLabel: (value) => !value } },\n })\n xLabelRotate = 0;\n @Property('x轴文本宽度', { ui: { visibleIf: { hideXLabel: (value) => !value } } })\n xLabelWidth: number;\n @Property('x轴文字宽度超出', {\n enum: [\n { label: '自动', value: 'auto' },\n { label: '截断', value: 'truncate' },\n { label: '换行', value: 'break' },\n { label: '强制换行', value: 'breakAll' },\n ],\n ui: { widget: 'select', visibleIf: { hideXLabel: (value) => !value } },\n })\n xLabelOverflow = 'auto';\n @Property('标签显示间隔', {\n ui: {\n visibleIf: { hideXLabel: (value) => !value },\n optionalHelp: {\n text: `默认会采用标签不重叠的策略间隔显示标签。\n可以设置成 0 强制显示所有标签。 \n如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。`,\n overlayStyle: {\n whiteSpace: 'pre-line',\n },\n },\n },\n })\n xLabelInterval: number;\n\n @Property('区域缩放')\n insideDataZoom: boolean;\n @Property('缩放最少数量', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomMinData: number;\n @Property('缩放开始百分比', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomStart: number;\n @Property('缩放结束百分比', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomEnd: number;\n @Property('滚轮缩放', {\n enum: [\n { label: '启用', value: true },\n { label: '禁用', value: false },\n { label: '按住shift', value: 'shift' },\n { label: '按住ctrl', value: 'ctrl' },\n { label: '按住alt', value: 'alt' },\n ],\n ui: { widget: 'select', visibleIf: { insideDataZoom: [true] } },\n })\n zoomOnMouseWheel = true;\n @Property('滑动条', { ui: { visibleIf: { insideDataZoom: [true] } } })\n sliderDataZoom: boolean;\n @Property('锁定区域大小', { ui: { visibleIf: { sliderDataZoom: [true] } } })\n zoomLock: boolean;\n @Property('提示框字体', { ui: { widget: 'myFont' } })\n tooltipFont: any;\n @Property('阶梯拐点', {\n enum: [\n { label: '当前点', value: 'start' },\n { label: '中间点', value: 'middle' },\n { label: '下个点', value: 'end' },\n ],\n ui: { widget: 'select', visibleIf: { type: ['step'] } },\n })\n step: string;\n @Property('标记点大小', { type: 'number' })\n symbolSize: number;\n chartOption: any = null;\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n s: { type: 'string', title: '系列' },\n },\n })\n _data: any[] = [\n { x: '一月', y: 10, s: '收入' },\n { x: '二月', y: 20, s: '收入' },\n { x: '三月', y: 25, s: '收入' },\n { x: '四月', y: 35, s: '收入' },\n { x: '五月', y: 27, s: '收入' },\n { x: '六月', y: 28, s: '收入' },\n { x: '一月', y: 18, s: '支出' },\n { x: '二月', y: 28, s: '支出' },\n { x: '三月', y: 32, s: '支出' },\n { x: '四月', y: 48, s: '支出' },\n { x: '五月', y: 20, s: '支出' },\n { x: '六月', y: 17, s: '支出' },\n ];\n @Drill()\n @DataOutput(['x', 's'])\n dataClick = new EventEmitter<any>();\n xData = [];\n yData = [];\n // series = [];\n style = {\n color: '',\n fontFamily: '',\n fontWeight: '',\n fontSize: '',\n lineHeight: '',\n };\n constructor() {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const textStyle = this.getTextStyle(this.font);\n this.style = textStyle;\n this.chartOption = {\n dataZoom: this.getDataZoom(),\n tooltip: this.getTooltip(),\n legend: this.getLegend(),\n grid: this.getGrid(),\n xAxis: this.getXAxis(),\n yAxis: this.getYAxis(),\n color: this.lineColor,\n series: [],\n };\n this.reloadData();\n }\n }\n\n getXAxis(): any {\n return {\n name: this.xUnit,\n nameTextStyle: this.style,\n type: this.xType || 'category',\n boundaryGap: this.boundaryGap,\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n axisLabel: {\n ...this.style,\n rotate: this.xLabelRotate,\n show: !this.hideXLabel,\n width: this.xLabelWidth,\n overflow: this.xLabelOverflow,\n interval: this.xLabelInterval,\n },\n splitLine: {\n show: this.netLineX,\n lineStyle: {\n type: this.netLineXType,\n color: this.netLineColor,\n },\n },\n };\n }\n\n getYAxis(): any {\n return {\n show: true,\n name: this.yUnit,\n nameTextStyle: this.style,\n type: 'value',\n min: this.yMin,\n max: (value) => {\n let yMax = value.max;\n if (this.yMax) {\n yMax = Number(this.yMax);\n } else if (this.markLine) {\n yMax = Math.max(Number(this.YmarkLineHeight), yMax);\n }\n return Math.ceil(this.yMaxAddNum ? yMax + Number(this.yMaxAddNum) : yMax);\n },\n axisLine: {\n show: this.showY,\n lineStyle: {\n color: this.style.color,\n },\n },\n axisLabel: this.style,\n splitLine: {\n show: this.netLine,\n lineStyle: {\n type: this.netLineXType,\n color: this.netLineColor,\n },\n },\n axisTick: {\n show: this.showY,\n },\n minInterval: this.yMinInterval,\n };\n }\n\n getGrid() {\n return {\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n };\n }\n getLegend(): any {\n return {\n align: 'left',\n left: this.align,\n show: this.align !== 'none',\n icon: 'rect',\n textStyle: this.style,\n };\n }\n getTooltip() {\n return {\n trigger: 'axis',\n textStyle: this.getTextStyle(this.tooltipFont),\n axisPointer: {\n type: this.axisType,\n label: {\n show: false,\n },\n lineStyle: {\n type: this.lineType,\n color: this.axisColor,\n width: this.axisWidth,\n },\n },\n };\n }\n\n getTextStyle(font: any) {\n return getEchartsTextStyle(font);\n }\n\n getDataZoom() {\n const dataZoom = [];\n if (this.insideDataZoom) {\n let enableDataZoom = true;\n if (this.dataZoomMinData != null) {\n const xSet = new Set<string>();\n this._data.forEach((data) => {\n if (data.x) {\n xSet.add(data.x);\n }\n });\n if (xSet.size < this.dataZoomMinData) {\n enableDataZoom = false;\n }\n }\n if (enableDataZoom) {\n let start = this.dataZoomStart || 0;\n let end = this.dataZoomEnd || 100;\n dataZoom.push({ type: 'inside', start, end, zoomOnMouseWheel: this.zoomOnMouseWheel });\n if (this.sliderDataZoom) {\n dataZoom.push({ type: 'slider', start, end, zoomLock: this.zoomLock, brushSelect: false });\n }\n }\n }\n return dataZoom;\n }\n\n reloadData() {\n const seriesMap = {};\n const dataset = [];\n const source = [];\n dataset.push({ source });\n this._data.forEach((record) => {\n // 针对markline标线关联数据库的操作, 若x的名字与markline的name一致,则获取对应的y轴数据作为markline的value; 目前仅支持一个markline\n // data中过滤掉markline的数据\n if (this.markLine && this.YmarkLineName && record.x === this.YmarkLineName) {\n this.YmarkLineHeight = record.y;\n } else {\n //为空filter会报错\n if (record.s == null) {\n record = { ...record, s: '' };\n }\n source.push(record);\n const s = record.s;\n let series = seriesMap[s];\n if (!series) {\n // seriesSet.add(s);\n const transform = {\n type: 'filter',\n config: { dimension: 's', value: s },\n };\n dataset.push({ transform });\n series = this.setSeriesStyle(s, dataset.length - 1);\n seriesMap[s] = series;\n if (this.showDataMarkLine) {\n series.markLine = {\n symbol: ['none', 'none'],\n label: {\n ...this.style,\n position: 'start',\n },\n data: [],\n };\n if (this.dataMarkLineFormatter) {\n series.markLine.label.formatter = eval('(' + this.dataMarkLineFormatter + ')');\n }\n }\n }\n if (this.showDataMarkLine) {\n series.markLine.data.push({ xAxis: record.x });\n }\n }\n });\n this.chartOption.dataset = dataset;\n if (this.markLine) {\n const marklineStyle: any = {\n symbol: 'none',\n silent: true, // 鼠标悬停书剑,true没有\n data: [],\n };\n if (this.YmarkLineName) {\n marklineStyle.data.push({\n name: this.YmarkLineName,\n type: this.YmarkLineHeight ? null : 'average',\n yAxis: this.YmarkLineHeight,\n lineStyle: {\n color: this.YmarkLineColor,\n type: this.YmarkLineType,\n width: this.YmarkWidth ? this.YmarkWidth : 2,\n },\n label: {\n formatter: '{b}{c}',\n position: 'insideEndTop',\n color: this.YmarkLineColor,\n fontSize: this.font.size,\n },\n });\n }\n if (this.XmarkLineName) {\n marklineStyle.data.push({\n name: this.XmarkLineName,\n type: this.XmarkLineLocation ? null : 'average',\n xAxis: this.XmarkLineLocation,\n lineStyle: {\n color: this.XmarkLineColor,\n type: this.XmarkLineType,\n width: this.XmarkWidth ? this.XmarkWidth : 2,\n },\n label: {\n formatter: '{b}{c}',\n position: 'insideEndTop',\n color: this.XmarkLineColor,\n fontSize: this.font.size,\n },\n });\n }\n this.chartOption.series.push({ type: 'line', markLine: marklineStyle, data: [] });\n // this.chartOption.series[this.chartOption.series.length - 1].markLine = marklineStyle;\n }\n }\n\n setSeriesStyle(name: string, datasetIndex: number) {\n const series: any = {\n name,\n label: {\n show: this.label,\n textStyle: this.style,\n },\n connectNulls: true,\n itemStyle: {},\n type: 'line',\n areaStyle: {},\n smooth: false,\n symbolSize: this.symbolSize ?? 10,\n encode: { x: 'x', y: 'y' },\n datasetIndex,\n };\n this.chartOption.series.push(series);\n series.areaStyle.opacity = 0;\n if (this.type === 'smooth' || this.type === 'smooth-area') {\n series.smooth = true;\n }\n if (this.type === 'area' || this.type === 'smooth-area') {\n series.areaStyle.opacity = 0.5;\n series.symbolSize = this.symbolSize ?? (this.label ? 10 : 0);\n }\n if (this.type === 'step') {\n series.step = this.step;\n }\n return series;\n }\n\n uniqueData(data) {\n for (let i = 0; i < data.length - 1; i++) {\n for (let j = i + 1; j < data.length; j++) {\n if (data[i] === data[j]) {\n data.splice(j, 1);\n j--;\n }\n }\n }\n return data;\n }\n\n getMaxY() {\n for (let i = 0; i < this._data.length; i++) {\n this.yData[i] = this._data[i].y;\n }\n this.uniqueData(this.yData);\n const a = Math.max(...this.yData).toFixed(0);\n const b = a.toString().length;\n const c = Math.pow(10, b - 1);\n const max = Number(c) + Number(a);\n return max;\n }\n\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BasicLineChartComponent } from './basic-line-chart.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [BasicLineChartComponent],\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\n})\nexport class BasicLineChartModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(BasicLineChartComponent);\n }\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class HttpService {\r\n constructor(private http: HttpClient) {}\r\n\r\n get(url: string, options: any) {\r\n return this.http.get(url, options).toPromise();\r\n }\r\n\r\n post(url: string, body: any, options: any) {\r\n return this.http.post(url, body, options).toPromise();\r\n }\r\n}\r\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { Data, DataOutput, GlobalVarService, Property, TemplateUtil, Widget } from 'bbj-widget-base';\nimport { SFOptionalHelp, SFRadioWidgetSchema } from '@delon/form';\nimport { of } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { HttpService } from '../shared/service/http.service';\n\n@Component({\n selector: 'sc-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.less'],\n})\n@Widget('按钮', { group: 'component', image: 'assets/img/screen/myButton.png', icon: 'iconmokuai' })\nexport class ButtonComponent implements OnInit {\n textStyle: any = {};\n edit: any;\n @Property('按钮样式', {\n ui: {\n widget: 'myButton',\n spanLabel: 24,\n spanControl: 24,\n name: 'button',\n reset: ['background', 'borderColor'],\n background: [\n { background: '#FFB700', borderColor: '#FFB700' },\n { background: '#00E371', borderColor: '#00E371' },\n { background: '#3285FF', borderColor: '#3285FF' },\n { background: '#B232FF', borderColor: '#B232FF' },\n { background: '#FF3286', borderColor: '#FF3286' },\n { background: '#FF3832', borderColor: '#FF3832' },\n { background: 'linear-gradient(-180deg, #FAD961 0%, #F76B1C 100%)', borderColor: '#F76B1C' },\n { background: 'linear-gradient(-180deg, #B4EC51 0%, #429321 100%)', borderColor: '#429321' },\n { background: 'linear-gradient(-180deg, #20C8FF 0%, #0059DD 100%)', borderColor: '#0059DD' },\n { background: 'linear-gradient(-90deg, #3023AE 0%, #C86DD7 87%)', borderColor: '#C86DD7' },\n ],\n },\n })\n colorExample: any;\n @Property('内容')\n title = 'button';\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = 'linear-gradient(-180deg, #20C8FF 0%, #0059DD 100%)';\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#FFFFFF', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor = '#0059DD';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('圆角', { ui: { widget: 'myRange', min: 0, max: 100, step: 1 } })\n radius = 4;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Property('超链接')\n href = '';\n @Property('另起窗口', {\n type: 'boolean',\n ui: {\n checkedChildren: '是',\n unCheckedChildren: '否',\n },\n })\n openModel = true;\n @Property('执行脚本', {\n ui: {\n widget: 'textarea',\n autosize: { minRows: 6, maxRows: 10 },\n optionalHelp: {\n text: `内置变量:\n1、http:用于发起http请求\n2、global:全局变量\n例:http.post(\"http://www.xxx.com/xxx\",{a:global.a});// POST,body传参\n http.post(\"http://www.xxx.com/xxx\",null,{params:{a:global.a}});// POST,url传参\n http.get(\"http://www.xxx.com/xxx\",{params:{a:global.a}});// GET,url传参\n`,\n overlayStyle: {\n whiteSpace: 'pre-line',\n },\n },\n },\n })\n script: string;\n @Data({\n properties: {\n value: { type: 'string', title: '值' },\n },\n })\n data: any[] = [];\n @DataOutput('值')\n valueOutput = new EventEmitter<string>();\n constructor(private http: HttpService, private gloabl: GlobalVarService) {}\n\n ngOnInit() {\n this.textStyle = {\n background: this.background,\n borderColor: this.borderColor,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n opacity: this.opacity,\n borderRadius: this.radius + '%',\n boxShadow: this.shadow.color + ' ' + this.shadow.X + 'px ' + this.shadow.Y + 'px ' + this.shadow.Z + 'px',\n };\n }\n openPage(event) {\n if (!this.edit) {\n if (this.href) {\n if (this.openModel) {\n window.open(this.href, '_blank');\n } else {\n window.location.href = this.href;\n }\n }\n if (this.script) {\n const fn = new Function('http', 'global', this.script);\n fn(this.http, this.gloabl.data);\n }\n }\n if (this.data?.length) {\n this.valueOutput.emit(this.data[0].value);\n }else{\n this.valueOutput.emit(null);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ButtonComponent } from './button.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { HttpService } from '../shared/service/http.service';\n\n@NgModule({\n declarations: [ButtonComponent],\n imports: [CommonModule, WidgetBaseModule],\n providers: [HttpService],\n})\nexport class ButtonModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(ButtonComponent);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport {Property, Widget} from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-timer',\n templateUrl: './timer.component.html',\n styleUrls: ['./timer.component.less']\n})\n @Widget('时间',{group: 'component',image: 'assets/img/screen/timer.png',icon: 'iconmokuai'})\nexport class TimerComponent implements OnInit {\n\n @Property('图标显示',{ui:{widget: 'checkbox'}})\n iconShow = true;\n @Property('星期显示',{ui:{widget: 'checkbox'}})\n weekShow = true;\n @Property('图标大小',{ui:{widget: 'myRange',min: 0, max: 100, step: 1}})\n iconFontSize = 20;\n @Property('图标右边距',{ui:{widget: 'myRange',min: 0, max: 100, step: 1}})\n iconMarginRight = 10;\n @Property('图标颜色',{ui:{widget: 'myColor', example:['#D0021B','#F5A623','#F8E71C','#50E3C2','#3285FF','#B45FFF','#9B9B9B','#ffffff']}})\n iconColor = '#5DF5F4';\n @Property('字体',{ui:{widget: 'myFont'}})\n font: any = {family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: ''};\n @Property('字体发光',{ui:{widget: 'checkbox'}})\n fontGlow = false;\n @Property('发光颜色',{ui:{widget: 'myColor', example:['#D0021B','#F5A623','#F8E71C','#50E3C2','#3285FF','#B45FFF','#9B9B9B','#ffffff']}})\n flowColor = '#ffffff';\n @Property('发光程度',{ui:{widget: 'myRange',min: 1, max: 10, step: 1}})\n flowSize = 3;\n @Property('格式')\n format = 'yyyy-MM-dd HH:mm:ss';\n iconStyle: any;\n textStyle: any;\n data: any;\n timer: any;\n week='';\n constructor() { }\n\n ngOnInit() {\n this.getTime();\n this.iconStyle = {\n fontSize: this.iconFontSize + 'px',\n marginRight: this.iconMarginRight + 'px',\n color: this.iconColor\n }\n this.textStyle = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n }\n if (this.fontGlow) {// 发光\n let str = '';\n for (let i = 0; i < this.flowSize; i++) {\n str += '0 0 20px ' + this.flowColor + ',';\n }\n str = str.substr(0, str.length - 1);\n this.textStyle['text-shadow'] = str;\n } else {\n this.textStyle['text-shadow'] = '';\n }\n clearInterval(this.timer);\n this.timer = setInterval(() => {\n this.getTime();// 检测变化\n }, 1000);\n }\n getTime() {\n const show_day=new Array('星期天','星期一','星期二','星期三','星期四','星期五','星期六');\n this.data = new Date();\n this.week=show_day[this.data.getDay()];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TimerComponent } from './timer.component';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [TimerComponent],\n imports: [CommonModule, WidgetBaseModule, NzIconModule],\n})\nexport class TimerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(TimerComponent);\n }\n}\n","import { Component, OnInit, OnChanges } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-number-flop',\n templateUrl: './number-flop.component.html',\n styleUrls: ['./number-flop.component.less'],\n})\n@Widget('数字翻牌器', { group: 'component', image: 'assets/img/screen/number-flop.png', icon: 'iconmokuai' })\nexport class NumberFlopComponent implements OnInit, OnChanges {\n // @Property('静态值')\n // number: number = 1024;\n @Property('前缀内容')\n prefixContent = '';\n @Property('前缀字体', { ui: { widget: 'myFont', hideProperty: { lineHeight: true } } })\n prefixFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('数字字体', { ui: { widget: 'myFont' , hideProperty: { lineHeight: true } } })\n numberFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 90, space: 0, lineHeight: '' };\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = '#01A4F9';\n @Property('小数点位数', { ui: { widget: 'myRange', min: 0, max: 10, step: 1 } })\n point = 0;\n @Property('后缀内容')\n suffixContent = '';\n @Property('后缀字体', { ui: { widget: 'myFont' } })\n suffixFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('数字位数')\n numDigit:number = 0;\n headlineStyle: any;\n prefixStyle: any;\n suffixStyle: any;\n numberdate: any;\n textStyle: any;\n serial: any = {};\n tableBar: any = {};\n @Data({\n properties: {\n value: { type: 'number', title: '数值' },\n },\n })\n number: any[] = [{ value: 1024 }];\n\n constructor() {}\n ngOnChanges() {\n this.headlineStyle = {\n height: this.numberFont.size + 'px',\n lineHeight: this.numberFont.size + 'px',\n };\n this.prefixStyle = {\n fontSize: this.prefixFont.size + 'px',\n fontFamily: this.prefixFont.family,\n color: this.prefixFont.color,\n fontWeight: this.prefixFont.weight,\n letterSpacing: this.prefixFont.space + 'px',\n lineHeight: this.prefixFont.lineHeight + 'px',\n };\n this.suffixStyle = {\n fontSize: this.suffixFont.size + 'px',\n fontFamily: this.suffixFont.family,\n color: this.suffixFont.color,\n fontWeight: this.suffixFont.weight,\n letterSpacing: this.suffixFont.space + 'px',\n lineHeight: this.suffixFont.lineHeight + 'px',\n };\n this.textStyle = {\n fontSize: this.numberFont.size + 'px',\n fontFamily: this.numberFont.family,\n color: this.numberFont.color,\n fontWeight: this.numberFont.weight,\n letterSpacing: this.numberFont.space + 'px',\n // lineHeight: this.numberFont.lineHeight + 'px',\n };\n this.serial.width = this.numberFont.size * 0.58 + 'px';\n this.tableBar.width = this.numberFont.size * 0.7 + 'px';\n this.numberdate = Number(this.number && this.number[0] ? this.number[0].value : 0);\n let digits=0;\n if(this.numDigit>0 && this.numberdate.toString().length<this.numDigit){\n digits=this.numDigit-this.numberdate.toString().length;\n }\n this.numberdate=this.numberdate.toFixed(this.point)\n .toString();\n if(digits>0){\n for (let index = 0; index < digits; index++) {\n this.numberdate='0'+this.numberdate;\n }\n }\n this.numberdate= this.numberdate.split('');\n }\n\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NumberFlopComponent } from './number-flop.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [NumberFlopComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class NumberFlopModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(NumberFlopComponent);\n }\n}\n","import { Component, ElementRef, OnInit, EventEmitter } from '@angular/core';\nimport { Property, Widget, DataOutput, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-vote',\n templateUrl: './vote.component.html',\n styleUrls: ['./vote.component.less'],\n})\n@Widget('投票', { group: 'component', image: 'assets/img/screen/vote.png', icon: 'iconmokuai' })\nexport class VoteComponent implements OnInit {\n\n @Data({\n properties: {\n label: { title: '标签', type: 'string' },\n value: { title: '值', type: 'string' },\n checked: { title: '是否选中', type: 'boolean' },\n },\n })\n options: any = [\n { label: '选项一', value: 'option1' },\n { label: '选项二', value: 'option2' },\n { label: '选项三', value: 'option3' },\n ];\n @Property('', { ui: { widget: 'myCheckNumber', title: '多选个数', spanLabel: 0, spanControl: 24 } })\n num = 1;\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = 'rgba(50,133,255,0.2)';\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor = '#3285FF';\n @Property('按钮颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n btnColor = '#3285FF';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n /*checkOptionsOne = [];*/\n textStyle: any;\n @DataOutput('值')\n valueChange = new EventEmitter<any>();\n constructor(private ele: ElementRef) {}\n\n ngOnInit() {\n this.ele.nativeElement.style.background = this.background;\n this.ele.nativeElement.style.border = this.borderColor ? '1px solid ' + this.borderColor : 0;\n this.ele.nativeElement.style.setProperty('--color', this.borderColor);\n this.textStyle = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n };\n }\n log(value: object[]): void {\n this.valueChange.emit(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VoteComponent } from './vote.component';\nimport { FormsModule } from '@angular/forms';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [VoteComponent],\n imports: [CommonModule, WidgetBaseModule, NzCheckboxModule, FormsModule],\n})\nexport class VoteModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(VoteComponent);\n }\n}\n","import { Component, OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Property, Widget, DataOutput, Data, Event, DataInput, Method, Param } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-select',\n templateUrl: './select.component.html',\n styleUrls: ['./select.component.less'],\n})\n@Widget('下拉框', {\n group: 'component',\n image: 'assets/img/screen/select.png',\n icon: 'iconmokuai',\n})\nexport class SelectComponent implements OnInit, OnChanges {\n @Property('下拉框样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['background', 'borderColor', 'selectColor'],\n example: [\n {\n background: 'assets/img/screen/select1.png',\n data: {\n selectColor: '#F5A623',\n borderColor: '#F5A623',\n background: 'rgba(245,166,35,0.2)',\n dropdownBg: 'rgba(245,166,35,0.2)',\n dropdownBorderColor: '#F5A623',\n },\n },\n {\n background: 'assets/img/screen/select2.png',\n data: {\n selectColor: '#50E3C2',\n borderColor: '#50E3C2',\n background: 'rgba(80,227,194,0.2)',\n dropdownBg: 'rgba(80,227,194,0.2)',\n dropdownBorderColor: '#50E3C2',\n },\n },\n {\n background: 'assets/img/screen/select3.png',\n data: {\n selectColor: '#9013fe',\n borderColor: '#9013fe',\n background: 'rgba(144,19,254,0.2)',\n dropdownBg: 'rgba(144,19,254,0.2)',\n dropdownBorderColor: '#9013fe',\n },\n },\n {\n background: 'assets/img/screen/select4.png',\n data: {\n selectColor: '#3285ff',\n borderColor: '#3285ff',\n background: 'rgba(50,133,255,0.2)',\n dropdownBg: 'rgba(50,133,255,0.2)',\n dropdownBorderColor: '#3285ff',\n },\n },\n ],\n },\n })\n example: any;\n @Property('提示用语', { type: 'string' })\n hint = '请选择';\n @Property('', {\n ui: {\n widget: 'myCheckNumber',\n title: '多选个数',\n spanLabel: 0,\n spanControl: 24,\n },\n })\n num = 1;\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background: string;\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor = '#d9d9d9';\n\n // 通过全局变量来控制颜色变化 当多个时会互相替换 移除此功能\n @Property('选中颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n dropdownBackgroundColor = '#E6F7FF';\n @Property('选中字体颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n selectDropDownColor = 'rgba(0,0,0,0.85)';\n @Property('hover字体颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n selectHoverColor = 'rgba(0,0,0,0.85)';\n @Property('hover背景颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n selectHoverBackgroundColor = '#f5f5f5';\n\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 30,\n };\n\n @Property('对齐方式', {\n enum: [\n { label: '左对齐', value: 'left' },\n { label: '居中', value: 'center' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'left';\n @Property('搜索')\n showSearch: boolean;\n @Property('清空按钮')\n showClean: boolean;\n @Property('查看按钮')\n showConfirm: boolean;\n @Property('下拉宽度', { type: 'number' })\n dropdownWidth = null;\n\n @Property('下拉填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n dropdownBg = '#fff';\n @Property('下拉边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n dropdownBorderColor = '#fff';\n\n @Property('输出格式', {\n enum: [\n { label: '数组', value: 'array' },\n { label: '字符串', value: 'string' },\n ],\n ui: { widget: 'select', visibleIf: { num: (value) => value > 1 } },\n })\n outputFormat = 'array';\n @Property('分隔字符', { ui: { visibleIf: { outputFormat: ['string'] } } })\n separator = ',';\n selectedValue: any;\n ngStyle: any;\n dropdownStyle: any;\n mode = 'default';\n open: boolean;\n\n @Data({\n properties: {\n label: { title: '标签', type: 'string' },\n value: { title: '值', type: 'string' },\n checked: { title: '是否选中', type: 'boolean' },\n },\n })\n options: any = [\n { label: '选项1', value: 'option1' },\n { label: '选项2', value: 'option2' },\n ];\n\n @DataInput('选中值')\n value: any;\n\n @DataOutput('值')\n @Event('值改变', { params: '值' })\n valueChange = new EventEmitter<any>();\n @DataOutput('原始数据')\n optionChange = new EventEmitter<any>();\n\n constructor() {}\n\n ngOnInit() {\n this.ngStyle = {\n backgroundColor: this.background,\n border: '1px solid ' + this.borderColor,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n };\n this.dropdownBg = this.dropdownBg ? this.dropdownBg : this.background;\n this.dropdownBorderColor = this.dropdownBorderColor ? this.dropdownBorderColor : this.borderColor;\n this.dropdownStyle = {\n backgroundColor: this.dropdownBg,\n border: '1px solid ' + this.dropdownBorderColor,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n width: this.dropdownWidth + 'px',\n };\n // this.dropdownStyle.width = this.dropdownWidth ? this.dropdownWidth + 'px' : '';\n document.body.style.setProperty(\n '--dropdownBackgroundColor',\n this.dropdownBackgroundColor || ' rgba(255,255,255,0.2)',\n );\n document.body.style.setProperty('--selectDropDownColor', this.selectDropDownColor || '#333');\n document.body.style.setProperty('--selectHoverColor', this.selectHoverColor || 'rgba(255,255,255,0.5)');\n document.body.style.setProperty('--selectHoverBackgroundColor', this.selectHoverBackgroundColor || '#333');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.options) {\n if (this.num && this.num > 1) {\n this.mode = 'multiple';\n this.selectedValue = [];\n this.options.forEach((option) => {\n if (option.checked && this.selectedValue.length < this.num) {\n this.selectedValue.push(option.value ? option.value : option.label);\n }\n });\n if (this.selectedValue.length > 0) {\n this.selectChange(this.selectedValue);\n }\n } else {\n this.mode = 'default';\n const item = this.options.find((s) => s.checked);\n if (item) {\n this.selectedValue = item.value ? item.value : item.label;\n this.selectChange(this.selectedValue);\n }\n }\n }\n if (changes.value) {\n this.selectedValue = this.value;\n // console.log(this.value);\n }\n }\n\n selectAllData() {\n this.selectedValue = [];\n this.options.forEach((data) => {\n this.selectedValue.push(data.value);\n });\n this.selectChange(this.selectedValue);\n // this.valueChange.emit(this.selectedValue);\n // this.optionChange.emit(this.options);\n }\n\n selectChange(value: string | string[]) {\n this.selectedValue = value;\n if (Array.isArray(value)) {\n // 多选\n if (this.outputFormat === 'string') {\n this.valueChange.emit(value.join(this.separator || ','));\n } else {\n this.valueChange.emit(value);\n }\n const selectedOption = this.options.filter((option) => value.includes(option.value));\n this.optionChange.emit(selectedOption);\n } else {\n this.valueChange.emit(value);\n const selectedOption = this.options.find((option) => option.value === event);\n this.optionChange.emit(selectedOption);\n }\n }\n\n @Method('选中')\n select(@Param('值') value: any) {\n this.selectedValue = value;\n this.selectChange(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SelectComponent } from './select.component';\nimport { FormsModule } from '@angular/forms';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzDividerModule } from 'ng-zorro-antd/divider';\n\n@NgModule({\n declarations: [SelectComponent],\n imports: [CommonModule, WidgetBaseModule, NzSelectModule, FormsModule, NzButtonModule],\n})\nexport class SelectModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(SelectComponent);\n }\n}\n","export function getFontStyle(font: any) {\r\n let style: any = {};\r\n if (font) {\r\n if (font.size) style.fontSize = font.size + 'px';\r\n if (font.family) style.fontFamily = font.family;\r\n if (font.color) style.color = font.color;\r\n if (font.weight) style.fontWeight = font.weight;\r\n if (font.space) style.letterSpacing = font.space + 'px';\r\n if (font.lineHeight) style.lineHeight = font.lineHeight + 'px';\r\n }\r\n return style;\r\n}\r\n","import { Component, OnInit, EventEmitter } from '@angular/core';\nimport { Property, Widget, DataOutput } from 'bbj-widget-base';\nimport { getFontStyle } from '../shared/util/style.util';\n\n@Component({\n selector: 'sc-search',\n templateUrl: './search.component.html',\n styleUrls: ['./search.component.less'],\n})\n@Widget('搜索框', { group: 'component', image: 'assets/img/screen/search.png', icon: 'iconmokuai' })\nexport class SearchComponent implements OnInit {\n @Property('按钮样式', {\n ui: {\n widget: 'myButton',\n spanLabel: 24,\n spanControl: 24,\n icon: 'search',\n reset: ['background', 'borderColor', { parent: 'font', child: 'color' }],\n background: [\n { color: '#F5A623', borderColor: '#F5A623', background: 'rgba(245,166,35,0.2)' },\n { color: '#50E3C2', borderColor: '#50E3C2', background: 'rgba(80,227,194,0.2)' },\n { color: '#9013fe', borderColor: '#9013fe', background: 'rgba(144,19,254,0.2)' },\n { color: '#3285ff', borderColor: '#3285ff', background: 'rgba(50,133,255,0.2)' },\n ],\n },\n })\n colorExample: any = { color: '#3285ff', borderColor: '#3285ff', background: 'rgba(50,133,255,0.2)' };\n\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = 'rgba(50,133,255,0.2)';\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor = '#3285ff';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#3285ff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('按钮样式', {\n enum: [\n { label: '样式一', value: 'default' },\n { label: '样式二', value: 'iconSingle' }\n ],\n })\n btnStyleOption = 'default';\n\n @Property('按钮颜色', {\n ui: {\n widget: 'myColor',\n visibleIf: { btnStyleOption: ['iconSingle'] }\n },\n })\n iconSingleColor = '#fff';\n @Property('按钮大小', {\n ui: {\n visibleIf: { btnStyleOption: ['iconSingle'] }\n },\n })\n iconSingleSize = 16;\n\n @Property('隐藏按钮')\n hideBtn: boolean;\n @Property('提示文字')\n placeholder: string;\n @Property('高度')\n height = 26;\n btnStyle: any;\n btnIconStyle: any;\n @DataOutput('值')\n valueChange = new EventEmitter<any>();\n value: any;\n constructor() { }\n\n ngOnInit() {\n this.btnStyle = {\n backgroundColor: this.background,\n borderColor: this.borderColor,\n ...getFontStyle(this.font),\n };\n if (this.btnStyleOption === 'iconSingle') {\n this.btnIconStyle = {\n fontSize: this.iconSingleSize + 'px',\n color: this.iconSingleColor,\n }\n }\n }\n\n searchChange(value) {\n this.valueChange.emit(value);\n }\n\n onKeypress(event: KeyboardEvent) {\n if (event.key === 'Enter') {\n this.valueChange.emit(this.value);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SearchComponent } from './search.component';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { FormsModule } from '@angular/forms';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzIconModule, NzIconService } from 'ng-zorro-antd/icon';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\n\n@NgModule({\n declarations: [SearchComponent],\n imports: [CommonModule, WidgetBaseModule, NzIconModule, NzInputModule, NzButtonModule, FormsModule, NzPipesModule],\n})\nexport class SearchModule {\n constructor(widgetService: WidgetService, private iconService: NzIconService) {\n widgetService.register(SearchComponent);\n this.iconService.fetchFromIconfont({\n scriptUrl: 'assets/icons/screen-icons.js'\n });\n }\n}\n","import { Component, OnInit, ElementRef, OnChanges, SimpleChanges, NgZone } from '@angular/core';\nimport { Property, Widget } from 'bbj-widget-base';\nimport { BaiduMapService } from 'bbj-screen-widget/core';\nimport { GaodeMapService } from '../shared/service/gaode-map.service';\nimport { getFontStyle } from '../shared/util/style.util';\ndeclare var BMapGL: any;\n\n@Component({\n selector: 'sc-weather',\n templateUrl: './weather.component.html',\n styleUrls: ['./weather.component.less'],\n})\n@Widget('天气', { group: 'component', image: 'assets/img/screen/weather.png', icon: 'iconmokuai' })\nexport class WeatherComponent implements OnInit {\n @Property('字体', { ui: { widget: 'myFont' } })\n tempFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 40, space: 0, lineHeight: '' };\n\n @Property('显示样式', {\n enum: [\n { label: '样式1', value: 'default' },\n { label: '样式2', value: 'mini' },\n ],\n })\n weatherStyleType = 'default';\n\n @Property('图标大小', {\n ui: {\n widget: 'myRange',\n min: 0,\n max: 100,\n step: 1,\n visibleIf: { weatherStyleType: ['mini'] },\n },\n })\n iconSize = 64;\n\n city: string;\n weather: string;\n temperature: string;\n weatherIcon: any[] = ['iconfont', 'icon-duoyun'];\n weatherImgs = {\n cloudy: 'weather_cloudy',\n rain: 'weather_rain',\n overcast: 'weather_overcast',\n sunny: 'weather_sunny',\n };\n weatherImgName = 'overcast';\n tempStyle: any;\n\n constructor(\n public baiduMapService: BaiduMapService,\n private gaodeMapService: GaodeMapService,\n private zone: NgZone,\n ) {}\n\n ngOnInit() {\n this.tempStyle = getFontStyle(this.tempFont);\n this.reload();\n }\n\n async reload() {\n const localCity = await this.baiduMapService.localCity();\n const cityName = localCity.name;\n this.city = cityName;\n const data = await this.gaodeMapService.getWeather(cityName);\n this.zone.run(() => {\n this.weather = data.lives[0].weather;\n this.weatherImgName = this.weather.includes('雨')\n ? 'rain'\n : this.weather === '晴'\n ? 'sunny'\n : this.weather.includes('云')\n ? 'cloudy'\n : 'overcast';\n this.temperature = data.lives[0].temperature;\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WeatherComponent } from './weather.component';\nimport { HttpClientJsonpModule } from '@angular/common/http';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [WeatherComponent],\n imports: [CommonModule, WidgetBaseModule, HttpClientJsonpModule],\n providers: [],\n})\nexport class WeatherModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(WeatherComponent);\n }\n}\n","import { Component, ElementRef, OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { Property, Widget, DataOutput, Data } from 'bbj-widget-base';\nimport {SFNumberWidgetSchema} from '@delon/form';\n\n@Component({\n selector: 'sc-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.less'],\n})\n@Widget('单选', { group: 'component', image: 'assets/img/screen/radio.png', icon: 'iconmokuai' })\nexport class RadioComponent implements OnInit, OnChanges {\n\n @Property('颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n radioColor = '#3285FF';\n @Property('样式类型', {\n ui: { widget: 'select' },\n enum: [\n { label: '圆点', value: 'circle' },\n { label: '按钮', value: 'button' },\n ],\n })\n styleType = 'circle';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: 26 };\n radioValue: any;\n ngStyle: any;\n @Property('选中图片',{\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n selectImage='';\n @Property('未选图片',{\n type: 'string',\n ui: {\n widget: 'myUpload',\n }\n })\n notSelectImage='';\n @Property('自定义宽',{type:'number'})\n width=150;\n @Property('自定义高',{type:'number'})\n height=50;\n isCustom=false;\n @Data({\n properties: {\n label: { title: '标签', type: 'string' },\n value: { title: '值', type: 'string' },\n checked: { title: '是否选中', type: 'boolean' },\n },\n })\n options:any[]=[\n { label: '是', value: '1', checked: true },\n { label: '否', value: '0' },\n ]\n @DataOutput('值')\n valueChange = new EventEmitter<any>();\n constructor(private ele: ElementRef) {}\n\n ngOnInit() {\n this.ele.nativeElement.style.setProperty('--radioColor', this.radioColor);\n this.ele.nativeElement.style.setProperty('--outerSize', this.font.size+'px');\n this.ele.nativeElement.style.setProperty('--innerSize', this.font.size/2+'px');\n this.ele.nativeElement.style.setProperty('--width', this.width+'px');\n this.ele.nativeElement.style.setProperty('--height', this.height+'px');\n this.ele.nativeElement.style.setProperty('--color', this.font.color );\n this.ele.nativeElement.style.setProperty('--weight', this.font.weight );\n this.ele.nativeElement.style.setProperty('--family', this.font.weight );\n this.ele.nativeElement.style.setProperty('--select', 'url('+this.selectImage+')' );\n this.ele.nativeElement.style.setProperty('--notSelect', 'url('+this.notSelectImage+')');\n this.ngStyle = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(this.selectImage&&this.notSelectImage&&this.selectImage!=''&&this.notSelectImage!=''){\n this.isCustom=true;\n }\n if (changes.options) {\n if (this.options) {\n const selectRadio = this.options.find((s) => s.checked);\n if (selectRadio) {\n this.radioValue = selectRadio.value;\n this.valueChange.emit(this.radioValue);\n }\n }\n }\n }\n\n checked(option){\n this.options.forEach((o)=>{\n if(o.value===option.value){\n o.checked=true;\n this.valueChange.emit(o.value);\n }else{\n o.checked=false;\n }\n })\n }\n\n radioChange(event) {\n this.valueChange.emit(event);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RadioComponent } from './radio.component';\nimport { FormsModule } from '@angular/forms';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [RadioComponent],\n imports: [CommonModule, WidgetBaseModule, NzRadioModule, FormsModule],\n})\nexport class RadioModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(RadioComponent);\n }\n}\n","import { Component, ElementRef, OnInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { NzCheckBoxOptionInterface } from 'ng-zorro-antd/checkbox';\nimport { Property, Widget, DataOutput, Data, Event, DataInput } from 'bbj-widget-base';\n\ninterface CheckBoxOption extends NzCheckBoxOptionInterface {\n color?: string;\n}\n\n@Component({\n selector: 'sc-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.less'],\n host: {\n '[class.vertical]': 'layout===\"vertical\"',\n },\n})\n@Widget('复选框', {\n group: 'component',\n image: 'assets/img/screen/checkbox.png',\n icon: 'iconmokuai',\n})\nexport class CheckboxComponent implements OnInit, OnChanges {\n @Data({\n properties: {\n label: { title: '标签', type: 'string' },\n value: { title: '值', type: 'string' },\n checked: { title: '是否选中', type: 'boolean' },\n },\n })\n options: CheckBoxOption[] = [\n { label: '多选一', value: 'option1', checked: true },\n { label: '多选二', value: 'option2' },\n { label: '多选三', value: 'option3' },\n ];\n @Property('复选框颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n borderColor = '#3285FF';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 26,\n };\n textStyle: any;\n @Property('整体布局', {\n enum: [\n { label: '横向', value: 'horizontal' },\n { label: '纵向', value: 'vertical' },\n ],\n })\n layout = 'horizontal';\n @Property('选项布局', {\n enum: [\n { label: '横向', value: 'horizontal' },\n { label: '纵向', value: 'vertical' },\n ],\n })\n lableLayout = 'horizontal';\n @Property('选项宽度')\n labelWidthNum: any;\n @Property('选项边距', { ui: { widget: 'myGrid' } })\n lablePaddNum: any = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n\n @Property('显示全选')\n showCheckAll: boolean;\n @Property('隐藏文本')\n hiddenLabel: boolean;\n @Property('输出格式', {\n enum: [\n { label: '数组', value: 'array' },\n { label: '字符串', value: 'string' },\n ],\n })\n outputFormat = 'array';\n @Property('分隔字符', { ui: { visibleIf: { outputFormat: ['string'] } } })\n separator = ',';\n @Property('标签颜色', {\n ui: {\n widget: 'seriesColor',\n },\n })\n labelColors: string[];\n @Property('选中图片', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n selectImage = '';\n @Property('未选图片', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n notSelectImage = '';\n @Property('图片宽', { type: 'number' })\n width = 150;\n @Property('图片高', { type: 'number' })\n height = 50;\n isCustom = false;\n\n @DataInput('选中值')\n value: any;\n\n @DataOutput('值')\n @Event('值改变', { params: '值' })\n valueChange = new EventEmitter<any>();\n\n checkOptions: CheckBoxOption[];\n allChecked = false;\n indeterminate = true;\n lablePadd: any;\n labelWidth: any;\n @Property('禁用', { type: 'boolean' })\n disabled: boolean;\n\n constructor(private ele: ElementRef) {}\n\n ngOnInit() {\n /*this.ele.nativeElement.style.borderColor = this.borderColor;*/\n /* this.ele.nativeElement.style.setProperty('--color', this.borderColor);*/\n this.textStyle = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n borderColor: this.borderColor,\n backgroudColor: this.borderColor,\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.selectImage && this.notSelectImage && this.selectImage != '' && this.notSelectImage != '') {\n this.ele.nativeElement.style.setProperty('--outerSize', this.font.size + 'px');\n this.ele.nativeElement.style.setProperty('--innerSize', this.font.size / 2 + 'px');\n this.ele.nativeElement.style.setProperty('--width', this.width + 'px');\n this.ele.nativeElement.style.setProperty('--height', this.height + 'px');\n this.ele.nativeElement.style.setProperty('--color', this.font.color);\n this.ele.nativeElement.style.setProperty('--weight', this.font.weight);\n this.ele.nativeElement.style.setProperty('--family', this.font.weight);\n this.ele.nativeElement.style.setProperty('--select', 'url(' + this.selectImage + ')');\n this.ele.nativeElement.style.setProperty('--notSelect', 'url(' + this.notSelectImage + ')');\n this.isCustom = true;\n }\n if (changes.value) {\n this.updateCheckOptions();\n }\n if (changes.options) {\n this.checkOptions = this.options.map((option, i) => {\n option = { ...option };\n if (this.labelColors?.length) {\n option.color = this.labelColors[i % this.labelColors.length];\n }\n return option;\n });\n this.updateSingleChecked();\n if (this.value) {\n this.updateCheckOptions();\n } else {\n this.updateValue(true);\n }\n }\n\n if (changes.lablePaddNum && changes.lablePaddNum.currentValue) {\n const padd = changes.lablePaddNum.currentValue;\n this.lablePadd = `${padd.top || 0}px ${padd.right || 0}px ${padd.bottom || 0}px ${padd.left || 0}px`;\n // console.log(this.lablePadd);\n }\n if (changes.labelWidthNum && changes.labelWidthNum.currentValue) {\n const labelWidth = changes.labelWidthNum.currentValue;\n if (Number(labelWidth)) {\n this.labelWidth = labelWidth + 'px';\n } else {\n const isPercent =\n labelWidth.charAt(labelWidth.length - 1) === '%' ? Number(labelWidth.slice(0, labelWidth.length - 1)) : false;\n\n if (isPercent) {\n this.labelWidth = labelWidth;\n }\n }\n }\n }\n change(event: NzCheckBoxOptionInterface[]) {\n this.updateSingleChecked();\n this.updateValue();\n }\n\n updateCheckOptions() {\n if (this.value && this.checkOptions?.length) {\n let values: string[];\n if (typeof this.value === 'string') {\n values = this.value.split(this.separator || ',');\n } else {\n values = this.value;\n }\n let changed = false;\n this.checkOptions.forEach((option) => {\n const checked = option.value && values.includes(option.value.toString());\n if (option.checked !== checked) {\n changed = true;\n option.checked = checked;\n }\n });\n if (changed) {\n this.checkOptions = [...this.checkOptions];\n this.updateSingleChecked();\n }\n }\n }\n\n updateValue(init?: boolean) {\n const value = [];\n this.checkOptions.forEach((item) => {\n if (item.checked) {\n value.push(item.value);\n }\n });\n if (!init || value.length) {\n if (this.outputFormat === 'string') {\n this.valueChange.emit(value.join(this.separator || ','));\n } else {\n this.valueChange.emit(value);\n }\n }\n }\n\n updateAllChecked(): void {\n this.indeterminate = false;\n if (this.allChecked) {\n this.checkOptions = this.checkOptions.map((item) => {\n return {\n ...item,\n checked: true,\n };\n });\n } else {\n this.checkOptions = this.checkOptions.map((item) => {\n return {\n ...item,\n checked: false,\n };\n });\n }\n this.updateValue();\n }\n\n updateSingleChecked(): void {\n if (this.showCheckAll) {\n if (this.checkOptions.every((item) => !item.checked)) {\n this.allChecked = false;\n this.indeterminate = false;\n } else if (this.checkOptions.every((item) => item.checked)) {\n this.allChecked = true;\n this.indeterminate = false;\n } else {\n this.indeterminate = true;\n }\n }\n }\n\n // 全选\n checkedAll() {\n this.allChecked = !this.allChecked;\n // this.\n }\n\n checked(option) {\n let arr = [];\n this.options.forEach((o) => {\n if (o.value === option.value) {\n o.checked = !o.checked;\n }\n if (o.checked) {\n arr.push(o.value);\n }\n });\n this.valueChange.emit(arr.join(this.separator || ','));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { CheckboxComponent } from './checkbox.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [CheckboxComponent],\n imports: [CommonModule, WidgetBaseModule, NzCheckboxModule, FormsModule],\n})\nexport class CheckboxModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(CheckboxComponent);\n }\n}\n","import {Component, ElementRef, OnInit} from '@angular/core';\nimport {Property, Widget} from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-rate',\n templateUrl: './rate.component.html',\n styleUrls: ['./rate.component.less']\n})\n@Widget('评分',{group: 'component',image: 'assets/img/screen/rate.png',icon:'iconmokuai'})\nexport class RateComponent implements OnInit {\n\n @Property('类型', {enum: [\n { label: '分数', value: 'slider' },\n { label: '星级', value: 'rate' },\n { label: '满意度', value: 'radio' },\n ],ui: {widget: 'select'}})\n type = 'rate';\n @Property('颜色',{ui:{widget: 'myColor', example:['#D0021B','#F5A623','#F8E71C','#50E3C2','#3285FF','#B45FFF','#9B9B9B','#333333']}})\n radioColor = '#3285FF';\n @Property('字体',{ui:{widget: 'myFont'}})\n font: any = {family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: 26};\n rateValue = 3.5;\n radioValue = 'great';\n sliderValue = 8;\n style: any;\n constructor(private ele: ElementRef) { }\n\n ngOnInit() {\n this.ele.nativeElement.style.setProperty('--backgroundColor', this.radioColor);\n this.style = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { NzRateModule } from 'ng-zorro-antd/rate';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { NzSliderModule } from 'ng-zorro-antd/slider';\nimport { RateComponent } from './rate.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [RateComponent],\n imports: [CommonModule, WidgetBaseModule, NzRateModule, FormsModule, NzRadioModule, NzSliderModule],\n})\nexport class RateModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(RateComponent);\n }\n}\n","import {\n Component,\n OnInit,\n ElementRef,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n OnChanges,\n SimpleChanges,\n EventEmitter,\n Renderer2,\n} from '@angular/core';\nimport { Property, Widget, Data, DataOutput, WidgetRef, CustomExport } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-general-text',\n templateUrl: './general-text.component.html',\n styleUrls: ['./general-text.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Widget('常规文本', { group: 'generalText', icon: 'iconwenzi' })\nexport class GeneralTextComponent implements OnInit, OnChanges, CustomExport {\n @Property('内容', { ui: { widget: 'textarea', autosize: { minRows: 6, maxRows: 6 } } })\n title = '文本';\n @Property('背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background: string;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Property('文字对齐', {\n ui: { widget: 'select' },\n enum: [\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n { label: '居中', value: 'center' },\n ],\n })\n align = 'left';\n @Property('内容边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n style: any;\n @Data({\n properties: {\n value: { type: 'string', title: '值' },\n color: { type: 'string', title: '颜色' },\n },\n })\n data: any[] = [];\n @DataOutput('值', { triggerLink: false })\n dataChange = new EventEmitter();\n constructor(private renderer: Renderer2, private cd: ChangeDetectorRef, private widgetRef: WidgetRef) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.style = {\n backgroundColor: this.background,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.data && this.data[0] && this.data[0].color ? this.data[0].color : this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n opacity: this.opacity,\n textShadow: this.shadow.X + 'px ' + this.shadow.Y + 'px ' + this.shadow.Z + 'px ' + this.shadow.color,\n };\n if (this.grid) {\n const { top = 0, right = 0, bottom = 0, left = 0 } = this.grid;\n this.style.padding = top + 'px ' + right + 'px ' + bottom + 'px ' + left + 'px';\n }\n const widget: any = this.widgetRef.widget as any;\n if (widget.link?.enabled || widget.outputs?.enabled) {\n this.style.cursor = 'pointer';\n }\n this.style.textAlign = this.align;\n if (changes.data) {\n if (this.data?.length && this.data[0].value) {\n this.dataChange.emit(this.data[0].value);\n } else {\n this.dataChange.emit(null);\n }\n }\n this.cd.markForCheck();\n }\n\n exportWord() {\n let content = this.title;\n if (this.data != null && this.data[0] != null && this.data[0].value != null) {\n content = this.data[0].value;\n }\n if (content) {\n content = content.replace(/\\n/g, '<br/>').replace(/ /g, '&nbsp;');\n const p = document.createElement('p');\n p.innerHTML = content;\n Object.keys(this.style).forEach((key) => {\n this.renderer.setStyle(p, key, this.style[key]);\n });\n return p.outerHTML;\n }\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { GeneralTextComponent } from './general-text.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\n\n@NgModule({\n declarations: [GeneralTextComponent],\n imports: [CommonModule, WidgetBaseModule,NzPipesModule],\n})\nexport class GeneralTextModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(GeneralTextComponent);\n }\n}\n","import { Component, ElementRef, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-marquee',\n templateUrl: './marquee.component.html',\n styleUrls: ['./marquee.component.less'],\n})\n@Widget('跑马灯', { group: 'scrollText', icon: 'iconwenzi' })\nexport class MarqueeComponent implements OnInit, OnChanges {\n @Property('背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n background: string;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Property('动画', {\n enum: [\n { label: '从下向上滚动', value: 'up' },\n { label: '从上向下滚动', value: 'down' },\n { label: '从左向右滚动', value: 'right' },\n { label: '从右向左滚动', value: 'left' },\n ],\n ui: { widget: 'select' },\n })\n direction = 'left';\n @Property('速度', { ui: { widget: 'myRange', min: 0, max: 20, step: 1 } })\n scrollamount = 2;\n @Property('轨迹', {\n enum: [\n { label: '循环绕行', value: 'scroll' },\n { label: '播放一次', value: 'slide' },\n { label: '来回往复运动', value: 'alternate' },\n ],\n ui: { widget: 'select' },\n })\n behavior = 'scroll';\n\n @Data({\n properties: {\n value: { type: 'string', title: '值' },\n },\n })\n data: any[] = [{ value: '跑马灯' }];\n style: any;\n display = true;\n\n constructor() {}\n\n ngOnInit() {\n this.style = {\n backgroundColor: this.background,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n opacity: this.opacity,\n boxShadow: this.shadow.color + ' ' + this.shadow.X + 'px ' + this.shadow.Y + 'px ' + this.shadow.Z + 'px',\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n this.reset();\n }\n }\n\n /**\n * 数据改变之后重置跑马灯\n */\n reset() {\n this.display = false;\n setTimeout(() => (this.display = true));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MarqueeComponent } from './marquee.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [MarqueeComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class MarqueeModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(MarqueeComponent);\n }\n}\n","import { Component, ElementRef, OnInit } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-wordart',\n templateUrl: './wordart.component.html',\n styleUrls: ['./wordart.component.less']\n})\n@Widget('艺术字', { group: 'wordart', icon: 'iconwenzi' })\nexport class WordartComponent implements OnInit {\n @Property('内容')\n title = '艺术字';\n @Property('背景', { ui: { widget: 'myColor', example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null] } })\n background: string;\n @Property('字体', { ui: { widget: 'myFont' , hideProperty: {size: true, lineHeight: true, space: true }} })\n font: any = { family: '', color: '#333333', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('渐变色', { ui: { hidden: true } })\n backgroundImage: string;\n @Property('文字对齐', {\n ui: { widget: 'select' },\n enum: [\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n { label: '居中', value: 'center' }\n ]\n })\n align = 'left';\n style: any;\n @Data({\n properties: {\n value: { type: 'string', title: '值' },\n },\n })\n data: any[] = [];\n constructor(private ele: ElementRef) { }\n\n ngOnInit() {\n this.style = {\n fontSize: this.ele.nativeElement.offsetHeight > (this.ele.nativeElement.offsetWidth - 10) / this.title.length ? (this.ele.nativeElement.offsetWidth - 10) / this.title.length + 'px' : (this.ele.nativeElement.offsetHeight - 10) + 'px',\n lineHeight: this.ele.nativeElement.offsetHeight > this.ele.nativeElement.offsetWidth / this.title.length ? (this.ele.nativeElement.offsetWidth - 10) / this.title.length + 'px' : (this.ele.nativeElement.offsetHeight - 10) + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n opacity: this.opacity\n }\n if (this.backgroundImage) {\n this.style.backgroundImage = this.backgroundImage;\n }\n this.ele.nativeElement.style.backgroundColor = this.background;\n this.ele.nativeElement.style.textAlign = this.align;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WordartComponent } from './wordart.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [WordartComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class WordartModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(WordartComponent);\n }\n}\n","import { Component, OnInit, ElementRef } from '@angular/core';\nimport { Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-iconfont',\n templateUrl: './iconfont.component.html',\n styleUrls: ['./iconfont.component.less'],\n})\n@Widget('图标', { group: 'iconfont', icon: 'icontupian' })\nexport class IconfontComponent implements OnInit {\n\n @Property('图标', { ui: { hidden: true } })\n type = 'iconfont';\n @Property('图标名称', { ui: { hidden: true } })\n icon: string;\n // @Property('图标大小',{ui:{widget: 'myRange',min: 12, max: 150, step: 2}})\n // fontSize: number = 40;\n @Property('图标颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = '#3285FF';\n style: any;\n hideHead: boolean;\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n this.style = {\n fontSize:\n this.element.nativeElement.offsetWidth > this.element.nativeElement.offsetHeight\n ? this.element.nativeElement.offsetHeight + 'px'\n : this.element.nativeElement.offsetWidth + 'px',\n lineHeight:\n this.element.nativeElement.offsetWidth > this.element.nativeElement.offsetHeight\n ? this.element.nativeElement.offsetHeight + 'px'\n : this.element.nativeElement.offsetWidth + 'px',\n color: this.background,\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconfontComponent } from './iconfont.component';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [IconfontComponent],\n imports: [CommonModule, WidgetBaseModule, NzIconModule],\n})\nexport class IconfontModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(IconfontComponent);\n }\n}\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FileUrlService {\r\n getUrl(url: string) {\r\n return url;\r\n }\r\n}\r\n","import { Component, ElementRef, OnChanges, OnDestroy, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { LazyService } from '@delon/util';\nimport { Widget, Property, Data } from 'bbj-widget-base';\nimport { FileUrlService } from '../shared/service/file-url.service';\ndeclare const flvjs;\n@Component({\n selector: 'sc-audio',\n templateUrl: './audio.component.html',\n styleUrls: ['./audio.component.less'],\n})\n@Widget('音频', { group: 'audio', icon: 'icontupian' })\nexport class AudioComponent implements OnInit, OnChanges{\n @Property('', {\n min: 1,\n type: 'string',\n ui: { widget: 'radio', spanLabel: 0, spanControl: 24 },\n enum: [\n { value: 'video', label: '视频' },\n { value: 'audio', label: '音频' },\n { value: 'auto', label: '自动' },\n ],\n })\n type = 'video';\n @Property('', {\n min: 1,\n ui: {\n widget: 'myUploadAudio',\n spanLabel: 0,\n spanControl: 24,\n list: [\n { name: '无', value: null },\n { name: '测试一号', value: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180417154421.mp4' },\n { name: '测试二号', value: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180508102521.mp4' },\n ],\n },\n })\n src: string;\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Data({\n properties: {\n src: { title: '视频/音频地址', type: 'string' },\n },\n })\n data: any[];\n _src: string;\n\n @Property('视频格式', {\n enum: [\n { label: 'MP4', value: 'mp4' },\n { label: 'flv', value: 'flv' },\n ],\n ui: { visibleIf: { type: ['video'] }, widget: 'select' },\n })\n videoType: string;\n\n @Property('是否有声音', { ui: { visibleIf: { videoType: ['flv'] } } })\n hasAudio: boolean;\n style: any;\n @ViewChild('video')\n video: ElementRef;\n flvPlayer: any;\n obj: any;\n // loadFlvPromise: Promise<any>;\n _type: string;\n // destroyed: boolean;\n constructor( private fileUrlService: FileUrlService) {}\n\n ngOnInit() {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.style = {\n opacity: this.opacity,\n boxShadow: this.shadow.color + ' ' + this.shadow.X + 'px ' + this.shadow.Y + 'px ' + this.shadow.Z + 'px',\n };\n if (changes.type || changes.videoType || changes.src || changes.data) {\n this.reset();\n }\n }\n\n async reset() {\n this._src = null;\n let url: string;\n if (this.data && this.data.length && this.data[0].src) {\n url = this.data[0].src;\n } else {\n url = this.src;\n }\n url = this.fileUrlService.getUrl(url);\n if (this.type === 'auto' && url && url.includes('.')) {\n const ext = url.substring(url.lastIndexOf('.') + 1);\n switch (ext) {\n case 'png':\n case 'jpg':\n this._type = 'image';\n break;\n case 'mp4':\n this._type = 'video';\n break;\n case 'mp3':\n this._type = 'audio';\n break;\n }\n } else {\n this._type = this.type;\n if (this._type === 'video' && this.videoType === 'flv') {\n this._type = 'flv';\n }\n }\n this._src = url;\n // if (url) {\n // if (this._type === 'video' && this.videoType === 'flv') {\n // const obj = new Object();\n // this.obj = obj;\n // await this.loadFlv();\n // if (this.obj === obj && !this.destroyed) {\n // this.destroyFlv();\n // // 防止异步操作先后顺序问题\n // this.flvPlayer = flvjs.createPlayer(\n // {\n // type: 'flv',\n // url,\n // hasAudio: this.hasAudio === true,\n // hasVideo: true,\n // isLive: true,\n // withCredentials: false,\n // },\n // {\n // enableWorker: false,\n // lazyLoadMaxDuration: 3 * 60,\n // seekType: 'range',\n // },\n // );\n // this.flvPlayer.attachMediaElement(this.video.nativeElement);\n // console.log('load');\n // this.flvPlayer.load();\n // }\n // } else {\n // this._src = url;\n // }\n // }\n }\n\n // loadFlv() {\n // if (this.loadFlvPromise == null) {\n // this.loadFlvPromise = this.lazy.loadScript('assets/js/flv.min.js');\n // }\n // return this.loadFlvPromise;\n // }\n\n // destroyFlv() {\n // if (this.flvPlayer) {\n // console.log('destroy');\n // this.flvPlayer.unload();\n // this.flvPlayer.detachMediaElement();\n // this.flvPlayer.destroy();\n // this.flvPlayer = null;\n // }\n // }\n\n // ngOnDestroy(): void {\n // this.destroyFlv();\n // this.destroyed = true;\n // }\n}\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { LazyResult, LazyService } from '@delon/util';\nimport { FileUrlService } from '../../service/file-url.service';\ndeclare const flvjs;\ndeclare const Hls;\n@Component({\n selector: 'sc-video-player',\n templateUrl: './video-player.component.html',\n styleUrls: ['./video-player.component.less'],\n})\nexport class VideoPlayerComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n static loadFlvPromise: Promise<LazyResult>;\n static loadHlsPromise: Promise<LazyResult>;\n @Input()\n type: string;\n @Input()\n src: string;\n @Input()\n hasAudio: boolean;\n @ViewChild('video', { static: false })\n video: ElementRef<HTMLVideoElement>;\n flvPlayer: any;\n hlsPlayer: any;\n destroyed: boolean;\n initd: boolean;\n\n constructor(private lazy: LazyService, private fileUrlService: FileUrlService) {}\n\n ngOnInit() {\n\n }\n\n ngAfterViewInit(): void {\n this.reset();\n this.initd = true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.initd && (changes.type || changes.src)) {\n this.reset();\n }\n }\n\n reset() {\n if (this.type === 'hls') {\n this.resetHls();\n } else if (this.type === 'iframe') {\n this.destroy();\n } else {\n this.resetFlv();\n }\n }\n\n loadHls() {\n if (VideoPlayerComponent.loadHlsPromise == null) {\n VideoPlayerComponent.loadHlsPromise = this.lazy.loadScript('/assets/js/hls.js');\n }\n return VideoPlayerComponent.loadHlsPromise;\n }\n\n async resetHls() {\n await this.loadHls();\n this.destroy();\n if (this.src && Hls.isSupported() && !this.destroyed) {\n const url = this.fileUrlService.getUrl(this.src);\n this.hlsPlayer = new Hls();\n this.hlsPlayer.loadSource(url);\n this.hlsPlayer.attachMedia(this.video.nativeElement);\n }\n }\n\n async resetFlv() {\n await this.loadFlv();\n this.destroy();\n // TODO 目前只做了flv,接下来要根据type播放不同类型\n if (this.src && !this.destroyed) {\n const url = this.fileUrlService.getUrl(this.src);\n this.flvPlayer = flvjs.createPlayer(\n {\n type: 'flv',\n url,\n hasAudio: this.hasAudio === true,\n hasVideo: true,\n isLive: true,\n withCredentials: false,\n },\n {\n enableWorker: false,\n lazyLoadMaxDuration: 3 * 60,\n seekType: 'range',\n },\n );\n this.flvPlayer.attachMediaElement(this.video.nativeElement);\n this.flvPlayer.load();\n }\n }\n\n loadFlv() {\n if (VideoPlayerComponent.loadFlvPromise == null) {\n VideoPlayerComponent.loadFlvPromise = this.lazy.loadScript('assets/js/flv.min.js');\n }\n return VideoPlayerComponent.loadFlvPromise;\n }\n\n destroy() {\n if (this.flvPlayer) {\n this.flvPlayer.unload();\n this.flvPlayer.detachMediaElement();\n this.flvPlayer.destroy();\n this.flvPlayer = null;\n }\n if (this.hlsPlayer) {\n this.hlsPlayer.destroy();\n this.hlsPlayer = null;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy();\n this.destroyed = true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VideoPlayerComponent } from './video-player.component';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\n\n@NgModule({\n declarations: [VideoPlayerComponent],\n imports: [CommonModule, NzPipesModule],\n exports: [VideoPlayerComponent],\n})\nexport class VideoPlayerModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AudioComponent } from './audio.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { VideoPlayerModule } from '../shared/component/video-player/video-player.module';\n\n@NgModule({\n declarations: [AudioComponent],\n imports: [CommonModule, WidgetBaseModule, VideoPlayerModule],\n})\nexport class AudioModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(AudioComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-basic-bar-chart',\n templateUrl: './basic-bar-chart.component.html',\n styleUrls: ['./basic-bar-chart.component.less'],\n})\n@Widget('基本柱状图', {\n group: 'barChart',\n image: 'assets/img/screen/baseBar.png',\n icon: 'icontubiao',\n})\nexport class BasicBarChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('类型', { ui: { hidden: true } })\n type = 'basic';\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['barColor'],\n example: [\n {\n background: 'assets/img/screen/bar1.png',\n data: { barColor: { gradient: true, value: [['#FFEF66', '#FF851D']] } },\n },\n {\n background: 'assets/img/screen/bar2.png',\n data: { barColor: { gradient: true, value: [['#00FECB', '#00D191']] } },\n },\n {\n background: 'assets/img/screen/bar3.png',\n data: { barColor: { gradient: true, value: [['#00D2FD', '#3285FF']] } },\n },\n {\n background: 'assets/img/screen/bar4.png',\n data: { barColor: { gradient: true, value: [['#FF3699', '#8934F8']] } },\n },\n ],\n },\n })\n example: any;\n @Property('填充', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n barColor = { gradient: true, value: [['#00D2FD', '#3285FF']] };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#595F7A',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('单系多色')\n colorSwitch: boolean;\n\n @Property('类别颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n visibleIf: { colorSwitch: [true] },\n },\n })\n colors = ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'];\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 30,\n right: 30,\n bottom: 36,\n left: 38,\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '居中', value: 'center' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'center';\n @Property('轴隐藏', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'true' },\n { label: 'x轴', value: '0' },\n { label: 'y轴', value: '1' },\n { label: '两轴', value: 'false' },\n ],\n })\n axisShow = 'true';\n @Property('刻度隐藏', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'true' },\n { label: 'x轴', value: '0' },\n { label: 'y轴', value: '1' },\n { label: '两轴', value: 'false' },\n ],\n })\n scaleShow = 'true';\n // @Property('轴单位', {ui: {widget: 'myUnit'}})\n // unit = {x: '', y: '', yMax: ''};\n @Property('y轴单位', { type: 'string' })\n yUnit = '';\n @Property('x轴单位', { type: 'string' })\n xUnit = '';\n @Property('y轴最小')\n yMin: number;\n @Property('y轴最大')\n yMax: number;\n @Property('y轴最小间隔')\n yMinInterval: number;\n @Property('y轴最大增减')\n yMaxAddNum: number;\n @Property('网络线', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n netLine = false;\n @Property('网络线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n netLineColor = 'rgba(255,255,255,0.2)';\n @Property('标签', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '居上', value: 'top' },\n { label: '居中', value: 'inside' },\n { label: '居右', value: 'right' },\n ],\n })\n labelDirection = 'none';\n @Property('列间距', { ui: { widget: 'myRange', min: 0, max: 100, step: 10 } })\n barCategoryGap = 40;\n @Property('圆角', { ui: { widget: 'myRange', min: 0, max: 100, step: 1 } })\n barBorderRadius: 20;\n @Property('x轴类型', {\n enum: [\n { label: '类目', value: 'category' },\n { label: '时间', value: 'time' },\n ],\n })\n xType = 'category';\n @Property('轴标签角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 10 },\n })\n xLabelRotate = 0;\n @Property('x轴文本宽度')\n xLabelWidth: number;\n @Property('x轴文字宽度超出', {\n enum: [\n { label: '自动', value: 'auto' },\n { label: '截断', value: 'truncate' },\n { label: '换行', value: 'break' },\n { label: '强制换行', value: 'breakAll' },\n ],\n })\n xLabelOverflow = 'auto';\n @Property('标签显示间隔', {\n ui: {\n optionalHelp: {\n text: `默认会采用标签不重叠的策略间隔显示标签。\n可以设置成 0 强制显示所有标签。 \n如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。`,\n overlayStyle: {\n whiteSpace: 'pre-line',\n },\n },\n },\n })\n xLabelInterval: number;\n\n @Property('区域缩放')\n insideDataZoom: boolean;\n @Property('缩放最少数量', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomMinData: number;\n @Property('缩放开始百分比', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomStart: number;\n @Property('缩放结束百分比', { ui: { visibleIf: { insideDataZoom: [true] } } })\n dataZoomEnd: number;\n @Property('滚轮缩放', {\n enum: [\n { label: '启用', value: true },\n { label: '禁用', value: false },\n { label: '按住shift', value: 'shift' },\n { label: '按住ctrl', value: 'ctrl' },\n { label: '按住alt', value: 'alt' },\n ],\n ui: { widget: 'select', visibleIf: { insideDataZoom: [true] } },\n })\n zoomOnMouseWheel = true;\n @Property('滑动条', { ui: { visibleIf: { insideDataZoom: [true] } } })\n sliderDataZoom: boolean;\n @Property('锁定区域大小', { ui: { visibleIf: { sliderDataZoom: [true] } } })\n zoomLock: boolean;\n @Property('提示框字体', { ui: { widget: 'myFont' } })\n tooltipFont: any;\n @Property('显示柱条背景', { type: 'boolean' })\n showBackground = true;\n @Property('标线', { type: 'boolean' })\n markLine = false;\n @Property('Y轴标线高度', { type: 'number', ui: { visibleIf: { markLine: [true] } } })\n YmarkLineHeight = 10;\n\n // @Property('显示X轴', {\n // ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n // })\n // showX = true;\n @Property('Y标线标题', {\n type: 'string',\n ui: { visibleIf: { markLine: [true] }, optionalHelp: '此标题需要跟x字段内名字一致' },\n })\n YmarkLineName = '';\n // @Property('标线数值', { type: 'number' })\n // markLineVal = null;\n\n @Property('Y标线类型', {\n ui: { widget: 'select', visibleIf: { markLine: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n YmarkLineType = 'dashed';\n\n @Property('Y标线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n visibleIf: { markLine: [true] },\n },\n })\n YmarkLineColor = '#f00';\n @Property('Y标线粗细', {\n type: 'number',\n ui: { visibleIf: { markLine: [true] } },\n })\n YmarkWidth = 2;\n @Property('X轴标线位置', { type: 'string', ui: { visibleIf: { markLine: [true] } } })\n XmarkLineLocation = '二月';\n @Property('X标线标题', {\n type: 'string',\n ui: { optionalHelp: '此标题需要跟x字段内名字一致', visibleIf: { markLine: [true] } },\n })\n XmarkLineName = '';\n @Property('X标线类型', {\n ui: { widget: 'select', visibleIf: { markLine: [true] } },\n enum: [\n { label: '实线', value: 'solid' },\n { label: '虚线', value: 'dashed' },\n { label: '点线', value: 'dotted' },\n ],\n })\n XmarkLineType = 'dashed';\n\n @Property('X标线颜色', {\n ui: {\n visibleIf: { markLine: [true] },\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n XmarkLineColor = '#f00';\n @Property('X标线粗细', {\n type: 'number',\n ui: { visibleIf: { markLine: [true] } },\n })\n XmarkWidth = 2;\n chartOption: any = {};\n\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n s: { type: 'string', title: '系列' },\n },\n })\n _data = [\n { x: '一月', y: 10, s: '收入' },\n { x: '二月', y: 20, s: '收入' },\n { x: '三月', y: 25, s: '收入' },\n { x: '四月', y: 35, s: '收入' },\n { x: '五月', y: 27, s: '收入' },\n { x: '六月', y: 28, s: '收入' },\n { x: '一月', y: 18, s: '支出' },\n { x: '二月', y: 28, s: '支出' },\n { x: '三月', y: 32, s: '支出' },\n { x: '四月', y: 48, s: '支出' },\n { x: '五月', y: 20, s: '支出' },\n { x: '六月', y: 17, s: '支出' },\n ];\n\n @Drill()\n @DataOutput(['x', 's'])\n dataClick = new EventEmitter<any>();\n xData = [];\n yData = [];\n color = [];\n legends = [];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n // this.reloadData();\n const dataShadow: number[] = [];\n const maxNum = this.getMaxY();\n dataShadow.fill(maxNum, 0, this.xData.length);\n const textStyle = this.getTextStyle(this.font);\n this.style = textStyle;\n let hori = this.horizontal;\n let barColors: string[][];\n if (this.barColor && this.barColor.value) {\n barColors = this.barColor.value;\n } else {\n barColors = this.barColor as any;\n }\n this.color = barColors.map((barColor) => ({\n type: 'linear',\n x: 0,\n y: 0,\n x2: hori ? 1 : 0,\n y2: hori ? 0 : 1,\n global: false,\n colorStops: [\n { offset: 0, color: barColor[0] },\n { offset: 1, color: barColor[1] },\n ],\n }));\n\n let xAxis: any = this.getXAxis();\n\n let yAxis: any = this.getYAxis();\n let grid: any = {\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n };\n if (this.type === 'dcolor') {\n const yAxis1 = yAxis;\n const yAxis2 = this.getYAxis();\n yAxis1.inverse = true;\n yAxis = [yAxis1, yAxis2];\n yAxis.forEach((axis, i) => {\n axis.gridIndex = i;\n axis.position = 'top';\n });\n xAxis = [xAxis, this.getXAxis()];\n xAxis.forEach((axis, i) => {\n axis.gridIndex = i;\n });\n grid = [\n {\n right: '50%',\n },\n {\n left: '50%',\n },\n ];\n }\n const dataZoom = this.getDataZoom();\n this.chartOption = {\n dataZoom,\n tooltip: this.getTooltip(),\n legend: this.getLegend(),\n grid,\n xAxis: !hori ? xAxis : yAxis,\n yAxis: !hori ? yAxis : xAxis,\n color: this.color,\n series: [],\n };\n this.reloadData();\n }\n }\n\n ngOnInit() {}\n\n get horizontal(): boolean {\n return this.type === 'hori' || this.type === 'horiD' || this.type === 'dcolor';\n }\n\n getXAxis(): any {\n let XdisplayScaleShow =\n this.scaleShow === 'true' ? true : this.scaleShow === '0' ? false : this.scaleShow === '1' ? true : false;\n return {\n nameTextStyle: this.style,\n type: this.xType || 'category',\n name: this.xUnit,\n axisLine: {\n show: this.axisShow === 'true' ? true : this.axisShow === '0' ? false : this.axisShow === '1' ? true : false,\n lineStyle: {\n color: this.font.color,\n },\n },\n axisTick: {\n show: XdisplayScaleShow,\n },\n axisLabel: {\n ...this.style,\n show: XdisplayScaleShow,\n rotate: this.xLabelRotate,\n width: this.xLabelWidth,\n overflow: this.xLabelOverflow,\n interval: this.xLabelInterval,\n },\n };\n }\n\n getYAxis(): any {\n let YdisplayScaleShow =\n this.scaleShow === 'true' ? true : this.scaleShow === '0' ? true : this.scaleShow === '1' ? false : false;\n return {\n nameTextStyle: this.style,\n type: 'value',\n name: this.yUnit,\n axisLine: {\n show: this.axisShow === 'true' ? true : this.axisShow === '0' ? true : this.axisShow === '1' ? false : false,\n lineStyle: {\n color: this.font.color,\n },\n },\n axisTick: {\n show: YdisplayScaleShow,\n },\n min: this.yMin,\n max: (value) => {\n const yMax = Number(this.yMax ? this.yMax : value.max);\n return Math.ceil(this.yMaxAddNum ? yMax + Number(this.yMaxAddNum) : yMax);\n },\n axisLabel: {\n ...this.style,\n show: YdisplayScaleShow,\n // formatter: '{value}' + this.yUnit,\n },\n splitLine: {\n show: this.netLine,\n lineStyle: {\n type: 'dashed',\n color: this.netLineColor,\n },\n },\n minInterval: this.yMinInterval,\n };\n }\n\n setSeriesStyle(name: string, datasetIndex: number) {\n const textStyle = this.style;\n const i = this.chartOption.series.length;\n const series = {\n name,\n showBackground: this.showBackground,\n xAxisIndex: this.type === 'dcolor' ? i : 0,\n yAxisIndex: this.type === 'dcolor' ? i : 0,\n label: {\n normal: {\n show: this.labelDirection === 'none' ? false : true,\n // formatter: '{@' + name + '}',\n position: this.labelDirection || '',\n textStyle,\n },\n },\n barCategoryGap: this.barCategoryGap + '%',\n itemStyle: {\n barBorderRadius: this.barBorderRadius,\n },\n stack: this.type === 'double' || this.type === 'horiD' ? '0' : null,\n type: 'bar',\n areaStyle: {\n opacity: 0,\n },\n emphasis: {\n focus: this.type === 'double' || this.type === 'horiD' ? 'series' : null,\n },\n encode: this.horizontal ? { y: 'x', x: 'y' } : { x: 'x', y: 'y' },\n datasetIndex,\n };\n this.chartOption.series.push(series);\n return series;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport {BasicBarChartComponent} from './basic-bar-chart.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [\n BasicBarChartComponent\n ],\n imports: [\n CommonModule,\n WidgetBaseModule,\n NgxEchartsModule\n ]\n})\nexport class BasicBarChartModule {\n constructor(private widgetService:WidgetService){\n widgetService.register(BasicBarChartComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-basic-pie-chart',\n templateUrl: './basic-pie-chart.component.html',\n styleUrls: ['./basic-pie-chart.component.less'],\n})\n@Widget('饼图', {\n group: 'pieChart',\n image: 'assets/img/screen/pie.png',\n icon: 'icontubiao',\n})\nexport class BasicPieChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('类型', { ui: { hidden: true } })\n type = 'basic';\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['pieColor'],\n class: 'pie',\n example: [\n {\n background: 'assets/img/screen/pie1.png',\n data: {\n pieColor: {\n gradient: true,\n value: [\n ['#FFB82E', '#FFB82E'],\n ['#FF7C24', '#FF7C24'],\n ['#FF610F', '#FF610F'],\n ['#EE2100', '#EE2100'],\n ['#A52501', '#A52501'],\n ['#7B2C04', '#7B2C04'],\n ],\n },\n },\n },\n {\n background: 'assets/img/screen/pie2.png',\n data: {\n pieColor: {\n gradient: true,\n value: [\n ['#00FEC3', '#00FEC3'],\n ['#00F4A8', '#00F4A8'],\n ['#00D59B', '#00D59B'],\n ['#00B880', '#00B880'],\n ['#00896E', '#00896E'],\n ['#006A60', '#006A60'],\n ],\n },\n },\n },\n {\n background: 'assets/img/screen/pie3.png',\n data: {\n pieColor: {\n gradient: true,\n value: [\n ['#45C1FC', '#45C1FC'],\n ['#00A1FB', '#00A1FB'],\n ['#0076B7', '#0076B7'],\n ['#004D7E', '#004D7E'],\n ['#003560', '#003560'],\n ['#001736', '#001736'],\n ],\n },\n },\n },\n {\n background: 'assets/img/screen/pie4.png',\n data: {\n pieColor: {\n gradient: true,\n value: [\n ['#BF91FA', '#BF91FA'],\n ['#9B35F8', '#9B35F8'],\n ['#9813D9', '#9813D9'],\n ['#790588', '#790588'],\n ['#B30B9A', '#B30B9A'],\n ['#DC1098', '#DC1098'],\n ],\n },\n },\n },\n ],\n },\n })\n example: any;\n @Property('填充', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n pieColor = {\n gradient: true,\n value: [\n ['#45C1FC', '#45C1FC'],\n ['#00A1FB', '#00A1FB'],\n ['#0076B7', '#0076B7'],\n ['#004D7E', '#004D7E'],\n ['#003560', '#003560'],\n ['#001736', '#001736'],\n ],\n };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: '',\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '纵向居中', value: 'center' },\n { label: '纵向居左', value: 'left' },\n { label: '纵向居右', value: 'right' },\n ],\n })\n align = 'none';\n @Property('图例呈现', {\n ui: { widget: 'select' },\n enum: [\n { label: '数据', value: 'data' },\n { label: '百分比', value: 'percent' },\n { label: '数据-百分比', value: 'both' },\n ],\n })\n legentData = 'data';\n @Property('线标', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n lineMark = false;\n @Property('浮标', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n buoy = false;\n @Property('缩放', { type: 'number' })\n radius = 1;\n @Property('边距', { ui: { widget: 'myGrid', type: 'pie' } })\n grid: any = {\n top: 50,\n left: 50,\n };\n\n @Property('环宽', { type: 'number' })\n roundWidth = 15;\n\n @Property('增加隔断', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n addSplit = false;\n\n @Property('单位')\n unit: string;\n\n seriesDataPie = [];\n xData = [];\n radiusPie = ['0%', '75%'];\n chartOption: any = {};\n roseType = 'false';\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n },\n })\n _data = [\n { x: '一月', y: 33 },\n { x: '二月', y: 31 },\n { x: '三月', y: 11 },\n { x: '四月', y: 11 },\n { x: '五月', y: 7 },\n { x: '六月', y: 20 },\n ];\n @Drill()\n @DataOutput(['x'])\n dataClick = new EventEmitter<any>();\n // 隔断样式\n splitWidth = 0;\n splitItem = {\n value: this.splitWidth,\n name: 'split',\n itemStyle: {\n normal: {\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n color: 'rgba(0, 0, 0, 0)',\n borderColor: 'rgba(0, 0, 0, 0)',\n borderWidth: 0,\n },\n },\n };\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n if (this._data == null) {\n this._data = [];\n }\n this.getPieData();\n if (this.addSplit) {\n // 计算隔断层的宽度 取1%作为隔断\n const splitWidth = this._data.reduce((a, b) => a + Number(b.y), 0) / 100;\n this.splitItem.value = splitWidth;\n }\n if (this.type === 'ring' || this.type === 'roseRing') {\n const min = 75 - (Math.abs(Number(this.roundWidth)) || 75); // 获取最小的宽度 最大宽固定是75\n this.radiusPie = [`${min}%`, '75%'];\n } else {\n this.radiusPie = ['0%', '75%'];\n }\n if (this.radius != null) {\n this.radiusPie[0] = parseInt(this.radiusPie[0], 10) * this.radius + '%';\n this.radiusPie[1] = parseInt(this.radiusPie[1], 10) * this.radius + '%';\n }\n if (this.type === 'rose' || this.type === 'roseRing') {\n this.roseType = 'radius';\n }\n const objData = this.array2obj(this.seriesDataPie, 'name');\n const color = [];\n const textStyle = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n let pieColor;\n if (this.pieColor && this.pieColor.value) {\n pieColor = this.pieColor.value;\n } else {\n pieColor = this.pieColor;\n }\n for (let i = 0; i < pieColor.length; i++) {\n color.push(pieColor[i][0]);\n }\n this.chartOption = {\n tooltip: {\n show: this.buoy,\n textStyle: {\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n },\n trigger: 'item',\n // formatter: '{b} : {c} ({d}%)',\n formatter: (item) => {\n return item.name === 'split' ? '' : `${item.name}: ${this.addUnit(item.value)}(${item.percent}%)`;\n },\n },\n legend: {\n type: 'scroll',\n orient: 'vertical',\n data: this.xData,\n x: this.align,\n show: this.align !== 'none',\n // formatter: function (name) {\n // return name + '(' + objData[name].value + ')';\n // },\n textStyle,\n },\n color,\n series: [\n {\n name: 'pie',\n type: 'pie',\n roseType: this.roseType === 'radius' ? 'radius' : false,\n label: {\n normal: {\n show: this.lineMark,\n formatter: (item) => {\n return item.name === 'split' ? '' : this.addUnit(item.value);\n },\n textStyle,\n },\n },\n center: [this.grid.left + '%', this.grid.top + '%'],\n radius: this.radiusPie,\n labelLine: {\n normal: {\n show: this.lineMark,\n },\n },\n textStyle,\n data: [],\n // ,\n // data: this.seriesDataPie\n /* .sort(function(a, b) {\n return a.value - b.value;\n }),*/\n },\n ],\n // dataset: {\n // // 用 dimensions 指定了维度的顺序。直角坐标系中,\n // // 默认把第一个维度映射到 X 轴上,第二个维度映射到 Y 轴上。\n // // 如果不指定 dimensions,也可以通过指定 series.encode\n // // 完成映射,参见后文。\n // // dimensions: [],\n // source: [],\n // },\n };\n this.reloadData();\n // console.log(this.chartOption);\n if (this.legentData === 'percent') {\n this.chartOption.legend.formatter = (name: string) => {\n let total = 0;\n Object.keys(objData).forEach((key) => {\n for (const a of objData[key]) {\n total += parseInt(a.value, 10);\n }\n });\n let b = 0;\n for (const a of objData[name]) {\n b += Number(a.value);\n }\n const p = ((b / total) * 100).toFixed(0);\n return name + '(' + p + '%)';\n };\n }\n if (this.legentData === 'both') {\n this.chartOption.legend.formatter = (name) => {\n let total = 0;\n Object.keys(objData).forEach((key) => {\n // console.log(key);\n for (const a of objData[key]) {\n total += parseInt(a.value, 10);\n }\n });\n let b = 0;\n for (const a of objData[name]) {\n b += Number(a.value);\n }\n const p = ((b / total) * 100).toFixed(0);\n return name + '(' + this.addUnit(b) + '-' + p + '%)';\n };\n }\n if (this.legentData === 'data') {\n this.chartOption.legend.formatter = (name) => {\n let total = 0;\n // for (let key of Object.keys(objData)) {\n for (const a of objData[name]) {\n total += Number(a.value);\n }\n // total += Number(objData[key].value);\n // }\n // let p = ((objData[name].value / total) * 100).toFixed(0);\n return name + '(' + this.addUnit(total) + ')';\n };\n }\n }\n }\n\n addUnit(value: any) {\n if (this.unit && value != null && value !== '') {\n value += this.unit;\n }\n return value;\n }\n\n reloadData() {\n const source = [];\n const addSplit = this.addSplit && this._data.filter((item) => item.y).length > 1;\n this._data.forEach((record) => {\n // const x=record.x;\n // const s=record.s;\n // const y=record.y;\n const { x, y } = record;\n const arr = {\n name: x,\n value: Number(y),\n };\n // arr.push(x, Number(y));\n source.push(arr);\n if (addSplit) {\n source.push(this.splitItem);\n }\n });\n this.chartOption.series[0].data = source;\n // this.chartOption.dataset.source = source;\n this._data.forEach((a) => {\n const x = { name: a.x };\n this.xData.push(x);\n });\n this.uniqueData(this.xData);\n }\n\n ngOnInit() {}\n\n getPieData() {\n this.seriesDataPie = [];\n let total = 0;\n if (this.addSplit) {\n this._data.forEach((t) => {\n total += t.y;\n });\n }\n for (let i = 0; i < this._data.length; i++) {\n // if (total > 0 && this._data[i].y / total >= 1) {\n // this.addSplit = false;\n // }\n this.seriesDataPie.push({\n value: this._data[i].y,\n name: this._data[i].x,\n });\n }\n }\n\n array2obj(array, key) {\n const resObj = {};\n for (let i = 0; i < array.length; i++) {\n if (!resObj[array[i][key]]) {\n resObj[array[i][key]] = [];\n }\n resObj[array[i][key]].push(array[i]);\n }\n return resObj;\n }\n\n getLegentData(name) {}\n\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BasicPieChartComponent } from './basic-pie-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [BasicPieChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class BasicPieChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(BasicPieChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\nimport 'echarts-gl';\n@Component({\n selector: 'sc-bar-chart-three-d',\n templateUrl: './bar-chart-three-d.component.html',\n styleUrls: ['./bar-chart-three-d.component.less'],\n})\n@Widget('3D柱状图', {\n group: 'barChart',\n image: 'assets/img/screen/basic-bar-chart.png',\n icon: 'icontubiao',\n})\nexport class BarChartThreeDComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('类型', { ui: { hidden: true } })\n type = 'basic';\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['barColor'],\n example: [\n {\n background: 'assets/img/screen/3d1.png',\n data: { barColor: ['#FAA736'] },\n },\n {\n background: 'assets/img/screen/3d2.png',\n data: { barColor: ['#00D190'] },\n },\n {\n background: 'assets/img/screen/3d3.png',\n data: { barColor: ['#3285FF'] },\n },\n {\n background: 'assets/img/screen/3d4.png',\n data: { barColor: ['#8934F8'] },\n },\n ],\n },\n })\n example: any;\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n barColor = ['#3285FF', '#00D2FD'];\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n // @Property('轴单位', { ui: { widget: 'myUnit' } })\n // unit = { x: '', y: '' };\n @Property('y轴单位', { type: 'string' })\n yUnit = '';\n @Property('x轴单位', { type: 'string' })\n xUnit = '';\n @Property('y轴最大')\n yMax: number;\n @Property('网络线', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n netLine = false;\n @Property('标签', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = false;\n @Property('自动旋转', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n autoRotate = false;\n @Property('柱子宽度', {\n ui: { widget: 'myRange', min: 100, max: 1000, step: 100 },\n })\n boxWidth = 200;\n @Property('柱子深度', {\n ui: { widget: 'myRange', min: 10, max: 100, step: 10 },\n })\n boxDepth = 20;\n\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n z: { type: 'string', title: '系列' },\n },\n })\n _data = [\n { x: '一月', y: 10, s: '收入' },\n { x: '二月', y: 20, s: '收入' },\n { x: '三月', y: 25, s: '收入' },\n { x: '四月', y: 35, s: '收入' },\n { x: '五月', y: 27, s: '收入' },\n { x: '六月', y: 28, s: '收入' },\n { x: '一月', y: 18, s: '支出' },\n { x: '二月', y: 28, s: '支出' },\n { x: '三月', y: 32, s: '支出' },\n { x: '四月', y: 48, s: '支出' },\n { x: '五月', y: 20, s: '支出' },\n { x: '六月', y: 17, s: '支出' },\n ];\n @Drill()\n @DataOutput(['x', 'z'])\n dataClick = new EventEmitter<any>();\n sData = [];\n series = [];\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n this.reloadData();\n\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n margin: this.font.lineHeight,\n };\n\n this.chartOption = {\n xAxis3D: {\n name: this.xUnit,\n nameTextStyle: style,\n type: 'category',\n splitLine: {\n show: false,\n },\n data: this.xData,\n },\n yAxis3D: {\n name: '',\n type: 'category',\n data: [],\n },\n zAxis3D: {\n name: this.yUnit,\n nameTextStyle: style,\n type: 'value',\n splitLine: {\n show: this.netLine,\n lineStyle: {\n width: 1,\n },\n },\n },\n grid3D: {\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n boxWidth: this.boxWidth,\n boxDepth: this.boxDepth,\n axisTick: {\n show: false,\n },\n axisLine: {\n lineStyle: {\n color: this.font.color,\n width: 1,\n },\n },\n axisLabel: {\n textStyle: style,\n },\n viewControl: {\n alpha: 10,\n beta: 0,\n autoRotate: this.autoRotate,\n zoomSensitivity: 0,\n autoRotateAfterStill: 15,\n distance: 250,\n },\n },\n color: ['#45C1FC', '#00A1FB', '#0076B7', '#004D7E', '#003560', '#001736'],\n series: [],\n };\n if (this.type === '3D') {\n this.series = [this.series[0]];\n }\n for (let i = 0; i < this.series.length; i++) {\n this.chartOption.series.push({\n type: 'bar3D',\n itemStyle: {},\n data: [],\n shading: 'lambert',\n stack: 'stack',\n label: {\n show: this.label,\n textStyle: style,\n },\n emphasis: {\n label: {\n textStyle: {\n fontSize: this.font.size,\n color: this.font.color,\n fontWeight: this.font.weight,\n fontFamily: this.font.family,\n lineHeight: this.font.lineHeight,\n borderWidth: 0,\n borderColor: '#00000000',\n },\n },\n },\n });\n this.chartOption.series[i].itemStyle.color = this.barColor[i];\n const temp = [];\n this._data.forEach((record) => {\n if (this.series[i] === record.s) {\n temp.push(record);\n }\n });\n this.xData.forEach((x) => {\n let count = 0;\n temp.forEach((t) => {\n if (t.x === x) {\n count++;\n }\n });\n if (count === 0) {\n this._data.push({ x, y: 0, s: this.series[i] });\n }\n });\n this._data.sort((prev, next) => {\n return this.xData.indexOf(prev.x) - this.xData.indexOf(next.x);\n });\n this._data\n .filter((els) => els.s === this.series[i])\n .forEach((el) => {\n for (let j = 0; j < this.xData.length; j++) {\n if (this.xData[j] === el.x) {\n this.chartOption.series[i].data.push([j, 0, el.y]);\n }\n }\n });\n }\n }\n }\n reloadData() {\n if (this._data[0]) {\n for (let i = 0; i < this._data.length; i++) {\n if (this._data[i].s) {\n this.series[i] = this._data[i].s;\n }\n }\n this.uniqueData(this.series);\n }\n for (let i = 0; i < this._data.length; i++) {\n this.xData[i] = this._data[i].x;\n }\n this.uniqueData(this.xData);\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { BarChartThreeDComponent } from './bar-chart-three-d.component';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [BarChartThreeDComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class BarChartThreeDModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(BarChartThreeDComponent);\r\n }\r\n}\r\n","import { Property, Widget, WidgetRef } from 'bbj-widget-base';\nimport {\n OnInit,\n Component,\n ElementRef,\n OnDestroy,\n NgZone,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { NzResizeObserver } from 'ng-zorro-antd/core/resize-observers';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'sc-shape',\n templateUrl: './shape.component.html',\n styleUrls: ['./shape.component.less'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n@Widget('图形', { group: 'shape', icon: 'iconxingzhuang' })\nexport class ShapeComponent implements OnInit, OnDestroy {\n @Property('填充', {\n ui: {\n widget: 'myColor',\n visibleIf: {\n type: ['rect', 'polygonplus', 'polyhedrosis', 'circle', 'path', 'polygon', 'parallelogram', 'trapezoid'],\n },\n },\n })\n background = null;\n @Property('线条颜色', { ui: { widget: 'myColor' } })\n borderColor = '#3285ff';\n @Property('线条粗细', { type: 'number' })\n borderWidth = 1;\n @Property('圆角', {\n type: 'number',\n ui: { widget: 'myRange', min: 0, max: 100, step: 1, visibleIf: { type: ['rect'] } },\n })\n fillet = 0;\n @Property('几边形', {\n type: 'number',\n ui: { widget: 'myRange', min: 3, max: 100, step: 1, visibleIf: { type: ['polygonplus', 'polyhedrosis'] } },\n })\n side = 3;\n @Property('内半径', { ui: { widget: 'myRange', min: 1, max: 99, step: 1, visibleIf: { type: ['polyhedrosis'] } } })\n sr = 38;\n @Property('上底', { ui: { widget: 'myRange', min: 1, max: 100, step: 1, visibleIf: { type: ['trapezoid'] } } })\n upper = 60;\n @Property('下底', {\n ui: { widget: 'myRange', min: 1, max: 100, step: 1, visibleIf: { type: ['trapezoid'] } },\n })\n bottom = 100;\n @Property('偏移', {\n ui: {\n widget: 'myRange',\n min: -100,\n max: 100,\n step: 1,\n visibleIf: { type: ['parallelogram', 'trapezoid', 'triangle'] },\n },\n })\n deviation = 0;\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Property('', {\n type: 'string',\n ui: { hidden: true },\n })\n type = 'rect';\n style: any;\n image: string;\n @Property('数据', { ui: { hidden: true } })\n data: { x: number; y: number }[];\n width: number;\n height: number;\n points: string;\n destroy$ = new Subject();\n filterId: string;\n filterUrl: string;\n\n constructor(\n private elementRef: ElementRef,\n private resizeObserver: NzResizeObserver,\n private zone: NgZone,\n private cd: ChangeDetectorRef,\n private widgetRef: WidgetRef,\n ) {}\n\n ngOnInit() {\n this.reset();\n this.resizeObserver\n .observe(this.elementRef)\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n this.zone.run(() => {\n this.reset();\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n reset() {\n const { clientWidth: width, clientHeight: height } = this.elementRef.nativeElement;\n this.width = width;\n this.height = height;\n this.style = {\n opacity: this.opacity,\n stroke: this.borderColor,\n strokeWidth: this.borderWidth,\n fill: this.background ? this.background : 'rgba(0,0,0,0)',\n };\n if (this.shadow && (this.shadow.X || this.shadow.Y || this.shadow.Z)) {\n this.filterId = this.widgetRef.widget.id;\n this.filterUrl = `url(#${this.filterId})`;\n }\n switch (this.type) {\n case 'rect': // 矩形\n this.style.rx = this.style.ry = this.fillet;\n break;\n case 'triangle': //三角形\n this.points = `${width / 2 + (width * this.deviation) / 200},0 ${width},${height} 0,${height}`;\n break;\n case 'parallelogram': // 平行四边形\n const offset = (width * this.deviation) / 100;\n if (this.deviation >= 0) {\n this.points = `${offset},0 ${width},0 ${width - offset},${height} 0,${height}`;\n } else {\n this.points = `0,0 ${width + offset},0 ${width},${height} ${-offset},${height}`;\n }\n break;\n case 'trapezoid': // 梯形\n const top = (this.upper * width) / 100;\n const bottom = (this.bottom * width) / 100;\n const offset1 = ((width - top) / 2) * (1 + this.deviation / 100);\n const offset2 = ((width - bottom) / 2) * (1 - this.deviation / 100);\n this.points = `${offset1},0 ${offset1 + top},0 ${offset2 + bottom},${height} ${offset2},${height}`;\n break;\n case 'polyline': //折线\n case 'polygon': //多边形\n this.points = '';\n let minX: number, maxX: number, minY: number, maxY: number;\n this.data.forEach(({ x, y }) => {\n if (x < minX || minX == null) minX = x;\n if (x > maxX || maxX == null) maxX = x;\n if (y < minY || minY == null) minY = y;\n if (y > maxY || maxY == null) maxY = y;\n });\n const scaleX = width / (maxX - minX);\n const scaleY = height / (maxY - minY);\n this.data.forEach(({ x, y }) => {\n this.points += `${(x - minX) * scaleX},${(y - minY) * scaleY} `;\n });\n break;\n case 'polygonplus': //正多边形\n const rx = width / 2;\n const ry = height / 2;\n this.points = '';\n for (let i = 0; i < this.side; i++) {\n this.points += this.getEllipsePoint(i, this.side, rx, ry, rx, ry);\n }\n break;\n case 'polyhedrosis': // 星形\n this.points = '';\n const rx1 = width / 2;\n const ry1 = height / 2;\n const rx2 = (rx1 * this.sr) / 100;\n const ry2 = (ry1 * this.sr) / 100;\n for (let i = 0; i < this.side; i++) {\n this.points += this.getEllipsePoint(i, this.side, rx1, ry1, rx1, ry1);\n this.points += this.getEllipsePoint(i + 1 / 2, this.side, rx1, ry1, rx2, ry2);\n }\n break;\n case 'path':\n this.points = '';\n for (let i = 0; i < this.data.length; i++) {\n this.points += 'L' + this.data[i].x + ' ' + this.data[i].y + ' ';\n }\n this.points = 'M' + this.points.substring(1) + 'Z';\n break;\n default:\n break;\n }\n this.cd.markForCheck();\n }\n\n /**\n * 获取椭圆上的的坐标点,起始角度为90度\n * @param index 序号\n * @param max 总数\n * @param cx 中心x\n * @param cy 中心y\n * @param rx x半径\n * @param ry y半径\n * @returns\n */\n getEllipsePoint(index: number, max: number, cx: number, cy: number, rx: number, ry: number) {\n const rad = ((index * 2) / max + 1 / 2) * Math.PI;\n return cx + Math.cos(rad) * rx + ',' + (cy - Math.sin(rad) * ry) + ' ';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ShapeComponent } from './shape.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [ShapeComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class ShapeModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(ShapeComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\nimport { BasicBarChartComponent } from '../basic-bar-chart/basic-bar-chart.component';\n\n@Component({\n selector: 'sc-line-bar-chart',\n templateUrl: './line-bar-chart.component.html',\n styleUrls: ['./line-bar-chart.component.less'],\n})\n@Widget('折线柱图', {\n group: 'barChart',\n image: 'assets/img/screen/lineBar.png',\n icon: 'icontubiao',\n})\nexport class LineBarChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('类型', { ui: { hidden: true } })\n type = 'line';\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['barColor'],\n example: [\n {\n background: 'assets/img/screen/bar1.png',\n data: { barColor: { gradient: true, value: [['#FFEF66', '#FF851D']] } },\n },\n {\n background: 'assets/img/screen/bar2.png',\n data: { barColor: { gradient: true, value: [['#00FECB', '#00D191']] } },\n },\n {\n background: 'assets/img/screen/bar3.png',\n data: { barColor: { gradient: true, value: [['#00D2FD', '#3285FF']] } },\n },\n {\n background: 'assets/img/screen/bar4.png',\n data: { barColor: { gradient: true, value: [['#FF3699', '#8934F8']] } },\n },\n ],\n },\n })\n example: any;\n @Property('填充', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n barColor = { gradient: true, value: [['#00D2FD', '#3285FF']] };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 30,\n right: 30,\n bottom: 30,\n left: 30,\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'none';\n // @Property('轴单位', { ui: { widget: 'myUnit', type: 'double' } })\n // unit = { x: '', y: '', yMax: '', y1: '', y1Max: '', showY1: false };\n @Property('y轴单位', { type: 'string' })\n yUnit = '';\n @Property('x轴单位', { type: 'string' })\n xUnit = '';\n @Property('y轴最大')\n yMax: number;\n @Property('y轴最大', { type: 'boolean' })\n showY1 = false;\n @Property('网络线', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n netLine = false;\n @Property('标签', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = false;\n @Property('列间距', { ui: { widget: 'myRange', min: 0, max: 100, step: 10 } })\n barCategoryGap = 40;\n @Property('圆角', { ui: { widget: 'myRange', min: 0, max: 10, step: 1 } })\n barBorderRadius = 0;\n @Property('轴标签角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 10 },\n })\n xLabelRotate = 0;\n\n chartOption: any = {};\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n s: { type: 'string', title: '系列' },\n },\n })\n _data: any[] = [\n { x: '一月', y: 2.0, s: '蒸发量' },\n { x: '二月', y: 4.9, s: '蒸发量' },\n { x: '三月', y: 7.0, s: '蒸发量' },\n { x: '四月', y: 35.6, s: '蒸发量' },\n { x: '五月', y: 73.4, s: '蒸发量' },\n { x: '六月', y: 123.4, s: '蒸发量' },\n { x: '一月', y: 2.6, s: '降水量' },\n { x: '二月', y: 5.9, s: '降水量' },\n { x: '三月', y: 9.0, s: '降水量' },\n { x: '四月', y: 25.7, s: '降水量' },\n { x: '五月', y: 43.5, s: '降水量' },\n { x: '六月', y: 78.9, s: '降水量' },\n { x: '一月', y: 2.0, s: '温度' },\n { x: '二月', y: 2.2, s: '温度' },\n { x: '三月', y: 3.3, s: '温度' },\n { x: '四月', y: 4.5, s: '温度' },\n { x: '五月', y: 6.3, s: '温度' },\n { x: '六月', y: 10.2, s: '温度' },\n ];\n @Drill()\n @DataOutput(['x', 's'])\n dataClick = new EventEmitter<any>();\n xData = [];\n series = [];\n yData = [];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const dataShadow = [];\n const maxNum = this.getMaxY();\n\n for (let i = 0; i < this.xData.length; i++) {\n dataShadow.push(maxNum);\n }\n this.style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n const color = [];\n let barColor;\n if (this.barColor && this.barColor.value) {\n barColor = this.barColor.value;\n } else {\n barColor = this.barColor;\n }\n for (let i = 0; i < barColor.length; i++) {\n color.push({\n type: 'linear',\n x: 0,\n y: 0,\n x2: 0,\n y2: 1,\n global: false,\n colorStops: [\n { offset: 0, color: barColor[i][0] },\n { offset: 1, color: barColor[i][1] },\n ],\n });\n }\n\n const xAxis: any = {\n type: 'category',\n name: this.xUnit,\n nameTextStyle: this.style,\n axisLine: {\n show: true,\n lineStyle: {\n color: this.style.color,\n },\n },\n axisTick: {\n show: true,\n },\n axisLabel: {\n rotate: this.xLabelRotate,\n show: true,\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n margin: this.font.lineHeight,\n },\n };\n\n let yAxis: any = {\n type: 'value',\n name: this.yUnit,\n nameTextStyle: this.style,\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n max: this.yMax ? undefined : this.yMax,\n axisLabel: this.style,\n splitLine: {\n show: this.netLine,\n lineStyle: {\n type: 'dashed',\n },\n },\n };\n\n const grid: any = {\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n };\n\n if (this.showY1) {\n yAxis = [\n {\n type: 'value',\n name: this.yUnit,\n nameTextStyle: this.style,\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n max: this.yMax ? undefined : this.yMax,\n axisLabel: this.style,\n splitLine: {\n show: this.netLine,\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n {\n type: 'value',\n name: this.yUnit,\n nameTextStyle: this.style,\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n max: this.yMax ? undefined : this.yMax,\n axisLabel: this.style,\n splitLine: {\n show: false,\n },\n },\n ];\n }\n this.chartOption = {\n legend: {\n data: this.series,\n align: this.align,\n icon: 'stack',\n show: this.align !== 'none',\n textStyle: this.style,\n },\n grid,\n xAxis,\n yAxis,\n color,\n series: [],\n };\n this.reloadData();\n // let temp = [];\n // for (let j = 0; j < this._data.length; j++) {\n // if (this.series[i] === this._data[j].s) {\n // temp.push(this._data[j]);\n // }\n // }\n // for (let j = 0; j < this.xData.length; j++) {\n // let count = 0;\n // for (let k = 0; k < temp.length; k++) {\n // if (temp[k].x == this.xData[j]) {\n // count++;\n // }\n // }\n // if (count == 0) {\n // this._data.push({ x: this.xData[j], y: null, s: this.series[i] });\n // }\n // }\n // this._data.sort((prev, next) => {\n // return this.xData.indexOf(prev.x) - this.xData.indexOf(next.x);\n // });\n // this._data\n // .filter(els => els.s === this.series[i])\n // .forEach(el => {\n // for (let j = 0; j < this.xData.length; j++) {\n // if (this.xData[j] === el.x) {\n // this.chartOption.series[i].data.push(el.y);\n // }\n // }\n // });\n // }\n }\n }\n setSeriesStyle(name: string, datasetIndex: number) {\n const first = datasetIndex === 1;\n const series = {\n name,\n showBackground: true,\n label: {\n show: this.label,\n position: 'top',\n textStyle: this.style,\n },\n itemStyle: {\n normal: {\n barBorderRadius: this.barBorderRadius,\n },\n },\n connectNulls: true,\n barCategoryGap: this.barCategoryGap + '%',\n type: first ? 'bar' : 'line',\n yAxisIndex: this.showY1 && !first ? 1 : 0,\n areaStyle: {\n opacity: 0,\n },\n encode: { x: 'x', y: 'y' },\n datasetIndex,\n };\n this.chartOption.series.push(series);\n return series;\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LineBarChartComponent } from './line-bar-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [LineBarChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class LineBarChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(LineBarChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-bubble-chart',\n templateUrl: './bubble-chart.component.html',\n styleUrls: ['./bubble-chart.component.less'],\n})\n@Widget('散点图', {\n group: 'otherChart',\n image: 'assets/img/screen/bubble.png',\n icon: 'icontubiao',\n})\nexport class BubbleChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['bubbleColor'],\n example: [\n {\n background: 'assets/img/screen/bubble1.png',\n data: { bubbleColor: { gradient: true, value: [['#FFEF66', '#FF851D']] } },\n },\n {\n background: 'assets/img/screen/bubble2.png',\n data: { bubbleColor: { gradient: true, value: [['#00FECB', '#00D191']] } },\n },\n {\n background: 'assets/img/screen/bubble3.png',\n data: { bubbleColor: { gradient: true, value: [['#00D2FD', '#3285FF']] } },\n },\n {\n background: 'assets/img/screen/bubble4.png',\n data: { bubbleColor: { gradient: true, value: [['#FF3699', '#8934F8']] } },\n },\n ],\n },\n })\n example: any;\n @Property('填充', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n bubbleColor = { gradient: true, value: [['#00D2FD', '#3285FF']] };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 30,\n right: 30,\n bottom: 34,\n left: 36,\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'auto';\n // @Property('轴单位', { ui: { widget: 'myUnit' } })\n // unit = { x: '', y: '' };\n @Property('y轴单位', { type: 'string' })\n yUnit = '';\n @Property('x轴单位', { type: 'string' })\n xUnit = '';\n @Property('y轴最大')\n yMax: number;\n @Property('网络线', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n netLine = false;\n @Property('标签', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = false;\n @Property('轴标签角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 10 },\n })\n xLabelRotate = 0;\n\n chartOption: any = {};\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '高度' },\n v: { type: 'number', title: '值' },\n s: { type: 'string', title: '系列' },\n },\n })\n _data = [\n { x: '一月', y: 10, v: 32, s: '收入' },\n { x: '二月', y: 20, v: 13, s: '收入' },\n { x: '三月', y: 25, v: 87, s: '收入' },\n { x: '四月', y: 35, v: 45, s: '收入' },\n { x: '五月', y: 27, v: 18, s: '收入' },\n { x: '六月', y: 28, v: 95, s: '收入' },\n { x: '一月', y: 18, v: 59, s: '支出' },\n { x: '二月', y: 28, v: 32, s: '支出' },\n { x: '三月', y: 32, v: 75, s: '支出' },\n { x: '四月', y: 48, v: 17, s: '支出' },\n { x: '五月', y: 20, v: 43, s: '支出' },\n { x: '六月', y: 17, v: 94, s: '支出' },\n ];\n @Drill()\n @DataOutput(['x', 's'])\n dataClick = new EventEmitter<any>();\n\n style = {\n color: '',\n fontFamily: '',\n fontWeight: '',\n fontSize: '',\n lineHeight: '',\n };\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n this.style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n const color = [];\n let bubbleColor;\n if (this.bubbleColor && this.bubbleColor.value) {\n bubbleColor = this.bubbleColor.value;\n } else {\n bubbleColor = this.bubbleColor;\n }\n for (let i = 0; i < bubbleColor.length; i++) {\n color.push({\n type: 'radial',\n x: 0.4,\n y: 0.3,\n r: 1,\n global: false,\n colorStops: [\n { offset: 0, color: bubbleColor[i][0] },\n { offset: 1, color: bubbleColor[i][1] },\n ],\n });\n }\n this.chartOption = {\n legend: {\n align: this.align,\n show: this.align !== 'none',\n textStyle: this.style,\n },\n grid: {\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n },\n xAxis: {\n name: this.xUnit,\n nameTextStyle: this.style,\n type: 'category',\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n axisLabel: {\n rotate: this.xLabelRotate,\n show: true,\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n margin: this.font.lineHeight,\n },\n // data: this.xData,\n },\n yAxis: {\n name: this.yUnit,\n nameTextStyle: this.style,\n type: 'value',\n axisLine: {\n lineStyle: {\n color: this.style.color,\n },\n },\n axisLabel: this.style,\n splitLine: {\n show: this.netLine,\n lineStyle: {\n type: 'dashed',\n },\n },\n },\n color,\n series: [],\n };\n this.reloadData();\n // for (let i = 0; i < this.series.length; i++) {\n\n // let temp = [];\n // for (let j = 0; j < this._data.length; j++) {\n // if (this.series[i] === this._data[j].s) {\n // temp.push(this._data[j]);\n // }\n // }\n // for (let j = 0; j < this.xData.length; j++) {\n // let count = 0;\n // for (let k = 0; k < temp.length; k++) {\n // if (temp[k].x == this.xData[j]) {\n // count++;\n // }\n // }\n // if (count == 0) {\n // this._data.push({ x: this.xData[j], y: null,v:null, s: this.series[i] });\n // }\n // }\n // this._data.sort((prev, next) => {\n // return this.xData.indexOf(prev.x) - this.xData.indexOf(next.x);\n // });\n // this._data\n // .filter(els => els.s === this.series[i])\n // .forEach(el => {\n // for (let j = 0; j < this.xData.length; j++) {\n // if (this.xData[j] === el.x) {\n // this.chartOption.series[i].data.push([el.x, el.y, el.v]);\n // }\n // }\n // });\n // this.chartOption.series[i].symbolSize = function(data) {\n // return data[2] / 2;\n // };\n // this.chartOption.series[i].label.emphasis.formatter = function(param) {\n // return param.data[2];\n // };\n // }\n\n // console.log(JSON.stringify(this.chartOption));\n }\n }\n // reloadData(){\n // if (this._data[0]) {\n // for (let i = 0; i < this._data.length; i++) {\n // if ( this._data[i].s) {\n // this.series[i] = this._data[i].s;\n // }\n // }\n // this.uniqueData(this.series);\n // }\n // for (let i = 0; i < this._data.length; i++) {\n // this.xData[i] = this._data[i].x;\n // }\n // this.uniqueData(this.xData);\n // }\n setSeriesStyle(name: string, datasetIndex: number) {\n const series = {\n type: 'scatter',\n symbolSize: (data) => {\n return data.v;\n },\n name,\n label: {\n show: this.label,\n textStyle: this.style,\n emphasis: {\n show: true,\n position: 'top',\n textStyle: this.style,\n formatter: [],\n },\n },\n itemStyle: {\n normal: {\n shadowBlur: 10,\n shadowOffsetY: 5,\n shadowColor: 'rgba(67, 74, 78, 0.5)',\n },\n },\n encode: { x: 'x', y: 'y' },\n datasetIndex,\n // data: [],\n };\n this.chartOption.series.push(series);\n return series;\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BubbleChartComponent } from './bubble-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [BubbleChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class BubbleChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(BubbleChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-radar-chart',\n templateUrl: './radar-chart.component.html',\n styleUrls: ['./radar-chart.component.less'],\n})\n@Widget('雷达图', {\n group: 'otherChart',\n image: 'assets/img/screen/radar.png',\n icon: 'icontubiao',\n})\nexport class RadarChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n lineColor = ['#3285FF', '#00D2FD'];\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: '',\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'auto';\n @Property('标签', { type: 'boolean' })\n label = false;\n @Property('形状', {\n ui: { widget: 'select' },\n enum: [\n { label: '多边形', value: 'polygon' },\n { label: '圆形', value: 'circle' },\n ],\n })\n shape = 'polygon';\n @Property('区域', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n area = false;\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 30,\n right: 30,\n bottom: 40,\n left: 36,\n };\n // @Property('缩放', { type: 'number' })\n // radius = 100;\n chartOption: any = {};\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n m: { type: 'number', title: '最大值' },\n s: { type: 'string', title: '系列' },\n },\n })\n _data = [\n { x: '销售', y: 10, m: 37, s: '预算' },\n { x: '管理', y: 20, m: 56, s: '预算' },\n { x: '信息技术', y: 25, m: 65, s: '预算' },\n { x: '客服', y: 35, m: 67, s: '预算' },\n { x: '研发', y: 27, m: 76, s: '预算' },\n { x: '市场', y: 28, m: 35, s: '预算' },\n { x: '销售', y: 18, m: 76, s: '实际' },\n { x: '管理', y: 28, m: 53, s: '实际' },\n { x: '信息技术', y: 32, m: 76, s: '实际' },\n { x: '客服', y: 48, m: 57, s: '实际' },\n // { x: \"研发\", y: 20, m: 57, s: \"实际\" },\n { x: '市场', y: 17, m: 56, s: '实际' },\n ];\n @Drill()\n @DataOutput(['x', 's'])\n dataClick = new EventEmitter<any>();\n series = [];\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n this.reloadData();\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n this.chartOption = {\n legend: {\n data: this.series,\n align: this.align,\n show: this.align !== 'none',\n textStyle: style,\n },\n radar: {\n shape: this.shape,\n name: {\n textStyle: style,\n },\n indicator: [],\n // radius: this.radius,\n },\n color: this.lineColor,\n grid: this.grid,\n series: [\n {\n label: {\n show: this.label,\n textStyle: this.getTextStyle(this.font),\n formatter: function (params) {\n return params.value;\n },\n },\n type: 'radar',\n areaStyle: { opacity: this.area ? 0.3 : 0 },\n data: [],\n },\n ],\n };\n for (let i = 0; i < this.xData.length; i++) {\n this._data\n .filter((els) => els.x === this.xData[i])\n .forEach((el) => {\n if (this.series.length > 1) {\n if (this.chartOption.radar.indicator[i] && this.chartOption.radar.indicator[i].max) {\n const ext = this.chartOption.radar.indicator[i].max;\n this.chartOption.radar.indicator[i].max = Math.max(ext, el.m);\n } else {\n this.chartOption.radar.indicator.push({\n name: this.xData[i],\n max: el.m,\n });\n }\n } else {\n this.chartOption.radar.indicator.push({\n name: this.xData[i],\n max: el.m,\n });\n }\n });\n }\n for (let i = 0; i < this.series.length; i++) {\n this.chartOption.series[0].data.push({\n value: [],\n name: this.series[i],\n });\n const temp = [];\n for (let j = 0; j < this._data.length; j++) {\n if (this.series[i] === this._data[j].s || ' ') {\n temp.push(this._data[j]);\n }\n }\n for (let j = 0; j < this.xData.length; j++) {\n let count = 0;\n for (let k = 0; k < temp.length; k++) {\n if (temp[k].x == this.xData[j]) {\n count++;\n }\n }\n if (count == 0) {\n this._data.push({\n x: this.xData[j],\n y: null,\n m: null,\n s: this.series[i],\n });\n }\n }\n this._data.sort((prev, next) => {\n return this.xData.indexOf(prev.x) - this.xData.indexOf(next.x);\n });\n this._data\n .filter((els) => els.s === this.series[i])\n .forEach((el) => {\n for (let j = 0; j < this.xData.length; j++) {\n if (this.xData[j] === el.x) {\n this.chartOption.series[0].data[i].value.push(el.y);\n }\n }\n });\n }\n }\n }\n reloadData() {\n if (this._data[0]) {\n for (let i = 0; i < this._data.length; i++) {\n if (!this._data[i].s) {\n this.align = 'none';\n }\n this._data[i].s = this._data[i].s || ' ';\n this.series[i] = this._data[i].s;\n }\n this.uniqueData(this.series);\n }\n for (let i = 0; i < this._data.length; i++) {\n this.xData[i] = this._data[i].x;\n }\n this.uniqueData(this.xData);\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RadarChartComponent } from './radar-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [RadarChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class RadarChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(RadarChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-funnel-chart',\n templateUrl: './funnel-chart.component.html',\n styleUrls: ['./funnel-chart.component.less'],\n})\n@Widget('三角图', {\n group: 'otherChart',\n image: 'assets/img/screen/funnel.png',\n icon: 'icontubiao',\n})\nexport class FunnelChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n reset: ['seriesColor'],\n example: [\n {\n background: 'assets/img/screen/funnel1.png',\n data: {\n seriesColor: ['#FFE53F', '#FFBF47', '#FF7F1D', '#FC460D', '#EE2100'],\n },\n },\n {\n background: 'assets/img/screen/funnel2.png',\n data: {\n seriesColor: ['#C0E656', '#52D852', '#00B335', '#008F44', '#006A61'],\n },\n },\n {\n background: 'assets/img/screen/funnel3.png',\n data: {\n seriesColor: ['#00E5E3', '#0DBBD8', '#2A8BC9', '#345EBB', '#003560'],\n },\n },\n {\n background: 'assets/img/screen/funnel4.png',\n data: {\n seriesColor: ['#FF6DB7', '#E23FCA', '#AD12CE', '#7F0B84', '#610796'],\n },\n },\n ],\n },\n })\n example: any;\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n seriesColor = ['#00E5E3', '#0DBBD8', '#2A8BC9', '#345EBB', '#003560'];\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: '',\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 60,\n right: 16,\n bottom: 20,\n left: 16,\n };\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n ],\n })\n align = 'auto';\n @Property('最大值', {\n ui: { widget: 'myRange', min: 0, max: 100, step: 1 },\n })\n max = 100;\n @Property('最小值', {\n ui: { widget: 'myRange', min: 0, max: 100, step: 1 },\n })\n min = 0;\n @Property('排序', {\n ui: { widget: 'select' },\n enum: [\n { label: '升序', value: 'ascending' },\n { label: '降序', value: 'descending' },\n { label: '无/按数据先后', value: 'none' },\n ],\n })\n sort = 'ascending';\n @Property('间隔', {\n ui: { widget: 'myRange', min: 0, max: 10, step: 1 },\n })\n gap = 4;\n @Property('标签', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = true;\n\n chartOption: any = {};\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n },\n })\n _data = [\n { x: '一月', y: 20 },\n { x: '二月', y: 40 },\n { x: '三月', y: 60 },\n { x: '四月', y: 80 },\n { x: '五月', y: 100 },\n ];\n @Drill()\n @DataOutput(['x'])\n dataClick = new EventEmitter<any>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n this.chartOption = {\n legend: {\n data: this.xData,\n align: this.align,\n show: this.align !== 'none',\n textStyle: style,\n },\n calculable: true,\n color: this.seriesColor,\n series: [\n {\n type: 'funnel',\n top: this.grid.top,\n right: this.grid.right,\n left: this.grid.left,\n bottom: this.grid.bottom,\n maxSize: this.max + '%',\n minSize: this.min + '%',\n sort: this.sort,\n gap: this.gap,\n itemStyle: { borderWidth: 0 },\n label: {\n show: this.label,\n position: 'inside',\n },\n },\n ],\n dataset: {\n // 用 dimensions 指定了维度的顺序。直角坐标系中,\n // 默认把第一个维度映射到 X 轴上,第二个维度映射到 Y 轴上。\n // 如果不指定 dimensions,也可以通过指定 series.encode\n // 完成映射,参见后文。\n dimensions: [],\n source: [],\n },\n };\n this.reloadData();\n // for (let i = 0; i < this._data.length; i++) {\n // this.chartOption.series[0].data.push({\n // value: this._data[i].y,\n // name: this._data[i].x\n // });\n // }\n // console.log(JSON.stringify(this.chartOption));\n }\n }\n reloadData() {\n const dimensions = ['x', 'y'];\n const source = this._data;\n for (let i = 0; i < this._data.length; i++) {\n this.xData[i] = this._data[i].x;\n }\n this.uniqueData(this.xData);\n this.chartOption.dataset.dimensions = dimensions;\n this.chartOption.dataset.source = source;\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FunnelChartComponent } from './funnel-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [FunnelChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class FunnelChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(FunnelChartComponent);\r\n }\r\n}\r\n","import { Component, ElementRef, HostBinding, HostListener, OnInit } from '@angular/core';\nimport { Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-background',\n templateUrl: './background.component.html',\n styleUrls: ['./background.component.less'],\n})\n@Widget('图片', { group: 'background', icon: 'iconbeijing' })\nexport class BackgroundComponent implements OnInit {\n @Property('', { min: 1, ui: { widget: 'myUpload', spanLabel: 0, spanControl: 24 } })\n image: string;\n @Property('透明度', { ui: { widget: 'myRange', min: 0, max: 1, step: 0.1 } })\n opacity = 1;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n style: any;\n type: string;\n @Property('响应鼠标事件', { type: 'boolean', default: true })\n pointerEvents = false;\n\n constructor(private ele: ElementRef) {}\n\n ngOnInit() {\n this.style = {\n opacity: this.opacity,\n boxShadow: this.shadow.color + ' ' + this.shadow.X + 'px ' + this.shadow.Y + 'px ' + this.shadow.Z + 'px',\n };\n if (this.pointerEvents === false) {\n this.ele.nativeElement.style.pointerEvents = 'none';\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackgroundComponent } from './background.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [BackgroundComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class BackgroundModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(BackgroundComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-gauge',\n templateUrl: './gauge.component.html',\n styleUrls: ['./gauge.component.less'],\n})\n@Widget('仪表盘', {\n group: 'otherChart',\n image: 'assets/img/screen/gauge.png',\n icon: 'icontubiao',\n})\nexport class GaugeComponent implements OnInit, OnChanges {\n\n @Property('表盘颜色', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n seriesColor = { gradient: true, value: [['#2841E8', '#00CAFA']] };\n\n @Property('指针颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null]\n },\n })\n pointerColor = 'auto';\n @Property('指针阴影', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null]\n },\n })\n pointerShadow = 'rgba(0,138,255,0.45)';\n\n @Property('表盘宽度', {\n ui: { widget: 'myRange', min: 0, max: 100, step: 1 },\n })\n width = 10;\n @Property('起始角度', {\n ui: { widget: 'myRange', min: 90, max: 360, step: 1 },\n })\n startAngle = 225;\n @Property('结束角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 1 },\n })\n endAngle = -45;\n\n\n\n @Property('显示标题', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = false;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n\n @Property('标题位移', {\n ui: { widget: 'number' },\n })\n labelOffset = 50;\n @Property('标题宽度', {\n ui: { widget: 'number' },\n })\n labelWidth = null;\n\n @Property('显示数值', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n labelVal = true;\n\n @Property('数值字体', { ui: { widget: 'myFont' } })\n numFont: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 38,\n space: 0,\n lineHeight: 38,\n };\n\n @Property('百分号', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n percent = false;\n\n @Property('数值位移', {\n ui: { widget: 'number' },\n })\n labelValOffset = -10;\n\n @Property('最大值', {\n ui: { widget: 'number' },\n })\n max = 100;\n @Property('最小值', {\n ui: { widget: 'number' },\n })\n min = 0;\n\n // 显示分隔线\n @Property('分隔线', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n splitLine = false;\n\n // 显示刻度\n @Property('刻度', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n axisTick = true;\n\n @Property('刻度数值', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n axisLabel = true;\n\n @Property('刻度长度', {\n ui: { widget: 'number' },\n })\n axisTickLen = 10;\n\n @Property('刻度宽度', {\n ui: { widget: 'number' },\n })\n axisTickWidth = 1;\n\n @Property('刻度颜色', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null]\n },\n })\n axisTickColor = 'auto';\n\n\n image: string;\n constructor() { }\n chartOption: any = {};\n @Data({\n properties: {\n name: { type: 'string', title: '文字' },\n value: { type: 'number', title: '值' },\n },\n })\n _data = [{ name: '速度', value: 48 }];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const style = {\n show: this.axisLabel,\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n const color = [];\n const color1 = [];\n let seriesColor;\n if (this.seriesColor && this.seriesColor.value) {\n seriesColor = this.seriesColor.value;\n } else {\n seriesColor = this.seriesColor;\n }\n for (let i = 0; i < seriesColor.length; i++) {\n color.push({\n type: 'linear',\n x: 0,\n y: 0,\n x2: 1,\n y2: 0,\n global: false,\n colorStops: [\n { offset: 0, color: seriesColor[i][0] },\n { offset: 1, color: seriesColor[i][1] },\n ],\n });\n }\n let count = 1;\n if (seriesColor.length > 1) {\n count = 1 / seriesColor.length;\n for (let i = 0; i < seriesColor.length; i++) {\n color1.push([count * (i + 1), color[i]]);\n }\n }\n this.chartOption = {\n series: [\n {\n // name: this.title,\n type: 'gauge',\n detail: {\n show: this.labelVal,\n formatter: this.percent ? '' + ((this._data[0].value / this.max) * 100).toFixed(2) + '%' : '{value}',\n color: this.numFont.color,\n fontFamily: this.numFont.family,\n fontWeight: this.numFont.weight,\n fontSize: this.numFont.size,\n lineHeight: this.numFont.lineHeight,\n offsetCenter: [0, `${this.labelValOffset}%`],\n },\n data: this._data,\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n title: {\n show: this.label,\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n offsetCenter: [0, `${this.labelOffset}%`],\n overflow: 'breakAll',\n width: this.labelWidth\n },\n axisLine: {\n lineStyle: {\n width: this.width,\n color: count < 1 ? color1 : [[1, color[0]]],\n },\n },\n axisLabel: style,\n max: this.max,\n min: this.min,\n splitLine: {\n show: this.splitLine,\n distance: 0,\n length: 10\n },\n axisTick: {\n show: this.axisTick,\n length: this.axisTickLen,\n lineStyle: {\n width: this.axisTickWidth,\n color: this.axisTickColor\n }\n },\n pointer: {\n width: 6,\n length: '70%',\n itemStyle: {\n color: this.pointerColor,\n shadowColor: this.pointerShadow,\n shadowBlur: 10,\n shadowOffsetX: 2,\n shadowOffsetY: 2\n }\n },\n\n },\n ],\n };\n // console.log(JSON.stringify(this.chartOption));\n }\n }\n ngOnInit() { }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GaugeComponent } from './gauge.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [GaugeComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class GaugeModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(GaugeComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-percent-pie-chart',\n templateUrl: './percent-pie-chart.component.html',\n styleUrls: ['./percent-pie-chart.component.less'],\n})\n@Widget('占比饼图', {\n group: 'pieChart',\n image: 'assets/img/screen/percent_pie.png',\n icon: 'icontubiao',\n})\nexport class PercentPieChartComponent implements OnInit, OnChanges {\n @Property('图表样式', {\n ui: {\n widget: 'myImageExample',\n spanLabel: 24,\n spanControl: 24,\n class: 'percentPie',\n reset: ['pieColor'],\n example: [\n {\n background: 'assets/img/screen/percent_pie1.png',\n data: { pieColor: { gradient: true, value: [['#FF7C24', '#50536E']] } },\n },\n {\n background: 'assets/img/screen/percent_pie2.png',\n data: { pieColor: { gradient: true, value: [['#00FEC3', '#50536E']] } },\n },\n {\n background: 'assets/img/screen/percent_pie3.png',\n data: { pieColor: { gradient: true, value: [['#00D2FD', '#50536E']] } },\n },\n {\n background: 'assets/img/screen/percent_pie4.png',\n data: { pieColor: { gradient: true, value: [['#BF91FA', '#50536E']] } },\n },\n ],\n },\n })\n example: any;\n @Property('颜色', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n pieColor = {\n gradient: true,\n value: [\n ['#00A2FD', '#50536E'],\n ['black', 'black'],\n ],\n };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#AFB2BF',\n weight: 'normal',\n size: 20,\n space: 0,\n lineHeight: '',\n };\n @Property('环宽', { type: 'number' })\n width = 20;\n @Property('圆角', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n fillet = false;\n @Property('顺时针', {\n ui: { widget: 'boolean', checkedChildren: '顺', unCheckedChildren: '逆' },\n })\n clockwise = true;\n @Property('百分值', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n percent = true;\n image: string;\n constructor() {}\n\n chartOption: any = {};\n @Data({\n properties: {\n value: { type: 'number', title: '值' },\n max: { type: 'number', title: '最大值' },\n },\n })\n _data = [{ value: 80, max: 100 }];\n @Drill()\n @DataOutput(['value', 'max'])\n dataClick = new EventEmitter<any>();\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const value = this._data[0].value;\n const value_per = (this._data[0].value / this._data[0].max) * 100;\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n let pieColor;\n if (this.pieColor && this.pieColor.value) {\n pieColor = this.pieColor.value;\n } else {\n pieColor = this.pieColor;\n }\n const color = {\n type: 'linear',\n x: 0,\n y: 0,\n global: false,\n colorStops: [\n { offset: 0, color: pieColor[0][0] },\n { offset: 1, color: pieColor[0][1] },\n ],\n };\n\n this.chartOption = {\n title: {\n text: this.percent ? parseInt(value_per.toString()) + '%' : parseInt(value.toString()),\n textStyle: style,\n left: 'center',\n top: 'center',\n },\n angleAxis: {\n max: this._data[0].max, // 满分\n clockwise: this.clockwise, // 逆时针\n // 隐藏刻度线\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n splitLine: {\n show: false,\n },\n },\n radiusAxis: {\n type: 'category',\n // 隐藏刻度线\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n splitLine: {\n show: false,\n },\n },\n polar: {\n center: ['50%', '50%'],\n radius: '100%', // 图形大小\n },\n series: [\n {\n type: 'bar',\n label: {\n show: false,\n },\n data: [\n {\n value,\n itemStyle: {\n // 颜色渐变\n color,\n },\n },\n ],\n coordinateSystem: 'polar',\n roundCap: this.fillet,\n barWidth: this.width,\n barGap: '-100%', // 两环重叠\n z: 2,\n },\n {\n // 灰色环\n type: 'bar',\n data: [\n {\n value: this._data[0].max,\n itemStyle: {\n color: pieColor[pieColor.length - 1][0],\n },\n },\n ],\n coordinateSystem: 'polar',\n roundCap: this.fillet,\n barWidth: this.width,\n barGap: '-100%', // 两环重叠\n z: 1,\n },\n ],\n };\n }\n console.log(this.chartOption);\n }\n ngOnInit() {}\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PercentPieChartComponent } from './percent-pie-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [PercentPieChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class PercentPieChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(PercentPieChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Property, Widget, Data, Drill, DataOutput } from 'bbj-widget-base';\nimport { BasicLineChartComponent } from '../basic-line-chart/basic-line-chart.component';\n\n@Component({\n selector: 'sc-tree-ring-chart',\n templateUrl: './tree-ring-chart.component.html',\n styleUrls: ['./tree-ring-chart.component.less'],\n})\n@Widget('年轮图', {\n group: 'pieChart',\n image: 'assets/img/screen/ringTree.png',\n icon: 'icontubiao',\n})\nexport class TreeRingChartComponent extends BasicLineChartComponent implements OnInit, OnChanges {\n\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n color = ['#3285FF', '#00D2FD'];\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('顺时针', {\n ui: { widget: 'boolean', checkedChildren: '顺', unCheckedChildren: '逆' },\n })\n clockwise = false;\n @Property('图例', {\n ui: { widget: 'select' },\n enum: [\n { label: '无', value: 'none' },\n { label: '自动', value: 'auto' },\n { label: '纵向居中', value: 'center' },\n { label: '纵向居左', value: 'left' },\n { label: '纵向居右', value: 'right' },\n ],\n })\n align = 'none';\n @Property('边距', { ui: { widget: 'myGrid', type: 'pie' } })\n grid: any = {\n top: 45,\n left: 50,\n };\n\n chartOption: any = {};\n @Data({\n properties: {\n name: { type: 'string', title: '类目' },\n value: { type: 'number', title: '值' },\n },\n })\n _data = [\n { name: '短信', value: 1419 },\n { name: '客服', value: 1776 },\n { name: '外呼', value: 1895 },\n { name: '网厅', value: 1576 },\n { name: '手厅', value: 2077 },\n ];\n @Drill()\n @DataOutput(['value'])\n dataClick = new EventEmitter<any>();\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const data = this._data.sort(function (a, b) {\n return b.value - a.value;\n });\n const objData = this.array2obj(data, 'name');\n const textStyle = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n this.chartOption = {\n legend: {\n type: 'scroll',\n orient: 'vertical',\n data,\n x: this.align,\n show: this.align !== 'none',\n formatter (name) {\n return name + '(' + objData[name].value + ')';\n },\n textStyle,\n },\n color: this.color,\n yAxis: [\n {\n type: 'category',\n inverse: true,\n axisLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n axisLabel: {\n show: false,\n },\n data: this.getData(data).yAxis,\n },\n ],\n xAxis: [\n {\n show: false,\n },\n ],\n series: this.getData(data).series,\n };\n }\n }\n ngOnInit() {}\n\n getMax(data) {\n const a = Math.max(...data.map((item) => item.value));\n const b = a.toString().length;\n const c = Math.pow(10, b - 1);\n const max = Number(c) + Number(a);\n return max;\n }\n\n getData(data) {\n const res = {\n series: [],\n yAxis: [],\n };\n for (let i = 0; i < data.length; i++) {\n res.series.push({\n name: i,\n type: 'pie',\n clockWise: this.clockwise,\n hoverAnimation: false,\n radius: [63 - i * 8 + '%', 58 - i * 8 + '%'],\n center: [this.grid.left + '%', this.grid.top + '%'],\n label: {\n show: false,\n },\n itemStyle: {\n label: {\n show: false,\n },\n labelLine: {\n show: false,\n },\n borderWidth: 5,\n },\n data: [\n {\n value: this.getMax(data) - data[i].value,\n name: '',\n itemStyle: {\n color: '#ffffff00',\n borderWidth: 0,\n },\n tooltip: {\n show: false,\n },\n hoverAnimation: false,\n },\n {\n value: data[i].value,\n name: data[i].name,\n },\n ],\n });\n }\n return res;\n }\n\n array2obj(array, key) {\n const resObj = {};\n for (let i = 0; i < array.length; i++) {\n resObj[array[i][key]] = array[i];\n }\n return resObj;\n }\n onChartClick(event) {\n this.dataClick.emit({ x: event.name, s: event.seriesName });\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TreeRingChartComponent } from './tree-ring-chart.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [TreeRingChartComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class TreeRingChartModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(TreeRingChartComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\nimport 'echarts-liquidfill';\n@Component({\n selector: 'sc-liquid-fill',\n templateUrl: './liquid-fill.component.html',\n styleUrls: ['./liquid-fill.component.less'],\n})\n@Widget('水球图', {\n group: 'otherChart',\n image: 'assets/img/screen/liquidFill.png',\n icon: 'icontubiao',\n})\nexport class LiquidFillComponent implements OnInit,OnChanges {\n\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#294D99',\n weight: 'normal',\n size: 40,\n space: 0,\n lineHeight: '',\n };\n @Property('字体覆盖', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n cover = '#fff';\n @Property('背景色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n bg = '#DEDEDE';\n @Property('边框色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n border = '#DEDEDE';\n @Property('水波色系', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n seriesColor = ['#1DE2C4', '#008FE9'];\n @Property('水波层数', {\n ui: { widget: 'myRange', min: 1, max: 5, step: 1 },\n })\n level = 2;\n @Property('形状', {\n ui: { widget: 'select' },\n enum: [\n { label: '圆形', value: 'circle' },\n { label: '矩形', value: 'rect' },\n { label: '圆角矩形', value: 'roundRect' },\n { label: '三角形', value: 'triangle' },\n { label: '菱形', value: 'diamond' },\n { label: '大头针', value: 'pin' },\n { label: '箭头', value: 'arrow' },\n ],\n })\n shape = 'circle';\n @Property('动画', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n waveAnimation = true;\n image: string;\n constructor() {}\n @Data({\n properties: { value: { type: 'number', title: '值' } },\n })\n _data: any[] = [{ value: 0.48 }];\n chartOption: any = null;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const value = this._data[0].value;\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n const data = [];\n for (let i = 0; i < this.level; i++) {\n data.push({\n value,\n label: { normal: { textStyle: style, insideColor: this.cover } },\n });\n }\n\n if (this.bg == '') {\n this.bg = '#ffffff00';\n }\n this.chartOption = {\n series: [\n {\n type: 'liquidFill',\n data,\n radius: '80%',\n shape: this.shape,\n waveAnimation: this.waveAnimation,\n backgroundStyle: {\n borderColor: this.border,\n color: this.bg,\n },\n color: this.seriesColor,\n outline: {\n show: false,\n },\n },\n ],\n };\n }\n }\n ngOnInit() {}\n}\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LiquidFillComponent } from './liquid-fill.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\n\r\n@NgModule({\r\n declarations: [LiquidFillComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n})\r\nexport class LiquidFillModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(LiquidFillComponent);\r\n }\r\n}\r\n","import {\n Component,\n ElementRef,\n OnInit,\n SimpleChanges,\n OnChanges,\n EventEmitter,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ViewChild,\n HostBinding,\n Renderer2,\n OnDestroy,\n} from '@angular/core';\nimport { Widget, Data, Property, DataSchema, DataOutput, WidgetRef, CustomExport } from 'bbj-widget-base';\nimport { SFArrayWidgetSchema, SFSchema } from '@delon/form';\nimport { deepCopy } from '@delon/util';\nimport { getFontStyle } from '../shared/util/style.util';\n\n@Component({\n selector: 'sc-shuffling-list',\n templateUrl: './shuffling-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrls: ['./shuffling-list.component.less'],\n})\n@Widget('滚动表格', { group: 'table', icon: 'icontubiao', image: '/assets/img/screen/shuffling.png' })\nexport class ShufflingListComponent implements OnInit, OnChanges, OnDestroy, CustomExport {\n @Property('轮播', { type: 'boolean' })\n carousel = true;\n _carousel: boolean;\n @Property('自动换行', { type: 'boolean' })\n lineWrap = true;\n @Property('轮播间隔', { ui: { widget: 'myRange', min: 1, max: 20, step: 1 } })\n time = 1;\n @Property('序列号显示', { type: 'boolean' })\n serialNumberDisplay = true;\n @Property('表头显示', { type: 'boolean' })\n headDisplay = true;\n @Property('表头背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n headBackground = '';\n @Property('表头字体', { ui: { widget: 'myFont' } })\n headFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 20, space: 0, lineHeight: 40 };\n @Property('字体发光', { type: 'boolean' })\n fontBling = false;\n @Property('字段颜色', {\n type: 'array',\n maxItems: 99,\n items: {\n type: 'object',\n properties: {\n key: {\n type: 'string',\n title: '字段',\n },\n value: {\n type: 'string',\n title: '值',\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: {\n widget: 'myColor',\n },\n },\n },\n required: [],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n bindColor = [];\n @Property('发光颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n blingColor = '';\n @Property('边框颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n borderColor = '';\n @Property('边框发光', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n borderBlingColor = '';\n @Property('边框粗细', {\n ui: { widget: 'myRange', min: 0, max: 40, step: 1 },\n })\n borderSize = 0;\n\n @Property('点击触发方式', {\n enum: [\n { label: '行', value: 'row' },\n { label: '单元格', value: 'cell' },\n ],\n })\n clickTarget = 'row';\n @Property('表头设置', {\n type: 'array',\n maxItems: 99,\n items: {\n type: 'object',\n properties: {\n key: {\n type: 'string',\n title: 'key',\n },\n width: {\n type: 'number',\n title: '宽度',\n },\n align: {\n type: 'string',\n ui: { widget: 'select' },\n enum: [\n { label: '居左', value: 'left' },\n { label: '居中', value: 'center' },\n { label: '居右', value: 'right' },\n ],\n },\n show: {\n type: 'boolean',\n title: '是否显示',\n default: true,\n },\n clickable: {\n type: 'boolean',\n title: '是否可点击',\n ui: { visibleIf: { '/clickTarget': ['cell'] } },\n },\n },\n required: [],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n titleStyle = [];\n @Property('发光程度', { ui: { widget: 'myRange', min: 1, max: 10, step: 1 } })\n blingNum = 3;\n @Property('奇行背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n oddBackground = '';\n @Property('偶行背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n evenBackground = '';\n @Property('内容字体', { ui: { widget: 'myFont' } })\n contentFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 12, space: 0, lineHeight: 40 };\n @Property('字体发光', { type: 'boolean' })\n contentFontBling = false;\n @Property('发光颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n contentBlingColor = '';\n @Property('发光程度', { ui: { widget: 'myRange', min: 1, max: 10, step: 1 } })\n contentBlingNum = 3;\n @Property('左内边距', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } })\n paddingLeft = 0;\n @Property('右内边距', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } })\n paddingRight = 0;\n @Data({})\n data: any = [\n {\n 地区: '温州',\n 流量: '123',\n 行为: 'xxxx',\n },\n {\n 地区: '杭州',\n 流量: '1235',\n 行为: 'xxxx',\n },\n {\n 地区: '上海',\n 流量: '1234',\n 行为: 'xxxx',\n },\n {\n 地区: '北京',\n 流量: '12367',\n 行为: 'xxxx',\n },\n {\n 地区: '温州1',\n 流量: '123835',\n 行为: 'xxxx',\n },\n {\n 地区: '温州2',\n 流量: '123835',\n 行为: 'xxxx',\n },\n {\n 地区: '温州3',\n 流量: '123835',\n 行为: 'xxxx',\n },\n {\n 地区: '温州4',\n 流量: '123835',\n 行为: 'xxxx',\n },\n ];\n @DataSchema('data')\n schema: SFSchema;\n tableStyle: any = {};\n\n animationDelay = 0;\n @DataOutput('行数据')\n dateChange = new EventEmitter<any>();\n @DataOutput('单元格')\n cellClick = new EventEmitter<any>();\n @DataOutput('列')\n columnClick = new EventEmitter<any>();\n columns: any[];\n headStyle: any = {};\n bodyStyle: any = {};\n rowStyle: any = {};\n content: any[];\n placeholder: any;\n paged: boolean;\n total: number;\n runtime: number; //已滚动时间\n lastTime: number; //上一次计时时间\n @DataOutput('翻页')\n pageChange = new EventEmitter<any>();\n nextPageTimeout: any;\n parentHeight: number;\n headerHeight: any;\n rowHeight: any;\n paused: boolean;\n constructor(\n private ele: ElementRef,\n private cd: ChangeDetectorRef,\n private widgetRef: WidgetRef,\n private renderer: Renderer2,\n ) {}\n ngOnInit() {\n const widget: any = this.widgetRef.widget as any;\n if (this.clickTarget !== 'cell' && (widget.link?.enabled || widget.outputs?.enabled)) {\n this.tableStyle.cursor = 'pointer';\n }\n this.headStyle = getFontStyle(this.headFont);\n this.headStyle.backgroundColor = this.headBackground;\n if (this.paddingLeft) {\n this.headStyle.paddingLeft = this.rowStyle.paddingLeft = this.paddingLeft + 'px';\n }\n if (this.paddingRight) {\n this.headStyle.paddingRight = this.rowStyle.paddingRight = this.paddingRight + 'px';\n }\n\n Object.assign(this.tableStyle, getFontStyle(this.contentFont));\n\n if (this.borderSize && this.borderColor) {\n const element = this.ele.nativeElement;\n const border = `${this.borderSize}px solid ${this.borderColor || '#fff'}`;\n this.rowStyle.borderBottom = this.headStyle.borderBottom = border;\n this.renderer.setStyle(element, 'border', border);\n if (this.borderBlingColor) {\n const filter = `drop-shadow(0 0 8px ${this.borderBlingColor})`;\n this.renderer.setStyle(element, 'filter', filter);\n }\n }\n\n if (this.fontBling) {\n // 发光\n let color = this.blingColor || this.headFont.color || '#ffffff';\n let num = this.blingNum || 3;\n this.headStyle.textShadow = this.getBlingStyle(color, num);\n }\n if (this.contentFontBling) {\n // 发光\n let color = this.contentBlingColor || this.contentFont.color || '#ffffff';\n let num = this.blingNum || 3;\n this.tableStyle.textShadow = this.getBlingStyle(color, num);\n }\n if (this.lineWrap) {\n this.tableStyle.wordBreak = 'break-all';\n } else {\n this.tableStyle.whiteSpace = 'nowrap';\n }\n this.cd.markForCheck();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ((changes.data || changes.schema) && this.data) {\n if (this.data.totalElements != null) {\n this.paged = true;\n const start = this.data.number * this.data.size;\n if (this.content == null) {\n this.content = [];\n }\n if (this.content.length > start) {\n this.content.splice(start, this.content.length - start);\n } else if (this.content.length < start) {\n this.pageChange.emit(Math.ceil(this.content.length / this.data.size));\n return;\n }\n this.content.push(...this.data.content);\n this.total = this.data.totalElements;\n } else {\n this.paged = false;\n this.content = this.data;\n this.total = this.data.length;\n }\n if (!this.paged || this.data.number === 0) {\n this.updateColumns();\n }\n const element: HTMLElement = this.ele.nativeElement;\n this.parentHeight = Number(element.parentElement.style.height.replace('px', ''));\n this.headerHeight = this.headFont.lineHeight || 40;\n this.rowHeight = this.contentFont.linHeight || 40;\n if (this.borderSize && this.borderColor) {\n this.headerHeight += this.borderSize;\n this.rowHeight += this.borderSize;\n }\n if (!this.headDisplay) {\n this.headerHeight = 0;\n }\n const carousel = this.carousel && this.total * this.rowHeight + this.headerHeight > this.parentHeight;\n if (!this._carousel && carousel) {\n this.runtime = 0;\n }\n this._carousel = carousel;\n this.placeholder = null;\n if (this._carousel) {\n const time = this.total * this.time;\n this.tableStyle.animation = 'carousel ' + time + 's linear infinite';\n if (this.paged && this.total > this.content.length) {\n this.placeholder = this.rowHeight * (this.total - this.content.length);\n }\n if (!this.paused) {\n this.updateRuntime();\n this.loadNextPage();\n }\n } else {\n this.tableStyle.animation = null;\n }\n }\n this.cd.markForCheck();\n }\n\n ngOnDestroy(): void {\n this.stopLoadNext();\n }\n\n getBlingStyle(color: string, num: number) {\n let str = '';\n for (let i = 0; i < num; i++) {\n str += '0 0 20px ' + color + ',';\n }\n return str.substr(0, str.length - 1);\n }\n\n /**\n * 更新已滚动时间\n */\n updateRuntime() {\n const now = new Date().getTime();\n if (this.lastTime) {\n this.runtime += now - this.lastTime;\n }\n this.lastTime = now;\n }\n\n stopLoadNext() {\n if (this.nextPageTimeout != null) {\n clearTimeout(this.nextPageTimeout);\n }\n }\n\n getNextLoadTime() {\n const contentHeight = this.headerHeight + this.rowHeight * this.content.length; // 已加载内容的高度\n let nextLoadTime =\n ((contentHeight - this.parentHeight) / this.rowHeight) * this.time * 1000 - this.runtime + this.animationDelay;\n return nextLoadTime;\n }\n\n loadNextPage() {\n this.stopLoadNext();\n if (this.paged && this.total > this.content.length) {\n let nextLoadTime = this.getNextLoadTime();\n if (nextLoadTime < 0) {\n nextLoadTime = 0;\n }\n this.nextPageTimeout = setTimeout(() => {\n this.pageChange.next(this.data.number + 1);\n }, nextLoadTime);\n }\n }\n\n updateColumns() {\n this.columns = [];\n let keys: string[];\n if (this.schema && this.schema.properties) {\n keys = Object.keys(this.schema.properties);\n } else if (this.content && this.content[0]) {\n keys = Object.keys(this.content[0]);\n }\n const titleStyleMap = {};\n if (this.titleStyle && this.titleStyle.length > 0) {\n this.titleStyle.forEach((titleStyle) => {\n if (titleStyle.key) {\n titleStyleMap[titleStyle.key] = titleStyle;\n }\n });\n }\n if (keys) {\n for (const key of keys) {\n let title = key;\n if (this.schema && this.schema.properties) {\n const property = this.schema.properties[key];\n if (property && property.title) {\n title = property.title;\n }\n }\n const headStyle: any = {};\n const cellStyle: any = {};\n const column: any = { index: key, title, headStyle, cellStyle };\n const titleStyle = titleStyleMap[key];\n if (this.titleStyle?.length && (titleStyle == null || !titleStyle.show)) {\n continue;\n }\n let width: number;\n if (titleStyle) {\n width = titleStyle.width;\n if (titleStyle.align) {\n cellStyle.textAlign = titleStyle.align;\n }\n if (this.clickTarget === 'cell' && titleStyle.clickable) {\n column.clickable = true;\n }\n }\n if (width) {\n headStyle.width = cellStyle.width = width + 'px';\n } else {\n headStyle.flex = cellStyle.flex = 1;\n }\n\n this.columns.push(column);\n }\n }\n }\n\n onClick(value) {\n if (this.clickTarget !== 'cell') {\n this.dateChange.emit(value);\n }\n }\n mouseover() {\n // this._carousel=false;\n if (this._carousel) {\n this.paused = true;\n this.tableStyle.animationPlayState = 'paused';\n this.updateRuntime();\n this.stopLoadNext();\n }\n }\n mouseout() {\n if (this._carousel) {\n this.paused = false;\n this.lastTime = new Date().getTime();\n this.tableStyle.animationPlayState = 'running';\n if (this.paged) {\n this.loadNextPage();\n }\n }\n }\n onMousewheel(event: WheelEvent) {\n if (this._carousel) {\n this.animationDelay -= event.deltaY * 2;\n if (this.animationDelay > this.runtime) {\n this.animationDelay = this.runtime;\n }\n this.tableStyle.animationDelay = this.animationDelay / 1000 + 's';\n if (this.paged && this.total > this.content.length && this.getNextLoadTime() < 0) {\n this.pageChange.emit(this.data.number + 1);\n }\n event.stopPropagation();\n event.preventDefault();\n }\n }\n\n onCellClick(column: any, row: any, event: MouseEvent) {\n if (this.clickTarget !== 'cell' || column.clickable) {\n event.stopPropagation();\n this.cellClick.emit(row[column.index]);\n this.columnClick.emit(column.index);\n this.dateChange.emit(row);\n }\n }\n\n exportWord() {\n let html = '<table>';\n if (this.headDisplay) {\n html += '<thead><tr>';\n this.columns.forEach((column) => {\n html += `<th>${column.title}</th>`;\n });\n html += '</tr></thead>';\n }\n html += '<tbody>';\n this.content.forEach((row) => {\n html += '<tr>';\n this.columns.forEach((column) => {\n html += `<td>${row[column.index]}</td>`;\n });\n html += '</tr>';\n });\n html += '</tbody></table><br/>';\n return html;\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'bindColor',\n})\nexport class ColorPipe implements PipeTransform {\n transform(data: any, ...args: any[]): unknown {\n if (data) {\n const bindColor = args[0];\n if (bindColor?.length) {\n for (const item of bindColor) {\n const { key, value, color } = item;\n if (key && color && data[key] == value) {\n return color;\n }\n }\n }\n }\n return null;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ShufflingListComponent } from './shuffling-list.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\nimport { ColorPipe } from './color.pipe';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\n\n@NgModule({\n declarations: [ShufflingListComponent, ColorPipe],\n imports: [CommonModule, WidgetBaseModule, NzPipesModule, NzToolTipModule],\n})\nexport class ShufflingListModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(ShufflingListComponent);\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'sc-parent-container',\n templateUrl: './parent-container.component.html',\n styleUrls: ['./parent-container.component.less']\n})\nexport class ParentContainerComponent implements OnInit {\n children: any;\n childId: string;\n constructor() { }\n\n ngOnInit() {\n }\n childInit(child: any) {\n // this.children = child;\n }\n deleteChild(childId: string) {\n // this.childId = childId\n }\n}\n","import { Component, OnInit, OnChanges, SimpleChanges, forwardRef } from '@angular/core';\nimport { Widget, Property } from 'bbj-widget-base';\n// import 'echarts/dist/extension/bmap.js';\nimport { ParentContainerComponent } from '../parent-container/parent-container.component';\nimport { BaiduMapService } from 'bbj-screen-widget/core';\n\n@Component({\n selector: 'sc-basic-planimetric-map',\n templateUrl: './basic-planimetric-map.component.html',\n styleUrls: ['./basic-planimetric-map.component.less'],\n providers: [{ provide: ParentContainerComponent, useExisting: forwardRef(() => BasicPlanimetricMapComponent) }],\n})\n@Widget('基础平面地图',{group: 'component',image: 'assets/img/screen/basicMap.png',icon: 'iconmokuai', children:[\n{\n title: '呼吸气泡层',\n type: 'sc-breathing-bubble-layer',\n option: {\n },\n hidden: true,\n hideChild: true\n },],\n childTypes:['sc-breathing-bubble-layer'],\n description: 'hasChildItem'})\nexport class BasicPlanimetricMapComponent extends ParentContainerComponent implements OnInit, OnChanges {\n\n @Property('地图缩放', {\n ui: { widget: 'myRange', min: 1, max: 40, step: 1 },\n })\n zoom = 5;\n @Property('中心经度', {\n ui: { widget: 'myRange', min: -180, max: 180, step: 1 },\n })\n centerLng = 104;\n @Property('中心纬度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 1 },\n })\n centerLat = 36;\n chartOption: any;\n hasMap = false;\n _children: any = [];\n constructor(public baiduMapService: BaiduMapService) {\n super();\n }\n ngOnChanges(changes: SimpleChanges): void {\n }\n\n async ngOnInit() {\n await this.baiduMapService.loadMap();\n await import('echarts/extension/bmap/bmap.js');\n this.hasMap = true;\n this.chartInit();\n }\n chartInit() {\n let series = [];\n this._children.forEach(child => {\n if (Array.isArray(child.item)) {\n series = [...series, ...child.item];\n } else {\n series = [...series, child.item];\n }\n });\n this.chartOption = {\n title: {\n text: '基础平面地图'\n },\n tooltip : {\n trigger: 'item'\n },\n bmap: {\n label: {\n emphasis: {\n show: false\n }\n },\n itemStyle: {\n normal: {\n areaColor: '#323c48',\n borderColor: '#404a59',\n opacity:1\n },\n emphasis: {\n areaColor: '#2a333d'\n }\n },\n center: [this.centerLng, this.centerLat],\n zoom: this.zoom,\n roam: true,\n mapStyle: {\n styleJson: [{\n featureType: 'water',\n elementType: 'all',\n stylers: {\n color: '#d1d1d1'\n }\n }, {\n featureType: 'land',\n elementType: 'all',\n stylers: {\n color: '#f3f3f3'\n }\n }, {\n featureType: 'railway',\n elementType: 'all',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'highway',\n elementType: 'all',\n stylers: {\n color: '#fdfdfd'\n }\n }, {\n featureType: 'highway',\n elementType: 'labels',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'arterial',\n elementType: 'geometry',\n stylers: {\n color: '#fefefe'\n }\n }, {\n featureType: 'arterial',\n elementType: 'geometry.fill',\n stylers: {\n color: '#fefefe'\n }\n }, {\n featureType: 'poi',\n elementType: 'all',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'green',\n elementType: 'all',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'subway',\n elementType: 'all',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'manmade',\n elementType: 'all',\n stylers: {\n color: '#d1d1d1'\n }\n }, {\n featureType: 'local',\n elementType: 'all',\n stylers: {\n color: '#d1d1d1'\n }\n }, {\n featureType: 'arterial',\n elementType: 'labels',\n stylers: {\n visibility: 'off'\n }\n }, {\n featureType: 'boundary',\n elementType: 'all',\n stylers: {\n color: '#fefefe'\n }\n }, {\n featureType: 'building',\n elementType: 'all',\n stylers: {\n color: '#d1d1d1'\n }\n }, {\n featureType: 'label',\n elementType: 'labels.text.fill',\n stylers: {\n color: '#999999'\n }\n }]\n }\n },\n series\n };\n }\n childInit(child: any) {\n if (child.id) {\n const childIndex = this._children.findIndex(s => s.id === child.id);\n if (childIndex > -1) {\n this._children[childIndex] = child;\n } else {\n this._children.push(child);\n }\n this.chartInit();\n }\n }\n deleteChild(childId: string) {\n if (childId) {\n const childIndex = this._children.findIndex((s) => s.id === childId);\n if (childIndex > -1) {\n this._children.splice(childIndex, 1);\n this.chartInit();\n }\n }\n }\n}\n","import { Component, OnInit, Inject, forwardRef, OnChanges, SimpleChanges, OnDestroy } from '@angular/core';\nimport { Widget, Data, Property } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../parent-container/parent-container.component';\n\n@Component({\n selector: 'sc-breathing-bubble-layer',\n templateUrl: './breathing-bubble-layer.component.html',\n styleUrls: ['./breathing-bubble-layer.component.css'],\n})\n@Widget('呼吸气泡层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class BreathingBubbleLayerComponent implements OnInit, OnChanges, OnDestroy {\n // @Property('', {\n // ui: {\n // widget: 'myBubbleType',\n // spanLabel: 0,\n // spanControl: 24,\n // title: '气泡类型',\n // example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n // },\n // })\n @Property('气泡类型', {\n type: 'array',\n items: {\n type: 'object',\n properties: {\n key: { type: 'string' },\n color: {\n type: 'string',\n title: '颜色',\n ui: { widget: 'myColor' },\n },\n size: {\n type: 'string',\n title: '大小',\n ui: { widget: 'textarea', autosize: { minRows: 4 } },\n },\n },\n ui: { spanLabelFixed: 50 },\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 },\n })\n bubbleType = [{ key: 1, color: '#ddb926', size: 'function (val) {return val[2]*0.1;}' }];\n\n @Data({\n properties: {\n name: { type: 'string', title: '地名' },\n value: { type: 'number', title: '值' },\n series: { type: 'string', title: '系列' },\n },\n })\n data: any[] = [\n { name: '海门', value: 9, series: 1 },\n { name: '鄂尔多斯', value: 12, series: 1 },\n { name: '招远', value: 12, series: 1 },\n { name: '舟山', value: 12, series: 1 },\n { name: '齐齐哈尔', value: 14, series: 1 },\n { name: '盐城', value: 15, series: 1 },\n { name: '赤峰', value: 16, series: 1 },\n { name: '青岛', value: 18, series: 1 },\n { name: '乳山', value: 18, series: 1 },\n { name: '金昌', value: 19, series: 1 },\n { name: '泉州', value: 21, series: 1 },\n { name: '莱西', value: 21, series: 1 },\n { name: '日照', value: 21, series: 1 },\n { name: '胶南', value: 22, series: 1 },\n { name: '南通', value: 23, series: 1 },\n { name: '拉萨', value: 24, series: 2 },\n { name: '云浮', value: 24, series: 2 },\n { name: '梅州', value: 25, series: 2 },\n { name: '文登', value: 25, series: 2 },\n { name: '上海', value: 25, series: 2 },\n { name: '攀枝花', value: 25, series: 2 },\n { name: '威海', value: 25, series: 2 },\n { name: '承德', value: 25, series: 2 },\n { name: '厦门', value: 26, series: 2 },\n { name: '汕尾', value: 26, series: 2 },\n { name: '潮州', value: 26, series: 2 },\n { name: '丹东', value: 27, series: 2 },\n { name: '太仓', value: 27, series: 2 },\n { name: '曲靖', value: 27, series: 2 },\n { name: '烟台', value: 28, series: 2 },\n { name: '福州', value: 29, series: 2 },\n { name: '瓦房店', value: 30, series: 2 },\n { name: '即墨', value: 30, series: 2 },\n { name: '抚顺', value: 31, series: 2 },\n { name: '玉溪', value: 31, series: 2 },\n { name: '张家口', value: 31, series: 2 },\n { name: '阳泉', value: 31, series: 2 },\n { name: '莱州', value: 32, series: 2 },\n { name: '湖州', value: 32, series: 2 },\n { name: '汕头', value: 32, series: 2 },\n { name: '昆山', value: 33, series: 2 },\n { name: '宁波', value: 33, series: 2 },\n { name: '湛江', value: 33, series: 2 },\n { name: '揭阳', value: 34, series: 1 },\n { name: '荣成', value: 34, series: 1 },\n { name: '连云港', value: 35, series: 1 },\n { name: '葫芦岛', value: 35, series: 1 },\n { name: '常熟', value: 36, series: 1 },\n { name: '东莞', value: 36, series: 1 },\n { name: '河源', value: 36, series: 1 },\n { name: '淮安', value: 36, series: 1 },\n { name: '泰州', value: 36, series: 1 },\n { name: '南宁', value: 37, series: 1 },\n { name: '营口', value: 37, series: 1 },\n { name: '惠州', value: 37, series: 1 },\n { name: '江阴', value: 37, series: 1 },\n { name: '蓬莱', value: 37, series: 1 },\n { name: '韶关', value: 38, series: 1 },\n { name: '嘉峪关', value: 38, series: 1 },\n { name: '广州', value: 38, series: 1 },\n { name: '延安', value: 38, series: 1 },\n { name: '太原', value: 39, series: 1 },\n { name: '清远', value: 39, series: 1 },\n { name: '中山', value: 39, series: 1 },\n { name: '昆明', value: 39, series: 1 },\n { name: '寿光', value: 40, series: 1 },\n { name: '盘锦', value: 40, series: 1 },\n { name: '长治', value: 41, series: 1 },\n { name: '深圳', value: 41, series: 1 },\n { name: '珠海', value: 42, series: 1 },\n { name: '宿迁', value: 43, series: 1 },\n { name: '咸阳', value: 43, series: 1 },\n { name: '铜川', value: 44, series: 1 },\n { name: '平度', value: 44, series: 1 },\n { name: '佛山', value: 44, series: 1 },\n { name: '海口', value: 44, series: 1 },\n { name: '江门', value: 45, series: 1 },\n { name: '章丘', value: 45, series: 1 },\n { name: '肇庆', value: 46, series: 1 },\n { name: '大连', value: 47, series: 1 },\n { name: '临汾', value: 47, series: 1 },\n { name: '吴江', value: 47, series: 1 },\n { name: '石嘴山', value: 49, series: 1 },\n { name: '沈阳', value: 50, series: 1 },\n { name: '苏州', value: 50, series: 1 },\n { name: '茂名', value: 50, series: 1 },\n { name: '嘉兴', value: 51, series: 1 },\n { name: '长春', value: 51, series: 1 },\n { name: '胶州', value: 52, series: 1 },\n { name: '银川', value: 52, series: 1 },\n { name: '张家港', value: 52, series: 1 },\n { name: '三门峡', value: 53, series: 1 },\n { name: '锦州', value: 54, series: 1 },\n { name: '南昌', value: 54, series: 1 },\n { name: '柳州', value: 54, series: 1 },\n { name: '三亚', value: 54, series: 1 },\n { name: '自贡', value: 56, series: 1 },\n { name: '吉林', value: 56, series: 1 },\n { name: '阳江', value: 57, series: 1 },\n { name: '泸州', value: 57, series: 1 },\n { name: '西宁', value: 57, series: 1 },\n { name: '宜宾', value: 58, series: 1 },\n { name: '呼和浩特', value: 58, series: 1 },\n { name: '成都', value: 58, series: 1 },\n { name: '大同', value: 58, series: 1 },\n { name: '镇江', value: 59, series: 1 },\n { name: '桂林', value: 59, series: 1 },\n { name: '张家界', value: 59, series: 1 },\n { name: '宜兴', value: 59, series: 1 },\n { name: '北海', value: 60, series: 1 },\n { name: '西安', value: 61, series: 1 },\n { name: '金坛', value: 62, series: 1 },\n { name: '东营', value: 62, series: 1 },\n { name: '牡丹江', value: 63, series: 1 },\n { name: '遵义', value: 63, series: 1 },\n { name: '绍兴', value: 63, series: 1 },\n { name: '扬州', value: 64, series: 1 },\n { name: '常州', value: 64, series: 1 },\n { name: '潍坊', value: 65, series: 1 },\n { name: '重庆', value: 66, series: 1 },\n { name: '台州', value: 67, series: 1 },\n { name: '南京', value: 67, series: 1 },\n { name: '滨州', value: 70, series: 1 },\n { name: '贵阳', value: 71, series: 1 },\n { name: '无锡', value: 71, series: 1 },\n { name: '本溪', value: 71, series: 1 },\n { name: '克拉玛依', value: 72, series: 1 },\n { name: '渭南', value: 72, series: 1 },\n { name: '马鞍山', value: 72, series: 1 },\n { name: '宝鸡', value: 72, series: 1 },\n { name: '焦作', value: 75, series: 1 },\n { name: '句容', value: 75, series: 1 },\n { name: '北京', value: 79, series: 1 },\n { name: '徐州', value: 79, series: 1 },\n { name: '衡水', value: 80, series: 1 },\n { name: '包头', value: 80, series: 1 },\n { name: '绵阳', value: 80, series: 1 },\n { name: '乌鲁木齐', value: 84, series: 1 },\n { name: '枣庄', value: 84, series: 1 },\n { name: '杭州', value: 84, series: 1 },\n { name: '淄博', value: 85, series: 1 },\n { name: '鞍山', value: 86, series: 1 },\n { name: '溧阳', value: 86, series: 1 },\n { name: '库尔勒', value: 86, series: 1 },\n { name: '安阳', value: 90, series: 1 },\n { name: '开封', value: 90, series: 1 },\n { name: '济南', value: 92, series: 1 },\n { name: '德阳', value: 93, series: 1 },\n { name: '温州', value: 95, series: 1 },\n { name: '九江', value: 96, series: 1 },\n { name: '邯郸', value: 98, series: 1 },\n { name: '临安', value: 99, series: 1 },\n { name: '兰州', value: 99, series: 1 },\n { name: '沧州', value: 100, series: 1 },\n { name: '临沂', value: 103, series: 1 },\n { name: '南充', value: 104, series: 1 },\n { name: '天津', value: 105, series: 1 },\n { name: '富阳', value: 106, series: 1 },\n { name: '泰安', value: 112, series: 1 },\n { name: '诸暨', value: 112, series: 1 },\n { name: '郑州', value: 113, series: 1 },\n { name: '哈尔滨', value: 114, series: 1 },\n { name: '聊城', value: 116, series: 1 },\n { name: '芜湖', value: 117, series: 1 },\n { name: '唐山', value: 119, series: 1 },\n { name: '平顶山', value: 119, series: 1 },\n { name: '邢台', value: 11, series: 19 },\n { name: '德州', value: 120, series: 1 },\n { name: '济宁', value: 120, series: 1 },\n { name: '荆州', value: 127, series: 1 },\n { name: '宜昌', value: 130, series: 1 },\n { name: '义乌', value: 132, series: 1 },\n { name: '丽水', value: 133, series: 1 },\n { name: '洛阳', value: 134, series: 1 },\n { name: '秦皇岛', value: 136, series: 1 },\n { name: '株洲', value: 143, series: 1 },\n { name: '石家庄', value: 147, series: 1 },\n { name: '莱芜', value: 148, series: 1 },\n { name: '常德', value: 152, series: 1 },\n { name: '保定', value: 153, series: 1 },\n { name: '湘潭', value: 154, series: 1 },\n { name: '金华', value: 157, series: 1 },\n { name: '岳阳', value: 169, series: 1 },\n { name: '长沙', value: 175, series: 1 },\n { name: '衢州', value: 177, series: 1 },\n { name: '廊坊', value: 193, series: 1 },\n { name: '菏泽', value: 194, series: 1 },\n { name: '合肥', value: 229, series: 1 },\n { name: '武汉', value: 273, series: 1 },\n { name: '大庆', value: 279, series: 1 },\n ];\n geoCoordMap = {\n 海门: [121.15, 31.89],\n 鄂尔多斯: [109.781327, 39.608266],\n 招远: [120.38, 37.35],\n 舟山: [122.207216, 29.985295],\n 齐齐哈尔: [123.97, 47.33],\n 盐城: [120.13, 33.38],\n 赤峰: [118.87, 42.28],\n 青岛: [120.33, 36.07],\n 乳山: [121.52, 36.89],\n 金昌: [102.188043, 38.520089],\n 泉州: [118.58, 24.93],\n 莱西: [120.53, 36.86],\n 日照: [119.46, 35.42],\n 胶南: [119.97, 35.88],\n 南通: [121.05, 32.08],\n 拉萨: [91.11, 29.97],\n 云浮: [112.02, 22.93],\n 梅州: [116.1, 24.55],\n 文登: [122.05, 37.2],\n 上海: [121.48, 31.22],\n 攀枝花: [101.718637, 26.582347],\n 威海: [122.1, 37.5],\n 承德: [117.93, 40.97],\n 厦门: [118.1, 24.46],\n 汕尾: [115.375279, 22.786211],\n 潮州: [116.63, 23.68],\n 丹东: [124.37, 40.13],\n 太仓: [121.1, 31.45],\n 曲靖: [103.79, 25.51],\n 烟台: [121.39, 37.52],\n 福州: [119.3, 26.08],\n 瓦房店: [121.979603, 39.627114],\n 即墨: [120.45, 36.38],\n 抚顺: [123.97, 41.97],\n 玉溪: [102.52, 24.35],\n 张家口: [114.87, 40.82],\n 阳泉: [113.57, 37.85],\n 莱州: [119.942327, 37.177017],\n 湖州: [120.1, 30.86],\n 汕头: [116.69, 23.39],\n 昆山: [120.95, 31.39],\n 宁波: [121.56, 29.86],\n 湛江: [110.359377, 21.270708],\n 揭阳: [116.35, 23.55],\n 荣成: [122.41, 37.16],\n 连云港: [119.16, 34.59],\n 葫芦岛: [120.836932, 40.711052],\n 常熟: [120.74, 31.64],\n 东莞: [113.75, 23.04],\n 河源: [114.68, 23.73],\n 淮安: [119.15, 33.5],\n 泰州: [119.9, 32.49],\n 南宁: [108.33, 22.84],\n 营口: [122.18, 40.65],\n 惠州: [114.4, 23.09],\n 江阴: [120.26, 31.91],\n 蓬莱: [120.75, 37.8],\n 韶关: [113.62, 24.84],\n 嘉峪关: [98.289152, 39.77313],\n 广州: [113.23, 23.16],\n 延安: [109.47, 36.6],\n 太原: [112.53, 37.87],\n 清远: [113.01, 23.7],\n 中山: [113.38, 22.52],\n 昆明: [102.73, 25.04],\n 寿光: [118.73, 36.86],\n 盘锦: [122.070714, 41.119997],\n 长治: [113.08, 36.18],\n 深圳: [114.07, 22.62],\n 珠海: [113.52, 22.3],\n 宿迁: [118.3, 33.96],\n 咸阳: [108.72, 34.36],\n 铜川: [109.11, 35.09],\n 平度: [119.97, 36.77],\n 佛山: [113.11, 23.05],\n 海口: [110.35, 20.02],\n 江门: [113.06, 22.61],\n 章丘: [117.53, 36.72],\n 肇庆: [112.44, 23.05],\n 大连: [121.62, 38.92],\n 临汾: [111.5, 36.08],\n 吴江: [120.63, 31.16],\n 石嘴山: [106.39, 39.04],\n 沈阳: [123.38, 41.8],\n 苏州: [120.62, 31.32],\n 茂名: [110.88, 21.68],\n 嘉兴: [120.76, 30.77],\n 长春: [125.35, 43.88],\n 胶州: [120.03336, 36.264622],\n 银川: [106.27, 38.47],\n 张家港: [120.555821, 31.875428],\n 三门峡: [111.19, 34.76],\n 锦州: [121.15, 41.13],\n 南昌: [115.89, 28.68],\n 柳州: [109.4, 24.33],\n 三亚: [109.511909, 18.252847],\n 自贡: [104.778442, 29.33903],\n 吉林: [126.57, 43.87],\n 阳江: [111.95, 21.85],\n 泸州: [105.39, 28.91],\n 西宁: [101.74, 36.56],\n 宜宾: [104.56, 29.77],\n 呼和浩特: [111.65, 40.82],\n 成都: [104.06, 30.67],\n 大同: [113.3, 40.12],\n 镇江: [119.44, 32.2],\n 桂林: [110.28, 25.29],\n 张家界: [110.479191, 29.117096],\n 宜兴: [119.82, 31.36],\n 北海: [109.12, 21.49],\n 西安: [108.95, 34.27],\n 金坛: [119.56, 31.74],\n 东营: [118.49, 37.46],\n 牡丹江: [129.58, 44.6],\n 遵义: [106.9, 27.7],\n 绍兴: [120.58, 30.01],\n 扬州: [119.42, 32.39],\n 常州: [119.95, 31.79],\n 潍坊: [119.1, 36.62],\n 重庆: [106.54, 29.59],\n 台州: [121.420757, 28.656386],\n 南京: [118.78, 32.04],\n 滨州: [118.03, 37.36],\n 贵阳: [106.71, 26.57],\n 无锡: [120.29, 31.59],\n 本溪: [123.73, 41.3],\n 克拉玛依: [84.77, 45.59],\n 渭南: [109.5, 34.52],\n 马鞍山: [118.48, 31.56],\n 宝鸡: [107.15, 34.38],\n 焦作: [113.21, 35.24],\n 句容: [119.16, 31.95],\n 北京: [116.46, 39.92],\n 徐州: [117.2, 34.26],\n 衡水: [115.72, 37.72],\n 包头: [110, 40.58],\n 绵阳: [104.73, 31.48],\n 乌鲁木齐: [87.68, 43.77],\n 枣庄: [117.57, 34.86],\n 杭州: [120.19, 30.26],\n 淄博: [118.05, 36.78],\n 鞍山: [122.85, 41.12],\n 溧阳: [119.48, 31.43],\n 库尔勒: [86.06, 41.68],\n 安阳: [114.35, 36.1],\n 开封: [114.35, 34.79],\n 济南: [117, 36.65],\n 德阳: [104.37, 31.13],\n 温州: [120.65, 28.01],\n 九江: [115.97, 29.71],\n 邯郸: [114.47, 36.6],\n 临安: [119.72, 30.23],\n 兰州: [103.73, 36.03],\n 沧州: [116.83, 38.33],\n 临沂: [118.35, 35.05],\n 南充: [106.110698, 30.837793],\n 天津: [117.2, 39.13],\n 富阳: [119.95, 30.07],\n 泰安: [117.13, 36.18],\n 诸暨: [120.23, 29.71],\n 郑州: [113.65, 34.76],\n 哈尔滨: [126.63, 45.75],\n 聊城: [115.97, 36.45],\n 芜湖: [118.38, 31.33],\n 唐山: [118.02, 39.63],\n 平顶山: [113.29, 33.75],\n 邢台: [114.48, 37.05],\n 德州: [116.29, 37.45],\n 济宁: [116.59, 35.38],\n 荆州: [112.239741, 30.335165],\n 宜昌: [111.3, 30.7],\n 义乌: [120.06, 29.32],\n 丽水: [119.92, 28.45],\n 洛阳: [112.44, 34.7],\n 秦皇岛: [119.57, 39.95],\n 株洲: [113.16, 27.83],\n 石家庄: [114.48, 38.03],\n 莱芜: [117.67, 36.19],\n 常德: [111.69, 29.05],\n 保定: [115.48, 38.85],\n 湘潭: [112.91, 27.87],\n 金华: [119.64, 29.12],\n 岳阳: [113.09, 29.37],\n 长沙: [113, 28.21],\n 衢州: [118.88, 28.97],\n 廊坊: [116.7, 39.53],\n 菏泽: [115.480656, 35.23375],\n 合肥: [117.27, 31.86],\n 武汉: [114.31, 30.52],\n 大庆: [125.03, 46.58],\n };\n id: string;\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) {}\n ngOnChanges(changes: SimpleChanges): void {\n const item = [];\n this.bubbleType.forEach((series) => {\n item.push({\n coordinateSystem: 'bmap',\n data: this.convertData(this.data, series.key),\n itemStyle: { normal: { color: series.color } },\n label: {\n formatter: '{b}',\n position: 'right',\n show: false,\n },\n symbolSize: this.getItem(series.size),\n name: series.key,\n type: 'scatter',\n });\n });\n this.parent.childInit({\n id: this.id,\n item,\n });\n }\n ngOnInit() {}\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n getItem(v) {\n if (v && v.indexOf && v.indexOf('function') > -1) {\n return eval('(' + v + ')');\n }\n }\n convertData(data, key) {\n let res = [];\n for (let i = 0; i < data.length; i++) {\n let geoCoord = this.geoCoordMap[data[i].name];\n if (geoCoord && data[i].series == key) {\n res.push({\n name: data[i].name,\n extraData: { lat: geoCoord[1], lng: geoCoord[0], s: data[i].series, value: data[i].value },\n value: geoCoord.concat(data[i].value),\n });\n }\n }\n return res;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreathingBubbleLayerComponent } from './breathing-bubble-layer.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [BreathingBubbleLayerComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class BreathingBubbleLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(BreathingBubbleLayerComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BasicPlanimetricMapComponent } from './basic-planimetric-map.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { BreathingBubbleLayerModule } from '../breathing-bubble-layer/breathing-bubble-layer.module';\n\n@NgModule({\n declarations: [BasicPlanimetricMapComponent],\n imports: [CommonModule, NgxEchartsModule, WidgetBaseModule, BreathingBubbleLayerModule],\n})\nexport class BasicPlanimetricMapModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(BasicPlanimetricMapComponent);\n }\n}\n","import {\r\n Component,\r\n OnInit,\r\n forwardRef,\r\n ViewChild,\r\n ElementRef,\r\n OnDestroy,\r\n OnChanges,\r\n SimpleChanges,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { Widget, Property, Data, DataOutput, Event } from 'bbj-widget-base';\r\nimport { ParentContainerComponent } from '../parent-container/parent-container.component';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport * as echarts from 'echarts';\r\nimport { NgxEchartsDirective } from 'ngx-echarts';\r\nimport { getEchartsTextStyle } from '../shared/util/echarts.util';\r\n\r\n@Component({\r\n selector: 'sc-planimetric-map2d',\r\n templateUrl: './planimetric-map2d.component.html',\r\n styleUrls: ['./planimetric-map2d.component.less'],\r\n providers: [{ provide: ParentContainerComponent, useExisting: forwardRef(() => PlanimetricMap2dComponent) }],\r\n})\r\n@Widget('2D平面地图', {\r\n group: 'component',\r\n image: 'assets/img/screen/2dmap.png',\r\n icon: 'iconmokuai',\r\n children: [\r\n {\r\n title: '呼吸气泡层',\r\n type: 'sc-breathing-bubble-layer',\r\n option: {},\r\n hidden: true,\r\n hideChild: true,\r\n },\r\n ],\r\n childTypes: [\r\n 'sc-fly-line-layer',\r\n 'sc-breathing-bubble-layer',\r\n 'sc-map2d-polyline-layer',\r\n 'sc-map2d-mark-layer',\r\n 'sc-map2d-visual-layer',\r\n ],\r\n description: 'hasChildItem',\r\n})\r\nexport class PlanimetricMap2dComponent extends ParentContainerComponent implements OnInit, OnDestroy, OnChanges {\r\n @Property('地图样式', {\r\n ui: {\r\n widget: 'myUrlSelect',\r\n url: '/assets/mapListItem.json',\r\n },\r\n })\r\n mapStyle = 'china';\r\n @Property('地图缩放', {\r\n ui: { widget: 'myRange', min: 1, max: 40, step: 1 },\r\n })\r\n zoom = 1;\r\n @Property('区域背景', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n areaColor = '#323c48';\r\n @Property('区域描边', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n borderColor = '#404a59';\r\n @Property('移动高亮', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n _areaColor = '#2a333d';\r\n @Property('地区字体', { ui: { widget: 'myFont' } })\r\n areaNamefont: any = {\r\n family: '',\r\n color: '#FFFFFF',\r\n weight: 'normal',\r\n size: 12,\r\n space: 0,\r\n lineHeight: 12,\r\n };\r\n @Property('显示地名', {\r\n type: 'boolean',\r\n })\r\n showAreaName = true;\r\n @Property('触发方式', {\r\n ui: { widget: 'select' },\r\n enum: [\r\n { label: '点击', value: 'click' },\r\n { label: '鼠标移动', value: 'mousemove' },\r\n ],\r\n })\r\n triggerType = 'mousemove';\r\n @Property('选中方式', {\r\n ui: { widget: 'select' },\r\n enum: [\r\n { label: '默认', value: '' },\r\n { label: '单选', value: 'single' },\r\n { label: '多选', value: 'multiple' },\r\n ],\r\n })\r\n selectedMode = '';\r\n\r\n @Property('缩放开关', {\r\n type: 'boolean',\r\n })\r\n zoomSwitch = 'false';\r\n @Property('高亮描边', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n _borderColor = '';\r\n @Property('阴影颜色', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n shadowColor = '#2a333d';\r\n @Property('边框粗细', {\r\n type: 'number',\r\n })\r\n shadowWidth = 20;\r\n @Property('地图渐变开始', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n mapColorStart = '#2a333d';\r\n @Property('地图渐变结束', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n mapColorEnd = '#2a333d';\r\n @Property('选中渐变开始', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n selectColorStart = '#2a333d';\r\n @Property('选中渐变结束', {\r\n ui: {\r\n widget: 'myColor',\r\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\r\n },\r\n })\r\n selectColorEnd = '#2a333d';\r\n\r\n chartOption: any;\r\n hasMap = false;\r\n @Data({\r\n properties: {\r\n name: { type: 'string', title: '地名' },\r\n lng: { type: 'number', title: '经度' },\r\n lat: { type: 'string', title: '纬度' },\r\n },\r\n })\r\n data: any[] = [];\r\n @DataOutput(['name', 'lng', 'lat'])\r\n @Event('选中', {\r\n params: {\r\n properties: {\r\n name: { type: 'string', title: '值' },\r\n lng: { type: 'number', title: '经度' },\r\n lat: { type: 'string', title: '纬度' },\r\n },\r\n },\r\n })\r\n areaClick = new EventEmitter();\r\n\r\n nameMap: any = {\r\n Somalia: '索马里',\r\n Liechtenstein: '列支敦士登',\r\n Morocco: '摩洛哥',\r\n 'W. Sahara': '西撒哈拉',\r\n Serbia: '塞尔维亚',\r\n Afghanistan: '阿富汗',\r\n Angola: '安哥拉',\r\n Albania: '阿尔巴尼亚',\r\n Aland: '奥兰群岛',\r\n Andorra: '安道尔',\r\n 'United Arab Emirates': '阿拉伯联合酋长国',\r\n Argentina: '阿根廷',\r\n Armenia: '亚美尼亚',\r\n 'American Samoa': '美属萨摩亚',\r\n 'Fr. S. Antarctic Lands': '法属南部领地',\r\n 'Antigua and Barb.': '安提瓜和巴布达',\r\n Australia: '澳大利亚',\r\n Austria: '奥地利',\r\n Azerbaijan: '阿塞拜疆',\r\n Burundi: '布隆迪',\r\n Belgium: '比利时',\r\n Benin: '贝宁',\r\n 'Burkina Faso': '布基纳法索',\r\n Bangladesh: '孟加拉国',\r\n Bulgaria: '保加利亚',\r\n Bahrain: '巴林',\r\n Bahamas: '巴哈马',\r\n 'Bosnia and Herz.': '波斯尼亚和黑塞哥维那',\r\n Belarus: '白俄罗斯',\r\n Belize: '伯利兹',\r\n Bermuda: '百慕大',\r\n Bolivia: '玻利维亚',\r\n Brazil: '巴西',\r\n Barbados: '巴巴多斯',\r\n Brunei: '文莱',\r\n Bhutan: '不丹',\r\n Botswana: '博茨瓦纳',\r\n 'Central African Rep.': '中非共和国',\r\n Canada: '加拿大',\r\n Switzerland: '瑞士',\r\n Chile: '智利',\r\n China: '中国',\r\n \"Côte d'Ivoire\": '科特迪瓦',\r\n Cameroon: '喀麦隆',\r\n 'Dem. Rep. Congo': '刚果(金)',\r\n Congo: '刚果(布)',\r\n Colombia: '哥伦比亚',\r\n Comoros: '科摩罗',\r\n 'Cape Verde': '佛得角',\r\n 'Costa Rica': '哥斯达黎加',\r\n Cuba: '古巴',\r\n Curaçao: '库拉索',\r\n 'Cayman Is.': '开曼群岛',\r\n 'N. Cyprus': '北塞浦路斯',\r\n Cyprus: '塞浦路斯',\r\n 'Czech Rep.': '捷克',\r\n Germany: '德国',\r\n Djibouti: '吉布提',\r\n Dominica: '多米尼克',\r\n Denmark: '丹麦',\r\n 'Dominican Rep.': '多米尼加',\r\n Algeria: '阿尔及利亚',\r\n Ecuador: '厄瓜多尔',\r\n Egypt: '埃及',\r\n Eritrea: '厄立特里亚',\r\n Spain: '西班牙',\r\n Estonia: '爱沙尼亚',\r\n Ethiopia: '埃塞俄比亚',\r\n Finland: '芬兰',\r\n Fiji: '斐济',\r\n 'Falkland Is.': '福克兰群岛',\r\n France: '法国',\r\n 'Faeroe Is.': '法罗群岛',\r\n Micronesia: '密克罗尼西亚',\r\n Gabon: '加蓬',\r\n 'United Kingdom': '英国',\r\n Georgia: '格鲁吉亚',\r\n Ghana: '加纳',\r\n Guinea: '几内亚',\r\n Gambia: '冈比亚',\r\n 'Guinea-Bissau': '几内亚比绍',\r\n 'Eq. Guinea': '赤道几内亚',\r\n Greece: '希腊',\r\n Grenada: '格林纳达',\r\n Greenland: '格陵兰',\r\n Guatemala: '危地马拉',\r\n Guam: '关岛',\r\n Guyana: '圭亚那',\r\n 'Heard I. and McDonald Is.': '赫德岛和麦克唐纳群岛',\r\n Honduras: '洪都拉斯',\r\n Croatia: '克罗地亚',\r\n Haiti: '海地',\r\n Hungary: '匈牙利',\r\n Indonesia: '印度尼西亚',\r\n 'Isle of Man': '马恩岛',\r\n India: '印度',\r\n 'Br. Indian Ocean Ter.': '英属印度洋领地',\r\n Ireland: '爱尔兰',\r\n Iran: '伊朗',\r\n Iraq: '伊拉克',\r\n Iceland: '冰岛',\r\n Israel: '以色列',\r\n Italy: '意大利',\r\n Jamaica: '牙买加',\r\n Jersey: '泽西岛',\r\n Jordan: '约旦',\r\n Japan: '日本',\r\n 'Siachen Glacier': '锡亚琴冰川',\r\n Kazakhstan: '哈萨克斯坦',\r\n Kenya: '肯尼亚',\r\n Kyrgyzstan: '吉尔吉斯斯坦',\r\n Cambodia: '柬埔寨',\r\n Kiribati: '基里巴斯',\r\n Korea: '韩国',\r\n Kuwait: '科威特',\r\n 'Lao PDR': '老挝',\r\n Lebanon: '黎巴嫩',\r\n Liberia: '利比里亚',\r\n Libya: '利比亚',\r\n 'Saint Lucia': '圣卢西亚',\r\n 'Sri Lanka': '斯里兰卡',\r\n Lesotho: '莱索托',\r\n Lithuania: '立陶宛',\r\n Luxembourg: '卢森堡',\r\n Latvia: '拉脱维亚',\r\n Moldova: '摩尔多瓦',\r\n Madagascar: '马达加斯加',\r\n Mexico: '墨西哥',\r\n Macedonia: '北马其顿',\r\n Mali: '马里',\r\n Malta: '马耳他',\r\n Myanmar: '缅甸',\r\n Montenegro: '黑山',\r\n Mongolia: '蒙古',\r\n 'N. Mariana Is.': '北马里亚纳群岛',\r\n Mozambique: '莫桑比克',\r\n Mauritania: '毛里塔尼亚',\r\n Montserrat: '蒙特塞拉特',\r\n Mauritius: '毛里求斯',\r\n Malawi: '马拉维',\r\n Malaysia: '马来西亚',\r\n Namibia: '纳米比亚',\r\n 'New Caledonia': '新喀里多尼亚',\r\n Niger: '尼日尔',\r\n Nigeria: '尼日利亚',\r\n Nicaragua: '尼加拉瓜',\r\n Niue: '纽埃',\r\n Netherlands: '荷兰',\r\n Norway: '挪威',\r\n Nepal: '尼泊尔',\r\n 'New Zealand': '新西兰',\r\n Oman: '阿曼',\r\n Pakistan: '巴基斯坦',\r\n Panama: '巴拿马',\r\n Peru: '秘鲁',\r\n Philippines: '菲律宾',\r\n Palau: '帕劳',\r\n 'Papua New Guinea': '巴布亚新几内亚',\r\n Poland: '波兰',\r\n 'Puerto Rico': '波多黎各',\r\n 'Dem. Rep. Korea': '朝鲜',\r\n Portugal: '葡萄牙',\r\n Paraguay: '巴拉圭',\r\n Palestine: '巴勒斯坦',\r\n 'Fr. Polynesia': '法属波利尼西亚',\r\n Qatar: '卡塔尔',\r\n Romania: '罗马尼亚',\r\n Russia: '俄罗斯',\r\n Rwanda: '卢旺达',\r\n 'Saudi Arabia': '沙特阿拉伯',\r\n Sudan: '苏丹',\r\n 'S. Sudan': '南苏丹',\r\n Senegal: '塞内加尔',\r\n Singapore: '新加坡',\r\n 'S. Geo. and S. Sandw. Is.': '南乔治亚岛和南桑威奇群岛',\r\n 'Saint Helena': '圣赫勒拿',\r\n 'Solomon Is.': '所罗门群岛',\r\n 'Sierra Leone': '塞拉利昂',\r\n 'El Salvador': '萨尔瓦多',\r\n 'St. Pierre and Miquelon': '圣皮埃尔和密克隆',\r\n 'São Tomé and Principe': '圣多美和普林西比',\r\n Suriname: '苏里南',\r\n Slovakia: '斯洛伐克',\r\n Slovenia: '斯洛文尼亚',\r\n Sweden: '瑞典',\r\n Swaziland: '斯威士兰',\r\n Seychelles: '塞舌尔',\r\n Syria: '叙利亚',\r\n 'Turks and Caicos Is.': '特克斯和凯科斯群岛',\r\n Chad: '乍得',\r\n Togo: '多哥',\r\n Thailand: '泰国',\r\n Tajikistan: '塔吉克斯坦',\r\n Turkmenistan: '土库曼斯坦',\r\n 'Timor-Leste': '东帝汶',\r\n Tonga: '汤加',\r\n 'Trinidad and Tobago': '特立尼达和多巴哥',\r\n Tunisia: '突尼斯',\r\n Turkey: '土耳其',\r\n Tanzania: '坦桑尼亚',\r\n Uganda: '乌干达',\r\n Ukraine: '乌克兰',\r\n Uruguay: '乌拉圭',\r\n 'United States': '美国',\r\n Uzbekistan: '乌兹别克斯坦',\r\n 'St. Vin. and Gren.': '圣文森特和格林纳丁斯',\r\n Venezuela: '委内瑞拉',\r\n 'U.S. Virgin Is.': '美属维尔京群岛',\r\n Vietnam: '越南',\r\n Vanuatu: '瓦努阿图',\r\n Samoa: '萨摩亚',\r\n Yemen: '也门',\r\n 'South Africa': '南非',\r\n Zambia: '赞比亚',\r\n Zimbabwe: '津巴布韦',\r\n };\r\n _children: any = [];\r\n loadedMap: { [name: string]: Promise<any> } = {};\r\n provinces: any;\r\n stack = [];\r\n visualMap: any[];\r\n @ViewChild(NgxEchartsDirective)\r\n ngxEcharts: NgxEchartsDirective;\r\n renderer = 'svg';\r\n constructor(protected http: HttpClient) {\r\n super();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n if (this.data && this.data[0]) {\r\n this.mapStyle = this.data[0].name;\r\n this.stack.push(this.mapStyle);\r\n }\r\n this.reloadMap();\r\n }\r\n }\r\n async ngOnInit() {\r\n // await this.commonService.getMap();\r\n // await import('echarts/dist/extension/bmap.js');\r\n this.provinces = (await this.http.get('/assets/mapListItem.json').toPromise()) as any;\r\n // const map = echarts.getMap(this.mapStyle);\r\n // if (map == null) {\r\n // const data = await this.http.get('assets/echarts/map/json/' + this.mapStyle + '.json').toPromise();\r\n // echarts.registerMap(this.mapStyle, data);\r\n // }\r\n // this.hasMap = true;\r\n // this.chartInit();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngxEcharts) {\r\n (this.ngxEcharts as any).initChart = () => {};\r\n }\r\n }\r\n chartInit() {\r\n // this.loadMap(this.mapStyle).then((data) => {\r\n let series = [];\r\n this.visualMap = [];\r\n this.renderer = 'svg';\r\n this._children.forEach((child) => {\r\n if (child.type === 'visual') {\r\n // series = child.series;\r\n // series[0].mapType = this.mapStyle;\r\n if (child.visualMap && child.item.length) {\r\n if (child.visualMap2) {\r\n this.visualMap.push(child.visualMap2);\r\n }\r\n this.visualMap.push(child.visualMap);\r\n child.visualMap.seriesIndex = series.length;\r\n }\r\n }\r\n if (Array.isArray(child.item)) {\r\n series = [...series, ...child.item];\r\n } else {\r\n series = [...series, child.item];\r\n }\r\n });\r\n series.forEach((layer, index) => {\r\n if (layer.type === 'lines') {\r\n delete layer.coordinateSystem;\r\n // 飞线层不支持svg渲染\r\n this.renderer = 'canvas';\r\n }\r\n if (layer.type === 'scatter') {\r\n layer.coordinateSystem = 'geo';\r\n // layer.symbolSize = '10';\r\n }\r\n // if (layer.type === 'map') {\r\n // this.visualMap.forEach((visualMap) => {\r\n // visualMap['seriesIndex'] = index;\r\n // });\r\n // }\r\n });\r\n const textStyle = getEchartsTextStyle(this.areaNamefont);\r\n this.chartOption = {\r\n tooltip: {\r\n trigger: 'item',\r\n triggerOn: this.triggerType ? this.triggerType : 'mousemove',\r\n },\r\n geo: {\r\n label: {\r\n normal: {\r\n //静态的时候展示样式\r\n show: this.showAreaName, //是否显示地图省份得名称\r\n textStyle,\r\n },\r\n emphasis: {\r\n show: this.showAreaName,\r\n textStyle,\r\n },\r\n },\r\n selectedMode: this.selectedMode,\r\n select: {\r\n label: {\r\n show: this.showAreaName, //是否显示地图省份得名称\r\n textStyle: {\r\n color: this.areaNamefont?.color || '#fff',\r\n fontSize: this.areaNamefont?.size || 12,\r\n fontFamily: this.areaNamefont?.family || '',\r\n lineHeight: this.areaNamefont?.lineHeight || 12,\r\n },\r\n },\r\n itemStyle: {\r\n areaColor: {\r\n type: 'radial',\r\n x: 0.5,\r\n y: 0.5,\r\n r: 0.8,\r\n colorStops: [\r\n {\r\n offset: 0,\r\n color: this.selectColorStart ? this.selectColorStart : this._areaColor, // 0% 处的颜色\r\n },\r\n {\r\n offset: 1,\r\n color: this.selectColorEnd ? this.selectColorEnd : this._areaColor, // 100% 处的颜色\r\n },\r\n ],\r\n globalCoord: false, // 缺省为 false\r\n },\r\n borderColor: this._borderColor,\r\n },\r\n },\r\n itemStyle: {\r\n normal: {\r\n // areaColor: this.areaColor,\r\n borderColor: this.borderColor,\r\n opacity: 1,\r\n areaColor: {\r\n type: 'radial',\r\n x: 0.5,\r\n y: 0.5,\r\n r: 0.8,\r\n colorStops: [\r\n {\r\n offset: 0,\r\n color: this.mapColorStart ? this.mapColorStart : this.areaColor, // 0% 处的颜色\r\n },\r\n {\r\n offset: 1,\r\n color: this.mapColorEnd ? this.mapColorEnd : this.areaColor, // 100% 处的颜色\r\n },\r\n ],\r\n globalCoord: false, // 缺省为 false\r\n },\r\n shadowColor: this.shadowColor,\r\n shadowBlur: this.shadowWidth,\r\n shadowOffsetX: -2,\r\n shadowOffsetY: 2,\r\n },\r\n emphasis: {\r\n areaColor: {\r\n type: 'radial',\r\n x: 0.5,\r\n y: 0.5,\r\n r: 0.8,\r\n colorStops: [\r\n {\r\n offset: 0,\r\n color: this.selectColorStart ? this.selectColorStart : this._areaColor, // 0% 处的颜色\r\n },\r\n {\r\n offset: 1,\r\n color: this.selectColorEnd ? this.selectColorEnd : this._areaColor, // 100% 处的颜色\r\n },\r\n ],\r\n globalCoord: false, // 缺省为 false\r\n },\r\n borderColor: this._borderColor,\r\n },\r\n },\r\n\r\n map: this.mapStyle,\r\n roam: this.zoomSwitch,\r\n nameMap: this.nameMap,\r\n zoom: this.zoom,\r\n },\r\n series,\r\n };\r\n if (this.visualMap?.length) {\r\n this.chartOption.visualMap = this.visualMap;\r\n }\r\n // });\r\n }\r\n childInit(child: any) {\r\n if (child.id) {\r\n const childIndex = this._children.findIndex((s) => s.id === child.id);\r\n if (childIndex > -1) {\r\n this._children[childIndex] = child;\r\n } else {\r\n this._children.push(child);\r\n }\r\n this.chartInit();\r\n }\r\n }\r\n deleteChild(childId: string) {\r\n if (childId) {\r\n const childIndex = this._children.findIndex((s) => s.id === childId);\r\n // this._children.forEach((element) => {\r\n // if (childId === element.id) {\r\n // this.visualMap = null;\r\n // }\r\n // });\r\n if (childIndex > -1) {\r\n this._children.splice(childIndex, 1);\r\n this.chartInit();\r\n }\r\n }\r\n }\r\n\r\n // loadMap(name: string) {\r\n // let loadMapPromise = this.loadedMap[name];\r\n // if (!loadMapPromise) {\r\n // loadMapPromise = this.http.get('assets/echarts/map/json/' + name + '.json').toPromise();\r\n // this.loadedMap[name] = loadMapPromise;\r\n // }\r\n // return loadMapPromise;\r\n // }\r\n async reloadMap() {\r\n const mapStyle = this.mapStyle;\r\n const map = echarts.getMap(mapStyle);\r\n if (map == null) {\r\n const data: any = await this.http.get('assets/echarts/map/json/' + mapStyle + '.json').toPromise();\r\n echarts.registerMap(mapStyle, data);\r\n }\r\n this.hasMap = true;\r\n this.chartInit();\r\n }\r\n async markClick(event) {\r\n let lng: number;\r\n let lat: number;\r\n if (event.seriesId) {\r\n lng = event.value[0];\r\n lat = event.value[1];\r\n const child = this._children.find((s) => event.seriesId.startsWith(s.id));\r\n if (child && child.onClick) {\r\n child.onClick(event);\r\n }\r\n } else {\r\n const map = echarts.getMap(this.mapStyle);\r\n if (map) {\r\n for (const feature of map.geoJson.features) {\r\n const properties = feature.properties;\r\n if (properties.name === event.name) {\r\n if (properties.cp) {\r\n lng = properties.cp[0];\r\n lat = properties.cp[1];\r\n } else if (properties.center) {\r\n lng = properties.center[0];\r\n lat = properties.center[1];\r\n } else {\r\n console.log(properties);\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n const province = this.provinces.find((element) => element.label === event.name);\r\n if (province) {\r\n this.stack.push(this.mapStyle);\r\n this.mapStyle = province.value;\r\n this.reloadMap();\r\n }\r\n }\r\n this.areaClick.emit({ name: event.name, lng, lat });\r\n // if(event.componentSubType!=null && event.componentSubType==='scatter'){\r\n // const obj=event.data;\r\n // console.log(event);\r\n // this.markerTierClick.emit({\r\n // address: obj.name,\r\n // information: '',\r\n // group: '',\r\n // lng: obj.value[0],\r\n // lat: obj.value[1],\r\n // });\r\n // }\r\n }\r\n rollback(event: MouseEvent) {\r\n event.preventDefault();\r\n if (this.stack != null && this.stack.length != 0) {\r\n this.mapStyle = this.stack.pop();\r\n this.reloadMap();\r\n }\r\n }\r\n\r\n getTextStyle() {}\r\n}\r\n","import { Component, OnInit, Inject, forwardRef, SimpleChanges, OnDestroy } from '@angular/core';\nimport { Widget, Property, Data } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\n\n@Component({\n selector: 'sc-fly-line-layer',\n templateUrl: './fly-line-layer.component.html',\n styleUrls: ['./fly-line-layer.component.less'],\n})\n@Widget('飞线层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class FlyLineLayerComponent implements OnInit, OnDestroy {\n @Property('飞线粗细', {\n ui: { widget: 'myRange', min: 1, max: 100, step: 1 },\n })\n size = 1;\n @Property('飞线颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n color = 'RGB(0, 252, 255)';\n @Data({\n properties: {\n from: { type: 'number', title: '出发位置' },\n to: { type: 'number', title: '结束位置' },\n fromInfo: { type: 'string', title: '出发信息' },\n toInfo: { type: 'string', title: '结束信息' },\n },\n })\n data: any[] = [\n {\n from: '116.85059,31.69078',\n to: '118.69629,36.20882',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '120.89355,37.09024',\n to: '116.93848,31.61597',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '121.28906,29.34388',\n to: '117.20215,31.12820',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '118.16895,31.57854',\n to: '119.79492,32.47270',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.76270,33.35806',\n to: '116.49902,38.95941',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.41113,30.93992',\n to: '114.78516,26.58853',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '115.83984,32.13841',\n to: '97.47070,37.54458',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.27930,32.36140',\n to: '114.08203,36.27971',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '103.66699,25.79989',\n to: '116.05957,31.54109',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '112.14844,24.40714',\n to: '116.71875,33.21112',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.93848,31.65338',\n to: '118.34473,26.62782',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '90.70313,42.26105',\n to: '116.23535,32.32428',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.41113,30.82678',\n to: '114.87305,36.94989',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.45508,30.78904',\n to: '118.91602,28.57487',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.01562,40.07807',\n to: '116.71875,31.69078',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.71875,31.72817',\n to: '108.45703,40.24599',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '117.99316,40.84706',\n to: '116.85059,31.69078',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '118.30078,36.56260',\n to: '117.24609,40.97990',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '119.35547,26.86328',\n to: '120.41016,32.28713',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '113.07129,31.42866',\n to: '106.04004,31.31610',\n fromInfo: '起点',\n toInfo: '终点',\n },\n {\n from: '116.85059,31.31610',\n to: '110.43457,32.76880',\n fromInfo: '起点',\n toInfo: '终点',\n },\n ];\n geoCoordMap = {\n 海门: [121.15, 31.89],\n 鄂尔多斯: [109.781327, 39.608266],\n 招远: [120.38, 37.35],\n 舟山: [122.207216, 29.985295],\n 齐齐哈尔: [123.97, 47.33],\n 盐城: [120.13, 33.38],\n 赤峰: [118.87, 42.28],\n 青岛: [120.33, 36.07],\n 乳山: [121.52, 36.89],\n 金昌: [102.188043, 38.520089],\n 泉州: [118.58, 24.93],\n 莱西: [120.53, 36.86],\n 日照: [119.46, 35.42],\n 胶南: [119.97, 35.88],\n 南通: [121.05, 32.08],\n 拉萨: [91.11, 29.97],\n 云浮: [112.02, 22.93],\n 梅州: [116.1, 24.55],\n 文登: [122.05, 37.2],\n 上海: [121.48, 31.22],\n 攀枝花: [101.718637, 26.582347],\n 威海: [122.1, 37.5],\n 承德: [117.93, 40.97],\n 厦门: [118.1, 24.46],\n 汕尾: [115.375279, 22.786211],\n 潮州: [116.63, 23.68],\n 丹东: [124.37, 40.13],\n 太仓: [121.1, 31.45],\n 曲靖: [103.79, 25.51],\n 烟台: [121.39, 37.52],\n 福州: [119.3, 26.08],\n 瓦房店: [121.979603, 39.627114],\n 即墨: [120.45, 36.38],\n 抚顺: [123.97, 41.97],\n 玉溪: [102.52, 24.35],\n 张家口: [114.87, 40.82],\n 阳泉: [113.57, 37.85],\n 莱州: [119.942327, 37.177017],\n 湖州: [120.1, 30.86],\n 汕头: [116.69, 23.39],\n 昆山: [120.95, 31.39],\n 宁波: [121.56, 29.86],\n 湛江: [110.359377, 21.270708],\n 揭阳: [116.35, 23.55],\n 荣成: [122.41, 37.16],\n 连云港: [119.16, 34.59],\n 葫芦岛: [120.836932, 40.711052],\n 常熟: [120.74, 31.64],\n 东莞: [113.75, 23.04],\n 河源: [114.68, 23.73],\n 淮安: [119.15, 33.5],\n 泰州: [119.9, 32.49],\n 南宁: [108.33, 22.84],\n 营口: [122.18, 40.65],\n 惠州: [114.4, 23.09],\n 江阴: [120.26, 31.91],\n 蓬莱: [120.75, 37.8],\n 韶关: [113.62, 24.84],\n 嘉峪关: [98.289152, 39.77313],\n 广州: [113.23, 23.16],\n 延安: [109.47, 36.6],\n 太原: [112.53, 37.87],\n 清远: [113.01, 23.7],\n 中山: [113.38, 22.52],\n 昆明: [102.73, 25.04],\n 寿光: [118.73, 36.86],\n 盘锦: [122.070714, 41.119997],\n 长治: [113.08, 36.18],\n 深圳: [114.07, 22.62],\n 珠海: [113.52, 22.3],\n 宿迁: [118.3, 33.96],\n 咸阳: [108.72, 34.36],\n 铜川: [109.11, 35.09],\n 平度: [119.97, 36.77],\n 佛山: [113.11, 23.05],\n 海口: [110.35, 20.02],\n 江门: [113.06, 22.61],\n 章丘: [117.53, 36.72],\n 肇庆: [112.44, 23.05],\n 大连: [121.62, 38.92],\n 临汾: [111.5, 36.08],\n 吴江: [120.63, 31.16],\n 石嘴山: [106.39, 39.04],\n 沈阳: [123.38, 41.8],\n 苏州: [120.62, 31.32],\n 茂名: [110.88, 21.68],\n 嘉兴: [120.76, 30.77],\n 长春: [125.35, 43.88],\n 胶州: [120.03336, 36.264622],\n 银川: [106.27, 38.47],\n 张家港: [120.555821, 31.875428],\n 三门峡: [111.19, 34.76],\n 锦州: [121.15, 41.13],\n 南昌: [115.89, 28.68],\n 柳州: [109.4, 24.33],\n 三亚: [109.511909, 18.252847],\n 自贡: [104.778442, 29.33903],\n 吉林: [126.57, 43.87],\n 阳江: [111.95, 21.85],\n 泸州: [105.39, 28.91],\n 西宁: [101.74, 36.56],\n 宜宾: [104.56, 29.77],\n 呼和浩特: [111.65, 40.82],\n 成都: [104.06, 30.67],\n 大同: [113.3, 40.12],\n 镇江: [119.44, 32.2],\n 桂林: [110.28, 25.29],\n 张家界: [110.479191, 29.117096],\n 宜兴: [119.82, 31.36],\n 北海: [109.12, 21.49],\n 西安: [108.95, 34.27],\n 金坛: [119.56, 31.74],\n 东营: [118.49, 37.46],\n 牡丹江: [129.58, 44.6],\n 遵义: [106.9, 27.7],\n 绍兴: [120.58, 30.01],\n 扬州: [119.42, 32.39],\n 常州: [119.95, 31.79],\n 潍坊: [119.1, 36.62],\n 重庆: [106.54, 29.59],\n 台州: [121.420757, 28.656386],\n 南京: [118.78, 32.04],\n 滨州: [118.03, 37.36],\n 贵阳: [106.71, 26.57],\n 无锡: [120.29, 31.59],\n 本溪: [123.73, 41.3],\n 克拉玛依: [84.77, 45.59],\n 渭南: [109.5, 34.52],\n 马鞍山: [118.48, 31.56],\n 宝鸡: [107.15, 34.38],\n 焦作: [113.21, 35.24],\n 句容: [119.16, 31.95],\n 北京: [116.46, 39.92],\n 徐州: [117.2, 34.26],\n 衡水: [115.72, 37.72],\n 包头: [110, 40.58],\n 绵阳: [104.73, 31.48],\n 乌鲁木齐: [87.68, 43.77],\n 枣庄: [117.57, 34.86],\n 杭州: [120.19, 30.26],\n 淄博: [118.05, 36.78],\n 鞍山: [122.85, 41.12],\n 溧阳: [119.48, 31.43],\n 库尔勒: [86.06, 41.68],\n 安阳: [114.35, 36.1],\n 开封: [114.35, 34.79],\n 济南: [117, 36.65],\n 德阳: [104.37, 31.13],\n 温州: [120.65, 28.01],\n 九江: [115.97, 29.71],\n 邯郸: [114.47, 36.6],\n 临安: [119.72, 30.23],\n 兰州: [103.73, 36.03],\n 沧州: [116.83, 38.33],\n 临沂: [118.35, 35.05],\n 南充: [106.110698, 30.837793],\n 天津: [117.2, 39.13],\n 富阳: [119.95, 30.07],\n 泰安: [117.13, 36.18],\n 诸暨: [120.23, 29.71],\n 郑州: [113.65, 34.76],\n 哈尔滨: [126.63, 45.75],\n 聊城: [115.97, 36.45],\n 芜湖: [118.38, 31.33],\n 唐山: [118.02, 39.63],\n 平顶山: [113.29, 33.75],\n 邢台: [114.48, 37.05],\n 德州: [116.29, 37.45],\n 济宁: [116.59, 35.38],\n 荆州: [112.239741, 30.335165],\n 宜昌: [111.3, 30.7],\n 义乌: [120.06, 29.32],\n 丽水: [119.92, 28.45],\n 洛阳: [112.44, 34.7],\n 秦皇岛: [119.57, 39.95],\n 株洲: [113.16, 27.83],\n 石家庄: [114.48, 38.03],\n 莱芜: [117.67, 36.19],\n 常德: [111.69, 29.05],\n 保定: [115.48, 38.85],\n 湘潭: [112.91, 27.87],\n 金华: [119.64, 29.12],\n 岳阳: [113.09, 29.37],\n 长沙: [113, 28.21],\n 衢州: [118.88, 28.97],\n 廊坊: [116.7, 39.53],\n 菏泽: [115.480656, 35.23375],\n 合肥: [117.27, 31.86],\n 武汉: [114.31, 30.52],\n 大庆: [125.03, 46.58],\n };\n id: string;\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) {}\n ngOnChanges(changes: SimpleChanges): void {\n const item = [\n {\n coordinateSystem: 'bmap',\n data: this.convertData(this.data),\n effect: {\n color: this.color,\n period: 1,\n show: true,\n symbolSize: [this.size, 20],\n trailLength: 0.05,\n },\n lineStyle: {\n normal: {\n color: '#a6c84c',\n curveness: 0.2,\n opacity: 1,\n width: 0,\n },\n },\n type: 'lines',\n zlevel: 1,\n },\n ];\n this.parent.childInit({\n id: this.id,\n item,\n });\n }\n ngOnInit() {}\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n convertData(data) {\n const res = [];\n for (let i = 0; i < data.length; i++) {\n const item = {};\n if (typeof data[i].from === 'string') {\n data[i].from = data[i].from.split(',');\n }\n if (typeof data[i].to === 'string') {\n data[i].to = data[i].to.split(',');\n }\n if (data[i].from && data[i].to) {\n res.push({\n fromName: data[i].fromInfo,\n toName: data[i].toInfo,\n coords: [data[i].from, data[i].to],\n });\n }\n }\n return res;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlyLineLayerComponent } from './fly-line-layer.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n@NgModule({\n declarations: [FlyLineLayerComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class FlyLineLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(FlyLineLayerComponent);\n }\n}\n","import { Component, forwardRef, Inject, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\n\n@Component({\n selector: 'sc-map2d-polyline-layer',\n templateUrl: './map2d-polyline-layer.component.html',\n styleUrls: ['./map2d-polyline-layer.component.less'],\n})\n@Widget('折线层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class Map2dPolylineLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('线条粗细', {\n ui: { widget: 'myRange', min: 1, max: 100, step: 1 },\n })\n size = 1;\n @Property('线条颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n color = 'RGB(0, 252, 255)';\n @Data({\n properties: {\n group: { type: 'string', title: '分组' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n })\n data: any[] = [\n {\n group: 'x',\n lng: '116.85',\n lat: '28.69',\n },\n {\n group: 'x',\n lng: '116.35',\n lat: '28.79',\n },\n {\n group: 'x',\n lng: '116.10',\n lat: '29',\n },\n ];\n id: string;\n datalist = [];\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) {}\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.grouping();\n const item = [\n {\n coordinateSystem: 'bmap',\n data: this.datalist,\n polyline: true,\n\n lineStyle: {\n normal: {\n color: this.color,\n opacity: 0.6,\n width: this.size,\n },\n },\n type: 'lines',\n name: 'polyline',\n zlevel: 1,\n },\n ];\n this.parent.childInit({\n id: this.id,\n item,\n });\n }\n\n ngOnInit(): void {}\n\n grouping() {\n this.datalist = [];\n const grouppname = [];\n const groups = {};\n if (this.data == null) {\n return;\n }\n this.data.forEach((t) => {\n if (grouppname.indexOf(t.group) < 0) {\n grouppname.push(t.group);\n }\n groups[t.group] = groups[t.group] || { coords: [] };\n let point = [];\n point.push(t.lng);\n point.push(t.lat);\n groups[t.group].coords.push(point);\n });\n grouppname.forEach((a) => {\n this.datalist.push(groups[a]);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Map2dPolylineLayerComponent } from './map2d-polyline-layer.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\n\n\n\n\n@NgModule({\n declarations: [Map2dPolylineLayerComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class Map2dPolylineLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(Map2dPolylineLayerComponent);\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SFArrayWidgetSchema } from '@delon/form';\nimport { Data, DataOutput, Property, Widget, Event } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\n\n@Component({\n selector: 'sc-map2d-mark-layer',\n templateUrl: './map2d-mark-layer.component.html',\n styleUrls: ['./map2d-mark-layer.component.less'],\n})\n@Widget('标记层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class Map2dMarkLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('标记分组', {\n type: 'array',\n title: '标记分组',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n imageUrl: {\n type: 'string',\n title: '图片',\n ui: {\n widget: 'myUpload',\n },\n },\n width: {\n type: 'number',\n title: '大小',\n },\n group: {\n type: 'string',\n title: '分组',\n },\n },\n required: [],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n groups = [];\n @Property('字体大小', {\n ui: { widget: 'myRange', min: 1, max: 100, step: 1 },\n })\n size = 12;\n // @Property('浮框背景', {\n // ui: {\n // widget: 'myColor',\n // example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n // },\n // })\n // backgroundColor='#F5A623';\n @Property('字体颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n color = 'RGB(0, 252, 255)';\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n information: { type: 'string', title: '信息' },\n group: { type: 'string', title: '标记分组' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n })\n data: any[] = [\n {\n address: '机楼1号',\n information: '暂无信息',\n group: '',\n lng: '116.7',\n lat: '28',\n },\n ];\n id: string;\n @DataOutput(['id', 'address', 'lng', 'lat'])\n @Event('点击标记', {\n params: {\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n },\n })\n makerClick = new EventEmitter();\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) { }\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n ngOnChanges(changes: SimpleChanges): void {\n const item = {\n id: this.id,\n type: 'scatter',\n coordinateSyste: 'bmap',\n data: [],\n tooltip: {\n formatter: '{b}',\n position: 'top',\n textStyle: {\n color: this.color,\n fontSize: this.size,\n },\n },\n emphasis: {\n label: {\n show: true,\n },\n },\n };\n this.data.forEach((t) => {\n let image = 'none';\n let size = 30;\n if (this.groups !== null && this.groups.length > 0) {\n this.groups.forEach((g) => {\n if (g.group === t.group) {\n image = 'image://' + g.imageUrl;\n size = g.width;\n }\n });\n }\n const data: any = {\n id: t.id, name: t.address, value: [t.lng, t.lat],symbolSize:0, label: {\n formatter: (a) => {\n return a.name;\n },\n rich: {\n title: {\n fontSize:this.size,\n color: this.color,\n align: 'left'\n },\n // icon: {\n // // height: 10,\n // // align: 'bottom',\n // // backgroundColor: {\n // // image: '/screen/file/ebfd7e18c4644c278d838f784e9b5a94.png',\n // // }\n // },\n value: {\n // width: 20,\n fontSize:this.size,\n padding: [3, 20, 0, 5],\n align: 'right'\n },\n },\n // position: 'right',\n color: this.color,\n fontSize: this.size,\n show: true,\n }\n };\n if (t.information) {\n data.tooltip = { formatter: t.information };\n }\n if(this.groups&&this.groups.length>0){\n this.groups.forEach(e=>{\n if(!e.imageUrl){\n return;\n }\n data.label.rich[e.group]={\n height:e.width,\n align: 'bottom',\n backgroundColor: {\n image: e.imageUrl,\n }\n }\n })\n }\n item.data.push(data);\n // item.push({\n // id: this.id,\n // name: t.address,\n // type: 'scatter',\n // coordinateSyste: 'bmap',\n // symbol: image,\n // symbolSize: size,\n // data: [{ name: t.address, value: [t.lng, t.lat] }],\n // label: {\n // formatter: '{b}',\n // position: 'bottom',\n // color: this.color,\n // fontSize: this.size,\n // show: true,\n // },\n // tooltip: {\n // formatter: '{b}',\n // position: 'top',\n // textStyle: {\n // color: this.color,\n // fontSize: this.size,\n // },\n // },\n // emphasis: {\n // label: {\n // show: true,\n // },\n // },\n // });\n });\n this.parent.childInit({\n id: this.id,\n item,\n onClick: (event) => {\n const obj = event.data;\n this.makerClick.emit({\n id: obj.id,\n address: obj.name,\n lng: obj.value[0],\n lat: obj.value[1],\n });\n },\n });\n }\n\n ngOnInit(): void { }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Map2dMarkLayerComponent } from './map2d-mark-layer.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\n\n\n\n@NgModule({\n declarations: [Map2dMarkLayerComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class Map2dMarkLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(Map2dMarkLayerComponent);\n }\n}\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { Data, DataOutput, Drill, Property, Widget } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\n\n@Component({\n selector: 'sc-map2d-visual-layer',\n templateUrl: './map2d-visual-layer.component.html',\n styleUrls: ['./map2d-visual-layer.component.less'],\n})\n@Widget('热力层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class Map2dVisualLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n\n @Property('左侧边距', { type: 'number' })\n left = 26;\n @Property('底部边距', { type: 'number' })\n bottom = 40;\n @Property('分级', {\n type: 'array',\n title: '热力等级',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n gte: {\n type: 'number',\n title: '大于',\n },\n lte: {\n type: 'number',\n title: '小于等于',\n },\n label: {\n type: 'string',\n title: '标签',\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: {\n widget: 'myColor',\n },\n },\n colorEnd: {\n type: 'string',\n title: '渐变颜色',\n ui: {\n widget: 'myColor',\n },\n },\n unit: {\n type: 'string',\n title: '单位',\n },\n },\n required: ['label', 'color'],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 },\n })\n level = [\n { gte: 0, lte: 50, label: '等级1', color: '#AAAAAA', colorEnd: null, unit: '' },\n {\n gte: 50,\n label: '等级2',\n color: '#FF3333',\n colorEnd: null,\n unit: '',\n },\n ];\n // @Property('地图颜色', {\n // type: 'string',\n // ui: {\n // widget: 'myColor',\n // },\n // })\n // mapColor = '#FFFFFF';\n // @Property('选中区域颜色', {\n // type: 'string',\n // ui: {\n // widget: 'myColor',\n // },\n // })\n // selectAreaColor = '#f2d5ad';\n @Property('正极名称', {\n max: {\n type: 'string',\n title: 'max',\n ui: {},\n },\n required: ['max'],\n })\n max = '高';\n\n @Property('负极名称', {\n min: {\n type: 'string',\n title: 'min',\n ui: {},\n },\n required: ['min'],\n })\n min = '低';\n @Property('前缀', {\n min: {\n type: 'string',\n ui: {},\n },\n })\n prefix = '';\n @Property('后缀', {\n min: {\n type: 'string',\n ui: {},\n },\n })\n suffix = '';\n @Data({\n properties: {\n name: { type: 'string', title: '地名' },\n value: { type: 'number', title: '值' },\n tooltip: { type: 'string', title: '提示' },\n lng: { type: 'number', title: '中心经度' },\n lat: { type: 'number', title: '中心纬度' },\n },\n })\n _data: any[] = [\n { name: '南海诸岛', value: 0, tooltip: '告警统计' + '<br />' + '失联告警:0' },\n { name: '北京', value: 54, tooltip: '告警统计' + '<br />' + '失联告警:54' },\n { name: '天津', value: 13, tooltip: '告警统计' + '<br />' + '失联告警:13' },\n { name: '上海', value: 40, tooltip: '告警统计' + '<br />' + '失联告警:40' },\n { name: '重庆', value: 75, tooltip: '告警统计' + '<br />' + '失联告警:75' },\n { name: '河北', value: 13, tooltip: '告警统计' + '<br />' + '失联告警:13' },\n { name: '海口市', value: 70, tooltip: '告警统计' + '<br />' + '失联告警:70' },\n ];\n @Drill()\n @DataOutput(['name', 'value', 'tooltip', 'lng', 'lat'])\n dataClick = new EventEmitter<any>();\n xData = [];\n yData = [];\n series = [];\n image: string;\n style = {\n color: '',\n fontFamily: '',\n fontWeight: '',\n fontSize: '',\n lineHeight: '',\n };\n data: any;\n visualMap = {};\n id: string;\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) {}\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n\n ngOnInit(): void {}\n ngOnChanges(changes: SimpleChanges): void {\n this.style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n if (changes._data) {\n let gradual = false;\n let lucency = false;\n const pieces = this.level.map((level) => {\n const piece = { ...level };\n if (!lucency && this.isLucency(level.color)) {\n lucency = true;\n }\n if (level.color && level.colorEnd) {\n gradual = true;\n piece.color = {\n type: 'radial',\n x: 0.5,\n y: 0.5,\n r: 0.8,\n colorStops: [\n {\n offset: 0,\n color: level.color, // 0% 处的颜色\n },\n {\n offset: 1,\n color: level.colorEnd, // 100% 处的颜色\n },\n ],\n globalCoord: false, // 缺省为 false\n } as any;\n }\n return piece;\n });\n this.visualMap = {\n min: 0,\n max: 500,\n left: this.left || 26,\n bottom: this.bottom || 40,\n showLabel: !0,\n text: [this.max, this.min],\n pieces,\n textStyle: this.style,\n show: !0,\n };\n // geo: {\n // map: this.mapStyle,\n // roam: !1,\n // scaleLimit: {\n // min: 1,\n // max: 2\n // },\n // // label: {\n // // normal: {\n // // show: !0,\n // // fontSize: '14',\n // // color: 'rgba(0,0,0,0.7)'\n // // }\n // // },\n // itemStyle: {\n // normal: {\n // borderColor: 'rgba(0, 0, 0, 0.2)',\n // areaColor: this.mapColor,\n // },\n // emphasis: {\n // areaColor: this.selectAreaColor,\n // shadowOffsetX: 0,\n // shadowOffsetY: 0,\n // borderWidth: 0\n // }\n // }\n // },\n let item = [];\n if (this._data.length) {\n item = [\n {\n name: '',\n type: 'map',\n geoIndex: 0,\n mapType: '',\n label: {\n normal: {\n show: true,\n formatter: (val) => {\n const value = val.value ? val.value : 0;\n const prefix = this.prefix ? this.prefix : '';\n const suffix = this.suffix ? this.suffix : '';\n return (val.name + '-' + prefix + value + suffix).split('-').join('\\n');\n },\n textStyle: this.style,\n },\n emphasis: {\n show: false,\n },\n },\n // itemStyle: {\n // normal: {\n // borderColor: 'rgba(0, 0, 0, 0.2)',\n // areaColor: this.mapColor,\n // },\n // emphasis: {\n // areaColor: this.selectAreaColor,\n // shadowOffsetX: 0,\n // shadowOffsetY: 0,\n // borderWidth: 0,\n // },\n // },\n data: this._data,\n },\n ];\n }\n const child: any = {\n id: this.id,\n item: item,\n visualMap: this.visualMap,\n type: 'visual',\n };\n // 如果有渐变或者半透明,添加一个不透明的图层作为图例(台风项目的需求)\n if (gradual || lucency) {\n child.visualMap2 = {\n ...this.visualMap,\n pieces: this.level.map((level) => {\n return { ...level, color: this.opacity(level.color) };\n }),\n };\n child.visualMap.show = false;\n }\n this.parent.childInit(child);\n }\n }\n\n isLucency(color: string) {\n if (color) {\n const match = /rgba\\(\\d+,\\d+,\\d+,([\\d.]+)\\)/.exec(color);\n if (match) {\n const opacity = Number(match[1]);\n if (opacity < 1) {\n return true;\n }\n }\n }\n return false;\n }\n\n opacity(color: string) {\n if (color) {\n color = color.replace(/rgba\\((\\d+),(\\d+),(\\d+),([\\d.]+)\\)/, (str, r, g, b, a) => {\n console.log(str, r, g, b, a);\n return `rgb(${r},${g},${b})`;\n });\n }\n return color;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Map2dVisualLayerComponent } from './map2d-visual-layer.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n\n\n@NgModule({\n declarations: [\n Map2dVisualLayerComponent\n ],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class Map2dVisualLayerModule { \n constructor(widgetService: WidgetService) {\n widgetService.register(Map2dVisualLayerComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { PlanimetricMap2dComponent } from './planimetric-map2d.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { FlyLineLayerModule } from './fly-line-layer/fly-line-layer.module';\nimport { BreathingBubbleLayerModule } from '../breathing-bubble-layer/breathing-bubble-layer.module';\nimport { Map2dPolylineLayerModule } from './map2d-polyline-layer/map2d-polyline-layer.module';\nimport { Map2dMarkLayerModule } from './map2d-mark-layer/map2d-mark-layer.module';\nimport { Map2dVisualLayerModule } from './map2d-visual-layer/map2d-visual-layer.module';\n\n@NgModule({\n declarations: [PlanimetricMap2dComponent],\n imports: [\n CommonModule,\n NgxEchartsModule,\n WidgetBaseModule,\n FlyLineLayerModule,\n BreathingBubbleLayerModule,\n Map2dPolylineLayerModule,\n Map2dMarkLayerModule,\n Map2dVisualLayerModule\n ],\n})\nexport class PlanimetricMap2dModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(PlanimetricMap2dComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ParentContainerComponent } from './parent-container.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [ParentContainerComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class ParentContainerModule {\n constructor(widgetService: WidgetService) {\n // widgetService.register(ParentContainerComponent);\n }\n}\n","import {\n Component,\n OnInit,\n forwardRef,\n ViewChild,\n ElementRef,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n EventEmitter,\n} from '@angular/core';\nimport { Widget, Property, Data, DataOutput, Event } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../parent-container/parent-container.component';\nimport { HttpClient } from '@angular/common/http';\nimport * as echarts from 'echarts';\nimport { NgxEchartsDirective } from 'ngx-echarts';\nimport { PlanimetricMap2dComponent } from '../planimetric-map2d/planimetric-map2d.component';\nimport { getEchartsTextStyle } from '../shared/util/echarts.util';\n\nconst buttonEnum = [\n { label: '鼠标左键', value: 'left' },\n { label: '鼠标中键', value: 'middle' },\n { label: '鼠标右键', value: 'right' },\n];\n\n@Component({\n selector: 'sc-planimetric-map3d',\n templateUrl: './planimetric-map3d.component.html',\n styleUrls: ['./planimetric-map3d.component.less'],\n providers: [{ provide: ParentContainerComponent, useExisting: forwardRef(() => PlanimetricMap3dComponent) }],\n})\n@Widget('3D平面地图', {\n group: 'component',\n image: 'assets/img/screen/3dmap.png',\n icon: 'iconmokuai',\n children: [\n {\n title: '散点图',\n type: 'sc-map3d-mark-layer',\n option: {},\n hidden: true,\n hideChild: true,\n },\n ],\n childTypes: ['sc-map3d-mark-layer', 'sc-map3d-line-layer'],\n description: 'hasChildItem',\n})\nexport class PlanimetricMap3dComponent extends PlanimetricMap2dComponent implements OnInit, OnDestroy, OnChanges {\n @Property('地图样式', {\n ui: {\n widget: 'myUrlSelect',\n url: '/assets/mapListItem.json',\n },\n })\n mapStyle = 'china';\n @Property('区域背景', {\n ui: {\n widget: 'myColor',\n },\n })\n areaColor = '#323c48';\n @Property('区域描边', {\n ui: {\n widget: 'myColor',\n },\n })\n borderColor = '#404a59';\n @Property('移动高亮', {\n ui: {\n widget: 'myColor',\n },\n })\n _areaColor = '#2a333d';\n @Property('地区字体', { ui: { widget: 'myFont' } })\n areaNamefont: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('显示地名', {\n type: 'boolean',\n })\n showAreaName = true;\n @Property('阴影颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n shadowColor = '#2a333d';\n @Property('边框粗细', {\n type: 'number',\n })\n boderWidth = 2;\n @Property('模型高度', { type: 'number' })\n regionHeight = 3;\n @Property('投影方式', {\n enum: [\n { label: '透视投影', value: 'perspective' },\n { label: '正交投影', value: 'orthographic' },\n ],\n })\n projection = 'perspective';\n @Property('视角距离', { type: 'number', ui: { visibleIf: { projection: ['perspective'] } } })\n distance = 100;\n @Property('正交大小', { type: 'number', ui: { visibleIf: { projection: ['orthographic'] } } })\n orthographicSize = 100;\n @Property('alpha角', { type: 'number' })\n alpha = 40;\n @Property('beta角', { type: 'number' })\n beta = 0;\n @Property('平移操作', { enum: buttonEnum })\n panMouseButton = 'middle';\n @Property('旋转操作', { enum: buttonEnum })\n rotateMouseButton = 'left';\n @Property('开启光晕', { type: 'boolean' })\n bloomEnable: boolean;\n @Property('光晕强度', { type: 'number', ui: { visibleIf: { bloomEnable: [true] } } })\n bloomIntensity = 0.1;\n\n chartOption: any;\n hasMap = false;\n @Data({\n properties: {\n name: { type: 'string', title: '地名' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'string', title: '纬度' },\n },\n })\n data: any[] = [];\n @DataOutput(['name', 'lng', 'lat'])\n @Event('选中', {\n params: {\n properties: {\n name: { type: 'string', title: '值' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'string', title: '纬度' },\n },\n },\n })\n areaClick = new EventEmitter();\n\n constructor(http: HttpClient) {\n super(http);\n }\n\n chartInit() {\n // this.loadMap(this.mapStyle).then((data) => {\n\n const textStyle = getEchartsTextStyle(this.areaNamefont);\n const geo3D = {\n type: 'map3D',\n boxHeight: 7,\n regionHeight: this.regionHeight,\n label: {\n //静态的时候展示样式\n show: this.showAreaName, //是否显示地图省份得名称\n distance: 0,\n ...textStyle,\n },\n selectedMode: this.selectedMode,\n itemStyle: {\n color: this.areaColor,\n borderColor: this.borderColor,\n borderWidth: this.boderWidth,\n },\n emphasis: {\n label: {\n show: this.showAreaName,\n ...textStyle,\n },\n itemStyle: {\n color: this._areaColor,\n },\n },\n map: this.mapStyle,\n roam: this.zoomSwitch,\n nameMap: this.nameMap,\n zoom: this.zoom,\n // silent: false,\n // regions,\n viewControl: {\n projection: this.projection,\n distance: this.distance,\n orthographicSize: this.orthographicSize,\n alpha: this.alpha,\n beta: this.beta,\n panMouseButton: this.panMouseButton,\n rotateMouseButton: this.rotateMouseButton,\n },\n postEffect: {\n enable: this.bloomEnable,\n bloom: {\n enable: this.bloomEnable,\n bloomIntensity: this.bloomIntensity,\n },\n },\n };\n let series = [];\n this._children.forEach((child) => {\n if (Array.isArray(child.item)) {\n series.push(...child.item);\n } else {\n series.push(child.item);\n }\n });\n // series.push(geo3D);\n this.chartOption = {\n geo3D,\n tooltip: {},\n series,\n };\n // });\n }\n\n // loadMap(name: string) {\n // let loadMapPromise = this.loadedMap[name];\n // if (!loadMapPromise) {\n // loadMapPromise = this.http.get('assets/echarts/map/json/' + name + '.json').toPromise();\n // this.loadedMap[name] = loadMapPromise;\n // }\n // return loadMapPromise;\n // }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SFArrayWidgetSchema } from '@delon/form';\nimport { Data, DataOutput, Property, Widget, Event } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\nimport { getEchartsTextStyle } from '../../shared/util/echarts.util';\n\n@Component({\n selector: 'sc-map3d-mark-layer',\n templateUrl: './map3d-mark-layer.component.html',\n styleUrls: ['./map3d-mark-layer.component.less'],\n})\n@Widget('散点图', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class Map3dMarkLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('分组', {\n type: 'array',\n title: '分组',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n group: {\n type: 'string',\n title: '分组',\n },\n symbol: {\n type: 'string',\n title: '形状',\n enum: [\n { label: '圆', value: 'circle' },\n { label: '矩形', value: 'rect' },\n { label: '圆角矩形', value: 'roundRect' },\n { label: '三角形', value: 'triangle' },\n { label: '菱形', value: 'diamond' },\n { label: '针形', value: 'pin' },\n { label: '箭头', value: 'arrow' },\n { label: '无', value: 'none' },\n { label: '图片', value: 'image' },\n ],\n },\n image: {\n title: '图片',\n type: 'string',\n ui: {\n widget: 'myPicture',\n visibleIf: { symbol: ['image'] },\n },\n },\n size: {\n type: 'number',\n title: '大小',\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: {\n widget: 'myColor',\n },\n },\n font: {\n type: 'string',\n title: '字体',\n ui: { widget: 'myFont' },\n },\n },\n required: [],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n groups = [\n {\n group: '',\n symbol: 'circle',\n size: 30,\n },\n ];\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n information: { type: 'string', title: '信息' },\n group: { type: 'string', title: '标记分组' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n })\n data: any[] = [\n {\n address: '机楼1号',\n information: '暂无信息',\n group: '',\n lng: '120',\n lat: '28',\n },\n ];\n id: string;\n @DataOutput(['id', 'address', 'lng', 'lat'])\n @Event('点击标记', {\n params: {\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n },\n })\n makerClick = new EventEmitter();\n constructor(\n @Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent,\n private http: HttpClient,\n ) {}\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.reload();\n }\n\n async reload() {\n const groupMap = {};\n const seriesList = [];\n const seriesMap = {};\n for (const group of this.groups) {\n const groupName = group.group || '';\n groupMap[groupName] = group;\n const series = await this.getSeries(group);\n seriesList.push(series);\n seriesMap[groupName] = series;\n }\n\n this.data.forEach((record) => {\n let series = seriesMap[record.group];\n if (series == null) {\n series = seriesMap[''];\n }\n if (series) {\n series.data.push({\n id: record.id,\n name: record.address,\n value: [+record.lng, +record.lat, 1, record.information],\n });\n }\n });\n this.parent.childInit({\n id: this.id,\n item: seriesList,\n onClick: (event) => {\n const obj = event.data;\n this.makerClick.emit({\n id: obj.id,\n address: obj.name,\n lng: obj.value[0],\n lat: obj.value[1],\n });\n },\n });\n }\n\n async getSeries(group: any) {\n let symbol = group.symbol;\n if (symbol === 'image') {\n const url = group.image as string;\n if (url) {\n if (url.endsWith('svg')) {\n const svgStr: any = await this.http.get(url, { responseType: 'text' }).toPromise();\n const svg = new DOMParser().parseFromString(svgStr, 'text/xml');\n const paths = svg.getElementsByTagName('path');\n symbol = 'path://';\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n if (i > 0) {\n symbol += ' ';\n }\n symbol += path.getAttribute('d').replace(' ', ',');\n }\n } else {\n symbol = 'image://' + location.origin + url;\n }\n } else {\n symbol = 'none';\n }\n }\n const series = {\n id: this.id + group.group,\n type: 'scatter3D',\n coordinateSystem: 'geo3D',\n data: [],\n tooltip: {\n formatter: (params) => params.value[3],\n },\n label: {\n show: true,\n formatter: '{b}',\n position: 'bottom',\n textStyle: getEchartsTextStyle(group.font),\n },\n // emphasis: {\n // label: {\n // show: true,\n // },\n // },\n symbol,\n symbolSize: group.size,\n itemStyle: {\n color: group.color,\n opacity: 1,\n },\n // zlevel: 10,\n };\n return series;\n }\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Map3dMarkLayerComponent } from './map3d-mark-layer.component';\nimport { WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [Map3dMarkLayerComponent],\n imports: [CommonModule],\n})\nexport class Map3dMarkLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(Map3dMarkLayerComponent);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport {\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { SFArrayWidgetSchema } from '@delon/form';\nimport { Data, DataOutput, Property, Widget, Event } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\nimport { getEchartsTextStyle } from '../../shared/util/echarts.util';\n\n@Component({\n selector: 'sc-map3d-line-layer',\n templateUrl: './map3d-line-layer.component.html',\n styleUrls: ['./map3d-line-layer.component.less'],\n})\n@Widget('折线图', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class Map3dLineLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('线条宽度', {\n ui: { widget: 'myRange', min: 1, max: 40, step: 1 },\n })\n width = 4;\n @Property('线条颜色', {\n type: 'string',\n ui: {\n widget: 'myColor',\n },\n })\n color = 'rgba(242,213,173,0.85)';\n\n @Data({\n properties: {\n group: { type: 'string', title: '分组' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n })\n data: any[] = [\n {\n group: 'x',\n lng: '120.7',\n lat: '28',\n },\n {\n group: 'x',\n lng: '120.71',\n lat: '28.01',\n },\n {\n group: 'x',\n lng: '120.79',\n lat: '28.1',\n },\n {\n group: 'y',\n lng: '120.72',\n lat: '28.02',\n },\n {\n group: 'y',\n lng: '120.73',\n lat: '28.03',\n },\n {\n group: 'y',\n lng: '120.81',\n lat: '28.12',\n },\n ];\n id: string;\n constructor(@Inject(forwardRef(() => ParentContainerComponent)) private parent: ParentContainerComponent) {}\n\n ngOnInit(): void {}\n\n ngOnDestroy(): void {\n this.parent.deleteChild(this.id);\n }\n ngOnChanges(changes: SimpleChanges): void {\n this.reload();\n }\n\n async reload() {\n console.log(this.data);\n const data = [];\n const lineMap = {};\n this.data.forEach((r) => {\n let line = lineMap[r.group];\n if (!line) {\n line = [];\n lineMap[r.group] = line;\n data.push(line);\n }\n line.push([+r.lng, +r.lat, 1]);\n });\n\n const item = {\n type: 'lines3D',\n coordinateSystem: 'geo3D',\n polyline: true,\n lineStyle: {\n width: this.width,\n color: this.color,\n opacity: 1,\n },\n data,\n silent: true, //不响应和触发鼠标事件\n };\n this.parent.childInit({\n id: this.id,\n item,\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Map3dLineLayerComponent } from './map3d-line-layer.component';\nimport { WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [Map3dLineLayerComponent],\n imports: [CommonModule],\n})\nexport class Map3dLineLayerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(Map3dLineLayerComponent);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { PlanimetricMap3dComponent } from './planimetric-map3d.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { Map3dMarkLayerModule } from './map3d-mark-layer/map3d-mark-layer.module';\nimport { Map3dLineLayerModule } from './map3d-line-layer/map3d-line-layer.module';\n\n@NgModule({\n declarations: [PlanimetricMap3dComponent],\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule, Map3dMarkLayerModule,Map3dLineLayerModule],\n})\nexport class PlanimetricMap3dModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(PlanimetricMap3dComponent);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Widget, Property } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-mip-anim',\n templateUrl: './mip-anim.component.html',\n styleUrls: ['./mip-anim.component.less']\n})\n@Widget('动态图', { group: 'mipAnim', icon: 'icontupian' })\nexport class MipAnimComponent implements OnInit {\n @Property('图片', { ui: { widget: 'myPicture' } })\n image: string;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { MipAnimComponent } from './mip-anim.component';\n\n@NgModule({\n declarations: [MipAnimComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class MipAnimModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(MipAnimComponent);\n }\n}\n","import { Component, OnInit, SimpleChanges, OnChanges, EventEmitter, ElementRef, ViewChild } from '@angular/core';\nimport { Data, Property, Widget, DataOutput, Event, EventParam, Method, Param, DataInput } from 'bbj-widget-base';\nimport { NzFormatEmitEvent, NzTreeComponent, NzTreeNode, NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { ArrayService } from '@delon/util';\nimport { getFontStyle } from '../shared/util/style.util';\n\n@Component({\n selector: 'sc-tree-control',\n templateUrl: './tree-control.component.html',\n styleUrls: ['./tree-control.component.less'],\n})\n@Widget('树控件', {\n group: 'component',\n image: 'assets/img/screen/Tree.png',\n icon: 'bianzu40',\n})\nexport class TreeControlComponent implements OnInit, OnChanges {\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#595F7A',\n weight: 'normal',\n size: 16,\n space: 0,\n lineHeight: 0,\n };\n @Property('边距', { ui: { widget: 'myGrid' } })\n grid: any = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n };\n @Property('复选框', { type: 'boolean' })\n checkable = false;\n @Property('输出格式', {\n type: 'string',\n enum: [\n { label: '数组', value: 'array' },\n { label: '字符串', value: 'string' },\n ],\n ui: {\n widget: 'select',\n visibleIf: { checkable: [true] },\n },\n })\n outputType = 'array';\n @Property('选择完全受控', {\n type: 'boolean',\n ui: { optionalHelp: '父子节点选中状态不再关联', visibleIf: { checkable: [true] } },\n })\n checkStrictly = false;\n @Property('连接线', { type: 'boolean' })\n showLine = false;\n @Property('展开所有', { type: 'boolean' })\n expandAll = false;\n @Property('展开层级', {\n type: 'integer',\n minimum: 0,\n ui: { precision: 0, visibleIf: { expandAll: [false] } },\n })\n expandLevel = 0;\n\n @Property('图标宽度', { type: 'integer' })\n iconWidth = 20;\n @Property('图标高度', { type: 'integer' })\n iconHeight = 20;\n @Property('图标位置', {\n enum: [\n { label: '左', value: 'left' },\n { label: '右', value: 'right' },\n ],\n })\n iconPosition = 'left';\n\n @Property('节点图标', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n nodeDefaultIcon = null;\n @Property('节点背景', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n nodeBackground = null;\n\n @Property('节点选中背景色', { ui: { widget: 'myColor' } })\n selectedBackground = '#bae7ff';\n\n @Property('节点选中字体色', { ui: { widget: 'myColor' } })\n nodeCheckedColor = '#333';\n\n @Property('节点选中背景', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n nodeCheckedBackground = null;\n\n @Property('双击重命名')\n renamable: boolean;\n @Property('显示搜索框')\n showSearch: boolean;\n searchValue: string;\n\n @Property('搜索框颜色', {\n ui: {\n widget: 'myColor',\n visibleIf: { showSearch: [true] },\n },\n })\n searchBorderColor = '#8F9AB3';\n\n @Property('搜索框背景色', {\n ui: {\n widget: 'myColor',\n visibleIf: { showSearch: [true] },\n },\n })\n searchBackgroundColor = 'rgba(0,0,0,0)';\n\n @Property('搜索框提示语', {\n type: 'string',\n ui: {\n visibleIf: { showSearch: [true] },\n },\n })\n searchPlaceholder = '请输入搜索内容';\n\n @Property('滚动条颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n treeScrollbarThumbBackground = '#ddd';\n\n @Data({\n properties: {\n title: { type: 'string', title: '标题' },\n key: { type: 'string', title: 'id' },\n parentKey: { type: 'string', title: '父级id' },\n icon: { type: 'string', title: '图标' },\n count: { type: 'string', title: '数量' },\n },\n })\n data = [\n { title: '江苏省', key: '300', parentKey: '' },\n { title: '浙江省', key: '100', parentKey: '' },\n { title: '杭州市', key: '1001', parentKey: '100' },\n { title: '顶顶区', key: '10010', parentKey: '1001' },\n { title: '的方区', key: '10011', parentKey: '1001' },\n { title: '温州市', key: '1002', parentKey: '100' },\n { title: '鹿城区', key: '10020', parentKey: '1002' },\n { title: '龙湾区', key: '10021', parentKey: '1002' },\n ];\n\n @DataInput('选中值')\n value: any;\n\n @DataOutput('选中id')\n @Event('选中值改变', { params: 'id' })\n keyChange = new EventEmitter<any>();\n\n nodes: NzTreeNodeOptions[] = [];\n\n expandedKeys: string[];\n\n edittingNode: NzTreeNode; // 正在重命名的节点\n\n @ViewChild('tree')\n tree: NzTreeComponent;\n\n @ViewChild('renameInput')\n renameInput: ElementRef;\n\n selectedKeys: string[] = [];\n // checkedKeys: string[] = [];\n style = {};\n waittingSelect: string | string[];\n\n paddNum: any;\n constructor(private arrayService: ArrayService, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n document.body.style.setProperty('--treeScrollbar-thumb-background', this.treeScrollbarThumbBackground || '#ddd');\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n this.nodes = this.toTree(this.data);\n if (this.waittingSelect) {\n this.select(this.waittingSelect);\n }\n }\n if (changes.font) {\n this.updateStyle();\n }\n\n if (changes.data || changes.expandLevel || changes.expandAll) {\n this.expand();\n }\n }\n\n toTree(data: any[]) {\n const nodeMap = {};\n const nodes = [];\n const root = [];\n if (data) {\n data.forEach(({ title, key, parentKey, parentKey_value, icon, count }) => {\n if (key) {\n const node: NzTreeNodeOptions = {\n key,\n title,\n parentKey: parentKey_value || parentKey,\n icon,\n isLeaf: true,\n count,\n };\n if (this.selectedKeys.includes(key)) {\n node.selected = true;\n }\n nodeMap[key] = node;\n nodes.push(node);\n }\n });\n nodes.forEach((node) => {\n if (node.parentKey) {\n const parent = nodeMap[node.parentKey];\n if (parent) {\n parent.children = parent.children || [];\n parent.children.push(node);\n parent.isLeaf = false;\n return;\n }\n }\n root.push(node);\n });\n }\n return root;\n }\n\n expand() {\n // TODO nz的bug,在数据改变之后nzExpandAll无效,等修复了可以切换成这里的代码\n // if (!this.expandAll) {\n // this.expandedKeys = [];\n // if (this.expandLevel) {\n // this.arrayService.visitTree(this.nodes, (item, parent, deep) => {\n // if (deep <= this.expandLevel) {\n // this.expandedKeys.push(item.key);\n // }\n // });\n // }\n // }\n this.expandedKeys = [];\n if (this.expandAll || this.expandLevel) {\n this.arrayService.visitTree(this.nodes, (item, parent, deep) => {\n if (this.expandAll || deep <= this.expandLevel) {\n this.expandedKeys.push(item.key);\n }\n });\n }\n }\n\n updateStyle() {\n this.style = getFontStyle(this.font);\n this.elementRef.nativeElement.style.setProperty('--selected-background', this.selectedBackground || '#bae7ff');\n }\n\n onClick(event: NzFormatEmitEvent) {\n this.onKeysChange(event.keys);\n this.nodeClick(event.node.key, event.node.title);\n }\n\n onKeysChange(keys: string[]) {\n this.waittingSelect = null;\n this.selectedKeys = keys;\n if (this.checkable) {\n if (this.outputType === 'string') {\n this.keyChange.emit(keys?.join(';'));\n } else {\n this.keyChange.emit(keys);\n }\n } else {\n this.keyChange.emit(keys[0]);\n }\n }\n\n onCheckBoxChange(event: NzFormatEmitEvent) {\n this.onKeysChange(event.keys);\n }\n\n onNodeDblclick(event: NzFormatEmitEvent) {\n if (this.renamable) {\n this.edittingNode = event.node;\n setTimeout(() => {\n if (this.renameInput) {\n this.renameInput.nativeElement.focus();\n }\n });\n }\n }\n\n renameEnd(node: NzTreeNode) {\n this.edittingNode = null;\n this.rename(node.key, node.title);\n }\n\n showNode(e) {\n console.log(e);\n }\n\n @Method('搜索')\n search(@Param('内容') value: string) {\n this.searchValue = value;\n }\n\n @Method('选中')\n select(@Param('id') id: string | string[]) {\n let find = false;\n const keys = [];\n if (id) {\n if (this.checkable) {\n if (typeof id === 'string') {\n id = id.split(';');\n }\n keys.push(...id);\n } else {\n keys.push(id);\n }\n }\n this.selectedKeys = keys;\n if (keys.length) {\n if (this.nodes) {\n const nodes = [];\n this.arrayService.visitTree(this.nodes, (n) => {\n if (keys.includes(n.key)) {\n nodes.push(n);\n }\n });\n if (nodes.length) {\n this.onKeysChange(keys);\n nodes.forEach((node) => this.nodeClick(node.key, node.title));\n find = true;\n }\n }\n // 数据有可能还没加载,等数据加载了再选中\n if (!find) {\n this.waittingSelect = id;\n }\n }\n }\n\n @Event('点击')\n nodeClick(@EventParam('id') id: string, @EventParam('标题') title: string) {}\n\n @Event('重命名')\n rename(@EventParam('id') id: string, @EventParam('名称') name: string) {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TreeControlComponent } from './tree-control.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzTreeModule } from 'ng-zorro-antd/tree';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { FormsModule } from '@angular/forms';\nimport { NzHighlightModule } from 'ng-zorro-antd/core/highlight';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n@NgModule({\n declarations: [TreeControlComponent],\n imports: [CommonModule, WidgetBaseModule, NzTreeModule, NzInputModule, FormsModule, NzHighlightModule, NzIconModule],\n})\nexport class TreeControlModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(TreeControlComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges, EventEmitter } from '@angular/core';\r\nimport { Data, DataOutput, Drill, Property, Widget, Event, EventParam } from 'bbj-widget-base';\r\nimport * as echarts from 'echarts';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SFArrayWidgetSchema, SFRadioWidgetSchema, SFStringWidgetSchema } from '@delon/form';\r\n\r\n@Component({\r\n selector: 'sc-visual-map-chart',\r\n templateUrl: './visual-map-chart.component.html',\r\n styleUrls: ['./visual-map-chart.component.less'],\r\n})\r\n@Widget('2D热力图', {\r\n group: 'component',\r\n image: 'assets/img/screen/hotMap.png',\r\n icon: 'icontubiao',\r\n})\r\nexport class VisualMapChartComponent implements OnInit, OnChanges {\r\n @Property('字体', { ui: { widget: 'myFont' } })\r\n font: any = {\r\n family: '',\r\n color: '#FFFFFF',\r\n weight: 'normal',\r\n size: 12,\r\n space: 0,\r\n lineHeight: 12,\r\n };\r\n chartOption: any = null;\r\n @Property('地图样式', {\r\n ui: {\r\n widget: 'myUrlSelect',\r\n url: '/assets/mapListItem.json',\r\n },\r\n })\r\n mapStyle = 'china';\r\n @Property('触发提示', {\r\n type: 'string',\r\n enum: [\r\n { value: 'mousemove', label: '移动' },\r\n { value: 'click', label: '点击' },\r\n ],\r\n ui: {\r\n widget: 'radio',\r\n styleType: 'button',\r\n buttonStyle: 'solid',\r\n } as SFRadioWidgetSchema,\r\n default: 'mousemove',\r\n })\r\n trigger = 'mousemove';\r\n @Property('图例位置', { ui: { widget: 'myGrid' } })\r\n visualMapPosition: any = {\r\n left: '',\r\n right: '',\r\n top: '',\r\n bottom: 40,\r\n };\r\n @Property('分级', {\r\n type: 'array',\r\n title: '热力等级',\r\n maxItems: 10,\r\n items: {\r\n type: 'object',\r\n properties: {\r\n gte: {\r\n type: 'number',\r\n title: '大于',\r\n },\r\n lte: {\r\n type: 'number',\r\n title: '小于',\r\n minimum: 1,\r\n },\r\n label: {\r\n type: 'string',\r\n title: '标签',\r\n },\r\n color: {\r\n type: 'string',\r\n title: '颜色',\r\n ui: {\r\n widget: 'myColor',\r\n },\r\n },\r\n unit: {\r\n type: 'string',\r\n title: '单位',\r\n },\r\n },\r\n required: ['label', 'color'],\r\n },\r\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\r\n })\r\n level = [\r\n { gte: 0, lte: 50, label: '等级1', color: '#AAAAAA', unit: '' },\r\n {\r\n gte: 50,\r\n label: '等级2',\r\n color: '#FF3333',\r\n unit: '',\r\n },\r\n ];\r\n @Property('地图颜色', {\r\n type: 'string',\r\n ui: {\r\n widget: 'myColor',\r\n },\r\n })\r\n mapColor = '#FFFFFF';\r\n @Property('选中区域颜色', {\r\n type: 'string',\r\n ui: {\r\n widget: 'myColor',\r\n },\r\n })\r\n selectAreaColor = '#f2d5ad';\r\n @Property('正极名称', {\r\n max: {\r\n type: 'string',\r\n title: 'max',\r\n ui: {} as SFStringWidgetSchema,\r\n },\r\n required: ['max'],\r\n })\r\n max = '高';\r\n\r\n @Property('负极名称', {\r\n min: {\r\n type: 'string',\r\n title: 'min',\r\n ui: {} as SFStringWidgetSchema,\r\n },\r\n required: ['min'],\r\n })\r\n min = '低';\r\n @Property('前缀', {\r\n min: {\r\n type: 'string',\r\n ui: {} as SFStringWidgetSchema,\r\n },\r\n })\r\n prefix = '';\r\n @Property('后缀', {\r\n min: {\r\n type: 'string',\r\n ui: {} as SFStringWidgetSchema,\r\n },\r\n })\r\n suffix = '';\r\n @Data({\r\n properties: {\r\n name: { type: 'string', title: '地名' },\r\n value: { type: 'number', title: '值' },\r\n tooltip: { type: 'string', title: '提示' },\r\n lng: { type: 'number', title: '中心经度' },\r\n lat: { type: 'number', title: '中心纬度' },\r\n },\r\n })\r\n _data: any[] = [\r\n { name: '南海诸岛', value: 0, tooltip: '告警统计' + '<br />' + '失联告警:0' },\r\n { name: '北京', value: 54, tooltip: '告警统计' + '<br />' + '失联告警:54' },\r\n { name: '天津', value: 13, tooltip: '告警统计' + '<br />' + '失联告警:13' },\r\n { name: '上海', value: 40, tooltip: '告警统计' + '<br />' + '失联告警:40' },\r\n { name: '重庆', value: 75, tooltip: '告警统计' + '<br />' + '失联告警:75' },\r\n { name: '河北', value: 13, tooltip: '告警统计' + '<br />' + '失联告警:13' },\r\n { name: '海口市', value: 70, tooltip: '告警统计' + '<br />' + '失联告警:70' },\r\n ];\r\n @Drill()\r\n @DataOutput(['name', 'value', 'tooltip', 'lng', 'lat'])\r\n dataClick = new EventEmitter<any>();\r\n xData = [];\r\n yData = [];\r\n series = [];\r\n image: string;\r\n style = {\r\n color: '',\r\n fontFamily: '',\r\n fontWeight: '',\r\n fontSize: '',\r\n lineHeight: '',\r\n };\r\n data: any;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n ngOnInit(): void { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.style = {\r\n color: this.font.color,\r\n fontFamily: this.font.family,\r\n fontWeight: this.font.weight,\r\n fontSize: this.font.size,\r\n lineHeight: this.font.lineHeight,\r\n };\r\n\r\n const posi = { bottom: 40 }; // 保证以前添加的此组件在未修改图例位置前保持不变\r\n if (this.visualMapPosition) {\r\n Object.keys(this.visualMapPosition).forEach(key => {\r\n if (this.visualMapPosition[key] || this.visualMapPosition[key] === 0) {\r\n posi[key] = this.visualMapPosition[key];\r\n }\r\n });\r\n }\r\n if (changes._data) {\r\n this.http\r\n .get('assets/echarts/map/json/' + this.mapStyle + '.json')\r\n .toPromise()\r\n .then((data:any) => {\r\n echarts.registerMap(this.mapStyle, data);\r\n this.data = data;\r\n this.chartOption = {\r\n tooltip: {\r\n triggerOn: this.trigger,\r\n // formatter:(params)=>{\r\n // console.log(params);\r\n // }\r\n // formatter: function(e, t, n) {\r\n // return .5 === e.value ? e.name + ':有疑似病例' : e.seriesName + '<br />' + e.x + ':' + e.y\r\n // }\r\n },\r\n visualMap: {\r\n min: 0,\r\n max: 500,\r\n ...posi,\r\n showLabel: !0,\r\n text: [],\r\n pieces: this.level,\r\n textStyle: this.style,\r\n // [{\r\n // gt: 100,\r\n // label: '> 100 人',\r\n // color: '#7f1100'\r\n // }, {\r\n // gte: 10,\r\n // lte: 100,\r\n // label: '10 - 100 人',\r\n // color: '#ff5428'\r\n // }, {\r\n // gte: 1,\r\n // lt: 10,\r\n // label: '1 - 9 人',\r\n // color: '#ff8c71'\r\n // }, {\r\n // gt: 0,\r\n // lt: 1,\r\n // label: '疑似',\r\n // color: '#ffd768'\r\n // }, {\r\n // value: 0,\r\n // color: '#ffffff'\r\n // }],\r\n show: !0,\r\n },\r\n // geo: {\r\n // map: this.mapStyle,\r\n // roam: !1,\r\n // scaleLimit: {\r\n // min: 1,\r\n // max: 2\r\n // },\r\n // // label: {\r\n // // normal: {\r\n // // show: !0,\r\n // // fontSize: '14',\r\n // // color: 'rgba(0,0,0,0.7)'\r\n // // }\r\n // // },\r\n // itemStyle: {\r\n // normal: {\r\n // borderColor: 'rgba(0, 0, 0, 0.2)',\r\n // areaColor: this.mapColor,\r\n // },\r\n // emphasis: {\r\n // areaColor: this.selectAreaColor,\r\n // shadowOffsetX: 0,\r\n // shadowOffsetY: 0,\r\n // borderWidth: 0\r\n // }\r\n // }\r\n // },\r\n series: [\r\n {\r\n name: '',\r\n type: 'map',\r\n geoIndex: 0,\r\n mapType: this.mapStyle,\r\n label: {\r\n normal: {\r\n show: true,\r\n formatter: (val) => {\r\n const value = val.value ? val.value : 0;\r\n const prefix = this.prefix ? this.prefix : '';\r\n const suffix = this.suffix ? this.suffix : '';\r\n return (val.name + '-' + prefix + value + suffix).split('-').join('\\n');\r\n },\r\n textStyle: this.style,\r\n },\r\n emphasis: {\r\n show: false,\r\n },\r\n },\r\n itemStyle: {\r\n normal: {\r\n borderColor: 'rgba(0, 0, 0, 0.2)',\r\n areaColor: this.mapColor,\r\n },\r\n emphasis: {\r\n areaColor: this.selectAreaColor,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n borderWidth: 0,\r\n },\r\n },\r\n data: this._data,\r\n },\r\n ],\r\n };\r\n this.reloadData();\r\n });\r\n }\r\n }\r\n\r\n onChartClick(event) {\r\n let n = '';\r\n let v = '';\r\n let t = '';\r\n let centerLng = '';\r\n let centerLat = '';\r\n if (typeof event.data !== 'undefined') {\r\n n = event.data.name;\r\n v = event.data.value;\r\n t = event.data.tooltip;\r\n } else {\r\n n = event.name;\r\n v = '0';\r\n }\r\n this.data.features.forEach((a) => {\r\n if (a.properties.name === n) {\r\n centerLng = a.properties.cp[0];\r\n centerLat = a.properties.cp[1];\r\n }\r\n });\r\n this.dataClick.emit({ name: n, value: v, tooltip: t, lng: centerLng, lat: centerLat });\r\n\r\n this.onClick(n, v, t, Number(centerLng), Number(centerLat));\r\n }\r\n\r\n reloadData() {\r\n this.chartOption.visualMap.text.push(this.max);\r\n this.chartOption.visualMap.text.push(this.min);\r\n if (this.mapStyle === 'province/hainan') {\r\n this.chartOption.geo.center = [109.844902, 19.0392];\r\n this.chartOption.geo.layoutCenter = ['50%', '50%'];\r\n this.chartOption.geo.layoutSize = '600%';\r\n }\r\n }\r\n\r\n @Event('点击')\r\n onClick(\r\n @EventParam('名称') name: string,\r\n @EventParam('值') value: string,\r\n @EventParam('提示') tooltip: string,\r\n @EventParam('经度') lng: number,\r\n @EventParam('维度') lat: number,\r\n ) { }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VisualMapChartComponent } from './visual-map-chart.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport {NgxEchartsModule} from 'ngx-echarts';\n\n\n\n\n@NgModule({\n declarations: [VisualMapChartComponent],\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\n})\nexport class VisualMapChartModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(VisualMapChartComponent);\n }\n}\n","import { Component, OnInit, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';\nimport { DataOutput, Event, Method, Property, Widget, Param, Data, CustomExport, DataInput } from 'bbj-widget-base';\nimport {\n compareAsc,\n format,\n addDays,\n startOfMonth,\n addMonths,\n startOfYear,\n addYears,\n startOfWeek,\n addWeeks,\n startOfDay,\n parse,\n} from 'date-fns';\nimport { SFStringWidgetSchema } from '@delon/form';\nimport { NzI18nService } from 'ng-zorro-antd/i18n';\nimport { formatDate } from '@angular/common';\nimport { DisabledDateFn, SupportTimeOptions } from 'ng-zorro-antd/date-picker';\nimport { differenceInCalendarDays } from 'date-fns/fp';\n\nconst defaultDateEnum = [\n { label: '当前', value: 'now' },\n { label: '今天', value: 'today' },\n { label: '昨天', value: 'yesterday' },\n { label: '明天', value: 'tomorrow' },\n { label: '本月', value: 'thisMonth' },\n { label: '上个月', value: 'lastMonth' },\n { label: '下个月', value: 'nextMonth' },\n { label: '本周', value: 'thisWeek' },\n { label: '上周', value: 'lastWeek' },\n { label: '下周', value: 'nextWeek' },\n { label: '今年', value: 'thisYear' },\n { label: '去年', value: 'lastYear' },\n { label: '明年', value: 'nextYear' },\n];\n\n@Component({\n selector: 'sc-date-picker',\n templateUrl: './date-picker.component.html',\n styleUrls: ['./date-picker.component.less'],\n})\n@Widget('日期选择器', {\n group: 'component',\n image: 'assets/img/screen/date-picker.png',\n icon: 'riqi',\n platform: 'pc',\n})\nexport class DatePickerComponent implements OnInit, OnChanges, CustomExport {\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor: string;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', weight: 'normal', size: 14, space: 0, lineHeight: '' };\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background: string;\n @Property('背景图片', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n backImage = null;\n @Property('高度')\n height: number = 30;\n @Property('日期格式', {\n dateFormat: {\n type: 'string',\n title: 'max',\n ui: {} as SFStringWidgetSchema,\n },\n required: ['dateFormat'],\n })\n dateFormat = '';\n @Property('开启区间模式')\n rangeMode: boolean;\n @Property('默认时间', {\n type: 'string',\n enum: defaultDateEnum,\n })\n defaultDate: string;\n @Property('默认结束时间', {\n type: 'string',\n enum: defaultDateEnum,\n ui: { widget: 'select', visibleIf: { rangeMode: [true] } },\n })\n defaultEndDate: string;\n @Property('选择模式', {\n type: 'string',\n enum: [\n { label: '默认', value: '' },\n { label: '周', value: 'week' },\n { label: '月份', value: 'month' },\n { label: '年份', value: 'year' },\n ],\n })\n selectMode: string = '';\n @Property('显示时间', {\n type: 'boolean',\n })\n showTime = false;\n @Property('时间格式', {\n enum: [\n { label: '时分秒', value: 'HH:mm:ss' },\n { label: '时分', value: 'HH:mm' },\n { label: '时', value: 'HH' },\n ],\n ui: { widget: 'select', visibleIf: { showTime: [true] } },\n })\n timeFormat: string = 'HH:mm:ss';\n @Property('小时间隔', { ui: { visibleIf: { showTime: [true] } } })\n hourStep: number;\n @Property('分钟间隔', { ui: { visibleIf: { timeFormat: ['HH:mm:ss', 'HH:mm'] } } })\n minuteStep: number;\n @Property('秒间隔', { ui: { visibleIf: { timeFormat: ['HH:mm:ss'] } } })\n secondStep: number;\n @Property('提示语')\n alert = '请选择日期';\n @Property('是否禁用')\n disabled: boolean;\n @Property('不可选日期', {\n enum: [\n { label: '今天之后', value: 'after' },\n { label: '今天之前', value: 'before' },\n ],\n })\n disabledDate: string;\n @Property('清除按钮', { type: 'boolean', default: true })\n allowClear = true;\n\n @Data({ properties: { date: { title: '日期', type: 'string' }, endDate: { title: '结束日期', type: 'string' } } })\n data = [];\n @DataOutput('值')\n @Event('值改变', { params: { title: '值' } })\n dateChange = new EventEmitter<any>();\n @DataOutput('结束')\n @Event('结束值', { params: { title: '结束值' } })\n endDateChange = new EventEmitter<any>();\n @Event('输入', { params: { title: '值' } })\n inputDate = new EventEmitter<any>();\n @Event('输入结束时间', { params: { title: '结束值' } })\n inputEndDate = new EventEmitter<any>();\n @DataInput('值')\n date: any;\n dateRange = [];\n datePickerStyle: any;\n nzShowTime: SupportTimeOptions;\n nzDisabledDate: DisabledDateFn;\n // isEnglish = false;\n\n constructor(private i18n: NzI18nService) {}\n\n ngOnInit(): void {\n // this.initDefaultDate();\n }\n\n /**\n * {label: '当前', value: 'now'},\n {label: '昨天', value: 'yesterday'},\n {label: '明天', value: 'tomorrow'},\n {label: '本月', value: 'thisMonth'},\n {label: '上个月', value: 'lastMonth'},\n {label: '下个月', value: 'nextMonth'},\n {label: '本周', value: 'thisWeek'},\n {label: '上个月', value: 'lastWeek'},\n {label: '下个月', value: 'nextWeek'},\n {label: '今年', value: 'thisYear'},\n {label: '去年', value: 'lastYear'},\n {label: '明年', value: 'nextYear'},\n */\n initDefaultDate() {\n if (this.rangeMode) {\n const start = this.getDefaultDate(this.defaultDate);\n const end = this.getDefaultDate(this.defaultEndDate);\n this.date = [start, end];\n if (start || end) {\n this.onChange(this.date);\n }\n } else {\n this.date = this.getDefaultDate(this.defaultDate);\n if (this.date) {\n this.onChange(this.date);\n }\n }\n }\n\n getDefaultDate(defaultDate: string) {\n if (defaultDate) {\n const today = new Date();\n switch (defaultDate) {\n case 'now':\n return today;\n case 'today':\n return startOfDay(today);\n case 'yesterday':\n return addDays(startOfDay(today), -1);\n case 'tomorrow':\n return addDays(startOfDay(today), 1);\n case 'thisMonth':\n return startOfMonth(today);\n case 'lastMonth':\n return addMonths(startOfMonth(today), -1);\n case 'nextMonth':\n return addMonths(startOfMonth(today), 1);\n case 'thisYear':\n return startOfYear(today);\n case 'lastYear':\n return addYears(startOfYear(today), -1);\n case 'nextYear':\n return addYears(startOfYear(today), 1);\n case 'thisWeek':\n return addDays(startOfWeek(addDays(today, -1)), 1);\n case 'lastWeek':\n return addWeeks(addDays(startOfWeek(addDays(today, -1)), 1), -1);\n case 'nextWeek':\n return addWeeks(addDays(startOfWeek(addDays(today, -1)), 1), 1);\n }\n }\n return null;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.dateFormat && !this.dateFormat) {\n this.setDefaultFormat();\n }\n this.datePickerStyle = {\n borderColor: this.borderColor,\n backgroundColor: this.background,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n height: this.height + 'px',\n backgroundSize: '100% 100%',\n lineHeight: this.font.lineHeight + 'px',\n };\n if (this.showTime) {\n this.nzShowTime = {\n nzFormat: this.timeFormat || 'HH:mm:ss',\n nzHourStep: this.hourStep,\n nzMinuteStep: this.minuteStep,\n nzSecondStep: this.secondStep,\n };\n }\n if (this.backImage) {\n this.datePickerStyle.backgroundImage = 'url(' + this.backImage + ')';\n }\n if (changes.rangeMode || changes.defaultDate || changes.defaultEndDate) {\n this.initDefaultDate();\n }\n if (changes.data) {\n this.updateData();\n }\n if (changes.disabledDate) {\n this.updateDisabledDate();\n }\n if (changes.value) {\n if (!this.date) {\n this.date = null;\n } else if (typeof this.date === 'string') {\n this.date = parse(this.date, this.dateFormat, new Date());\n }\n }\n }\n\n updateDisabledDate() {\n switch (this.disabledDate) {\n case 'after':\n this.nzDisabledDate = (current) => differenceInCalendarDays(current, new Date()) < 0;\n break;\n case 'before':\n this.nzDisabledDate = (current) => differenceInCalendarDays(current, new Date()) > 0;\n break;\n default:\n this.nzDisabledDate = null;\n }\n }\n\n updateData() {\n if (this.data?.length) {\n const { date, endDate } = this.data[0];\n const start = this.getDate(date);\n if (this.rangeMode) {\n const end = this.getDate(endDate);\n if (start || end) {\n this.date = [start || this.date[0], end || this.date[1]];\n this.onChange(this.date);\n }\n } else {\n if (start) {\n this.date = start;\n this.onChange(this.date);\n }\n }\n }\n }\n\n getDate(value: any) {\n if (value) {\n return new Date(value);\n } else {\n return null;\n }\n }\n\n onChange(result: Date, input?: boolean): void {\n if (!this.rangeMode) {\n const date = this.format(this.date);\n this.dateChange.emit(date);\n if (input) {\n this.inputDate.emit(date);\n }\n } else {\n // date=format(this.date[0], this.dateFormat)+'-'+format(this.date[1], this.dateFormat);\n const start = this.format(this.date[0]);\n const end = this.format(this.date[1]);\n this.dateChange.emit(start);\n this.endDateChange.emit(end);\n if (input) {\n this.inputDate.emit(start);\n this.inputEndDate.emit(end);\n }\n }\n }\n\n format(date: Date) {\n if (date) {\n return formatDate(date, this.dateFormat, this.i18n.getLocaleId());\n } else {\n return null;\n }\n }\n\n setDefaultFormat() {\n switch (this.selectMode) {\n case 'week':\n this.dateFormat = 'yyyy-ww';\n break;\n case 'month':\n // console.log(today);\n this.dateFormat = 'yyyy-MM';\n break;\n case 'year':\n this.dateFormat = 'yyyy';\n break;\n default:\n if (this.showTime) {\n this.dateFormat = 'yyyy-MM-dd HH:mm:ss';\n if (this.timeFormat) {\n switch (this.timeFormat) {\n case 'HH':\n this.dateFormat = 'yyyy-MM-dd HH:00:00';\n break;\n case 'HH:mm':\n this.dateFormat = 'yyyy-MM-dd HH:mm:00';\n break;\n }\n }\n } else {\n this.dateFormat = 'yyyy-MM-dd';\n }\n break;\n }\n }\n @Method('设置值')\n setValue(@Param('值') value: Date) {\n this.date = value;\n this.onChange(value);\n }\n\n // changeLanguage(): void {\n // this.i18n.setLocale(this.isEnglish ? zh_CN : en_US);\n // this.isEnglish = !this.isEnglish;\n // }\n\n exportWord() {\n return null;\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {DatePickerComponent} from './date-picker.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport {NzDatePickerModule} from 'ng-zorro-antd/date-picker';\nimport {FormsModule} from '@angular/forms';\n\n\n@NgModule({\n declarations: [DatePickerComponent],\n imports: [CommonModule, WidgetBaseModule, NzDatePickerModule, FormsModule],\n exports: [DatePickerComponent]\n})\nexport class DatePickerModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(DatePickerComponent);\n }\n}\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { DataOutput, Property, Widget } from 'bbj-widget-base';\nimport { SFStringWidgetSchema } from '@delon/form';\nimport { format } from 'date-fns';\nimport { backgroundImage } from 'html2canvas/dist/types/css/property-descriptors/background-image';\n\n@Component({\n selector: 'sc-time-picker',\n templateUrl: './time-picker.component.html',\n styleUrls: ['./time-picker.component.less'],\n})\n@Widget('时间选择器', {\n group: 'component',\n image: 'assets/img/screen/time-picker.png',\n icon: 'icontubiao',\n})\nexport class TimePickerComponent implements OnInit {\n @Property('边框', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n borderColor = '#3285ff';\n @Property('背景图片', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n }\n })\n backImage = null;\n @Property('高度')\n height: number = 30;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#3285ff', weight: 'normal', size: 12, space: 0, lineHeight: '' };\n @Property('填充', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n background = 'rgba(50,133,255,0.2)';\n @Property('时间格式', {\n timeFormat: {\n type: 'string',\n title: 'max',\n ui: {} as SFStringWidgetSchema,\n },\n required: ['timeFormat'],\n })\n timeFormat = 'HH:mm:ss';\n @Property('提示语')\n alert = '请选择时间';\n @DataOutput('值')\n timeChange = new EventEmitter<any>();\n time: Date | null = null;\n timePickerStyle: any;\n\n defaultOpenValue = new Date(0, 0, 0, 0, 0, 0);\n\n constructor() { }\n\n ngOnInit(): void {\n this.timePickerStyle = {\n borderColor: this.borderColor,\n backgroundColor: this.background,\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n height: this.height + 'px',\n backgroundImage: 'url('+this.backImage+')',\n backgroundSize:'100% 100%'\n };\n }\n\n onChange(result: Date) {\n let date = '';\n if (result !== null) {\n date = format(result, this.timeFormat);\n }\n this.timeChange.emit(date);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TimePickerComponent } from './time-picker.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport { NzTimePickerModule } from 'ng-zorro-antd/time-picker';\nimport {FormsModule} from '@angular/forms';\n\n\n\n\n@NgModule({\n declarations: [TimePickerComponent],\n imports: [CommonModule, WidgetBaseModule, NzTimePickerModule,FormsModule],\n})\nexport class TimePickerModule {\n constructor(widgetService: WidgetService){\n widgetService.register(TimePickerComponent);\n }\n}\n","import { HttpClient } from '@angular/common/http';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Inject,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Optional,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { take, takeUntil } from 'rxjs/operators';\r\nimport { ScaleSubject, TemplateUtil, WidgetRef } from 'bbj-widget-base';\r\nimport { Data, DataOutput, Property, Widget, Event } from 'bbj-widget-base';\r\nimport { BaiduMapService } from 'bbj-screen-widget/core';\r\n\r\n// declare const BMap;\r\ndeclare const BMapGL: any;\r\n// declare const BMapGLLib;\r\n// declare const BMapLib;\r\n// declare const BMAP_ANCHOR_BOTTOM_LEFT: number;\r\ndeclare const BMAP_ANCHOR_TOP_LEFT: number;\r\ndeclare const mapvgl: any;\r\ndeclare const BMAP_SATELLITE_MAP: number;\r\ndeclare const BMAP_NORMAL_MAP: number;\r\nconst MapTypeEnum = [\r\n { label: '普通', value: 'normal' },\r\n { label: '深色', value: 'dark' },\r\n { label: '卫星', value: 'satellite' },\r\n { label: '自定义', value: 'custom' },\r\n];\r\n@Component({\r\n selector: 'sc-custom-baidu-map',\r\n templateUrl: './custom-baidu-map.component.html',\r\n styleUrls: ['./custom-baidu-map.component.less'],\r\n})\r\n@Widget('百度地图', {\r\n group: 'component',\r\n image: 'assets/img/screen/my-baidu-map.png',\r\n children: [\r\n {\r\n title: '标记层',\r\n type: 'sc-baidu-marker-layer',\r\n option: {},\r\n hidden: true,\r\n hideChild: true,\r\n },\r\n ],\r\n childTypes: ['sc-baidu-marker-layer', 'sc-baidu-polyline-layer', 'sc-wind-layer', 'sc-typhoon-area-layer'],\r\n description: 'hasChildItem',\r\n} as any)\r\nexport class CustomBaiduMapComponent implements OnInit, OnDestroy, OnChanges {\r\n // @Property('字体', { ui: { widget: 'myFont' } })\r\n // font: any = {\r\n // family: '',\r\n // color: '#000000',\r\n // weight: 'normal',\r\n // size: 16,\r\n // space: 0,\r\n // lineHeight: 0,\r\n // };\r\n @Property('地图类型', {\r\n enum: MapTypeEnum,\r\n })\r\n mapType = 'normal';\r\n mapTypeValue: string;\r\n @Property('上传样式', { type: 'string', ui: { widget: 'myUploadAudio', visibleIf: { mapType: ['custom'] } } })\r\n uploadStyle: string;\r\n @Property('切换按钮')\r\n showMapTypeRadio: boolean;\r\n @Property('全景地图', { type: 'boolean' })\r\n minMapShow = false;\r\n @Property('显示信息', {\r\n ui: { widget: 'select' },\r\n enum: [\r\n { label: '点击', value: 'click' },\r\n { label: '悬停', value: 'mouseover' },\r\n ],\r\n })\r\n showType = 'click';\r\n @Property('信息窗背景', { ui: { widget: 'myColor' } })\r\n infoWindowBackground: string;\r\n @Property('信息窗字体', { ui: { widget: 'myColor' } })\r\n infoWindowColor: string;\r\n @Property('信息窗宽度')\r\n infoWindowWidth: number;\r\n @Property('信息窗高度')\r\n infoWindowHeight: number;\r\n @Property('信息窗模板', { ui: { widget: 'textarea' } })\r\n infoWindowTemplate: string;\r\n @Property('信息窗边框', {\r\n ui: { widget: 'myColor' },\r\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\r\n })\r\n infoWindowBorderColor: string;\r\n @Property('隐藏尖角')\r\n @HostBinding('class.hideInfoWindowTail')\r\n hideInfoWindowTail: boolean;\r\n @Property('隐藏关闭按钮')\r\n @HostBinding('class.hideInfoWindowTop')\r\n hideInfoWindowTop: boolean;\r\n @Property('地图拖动', { type: 'boolean' })\r\n dragging = true;\r\n\r\n @Property('遮罩颜色', {\r\n ui: { widget: 'myColor' },\r\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\r\n })\r\n shadeColor = '#004395';\r\n @Property('背景颜色', {\r\n ui: { widget: 'myColor' },\r\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\r\n })\r\n mapBackColor: string;\r\n\r\n @Property('多边线色', {\r\n ui: { widget: 'myColor' },\r\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\r\n })\r\n mapCityColor = '#41b7ff';\r\n @Property('地图缩放', {\r\n ui: { widget: 'myRange', min: 1, max: 40, step: 1 },\r\n })\r\n zoom = 12;\r\n // @Property('放大比例', { type: 'number' })\r\n // scale = 1;\r\n @Property('遮罩透明', { type: 'number' })\r\n fillOpacity = 0;\r\n @Property('多边线粗', { type: 'number' })\r\n strokesize = 2;\r\n @Property('黑夜模式', { type: 'boolean', ui: { hidden: true } })\r\n nightMode = false;\r\n @Property('3D视角')\r\n enable3D: boolean;\r\n @Property('定位控件')\r\n showLocationControl: boolean;\r\n @Property('初始角度', { type: 'number', ui: { visibleIf: { enable3D: [true] } } })\r\n tilt = 73;\r\n // @Property('中心经度', {\r\n // ui: {widget: 'myRange', min: -180, max: 180, step: 1},\r\n // })\r\n centerLng = 120.7;\r\n // @Property('中心纬度', {\r\n // ui: {widget: 'myRange', min: -90, max: 90, step: 1},\r\n // })\r\n centerLat = 28;\r\n @Property('显示省市', {\r\n ui: {\r\n widget: 'myUrlSelect',\r\n allowClear: true,\r\n url: '/assets/mapListItem.json',\r\n },\r\n })\r\n cityName = null;\r\n point: any;\r\n\r\n // _data = [\r\n // {\r\n // options: {\r\n // icon: {\r\n // imageUrl: 'assets/img/screen/number-flop.png',\r\n // size: {\r\n // height: 260,\r\n // width: 250\r\n // }\r\n // }\r\n // },\r\n // point: {\r\n // lng: 120.7, // 经度\r\n // lat: 28, // 纬度\r\n // }\r\n // },\r\n // ];\r\n // 文字标注\r\n\r\n public text: string;\r\n // _children = [];\r\n type: string;\r\n map: any;\r\n edit: boolean;\r\n // markerTierClick: any;\r\n // pingyang = '';\r\n // ruian = '';\r\n @Data({\r\n properties: {\r\n lng: { type: 'number', title: '经度' },\r\n lat: { type: 'number', title: '纬度' },\r\n },\r\n })\r\n _data: any[] = [{ lng: 120.7, lat: 28 }];\r\n @DataOutput(['lng', 'lat'])\r\n @Event('中心点改变', {\r\n params: { properties: { lng: { title: '经度', type: 'number' }, lat: { title: '纬度', type: 'number' } } },\r\n })\r\n dataChange = new EventEmitter<any>();\r\n\r\n @DataOutput('缩放等级')\r\n @Event('缩放', {\r\n params: '缩放等级',\r\n })\r\n zoomChange = new EventEmitter<any>();\r\n @Event('地图点击', {\r\n params: { properties: { lng: { title: '经度', type: 'number' }, lat: { title: '纬度', type: 'number' } } },\r\n })\r\n mapClick = new EventEmitter<any>();\r\n\r\n @ViewChild('container', { static: true })\r\n container: ElementRef;\r\n children: any[];\r\n destroy$ = new Subject();\r\n destroyed: boolean;\r\n // containerStyle: any = {};\r\n // unloadedChildren = {};\r\n overlaysMap = {};\r\n\r\n // @HostBinding('class.hideInfoWindowTail')\r\n // hideInfoWindowTail: boolean;\r\n\r\n private inited: (map: any) => void;\r\n init$ = new Promise((resolve) => {\r\n this.inited = resolve;\r\n });\r\n view: any;\r\n pickerEvent: any;\r\n pickerItem: any;\r\n pickerTimeout: any;\r\n mapTypeEnum = MapTypeEnum.slice(0, 3);\r\n darkStyle: any;\r\n firstOpen: boolean;\r\n firstOpenPromise: Promise<void>;\r\n constructor(\r\n private baiduMapService: BaiduMapService,\r\n private http: HttpClient,\r\n private elementRef: ElementRef,\r\n private zone: NgZone,\r\n @Optional() private scale$: ScaleSubject,\r\n private cd: ChangeDetectorRef,\r\n private widgetRef: WidgetRef,\r\n ) {}\r\n\r\n get element(): HTMLElement {\r\n return this.elementRef.nativeElement;\r\n }\r\n\r\n addLayer(layer: any) {\r\n if (this.view) {\r\n this.view.addLayer(layer);\r\n }\r\n }\r\n\r\n removeLayer(layer: any) {\r\n if (this.view) {\r\n this.view.removeLayer(layer);\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes._data && this._data[0]) {\r\n this.centerLng = +this._data[0].lng;\r\n this.centerLat = +this._data[0].lat;\r\n this.setCenter(this.centerLng, this.centerLat);\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n if (this.scale$) {\r\n // 这是为了解决地图缩放中心不在鼠标所在位置的问题\r\n this.scale$.pipe(takeUntil(this.destroy$)).subscribe((scale) => {\r\n const { x: sx, y: sy, scaleContent } = scale as any;\r\n const style = this.element.style;\r\n if (scaleContent === false) {\r\n this.zone.onStable.pipe(take(1)).subscribe(() => {\r\n const parent = this.element.parentNode as HTMLElement;\r\n if (parent) {\r\n const match = /translate\\(([-\\d.]+)px, ([-\\d.]+)px\\)/.exec(parent.style.transform);\r\n if (match) {\r\n const offsetX = parseFloat(match[1]);\r\n const offsetY = parseFloat(match[2]);\r\n style.transform = `translate(${-offsetX}px,${-offsetY}px)`;\r\n style.height = parent.clientHeight + offsetY + 'px';\r\n style.width = parent.clientWidth + offsetX + 'px';\r\n style.padding = `${offsetY}px 0 0 ${offsetX}px`;\r\n // this.containerStyle = {\r\n // transformOrigin: `0 0`,\r\n // transform: `translate(${-offsetX}px,${-offsetY}px)`,\r\n // height: parent.clientHeight + offsetY + 'px',\r\n // width: parent.clientWidth + offsetX + 'px',\r\n // padding: `${offsetY}px 0 0 ${offsetX}px`,\r\n // };\r\n }\r\n }\r\n\r\n // this.cd.markForCheck();\r\n });\r\n } else {\r\n const { position, size } = this.widgetRef.widget as any;\r\n const { x, y } = position;\r\n const { width, height } = size;\r\n style.transform = `translate(${-x}px,${-y}px) scale(${1 / sx},${1 / sy})`;\r\n style.height = (y + height) * sy + 'px';\r\n style.width = (x + width) * sx + 'px';\r\n style.padding = `${y * sy}px 0 0 ${x * sx}px`;\r\n }\r\n\r\n // this.cd.markForCheck();\r\n });\r\n }\r\n await this.initMap();\r\n }\r\n\r\n async initMap() {\r\n await this.baiduMapService.loadMapGL();\r\n await this.baiduMapService.loadMapVGL();\r\n this.mapTypeValue = this.mapType;\r\n // 兼容老的配置\r\n if (this.mapType == null) {\r\n if (this.uploadStyle) {\r\n this.mapTypeValue = 'custom';\r\n } else if (this.nightMode) {\r\n this.mapTypeValue = 'dark';\r\n }\r\n }\r\n if (!this.destroyed) {\r\n this.zone.runOutsideAngular(() => {\r\n this.map = new BMapGL.Map(this.container.nativeElement, { restrictCenter: false });\r\n this.map.centerAndZoom(new BMapGL.Point(this.centerLng, this.centerLat), this.zoom); // 设置中心点和缩放级别\r\n this.map.enableScrollWheelZoom(); // 启用滚轮进行缩放功能\r\n // var dist = new BMapGL.DistrictLayer({\r\n // name: '(温州市)',\r\n // kind: 1,\r\n // fillColor: '#fff',\r\n // fillOpacity: 0.1,\r\n // strokeColor: '#daeafa',\r\n // viewport: true,\r\n // });\r\n // this.map.addDistrictLayer(dist);\r\n this.mapTypeChange(this.mapTypeValue);\r\n if (this.edit || this.dragging === false) {\r\n this.map.disableDragging();\r\n }\r\n if (this.enable3D) {\r\n this.map.setTilt(this.tilt == null ? 73 : this.tilt, { noAnimation: true });\r\n this.map.setDisplayOptions({ skyColors: ['rgba(0, 0, 0, 0)'] }); // 隐藏天空\r\n // const navi3DCtrl = new BMapGL.NavigationControl3D(); // 添加3D控件\r\n // this.map.addControl(navi3DCtrl);\r\n } else {\r\n this.map.disableTilt();\r\n this.map.disableRotate();\r\n }\r\n if (this.showLocationControl) {\r\n const options = {\r\n // 控件的停靠位置(可选,默认左上角)\r\n anchor: BMAP_ANCHOR_TOP_LEFT,\r\n // 控件基于停靠位置的偏移量(可选)\r\n offset: new BMapGL.Size(20, 20),\r\n };\r\n let locationControl = new BMapGL.LocationControl(options);\r\n // 将控件添加到地图上\r\n this.map.addControl(locationControl);\r\n }\r\n if (this.minMapShow) {\r\n const stCtrl = new BMapGL.PanoramaControl();\r\n stCtrl.setOffset(new BMapGL.Size(20, 20));\r\n this.map.addControl(stCtrl);\r\n }\r\n if (this.infoWindowBackground) {\r\n this.element.style.setProperty('--info-window-background', this.infoWindowBackground);\r\n }\r\n if (this.infoWindowColor) {\r\n this.element.style.setProperty('--info-window-color', this.infoWindowColor);\r\n }\r\n if (this.infoWindowBorderColor) {\r\n this.element.style.setProperty('--info-window-border-color', this.infoWindowBorderColor);\r\n }\r\n this.map.addEventListener('moveend', (event) => {\r\n const center = this.map.getCenter();\r\n this.dataChange.emit(center);\r\n });\r\n this.map.addEventListener('click', (event) => {\r\n this.mapClick.emit(event.pointer);\r\n });\r\n this.map.addEventListener('zoomend', (event) => {\r\n this.zoomChange.emit(this.map.getZoom());\r\n this.dataChange.emit(this.map.getCenter());\r\n });\r\n this.view = new mapvgl.View({\r\n map: this.map,\r\n });\r\n this.mapLoaded(this.map);\r\n });\r\n this.inited(this.map);\r\n }\r\n }\r\n\r\n setCenter(lng: number, lat: number) {\r\n if (this.map && lng && lat) {\r\n const center = this.map.getCenter();\r\n if (center.lng != lng || center.lat != lat) {\r\n this.setCenterAndZoom(lng, lat, this.map.getZoom());\r\n }\r\n }\r\n }\r\n\r\n setCenterAndZoom(lng: number, lat: number, zoom: number) {\r\n const center = this.map.getCenter();\r\n const currentZoom = this.map.getZoom();\r\n // 误差范围内不移动,防止背景抖动\r\n if (zoom != currentZoom || Math.abs(lng - center.lng) > 1e-13 || Math.abs(lat - center.lat) > 1e-7) {\r\n const point = new BMapGL.Point(lng, lat);\r\n this.map.centerAndZoom(point, zoom, { tilt: this.map.getTilt() });\r\n }\r\n }\r\n\r\n /**\r\n * 根据经纬度范围设置中心和缩放等级\r\n * @param minLng\r\n * @param maxLng\r\n * @param minLat\r\n * @param maxLat\r\n */\r\n setRectCenterAndZoom(minLng: number, maxLng: number, minLat: number, maxLat: number) {\r\n this.setCenterAndZoom((maxLng + minLng) / 2, (maxLat + minLat) / 2, this.getZoom(maxLng, minLng, maxLat, minLat));\r\n }\r\n\r\n getZoom(maxLng: number, minLng: number, maxLat: number, minLat: number) {\r\n const zooms = [\r\n 50, 100, 200, 500, 1000, 2000, 5000, 10000, 20000, 25000, 50000, 100000, 200000, 500000, 1000000, 2000000,\r\n ]; //级别18到3。\r\n const pointA = new BMapGL.Point(maxLng, maxLat); // 创建点坐标A\r\n const pointB = new BMapGL.Point(minLng, minLat); // 创建点坐标B\r\n const distance = +this.map.getDistance(pointA, pointB).toFixed(1); //获取两点距离,保留小数点后两位\r\n const i = zooms.findIndex((zoom) => zoom - distance > 0);\r\n if (i === -1) {\r\n return 5;\r\n }\r\n //之所以会多3,是因为地图范围常常是比例尺距离的10倍以上。所以级别会增加3。\r\n return 18 - i + 3;\r\n }\r\n\r\n openInfoWindow(data: any, lng: number, lat: number) {\r\n if (data.information || this.infoWindowTemplate) {\r\n const point = new BMapGL.Point(+lng, +lat);\r\n // let offsetY = -25;\r\n // if (this.hideInfoWindowTail) {\r\n // offsetY = 0;\r\n // }\r\n let information = data.information;\r\n if (this.infoWindowTemplate) {\r\n information = TemplateUtil.parse(this.infoWindowTemplate, data);\r\n }\r\n const options = {\r\n offset: new BMapGL.Size(0, 0),\r\n width: this.infoWindowWidth || 0,\r\n height: this.infoWindowHeight || 0,\r\n };\r\n const infoWindow = new BMapGL.InfoWindow(information, options);\r\n // 第一次打开信息窗口后在短时间关闭或重新打开会导致click事件失效,临时解决方案是第一次打开后0.5秒内不关闭\r\n if (!this.firstOpen) {\r\n if (this.firstOpenPromise) {\r\n this.firstOpenPromise.then(() => {\r\n this.map.openInfoWindow(infoWindow, point);\r\n });\r\n } else {\r\n this.firstOpenPromise = new Promise<void>((resolve) => {\r\n setTimeout(() => {\r\n this.firstOpen = true;\r\n this.firstOpenPromise = null;\r\n resolve();\r\n }, 500);\r\n });\r\n this.map.openInfoWindow(infoWindow, point);\r\n }\r\n const rawClose = infoWindow.close;\r\n infoWindow.close = () => {\r\n if (this.firstOpenPromise) {\r\n this.firstOpenPromise.then(() => rawClose.call(infoWindow));\r\n } else {\r\n rawClose.call(infoWindow);\r\n }\r\n };\r\n } else {\r\n this.map.openInfoWindow(infoWindow, point);\r\n }\r\n return infoWindow;\r\n }\r\n }\r\n\r\n getCanvasOverlay(child: any) {\r\n let canvasOverlay;\r\n if (this.enable3D) {\r\n const item = child.item;\r\n if (item) {\r\n var pStart = new BMapGL.Point(item.start.lng, item.start.lat);\r\n var pEnd = new BMapGL.Point(item.end.lng, item.end.lat);\r\n var bounds = new BMapGL.Bounds(new BMapGL.Point(pStart.lng, pEnd.lat), new BMapGL.Point(pEnd.lng, pStart.lat));\r\n canvasOverlay = new BMapGL.GroundOverlay(bounds, {\r\n type: 'canvas',\r\n url: item.canvas,\r\n opacity: 1,\r\n });\r\n }\r\n } else {\r\n const pointToPixel = (data) => {\r\n const point = new BMapGL.Point(data.lng, data.lat);\r\n return this.map.pointToPixel(point);\r\n };\r\n canvasOverlay = new BMapGL.CanvasLayer({\r\n paneName: 'markerShadow',\r\n update: function () {\r\n var ctx = this.canvas.getContext('2d');\r\n if (!ctx) {\r\n return;\r\n }\r\n ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\r\n child.update(ctx, pointToPixel);\r\n },\r\n });\r\n }\r\n return canvasOverlay;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n this.destroyed = true;\r\n if (this.view) {\r\n try {\r\n this.view.destroy();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n if (this.map) {\r\n try {\r\n this.map.destroy();\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n }\r\n\r\n async mapLoaded(map: any) {\r\n if (this.cityName) {\r\n if (this.cityName === '温州') {\r\n this.cityName = 'wenzhou';\r\n }\r\n const json: any = await this.http.get('assets/echarts/map/json/' + this.cityName + '.json').toPromise();\r\n const polygonData = [];\r\n let encodeScale = json.UTF8Scale || 1024;\r\n json.features.forEach(({ geometry }) => {\r\n geometry.coordinates = (geometry.coordinates as any[]).forEach((coordinate, i) => {\r\n if (geometry.type === 'MultiPolygon') {\r\n const coordinates = (coordinate as any[]).map((points, j) => {\r\n if (json.UTF8Encoding) {\r\n points = this.decodePolygon(points, geometry.encodeOffsets[i][j], encodeScale);\r\n }\r\n return points;\r\n });\r\n polygonData.push(coordinates);\r\n } else {\r\n if (json.UTF8Encoding) {\r\n coordinate = this.decodePolygon(coordinate, geometry.encodeOffsets[i], encodeScale);\r\n }\r\n polygonData.push([coordinate]);\r\n }\r\n });\r\n });\r\n const data = [\r\n {\r\n geometry: {\r\n type: 'MultiPolygon',\r\n coordinates: polygonData,\r\n },\r\n },\r\n ];\r\n var layer = new mapvgl.PolygonLayer({\r\n lineColor: this.mapCityColor,\r\n lineWidth: this.strokesize || 2,\r\n fillColor: this.shadeColor,\r\n data,\r\n renderOrder: -2,\r\n });\r\n this.view.addLayer(layer);\r\n if (this.mapBackColor && !this.mapBackColor.match(/rgba\\(\\d+,\\d+,\\d+,0\\)/)) {\r\n var maskLayer = new mapvgl.MaskLayer({\r\n color: this.mapBackColor,\r\n data,\r\n renderOrder: -3,\r\n });\r\n this.view.addLayer(maskLayer);\r\n }\r\n }\r\n }\r\n\r\n decodePolygon(coordinate: string, encodeOffsets: number[], encodeScale: number) {\r\n const result = [];\r\n let prevX = encodeOffsets[0];\r\n let prevY = encodeOffsets[1];\r\n\r\n for (let i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n // ZigZag decoding\r\n x = (x >> 1) ^ -(x & 1);\r\n y = (y >> 1) ^ -(y & 1);\r\n // Delta deocding\r\n x += prevX;\r\n y += prevY;\r\n\r\n prevX = x;\r\n prevY = y;\r\n // Dequantize\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async mapTypeChange(mapType: string) {\r\n switch (mapType) {\r\n case 'dark':\r\n if (!this.darkStyle) {\r\n this.darkStyle = await this.http.get('assets/echarts/map/json/custom_map.json').toPromise();\r\n }\r\n this.map.setMapType(BMAP_NORMAL_MAP);\r\n this.map.setMapStyleV2({ styleJson: this.darkStyle });\r\n break;\r\n case 'satellite':\r\n this.map.setMapType(BMAP_SATELLITE_MAP);\r\n break;\r\n case 'custom':\r\n if (this.uploadStyle) {\r\n const styleJson = await this.http.get(this.uploadStyle).toPromise();\r\n this.map.setMapType(BMAP_NORMAL_MAP);\r\n this.map.setMapStyleV2({ styleJson });\r\n }\r\n break;\r\n default:\r\n this.map.setMapType(BMAP_NORMAL_MAP);\r\n this.map.setMapStyleV2({ styleJson: null });\r\n }\r\n }\r\n}\r\n","import { Component, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { SFArrayWidgetSchema } from '@delon/form';\nimport { Data, Property, Widget } from 'bbj-widget-base';\nimport { CustomBaiduMapComponent } from '../custom-baidu-map.component';\ndeclare const BMapGL;\n\n@Component({\n selector: 'sc-wind-layer',\n templateUrl: './wind-layer.component.html',\n styleUrls: ['./wind-layer.component.less'],\n})\n@Widget('台风层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class WindLayerComponent implements OnInit, OnChanges, OnDestroy {\n @Property('清晰度', { type: 'number' })\n sharpness = 1000;\n @Property('标记分组', {\n type: 'array',\n title: '标记分组',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n group: {\n type: 'string',\n title: '分组',\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: { widget: 'myColor' },\n },\n borderColor: {\n type: 'string',\n title: '线条颜色',\n ui: { widget: 'myColor' },\n },\n borderWidth: {\n type: 'number',\n title: '线条粗细',\n },\n shadowColor: {\n type: 'string',\n title: '阴影颜色',\n ui: { widget: 'myColor' },\n },\n image: {\n type: 'string',\n title: '中心图片',\n ui: { widget: 'myUpload' },\n },\n },\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n groups: any = [\n {\n group: '3',\n color: 'rgba(62,194,35,0.4)',\n borderColor: '#60db91',\n borderWidth: 1,\n shadowColor: 'rgba(96,219,145,0.2)',\n },\n {\n group: '2',\n color: 'rgba(255,101,41,0.4)',\n borderColor: '#ff7b48',\n borderWidth: 1,\n shadowColor: 'rgba(255,166,51,0.2)',\n },\n {\n group: '1',\n color: 'rgba(243,68,68,0.4)',\n borderColor: '#ff3355',\n borderWidth: 1,\n shadowColor: 'rgba(255,51,85,0.2)',\n image: '/assets/img/screen/typhoon.png',\n },\n ];\n @Data({\n properties: {\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n r: { type: 'number', title: '半径' },\n group: { type: 'string', title: '分组' },\n },\n })\n data: any[] = [\n {\n lng: 121.3,\n lat: 27.4,\n group: '3',\n r: 160,\n },\n {\n lng: 119.5,\n lat: 29.97,\n group: '3',\n r: 160,\n },\n {\n lng: 120.52,\n lat: 33.93,\n group: '3',\n r: 75,\n },\n {\n lng: 121.3,\n lat: 27.4,\n group: '2',\n r: 80,\n },\n {\n lng: 119.5,\n lat: 29.97,\n group: '2',\n r: 80,\n },\n {\n lng: 120.52,\n lat: 33.93,\n group: '2',\n r: 50,\n },\n {\n lng: 121.3,\n lat: 27.4,\n group: '1',\n r: 40,\n },\n {\n lng: 119.5,\n lat: 29.97,\n group: '1',\n r: 40,\n },\n {\n lng: 120.52,\n lat: 33.93,\n group: '1',\n r: 25,\n },\n ];\n id: string;\n canvasOverlay: any;\n constructor(private parent: CustomBaiduMapComponent) {}\n\n ngOnInit(): void {}\n\n async ngOnChanges() {\n this.updateOverlay();\n // if ((this.parent as any).enable3D) {\n\n // } else {\n // this.parent.childInit({\n // id: this.id,\n // type: 'canvas',\n // update: this.updateCanvas,\n // });\n // }\n }\n\n async updateOverlay() {\n await this.parent.init$;\n this.remove();\n const canvas = this.getCanvas();\n this.addCanvasOverlay(canvas);\n }\n\n addCanvasOverlay(item: any) {\n if (item) {\n var pStart = new BMapGL.Point(item.start.lng, item.start.lat);\n var pEnd = new BMapGL.Point(item.end.lng, item.end.lat);\n var bounds = new BMapGL.Bounds(\n new BMapGL.Point(pStart.lng, pEnd.lat),\n new BMapGL.Point(pEnd.lng, pStart.lat),\n );\n this.canvasOverlay = new BMapGL.GroundOverlay(bounds, {\n type: 'canvas',\n url: item.canvas,\n opacity: 1,\n });\n this.parent.map.addOverlay(this.canvasOverlay);\n }\n // return canvasOverlay;\n }\n\n ngOnDestroy(): void {\n this.remove();\n // this.parent.deleteChild(this.id);\n }\n\n remove() {\n if (this.canvasOverlay) {\n this.parent.map.removeOverlay(this.canvasOverlay);\n this.canvasOverlay = null;\n }\n }\n\n getCanvas() {\n // const images = {};\n // if (this.groups?.length) {\n // for (const group of this.groups) {\n // if (group.image) {\n // images[group.image] = await this.loadImage(group.image);\n // }\n // }\n // }\n // console.log(this.data);\n if (this.data && this.data.length >= 3) {\n let startLng = 180;\n let startLat = 90;\n let endLng = -180;\n let endLat = -90;\n const data = this.data.map((record) => {\n const r = (+record.r * 180) / Math.PI / 6371.393;\n startLng = Math.min(startLng, +record.lng - r);\n startLat = Math.min(startLat, +record.lat - r);\n endLng = Math.max(endLng, +record.lng + r);\n endLat = Math.max(endLat, +record.lat + r);\n return { ...record, r };\n });\n const sharpness = this.sharpness || 1000;\n const multiple = Math.min(sharpness / (endLng - startLng), sharpness / (endLat - startLat));\n const c = document.createElement('canvas');\n c.width = Math.round((endLng - startLng) * multiple);\n c.height = Math.round((endLat - startLat) * multiple);\n const groups = {};\n data.forEach((record) => {\n const group = record.group;\n if (group) {\n let points: any[] = groups[group];\n if (!points) {\n points = [];\n groups[group] = points;\n }\n points.push({\n x: (+record.lng - startLng) * multiple,\n y: (endLat - +record.lat) * multiple,\n r: record.r * multiple,\n });\n }\n });\n this.groups.forEach((group) => {\n const points = groups[group.group];\n if (points?.length >= 3) {\n const ctx = c.getContext('2d');\n const p1 = points[0];\n const p2 = points[Math.floor(points.length / 2)];\n const p3 = points[points.length - 1];\n var gnt = ctx.createRadialGradient(p1.x, p1.y, 0, p1.x, p1.y, p1.r);\n // gnt.addColorStop(1, 'green');\n // gnt.addColorStop(0, 'green');\n gnt.addColorStop(1, group.shadowColor || 'green');\n gnt.addColorStop(0, 'rgba(0,0,0,0)');\n ctx.fillStyle = gnt;\n ctx.beginPath();\n ctx.arc(p1.x, p1.y, p1.r, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.fill();\n const getTangency = (p1, p2) => {\n const l = Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n return { x: p2.x + (p2.r * (p1.y - p2.y)) / l, y: p2.y + (p2.r * (p2.x - p1.x)) / l };\n };\n ctx.beginPath();\n let start = Math.atan((p2.x - p1.x) / (p1.y - p2.y));\n ctx.arc(p1.x, p1.y, p1.r, start - Math.PI, start, false);\n let t = getTangency(p1, p2);\n // ctx.lineTo(t.x, t.y);\n let t2 = getTangency(p2, p3);\n ctx.quadraticCurveTo(t.x, t.y, t2.x, t2.y);\n // ctx.lineTo(t.x, t.y);\n start = Math.atan((p3.x - p2.x) / (p2.y - p3.y));\n ctx.arc(p3.x, p3.y, p3.r, start, start + Math.PI, true);\n t = getTangency(p3, p2);\n t2 = getTangency(p2, p1);\n ctx.quadraticCurveTo(t.x, t.y, t2.x, t2.y);\n // ctx.lineTo(t.x, t.y);\n ctx.closePath();\n ctx.fillStyle = group.color || 'green';\n ctx.fill();\n ctx.lineWidth = group.borderWidth || 1;\n ctx.beginPath();\n ctx.arc(p1.x, p1.y, p1.r, 0, Math.PI * 2, true);\n ctx.closePath();\n ctx.strokeStyle = group.borderColor || 'green';\n ctx.stroke();\n // if (group.image && images[group.image]) {\n // const imageSize = p1.r * 0.8;\n // ctx.drawImage(images[group.image], p1.x - imageSize, p1.y - imageSize, imageSize * 2, imageSize * 2);\n // }\n }\n });\n // const points = this.data.map((record) => {\n // return {\n // x: (+record.lng - startLng) * multiple,\n // y: (endLat - +record.lat) * multiple,\n // r: record.r * multiple,\n // };\n // });\n // c.toBlob((blob)=>{\n // FileSaver.saveAs(blob,'typhoon.png')\n // })\n\n return {\n start: {\n lng: startLng,\n lat: startLat,\n },\n end: {\n lng: endLng,\n lat: endLat,\n },\n canvas: c,\n };\n }\n }\n\n // updateCanvas = (ctx: CanvasRenderingContext2D, pointToPixel: Function) => {\n // if (this.data && this.data.length >= 3) {\n // const data = this.data.map((record) => {\n // const r = (+record.r * 180) / Math.PI / 6371.393;\n // return { lat: +record.lat, lng: +record.lng, r, group: record.group };\n // });\n\n // const groups = {};\n // data.forEach((record) => {\n // const group = record.group;\n // if (group) {\n // let points: any[] = groups[group];\n // if (!points) {\n // points = [];\n // groups[group] = points;\n // }\n // const pixel = pointToPixel(record);\n // const pixel2 = pointToPixel({ lat: record.lat, lng: record.lng + record.r });\n // points.push({\n // x: pixel.x,\n // y: pixel.y,\n // r: pixel2.x - pixel.x,\n // });\n // }\n // });\n // this.groups.forEach((group) => {\n // const points = groups[group.group];\n // if (points?.length >= 3) {\n // const p1 = points[0];\n // const p2 = points[Math.floor(points.length / 2)];\n // const p3 = points[points.length - 1];\n // var gnt = ctx.createRadialGradient(p1.x, p1.y, 0, p1.x, p1.y, p1.r);\n\n // gnt.addColorStop(1, group.shadowColor || 'green');\n // gnt.addColorStop(0, 'rgba(0,0,0,0)');\n // ctx.fillStyle = gnt;\n // ctx.beginPath();\n // ctx.arc(p1.x, p1.y, p1.r, 0, Math.PI * 2, true);\n // ctx.closePath();\n // ctx.fill();\n // const getTangency = (p1, p2) => {\n // const l = Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n // return { x: p2.x + (p2.r * (p1.y - p2.y)) / l, y: p2.y + (p2.r * (p2.x - p1.x)) / l };\n // };\n // ctx.beginPath();\n // let start = Math.atan((p2.x - p1.x) / (p1.y - p2.y));\n // ctx.arc(p1.x, p1.y, p1.r, start - Math.PI, start, false);\n // let t = getTangency(p1, p2);\n // let t2 = getTangency(p2, p3);\n // ctx.quadraticCurveTo(t.x, t.y, t2.x, t2.y);\n // start = Math.atan((p3.x - p2.x) / (p2.y - p3.y));\n // ctx.arc(p3.x, p3.y, p3.r, start, start + Math.PI, true);\n // t = getTangency(p3, p2);\n // t2 = getTangency(p2, p1);\n // ctx.quadraticCurveTo(t.x, t.y, t2.x, t2.y);\n // ctx.closePath();\n // ctx.fillStyle = group.color || 'green';\n // ctx.fill();\n // ctx.lineWidth = group.borderWidth || 1;\n // ctx.beginPath();\n // ctx.arc(p1.x, p1.y, p1.r, 0, Math.PI * 2, true);\n // ctx.closePath();\n // ctx.strokeStyle = group.borderColor || 'green';\n // ctx.stroke();\n // }\n // });\n // }\n // };\n\n // loadImage(url: string): Promise<HTMLElement> {\n // return new Promise((resolve, reject) => {\n // const image = new Image();\n // image.src = url;\n // image.onload = () => {\n // resolve(image);\n // };\n // image.onerror = (e) => {\n // resolve(null);\n // };\n // });\n // }\n}\n","import { Inject, forwardRef, NgZone, OnInit, OnChanges, OnDestroy, Directive, SimpleChanges } from '@angular/core';\r\nimport { CustomBaiduMapComponent } from './custom-baidu-map.component';\r\n\r\n@Directive()\r\nexport abstract class BaseLayer implements OnInit, OnDestroy, OnChanges {\r\n inited: boolean;\r\n layers = [];\r\n constructor(protected parent: CustomBaiduMapComponent, protected zone: NgZone) {}\r\n ngOnInit(): void {\r\n this.zone.runOutsideAngular(() => {\r\n this.updateLayers();\r\n });\r\n }\r\n\r\n ngOnChanges(changes:SimpleChanges) {\r\n if (this.inited) {\r\n this.zone.runOutsideAngular(() => {\r\n this.updateData();\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.removeLayers();\r\n }\r\n\r\n async updateLayers() {\r\n await this.parent.init$;\r\n this.removeLayers();\r\n this.layers = this.createLayers();\r\n this.layers.forEach((layer) => {\r\n this.parent.addLayer(layer);\r\n });\r\n this.inited = true;\r\n this.updateData();\r\n }\r\n\r\n removeLayers() {\r\n if (this.layers.length) {\r\n this.layers.forEach((layer) => {\r\n this.parent.removeLayer(layer);\r\n });\r\n this.layers = [];\r\n }\r\n }\r\n\r\n abstract updateData(): void;\r\n\r\n abstract createLayers(): any[];\r\n}\r\n","import { v1 as uuid } from 'uuid';\r\nexport const getUUID = () => {\r\n return uuid().replace(/-/g, '');\r\n};\r\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Inject,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { Data, DataOutput, Property, Widget, Event, DataInput } from 'bbj-widget-base';\nimport { ParentContainerComponent } from '../../parent-container/parent-container.component';\nimport { SFArrayWidgetSchema } from '@delon/form';\nimport { getFontStyle } from '../../shared/util/style.util';\nimport { CustomBaiduMapComponent } from '../custom-baidu-map.component';\nimport { BaseLayer } from '../base-layer';\nimport { FileUrlService } from '../../shared/service/file-url.service';\nimport { NzContextMenuService } from 'ng-zorro-antd/dropdown';\nimport { ScrollDispatcher } from '@angular/cdk/scrolling';\nimport { getUUID } from '../../shared/util/base.util';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\ndeclare const mapvgl;\n\n@Component({\n selector: 'sc-baidu-marker-layer',\n templateUrl: './baidu-marker-layer.component.html',\n styleUrls: ['./baidu-marker-layer.component.less'],\n providers: [ScrollDispatcher], // 防止虚拟滚到导致浮层关闭\n})\n@Widget('标记层', {\n group: 'component',\n image: '',\n icon: '',\n hidden: true,\n})\nexport class BaiduMarkerLayerComponent extends BaseLayer implements OnInit, OnDestroy, OnChanges {\n @Property('', { min: 1, ui: { widget: 'myPicture', spanLabel: 0, spanControl: 24 } })\n iconUrl = 'assets/img/screen/marker.png';\n @Property('图标宽', { type: 'number' })\n iconWidth = 25;\n @Property('图标高', { type: 'number' })\n iconHeight = 38.25;\n @Property('图标偏移x', { type: 'number' })\n iconOffsetX = 0;\n @Property('图标偏移y', { type: 'number' })\n iconOffsetY = -19.125;\n // @Property('分组', {type: 'string'})\n // group = '';\n\n @Property('移至中心')\n toCenter: boolean = false;\n @Property('点聚合')\n enableMarkerClusterer: boolean = false;\n @Property('聚合最小直径', { type: 'number', ui: { visibleIf: { enableMarkerClusterer: [true] } } })\n clusterMinSize = 25;\n @Property('聚合最大直径', { type: 'number', ui: { visibleIf: { enableMarkerClusterer: [true] } } })\n clusterMaxSize = 40;\n @Property('聚合字体', { ui: { widget: 'myFont' } })\n clusterFont: any = {\n color: '#ffffff',\n size: 16,\n };\n @Property('聚合颜色', {\n ui: {\n widget: 'seriesColor',\n visibleIf: { enableMarkerClusterer: [true] },\n },\n })\n clusterGradient: string[];\n @Property('聚合最大级别', { type: 'number', ui: { visibleIf: { enableMarkerClusterer: [true] } } })\n clusterMaxZoom = 4;\n @Property('显示标签', { ui: { visibleIf: { enableMarkerClusterer: [false] } } })\n showLabel: boolean;\n @Property('标签显示缩放等级', { ui: { visibleIf: { showLabel: [true] } } })\n showLabelMinZoom: number;\n // @Property('标签底色', { ui: { widget: 'myColor', visibleIf: { showLabel: [true] } } })\n // labelBackground: string;\n @Property('标签字体', { ui: { widget: 'myFont', visibleIf: { showLabel: [true] } } })\n labelFont: any = {\n family: '',\n color: '#000000',\n weight: 'normal',\n size: 16,\n space: 0,\n lineHeight: 0,\n };\n @Property('描边颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n stroke: string;\n @Property('描边粗细', { type: 'integer' })\n strokeWidth: number;\n @Property('阴影', { ui: { widget: 'myShadow' } })\n shadow: any = { color: '', X: 0, Y: 0, Z: 0 };\n @Property('标签偏移x', { ui: { widget: 'number', visibleIf: { showLabel: [true] } } })\n labelOffsetX: number;\n @Property('标签偏移y', { ui: { widget: 'number', visibleIf: { showLabel: [true] } } })\n labelOffsetY: number;\n @Property('选中放大')\n enlargeOnSelect: boolean;\n @Property('点击空白取消选中', { type: 'boolean', default: true })\n unselectOnClickBlank = true;\n @Property('标记分组', {\n type: 'array',\n title: '标记分组',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n group: {\n type: 'string',\n title: '分组',\n },\n type: {\n title: '类型',\n type: 'string',\n enum: [\n {\n label: '图标',\n value: 'icon',\n },\n {\n label: '圆点',\n value: 'circle',\n },\n {\n label: '正方形',\n value: 'square',\n },\n {\n label: '波纹',\n value: 'wave',\n },\n {\n label: '扩散',\n value: 'bubble',\n },\n ],\n default: 'icon',\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: { widget: 'myColor', visibleIf: { type: ['circle', 'square'] } },\n },\n size: {\n type: 'number',\n title: '尺寸',\n ui: { visibleIf: { type: ['circle', 'square', 'wave', 'bubble'] } },\n },\n imageUrl: {\n type: 'string',\n title: '图片',\n ui: {\n widget: 'myPicture',\n visibleIf: { type: ['icon'] },\n },\n },\n width: {\n type: 'number',\n title: '宽度',\n default: 19,\n ui: { visibleIf: { type: ['icon'] } },\n },\n height: {\n type: 'number',\n title: '高度',\n default: 25,\n ui: { visibleIf: { type: ['icon'] } },\n },\n XOffset: {\n type: 'number',\n title: 'X轴偏移',\n ui: { visibleIf: { type: ['icon'] } },\n },\n YOffset: {\n type: 'number',\n title: 'Y轴偏移',\n ui: { visibleIf: { type: ['icon'] } },\n },\n enableMarkerClusterer: {\n type: 'boolean',\n title: '是否聚合',\n ui: { visibleIf: { type: ['icon'] } },\n },\n },\n required: [],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n groups = [];\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n information: { type: 'string', title: '信息' },\n group: { type: 'string', title: '标记分组' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n icon: { type: 'string', title: '图标' },\n },\n })\n _data: any[] = [\n {\n id: '1',\n address: '',\n information: '暂无信息',\n group: '',\n lng: '120.7',\n lat: '28',\n },\n ];\n // id: string;\n @DataOutput(['id', 'address', 'lng', 'lat'])\n @Event('选中值改变', {\n params: {\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n },\n })\n makerClick = new EventEmitter();\n @DataInput('选中id')\n selectedId: string;\n @Event('点击', {\n params: {\n properties: {\n id: { type: 'string', title: 'id' },\n address: { type: 'string', title: '地点' },\n lng: { type: 'number', title: '经度' },\n lat: { type: 'number', title: '纬度' },\n },\n },\n })\n onClick = new EventEmitter();\n\n layers = [];\n inited: boolean;\n // defaultLayer: any;\n layerMap = {};\n clickData: any;\n clickTimeout: any;\n @ViewChild('menu')\n menu: any;\n subMarkers: any[];\n dataMap = {};\n groupData: {};\n lastSelect: any;\n currentSelectedId: string;\n textLayer: any;\n destroy$ = new Subject();\n constructor(\n protected parent: CustomBaiduMapComponent,\n protected zone: NgZone,\n private fileUrlService: FileUrlService,\n private nzContextMenuService: NzContextMenuService,\n ) {\n super(parent, zone);\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n if (this.showLabel && this.showLabelMinZoom != null) {\n this.parent.zoomChange.pipe(takeUntil(this.destroy$)).subscribe((zoom) => {\n this.updateTextVisible(zoom);\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.inited) {\n if (changes._data) {\n this.zone.runOutsideAngular(() => {\n this.updateData();\n });\n }\n if (changes.selectedId) {\n if (this.selectedId != this.currentSelectedId) {\n this.select(this.selectedId, { move: true });\n }\n }\n }\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n createLayers(): any[] {\n const layers = [];\n this.layerMap = {};\n const defaultLayer = this.createLayer();\n this.layerMap[''] = defaultLayer;\n layers.push(defaultLayer);\n if (this.groups?.length) {\n this.groups.forEach((group) => {\n if (group.group) {\n const layer = this.createLayer(group);\n this.layerMap[group.group] = layer;\n layers.push(layer);\n }\n });\n }\n if (!this.enableMarkerClusterer && this.showLabel) {\n const textOptions = {\n ...this.getTextOptions(this.labelFont),\n // color: '#fff',\n // fontFamily: 'Microsoft Yahei',\n // fontSize: 14,\n flat: false,\n collides: true,\n offset: [this.labelOffsetX || 0, this.labelOffsetY || 0],\n stroke: {\n color: this.stroke,\n },\n padding: [2, 2],\n margin: [0, 0],\n };\n if (this.stroke && this.stroke !== 'rgba(0,0,0,0)') {\n textOptions.stroke = { color: this.stroke };\n }\n if (this.strokeWidth) {\n textOptions.lineWidth = this.strokeWidth;\n }\n if (this.shadow) {\n textOptions.shadow = {\n color: this.shadow.color,\n blur: this.shadow.Z,\n offsetX: this.shadow.X,\n offsetY: this.shadow.Y,\n };\n }\n this.textLayer = new mapvgl.TextLayer(textOptions);\n if (this.showLabelMinZoom != null) {\n this.parent.init$.then(() => {\n const zoom = this.parent.map.getZoom();\n this.updateTextVisible(zoom);\n });\n }\n layers.push(this.textLayer);\n }\n return layers;\n }\n\n createLayer(group?: any) {\n let layer: any;\n const type = group?.type;\n if (type === 'circle' || type === 'square') {\n const options = {\n shape: type,\n color: group?.color || 'rgba(50, 50, 200, 1)',\n size: group?.size || 10,\n };\n this.addPickEvent(options);\n layer = new mapvgl.PointLayer(options);\n } else if (type === 'bubble' || type === 'wave') {\n const options = {\n type,\n color: group?.color || 'rgba(255, 0, 0, 1)',\n size: group?.size || 10,\n duration: 1,\n trail: 1,\n };\n this.addPickEvent(options);\n layer = new mapvgl.CircleLayer(options);\n } else {\n const iconOptions = this.getIconOptions(group);\n if (this.enableMarkerClusterer || group?.enableMarkerClusterer) {\n const options: any = {\n iconOptions,\n textOptions: this.getTextOptions(this.clusterFont),\n minSize: this.clusterMinSize || 25,\n maxSize: this.clusterMaxSize || 40,\n };\n if (this.clusterGradient?.length) {\n const gradient: any = {};\n gradient[0] = this.clusterGradient[0];\n this.clusterGradient.slice(1).forEach((g, i) => {\n gradient[(i + 1) / this.clusterGradient.length] = g;\n });\n options.gradient = gradient;\n }\n if (this.clusterMaxZoom != null) {\n options.maxZoom = this.clusterMaxZoom;\n }\n this.addPickEvent(options);\n layer = new mapvgl.ClusterLayer(options);\n } else {\n this.addPickEvent(iconOptions);\n layer = new mapvgl.IconLayer(iconOptions);\n }\n }\n return layer;\n }\n\n updateTextVisible(zoom?: number) {\n if (this.textLayer) {\n if (zoom >= this.showLabelMinZoom) {\n this.textLayer.show();\n } else {\n this.textLayer.hide();\n }\n }\n }\n\n updateData() {\n this.dataMap = {};\n if (this.toCenter && this._data.length > 0) {\n let maxLng = -180;\n let minLng = 180;\n let maxLat = -90;\n let minLat = 90;\n this._data.forEach((res) => {\n maxLng = Math.max(maxLng, res.lng);\n minLng = Math.min(minLng, res.lng);\n maxLat = Math.max(maxLat, res.lat);\n minLat = Math.min(minLat, res.lat);\n });\n this.parent.setRectCenterAndZoom(minLng, maxLng, minLat, maxLat);\n }\n const groupData = {};\n this.groupData = groupData;\n const textData = [];\n const groups = Object.keys(this.layerMap);\n groups.forEach((group) => {\n groupData[group] = [];\n });\n // const defaultData = [];\n this._data.forEach((record) => {\n let groupName = record.group;\n if (groupName == null || this.layerMap[groupName] == null) {\n groupName = '';\n }\n let id = record.id_value || record.id;\n if (id == null || id == '') {\n id = getUUID();\n }\n const item: any = {\n geometry: {\n type: 'Point',\n coordinates: [record.lng, record.lat],\n },\n properties: {\n text: record.address,\n id,\n group: groupName,\n raw: record,\n },\n };\n // MapVGL的bug,ClusterLayer的iconOptions无效,只能通过properties设置\n\n const layer = this.layerMap[groupName];\n if (layer != null && layer instanceof mapvgl.ClusterLayer) {\n const options = layer.getOptions();\n if (options.iconOptions) {\n const { height, width, offset, icon } = options.iconOptions;\n item.properties = { height, width, offset, icon, ...item.properties };\n }\n }\n if (record.icon) {\n item.properties.icon = this.fileUrlService.getUrl(record.icon);\n }\n // if (this.selectedId && this.selectedId == id) {\n // this.updateSize(item, 1.5);\n // this.lastSelect = item;\n // }\n groupData[groupName].push(item);\n this.dataMap[item.properties.id] = item;\n if (this.textLayer) {\n textData.push(item);\n }\n });\n if (this.selectedId) {\n this.select(this.selectedId, { move: this.selectedId != this.currentSelectedId, resetLayer: false, force: true });\n }\n groups.forEach((group) => {\n const layer = this.layerMap[group];\n const data = groupData[group];\n layer.setData(data);\n });\n if (this.textLayer) {\n this.textLayer.setData(textData);\n }\n }\n\n getIconOptions(group: any) {\n let icon = this.iconUrl || 'assets/img/screen/marker.png';\n let height = this.iconHeight || 38.25;\n let width = this.iconWidth || 25;\n let offsetX = this.iconOffsetX == null ? 0 : this.iconOffsetX;\n let offsetY = this.iconOffsetY == null ? -height / 2 : this.iconOffsetY;\n if (group && group.imageUrl) {\n icon = this.fileUrlService.getUrl(group.imageUrl);\n width = group.width || width;\n height = group.height || height;\n offsetX = group.XOffset != null ? group.XOffset : 0;\n offsetY = group.YOffset != null ? group.YOffset : -height / 2;\n }\n const iconOptions: any = {\n icon,\n width,\n height,\n offset: [offsetX, offsetY],\n };\n return iconOptions;\n }\n\n getTextOptions(font: any) {\n const textOptions: any = {};\n if (font) {\n if (font.size) textOptions.fontSize = font.size;\n if (font.family) textOptions.fontFamily = font.family;\n if (font.color) textOptions.color = font.color;\n // switch (font.weight) {\n // case 'lighter':\n // textOptions.lineWidth = 1;\n // break;\n // case 'normal':\n // textOptions.lineWidth = 2;\n // break;\n // case 'bold':\n // textOptions.lineWidth = 3;\n // break;\n // case 'bolder':\n // textOptions.lineWidth = 4;\n // break;\n // }\n }\n return textOptions;\n }\n\n addPickEvent(options: any) {\n options.enablePicked = true;\n options.onClick = ({ dataItem }) => {\n // 每个图层都会触发一次click事件,如果每个图层都没有点中标记点,传出null\n if (dataItem) {\n this.clickData = dataItem;\n }\n if (this.unselectOnClickBlank !== false && this.clickTimeout == null) {\n this.clickTimeout = setTimeout(() => {\n if (this.clickData == null) {\n this.selectedId = null;\n this.select(null);\n }\n this.clickTimeout = null;\n this.clickData = null;\n this.subMarkers = null;\n });\n }\n if (dataItem) {\n if (dataItem.type === 'Feature') {\n const coordinates = dataItem.geometry.coordinates;\n this.parent.setCenterAndZoom(coordinates[0], coordinates[1], this.parent.map.getZoom() + 2);\n } else {\n const data = dataItem.properties.raw;\n if (data) {\n this.selectedId = dataItem.properties.id;\n this.select(dataItem.properties.id);\n this.zone.run(() => {\n this.onClick.emit({ ...data, id: data.id_value || data.id });\n });\n }\n }\n }\n };\n if (this.parent.showType === 'mouseover') {\n let infoWindow = null;\n let infoWindowData = null;\n options.onMousemove = ({ dataItem }) => {\n const data = dataItem != null ? dataItem.properties.raw : null;\n if (infoWindow != null && infoWindowData != data) {\n infoWindow.close();\n infoWindow = null;\n }\n if (data && data.information && infoWindow == null) {\n infoWindowData = data;\n infoWindow = this.parent.openInfoWindow(data, data.lng, data.lat);\n }\n };\n }\n }\n\n select(id: any, options: { move?: boolean; resetLayer?: boolean; force?: boolean } = {}) {\n if (id != this.currentSelectedId || options.force) {\n let item: any;\n if (id != null && id !== '') {\n item = this.dataMap[id];\n // 如果找不到数据,可能是数据还没加载,等数据加载了再执行\n if (item == null) {\n return;\n }\n }\n this.currentSelectedId = id;\n let lastSelectGroup: string;\n let currentSelectGroup: string;\n let selectedData: any;\n if (this.lastSelect) {\n lastSelectGroup = this.lastSelect.properties.group;\n this.updateSize(this.lastSelect, 1);\n this.lastSelect = null;\n }\n if (item) {\n currentSelectGroup = item.properties.group;\n this.updateSize(item, 1.5);\n this.lastSelect = item;\n selectedData = item.properties.raw;\n if (options.move) {\n const layer = this.layerMap[currentSelectGroup];\n let zoom = this.parent.map.getZoom();\n if (layer instanceof mapvgl.ClusterLayer && this.clusterMaxZoom != null && zoom <= this.clusterMaxZoom) {\n zoom = this.clusterMaxZoom + 2;\n }\n this.parent.setCenterAndZoom(selectedData.lng, selectedData.lat, zoom);\n }\n\n if (selectedData.information && this.parent.showType !== 'mouseover') {\n // 防止其他图层将信息窗口关闭\n setTimeout(() => {\n this.parent.openInfoWindow(selectedData, selectedData.lng, selectedData.lat);\n });\n }\n } else {\n selectedData = {};\n }\n if (options.resetLayer !== false) {\n if (currentSelectGroup != null) {\n this.resetLayerData(currentSelectGroup);\n }\n if (lastSelectGroup != null && lastSelectGroup !== currentSelectGroup) {\n this.resetLayerData(lastSelectGroup);\n }\n }\n // 如果选中的id找不到对应数据,可能是数据还没加载,\n if (id == null || item != null) {\n this.zone.run(() => {\n this.makerClick.emit({ ...selectedData, id: selectedData.id_value || selectedData.id });\n });\n }\n }\n }\n\n resetLayerData(group: string) {\n const layer = this.layerMap[group];\n const data = this.groupData[group];\n if (layer && data) {\n layer.setData(data);\n }\n }\n\n updateSize(item: any, scale: number) {\n if (item && this.enlargeOnSelect) {\n const layer = this.layerMap[item.properties.group];\n let options: any;\n\n if (layer instanceof mapvgl.ClusterLayer) {\n options = layer.getOptions().iconOptions;\n } else {\n options = layer.getOptions();\n }\n const { height, width, offset } = options;\n item.properties.height = height * scale;\n item.properties.width = width * scale;\n if (item.properties.offset) {\n item.properties.offset = [offset[0] * scale, offset[1] * scale];\n }\n }\n }\n}\n","import { Component, forwardRef, Inject, NgZone, OnChanges, OnDestroy, OnInit } from '@angular/core';\r\nimport { SFArrayWidgetSchema } from '@delon/form';\r\nimport { Data, Property, Widget } from 'bbj-widget-base';\r\nimport { BaseLayer } from '../base-layer';\r\nimport { CustomBaiduMapComponent } from '../custom-baidu-map.component';\r\n\r\ndeclare const mapvgl;\r\n\r\n@Component({\r\n selector: 'sc-baidu-polyline-layer',\r\n templateUrl: './baidu-polyline-layer.component.html',\r\n styleUrls: ['./baidu-polyline-layer.component.less'],\r\n})\r\n@Widget('折线层', {\r\n group: 'component',\r\n image: '',\r\n icon: '',\r\n hidden: true,\r\n})\r\nexport class BaiduPolylineLayerComponent extends BaseLayer implements OnInit, OnDestroy, OnChanges {\r\n @Property('线条宽度', {\r\n ui: { widget: 'myRange', min: 1, max: 40, step: 1 },\r\n })\r\n strokeWeight = 4;\r\n @Property('线条颜色', {\r\n type: 'string',\r\n ui: {\r\n widget: 'myColor',\r\n },\r\n })\r\n strokeColor = 'rgba(242,213,173,1)';\r\n @Property('线条类型', {\r\n ui: { widget: 'select' },\r\n enum: [\r\n { label: '实线', value: 'solid' },\r\n { label: '虚线', value: 'dashed' },\r\n ],\r\n })\r\n strokeStyle = 'solid';\r\n @Property('虚线间隔', { type: 'number', ui: { visibleIf: { strokeStyle: ['solid'] } } })\r\n dashInterval = 10;\r\n @Property('动画')\r\n animation: boolean;\r\n @Property('动画线段长度', {\r\n type: 'number',\r\n ui: { widget: 'number', visibleIf: { animation: [true] } },\r\n })\r\n interval = 0.1;\r\n @Property('动画循环时间', { type: 'number', ui: { widget: 'number', visibleIf: { animation: [true] } } })\r\n duration = 2;\r\n @Property('拖尾长度', { type: 'number', ui: { widget: 'number', visibleIf: { animation: [true] } } })\r\n trailLength = 0.5;\r\n @Property('图层', {\r\n type: 'array',\r\n maxItems: 10,\r\n items: {\r\n type: 'object',\r\n properties: {\r\n layer: {\r\n type: 'string',\r\n title: '图层',\r\n },\r\n color: {\r\n type: 'string',\r\n title: '颜色',\r\n ui: { widget: 'myColor' },\r\n },\r\n },\r\n required: [],\r\n },\r\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\r\n })\r\n layerOptions = [];\r\n @Data({\r\n properties: {\r\n layer: { type: 'string', title: '图层' },\r\n lng: { type: 'number', title: '经度' },\r\n lat: { type: 'number', title: '纬度' },\r\n group: { type: 'string', title: '线编号' },\r\n },\r\n })\r\n _data: any[] = [\r\n {\r\n group: 'x',\r\n lng: '120.7',\r\n lat: '28',\r\n },\r\n {\r\n group: 'x',\r\n lng: '120.71',\r\n lat: '28.01',\r\n },\r\n {\r\n group: 'x',\r\n lng: '120.79',\r\n lat: '28.1',\r\n },\r\n {\r\n group: 'y',\r\n lng: '120.72',\r\n lat: '28.02',\r\n },\r\n {\r\n group: 'y',\r\n lng: '120.73',\r\n lat: '28.03',\r\n },\r\n {\r\n group: 'y',\r\n lng: '120.81',\r\n lat: '28.12',\r\n },\r\n ];\r\n id: string;\r\n // layer: any;\r\n layerMap: any = {};\r\n\r\n constructor(protected parent: CustomBaiduMapComponent, protected zone: NgZone) {\r\n super(parent, zone);\r\n }\r\n\r\n // ngOnChanges() {\r\n // this.parent.childInit({\r\n // id: this.id,\r\n // strokeWeight: this.strokeWeight,\r\n // strokeColor: this.strokeColor,\r\n // strokeStyle: this.strokeStyle,\r\n // type: 'polyline',\r\n // item: this._data,\r\n // });\r\n // }\r\n\r\n // ngOnInit(): void {}\r\n\r\n // ngOnDestroy(): void {\r\n // this.parent.deleteChild(this.id);\r\n // }\r\n\r\n updateData(): void {\r\n const dataMap = {};\r\n\r\n const layerLineMap = {};\r\n this._data.forEach((record) => {\r\n let layer = record.layer;\r\n if (!this.layerMap[layer]) {\r\n layer = '';\r\n }\r\n let data = dataMap[layer];\r\n let lineMap = layerLineMap[layer];\r\n if (!data) {\r\n data = [];\r\n lineMap = {};\r\n dataMap[layer] = data;\r\n layerLineMap[layer] = lineMap;\r\n }\r\n let group = record.group;\r\n if (group == null) {\r\n group = '';\r\n }\r\n let line = lineMap[group];\r\n if (line == null) {\r\n line = {\r\n geometry: {\r\n type: 'LineString',\r\n coordinates: [],\r\n },\r\n };\r\n lineMap[group] = line;\r\n data.push(line);\r\n }\r\n\r\n line.geometry.coordinates.push([record.lng, record.lat]);\r\n });\r\n Object.keys(this.layerMap).forEach((key) => {\r\n const layer = this.layerMap[key];\r\n const data = dataMap[key] || [];\r\n layer.setData(data);\r\n });\r\n }\r\n\r\n createLayers(): any[] {\r\n const layers = [];\r\n this.layerMap = {};\r\n const defaultLayer = this.createLayer();\r\n this.layerMap[''] = defaultLayer;\r\n layers.push(defaultLayer);\r\n if (this.layerOptions?.length) {\r\n this.layerOptions.forEach((options) => {\r\n if (options.layer) {\r\n const layer = this.createLayer(options);\r\n this.layerMap[options.layer] = layer;\r\n layers.push(layer);\r\n }\r\n });\r\n }\r\n return layers;\r\n // const options: any = {\r\n // color: this.strokeColor,\r\n // width: this.strokeWeight,\r\n // lineCap: 'round',\r\n // animation: this.animation,\r\n // interval: this.interval,\r\n // duration: this.duration,\r\n // trailLength: this.trailLength,\r\n // style: 'arrow',\r\n // styleOptions: {\r\n // color: '#fff',\r\n // width: 10,\r\n // },\r\n // // blend: 'lighter'\r\n // };\r\n // if (this.strokeStyle === 'dashed') {\r\n // const dashInterval = this.dashInterval || 10;\r\n // options.dashArray = [dashInterval, dashInterval];\r\n // }\r\n // this.layer = new mapvgl.LineLayer(options);\r\n // return [this.layer];\r\n }\r\n\r\n createLayer(layerOptions?: any) {\r\n const options: any = {\r\n color: this.strokeColor,\r\n width: this.strokeWeight,\r\n lineCap: 'round',\r\n animation: this.animation,\r\n interval: this.interval,\r\n duration: this.duration,\r\n trailLength: this.trailLength,\r\n // style: 'arrow',\r\n // styleOptions: {\r\n // color: '#fff',\r\n // width: 10,\r\n // },\r\n blend: 'lighter'\r\n };\r\n if (layerOptions) {\r\n if (layerOptions.color) {\r\n options.color = layerOptions.color;\r\n }\r\n }\r\n if (this.strokeStyle === 'dashed') {\r\n const dashInterval = this.dashInterval || 10;\r\n options.dashArray = [dashInterval, dashInterval];\r\n }\r\n const layer = new mapvgl.LineLayer(options);\r\n return layer;\r\n }\r\n}\r\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\nimport { BaseLayer } from '../base-layer';\nimport { CustomBaiduMapComponent } from '../custom-baidu-map.component';\n\ndeclare const mapvgl;\nconst EARTH_RADIUS = 6371.393;\n\n@Component({\n selector: 'sc-typhoon-area-layer',\n templateUrl: './typhoon-area-layer.component.html',\n styleUrls: ['./typhoon-area-layer.component.less'],\n})\n@Widget('风圈', {\n group: 'component',\n hidden: true,\n})\nexport class TyphoonAreaLayerComponent extends BaseLayer implements OnInit {\n @Property('描边颜色', { ui: { widget: 'myColor' } })\n lineColor = 'rgba(238,160,29,0.8)';\n @Property('描边宽度', { type: 'number' })\n lineWidth = 2;\n @Property('填充颜色', { ui: { widget: 'myColor' } })\n fillColor = 'rgba(238,160,29,0.3)';\n @Data({\n properties: {\n lng: { type: 'number', title: '中心经度' },\n lat: { type: 'number', title: '中心纬度' },\n nw: { type: 'number', title: '西北半径' },\n ne: { type: 'number', title: '东北半径' },\n sw: { type: 'number', title: '西南半径' },\n se: { type: 'number', title: '东南半径' },\n },\n })\n data: any[] = [\n {\n lng: 144.7,\n lat: 38.9,\n nw: 50,\n ne: 100,\n sw: 150,\n se: 200,\n },\n ];\n layer: any;\n constructor(protected parent: CustomBaiduMapComponent, protected zone: NgZone) {\n super(parent, zone);\n }\n\n createLayers(): any[] {\n this.layer = new mapvgl.PolygonLayer({\n lineColor: this.lineColor,\n lineWidth: this.lineWidth,\n fillColor: this.fillColor,\n renderOrder: -1,\n });\n return [this.layer];\n }\n\n updateData(): void {\n const data = [];\n this.data.forEach((r) => {\n var kk = this.getTF([+r.lng, +r.lat], +r.ne, +r.se, +r.sw, +r.nw);\n data.push({\n geometry: {\n type: 'Polygon',\n coordinates: [kk],\n },\n });\n });\n this.layer.setData(data);\n }\n\n getTF(lat, ne, se, sw, nw) {\n // 求出方位半径方向上弧形经纬度\n const getPoints = (center, cradius, startAngle) => {\n // l=EARTH_RADIUS*dy/180*Math.PI\n const radius = (cradius * 180) / EARTH_RADIUS / Math.PI;\n // let radius = cradius / 90;\n let pointNum = 90;\n let endAngle = startAngle + Math.PI / 2;\n let points = [];\n for (var i = 0; i <= pointNum; i++) {\n const angle = startAngle + ((endAngle - startAngle) * i) / pointNum;\n const x = center[0] + (radius * Math.cos(angle)) / Math.abs(Math.cos((center[1] * Math.PI) / 180));\n const y = center[1] + radius * Math.sin(angle);\n points.push([x, y]);\n }\n return points;\n };\n\n let r7Ne = getPoints(lat, ne, 0);\n let r7Nw = getPoints(lat, nw, Math.PI / 2);\n let r7Sw = getPoints(lat, sw, Math.PI);\n let r7Se = getPoints(lat, se, (Math.PI * 3) / 2);\n\n return [...r7Ne, ...r7Nw, ...r7Sw, ...r7Se];\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CustomBaiduMapComponent } from './custom-baidu-map.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { WindLayerComponent } from './wind-layer/wind-layer.component';\nimport { BaiduMarkerLayerComponent } from './baidu-marker-layer/baidu-marker-layer.component';\nimport { BaiduPolylineLayerComponent } from './baidu-polyline-layer/baidu-polyline-layer.component';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { NzNoAnimationModule } from 'ng-zorro-antd/core/no-animation';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { NzRadioModule } from 'ng-zorro-antd/radio';\nimport { FormsModule } from '@angular/forms';\nimport { TyphoonAreaLayerComponent } from './typhoon-area-layer/typhoon-area-layer.component';\n\n@NgModule({\n declarations: [\n CustomBaiduMapComponent,\n BaiduMarkerLayerComponent,\n BaiduPolylineLayerComponent,\n WindLayerComponent,\n TyphoonAreaLayerComponent,\n ],\n imports: [\n CommonModule,\n WidgetBaseModule,\n NzDropDownModule,\n NzNoAnimationModule,\n ScrollingModule,\n NzRadioModule,\n FormsModule,\n ],\n})\nexport class CustomBaiduMapModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(CustomBaiduMapComponent, { scaleContent: false });\n widgetService.register(BaiduMarkerLayerComponent);\n widgetService.register(BaiduPolylineLayerComponent);\n widgetService.register(WindLayerComponent);\n widgetService.register(TyphoonAreaLayerComponent);\n }\n}\n","export const icons = [\r\n 'icondingwei1',\r\n 'iconxialakuang',\r\n 'icontianjiazu',\r\n 'iconguanlianshuxing',\r\n 'iconbianzu401',\r\n 'iconanzhuang',\r\n 'iconbaojing',\r\n 'iconbuguifan',\r\n 'iconbianzu621',\r\n 'iconbumen',\r\n 'iconbianzu6',\r\n 'iconbianzu3311',\r\n 'icondaohang',\r\n 'iconbianzu111',\r\n 'iconditu2',\r\n 'iconfuzeren',\r\n 'iconfuzhi1',\r\n 'icongengduo1',\r\n 'iconbuguifanjiashi',\r\n 'iconfadianji',\r\n 'iconbianzu33xiawu42347',\r\n 'iconche',\r\n 'iconguanli',\r\n 'icondukaqi',\r\n 'iconhulian1',\r\n 'iconhoutai',\r\n 'icondianhua2',\r\n 'iconliangqizuozhanjianting',\r\n 'iconguanggao',\r\n 'iconkongqijinghua',\r\n 'iconjuleledaohang',\r\n 'iconluxiang1',\r\n 'iconchouti1',\r\n 'icongerenxinxilan',\r\n 'iconqiqiu',\r\n 'iconpihuating',\r\n 'iconkulian',\r\n 'iconhulianxiawu35716',\r\n 'iconguiji',\r\n 'iconrenyuan1',\r\n 'iconnongye',\r\n 'iconremen',\r\n 'iconshajunshebei',\r\n 'iconnengyuan1',\r\n 'iconshezhixiawu20722',\r\n 'iconshujuyuan',\r\n 'iconxiangpiting',\r\n 'iconlajitong1',\r\n 'iconjiaocheng',\r\n 'icontuichu2',\r\n 'iconweifanggaizao',\r\n 'iconxiaodudu',\r\n 'iconxiaodu1',\r\n 'iconriqi',\r\n 'iconxiaofang',\r\n 'iconwurenji',\r\n 'icontanzhaodengshijian',\r\n 'iconquanxian',\r\n 'iconxiaodu2',\r\n 'iconbumenxiawu14836',\r\n 'iconqiche',\r\n 'iconwulianwang',\r\n 'iconxiaoqu',\r\n 'iconxingzhuangjiehe1',\r\n 'iconxunjian1',\r\n 'iconyangan',\r\n 'iconxinxixiugai',\r\n 'iconyangan1',\r\n 'iconxinshuai',\r\n 'iconzhihang1',\r\n 'iconxiaolian',\r\n 'iconxieya',\r\n 'iconLEDTrackLight-02',\r\n 'iconzhaomingdeng',\r\n 'iconzhangpeng',\r\n 'iconyouhuiquanquanmian',\r\n 'iconicon_gouwu1',\r\n 'iconLedCleanEnergy',\r\n 'iconicon_diannao1',\r\n 'iconled2',\r\n 'iconzhihang2',\r\n 'iconzhineng',\r\n 'iconzhihang',\r\n 'iconjindu',\r\n 'iconhoutui',\r\n 'iconguanbi1',\r\n 'iconhulian',\r\n 'iconkefu',\r\n 'iconkuaidi',\r\n 'iconlianjie',\r\n 'iconkefurexian',\r\n 'iconliuchengjiedian',\r\n 'iconmengjiangnan',\r\n 'iconmoxing',\r\n 'iconqunyou',\r\n 'iconrenyuanguanli',\r\n 'iconqingchuhuancun3x1',\r\n 'iconrenyuanjiegou',\r\n 'iconrongyu',\r\n 'iconshangpin',\r\n 'iconsaomiaohongbao',\r\n 'iconsaoyisao',\r\n 'iconshebei',\r\n 'iconshenghuo',\r\n 'iconshexiang',\r\n 'icontianjia',\r\n 'icontuichubeifen2',\r\n 'icontishi',\r\n 'iconshexiangtou',\r\n 'iconshijiandefuben',\r\n 'iconsoucha',\r\n 'iconxiuxi1',\r\n 'iconxuanze',\r\n 'iconyoutui',\r\n 'iconyonghu',\r\n 'iconzhuanyi',\r\n 'iconicon_diannao',\r\n 'iconwenduji',\r\n 'iconicon_dengdaicaiji',\r\n 'iconzhihuinongye',\r\n 'iconsousuo1',\r\n 'iconicon_neirongjilu',\r\n 'iconicon_ppt',\r\n 'iconshuidi',\r\n 'iconicon_word',\r\n 'iconicon_txt',\r\n 'iconwenjiansoucha',\r\n 'iconwodedianzan1',\r\n 'iconyanganjiankong',\r\n 'iconzhinenglajitong',\r\n 'iconwuliu',\r\n 'iconGroup2',\r\n 'iconicon_gouwu',\r\n 'iconxunjian',\r\n 'iconyouhuiquan',\r\n 'iconyinhangka',\r\n 'iconwodepinglun1',\r\n 'iconGroup2beifen2',\r\n 'iconicon_zhuye',\r\n 'iconwangluo',\r\n 'iconbanbenhao1',\r\n 'iconbianzu11',\r\n 'iconbianzu22',\r\n 'iconbianzu12',\r\n 'iconbianzu13',\r\n 'iconchukou',\r\n 'iconbianzu361',\r\n 'icondaima',\r\n 'iconbianzu39',\r\n 'icondajian',\r\n 'icondiannao',\r\n 'icondenglu',\r\n 'iconbianzu381',\r\n 'iconfangan',\r\n 'icongengxin',\r\n 'icongenghuantouxiang1',\r\n 'icongouwuche',\r\n 'iconguangbo',\r\n 'iconcaijian',\r\n 'iconbaocun',\r\n 'iconbianji',\r\n 'iconbeijing',\r\n 'icondian',\r\n 'iconbukejian',\r\n 'iconfuzhi',\r\n 'iconkejian',\r\n 'iconfangwen',\r\n 'iconguanbi',\r\n 'iconjia',\r\n 'iconlajitong2',\r\n 'iconshangyibu',\r\n 'iconren',\r\n 'iconshangchuan',\r\n 'iconsshanchu',\r\n 'iconshijian',\r\n 'iconsousuo',\r\n 'iconsuo',\r\n 'iconsuoding',\r\n 'iconmokuai',\r\n 'icontexiao',\r\n 'icontubiao',\r\n 'iconwenzi',\r\n 'iconwenjianjia',\r\n 'icontianjiaxuanxiang',\r\n 'iconxiala',\r\n 'iconkaisuo',\r\n 'iconxiayibu',\r\n 'icontupian',\r\n 'iconsxingzhuang',\r\n 'iconxiuxi',\r\n 'iconzhinanzhen',\r\n 'iconyulan',\r\n 'iconstuichu',\r\n 'iconyinle',\r\n 'iconyun',\r\n 'iconzhinanzhen',\r\n];\r\n","import { Component, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { DataOutput, Property, Widget } from 'bbj-widget-base';\nimport { NzMessageService } from 'ng-zorro-antd/message';\nimport { Observable, Observer } from 'rxjs';\nimport { NzUploadChangeParam, NzUploadFile } from 'ng-zorro-antd/upload';\n\n@Component({\n selector: 'sc-upload',\n templateUrl: './upload.component.html',\n styleUrls: ['./upload.component.less'],\n})\n@Widget('文件上传', {\n group: 'component',\n image: 'assets/img/screen/file-upload.png',\n icon: 'icontubiao',\n})\nexport class UploadComponent implements OnInit, OnChanges {\n @Property('上传样式', {\n type: 'string',\n ui: {\n widget: 'select',\n },\n enum: [\n { label: '经典', value: 'classics' },\n { label: '头像', value: 'portrait' },\n { label: '拖拽', value: 'drag' },\n ],\n })\n style = 'classics';\n listType = '';\n class: any = {};\n showUploadList = true;\n loading = false;\n avatarUrl?: string;\n type = '';\n @DataOutput('值')\n valueChange = new EventEmitter<any>();\n constructor(private msg: NzMessageService) {}\n handleChange(info: NzUploadChangeParam) {\n const status = info.file.status;\n if (status === 'done') {\n this.msg.success(`${info.file.name} 上传成功`);\n this.valueChange.emit(info.file.response);\n if (this.style === 'portrait') {\n this.getBase64(info.file.originFileObj, (img: string) => {\n this.loading = false;\n this.avatarUrl = img;\n });\n }\n } else if (status === 'error') {\n this.msg.error(`${info.file.name} 上传失败`);\n this.loading = false;\n } else if (status === 'uploading') {\n this.loading = true;\n }\n }\n private getBase64(img: File, callback: (img: string) => void): void {\n const reader = new FileReader();\n reader.addEventListener('load', () => callback(reader.result.toString()));\n reader.readAsDataURL(img);\n }\n ngOnInit(): void {}\n ngOnChanges(changes: SimpleChanges): void {\n switch (this.style) {\n case 'portrait':\n this.listType = 'picture-card';\n this.showUploadList = false;\n this.class.width = '128px';\n this.class.height = '128px';\n this.type = '';\n break;\n case 'drag':\n this.type = 'drag';\n this.listType = '';\n this.showUploadList = true;\n this.class.width = '';\n this.class.height = '';\n break;\n default:\n this.type = '';\n this.listType = 'text';\n this.showUploadList = true;\n this.class.width = '';\n this.class.height = '';\n break;\n }\n }\n beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]) => {\n if (this.style !== 'portrait') {\n return null;\n }\n return new Observable((observer: Observer<boolean>) => {\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\n if (!isJpgOrPng) {\n this.msg.error('只能上传图片');\n observer.complete();\n return;\n }\n const isLt2M = file.size / 1024 / 1024 < 2;\n if (!isLt2M) {\n this.msg.error('图片要小于2M');\n observer.complete();\n return;\n }\n observer.next(isJpgOrPng && isLt2M);\n observer.complete();\n });\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UploadComponent } from './upload.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\n\n\n\n@NgModule({\n declarations: [UploadComponent],\n imports: [CommonModule, WidgetBaseModule,NzIconModule,NzUploadModule,NzButtonModule],\n})\nexport class UploadModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(UploadComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { CustomExport, Data, DataSchema, Property, Widget } from 'bbj-widget-base';\nimport { SFArrayWidgetSchema, SFSchema, SFStringWidgetSchema, SFUISchema } from '@delon/form';\n\n@Component({\n selector: 'sc-cross-table',\n templateUrl: './cross-table.component.html',\n styleUrls: ['./cross-table.component.less'],\n})\n@Widget('交叉表格', { group: 'table', icon: 'icontubiao', image: '/assets/img/screen/cross-table.png' })\nexport class CrossTableComponent implements OnInit, OnChanges, CustomExport {\n @Property('条数/页', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } })\n pageSize = 10;\n @Property('表头背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n theadBackground = '#fafafa';\n @Property('表头字体', { ui: { widget: 'myFont' } })\n headFont: any = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };\n @Property('内容对齐', {\n type: 'string',\n ui: {\n widget: 'select',\n },\n enum: [\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n { label: '居中', value: 'center' },\n ],\n })\n contentAlign = 'center';\n @Property('表格背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n tbodyBackground = '#fafafa';\n @Property('显示边框', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n showBorder = false;\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };\n // @Property('字段交叉', {\n // type: 'array',\n // maxItems: 1,\n // items: {\n // type: 'object',\n // properties: {\n // key: {\n // type: 'string',\n // title: '绑定字段',\n // },\n // value: {\n // type: 'string',\n // title: '绑定值',\n // }\n // },\n // required: ['key', 'value'],\n // },\n // ui: {grid: {arraySpan: 24}, spanControl: 24} as SFArrayWidgetSchema,\n // })\n // cross = [{key: 'x', value: 'y', mergeField: 's'}];\n @Property('交叉字段', {\n cross: {\n type: 'string',\n ui: {} as SFStringWidgetSchema,\n },\n required: [''],\n })\n cross = 'x';\n @Property('显示分页', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n needPage = false;\n @Property('绑定值', {\n crossVal: {\n type: 'string',\n ui: {} as SFStringWidgetSchema,\n },\n required: [''],\n })\n crossVal = 'y';\n @Data({})\n _data: any[] = [\n { x: '一月', y: 10, s: '收入' },\n { x: '二月', y: 20, s: '收入' },\n { x: '三月', y: 25, s: '收入' },\n { x: '四月', y: 35, s: '收入' },\n { x: '五月', y: 27, s: '收入' },\n { x: '六月', y: 28, s: '收入' },\n { x: '一月', y: 18, s: '支出' },\n { x: '二月', y: 28, s: '支出' },\n { x: '三月', y: 32, s: '支出' },\n { x: '四月', y: 48, s: '支出' },\n { x: '五月', y: 20, s: '支出' },\n { x: '六月', y: 17, s: '支出' },\n ];\n @DataSchema('_data')\n schema: SFSchema;\n widthConfig = [];\n rows: any = [];\n heads: any = [];\n ths: any[] = [];\n headStyle: any;\n bodyStyle: any;\n\n groups: any = {};\n data: any[][] = [];\n\n constructor() {}\n\n ngOnInit(): void {\n this.headStyle = {\n family: this.headFont.family,\n color: this.headFont.color,\n weight: this.headFont.weight,\n fontSize: this.headFont.size + 'px',\n space: this.headFont.space,\n lineHeight: this.headFont.lineHeight,\n background: this.theadBackground,\n };\n this.bodyStyle = {\n family: this.font.family,\n color: this.font.color,\n weight: this.font.weight,\n fontSize: this.font.size + 'px',\n space: this.font.space,\n lineHeight: this.font.lineHeight,\n background: this.tbodyBackground,\n };\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data || changes.schema) {\n this.data = [];\n this.groups = {};\n this.heads = [];\n this.ths = [];\n this.widthConfig = [];\n if (this.schema?.properties) {\n Object.keys(this.schema.properties).forEach((key) => {\n const property = this.schema.properties[key];\n if (this.cross !== key && this.crossVal !== key && !(property.ui as SFUISchema)?.hidden) {\n this.heads.push(key);\n this.ths.push(property.title);\n this.widthConfig.push(100 + 'px');\n }\n });\n } else {\n /**\n * 取数据源的key 不包含交叉字段\n */\n if (this._data[0] == null) {\n return;\n }\n Object.keys(this._data[0]).forEach((key) => {\n if (this.cross !== key && this.crossVal !== key && !this.heads.includes(key)) {\n this.heads.push(key);\n this.ths.push(key);\n this.widthConfig.push(100 + 'px');\n }\n });\n }\n\n /**\n * 循环数据源 根据字段名 取出表格前半段值 并进行分组 groups 为 map\n */\n this._data.forEach((data) => {\n const group: any = [];\n this.heads.forEach((head) => {\n group.push(data[head]);\n });\n if (this.groups[group] == null) {\n this.groups[group] = [];\n }\n if (!this.ths.includes(data[this.cross])) {\n this.ths.push(data[this.cross]);\n this.widthConfig.push(100 + 'px');\n }\n this.groups[group].push({ title: data[this.cross], value: data[this.crossVal] });\n });\n this.assemble();\n }\n }\n\n assemble() {\n if (this.groups === null || this.groups === 'undefined') {\n return;\n }\n this.rows = [];\n Object.keys(this.groups).forEach((group) => {\n let row = [];\n const arr = group.split(',');\n for (let i = 0; i < arr.length; i++) {\n row.push({ title: this.ths[i], value: arr[i] });\n }\n let totalval = 0;\n this.groups[group].forEach((t: any) => {\n row.push(t);\n totalval = totalval + t.value;\n });\n if (row.length > 0 && row.length < this.ths.length) {\n const nrow = [];\n for (const head of this.ths) {\n let val = '';\n row.forEach((td) => {\n if (td.title === head) {\n val = td.value;\n }\n });\n nrow.push({ title: head, value: val });\n }\n row = nrow;\n }\n row.push({ title: '合计', value: Number(totalval).toFixed(2) });\n this.rows.push(row);\n });\n this.data = this.rows;\n\n this.ths.push('合计');\n this.widthConfig.push(100 + 'px');\n }\n exportWord() {\n let html = `<table>\n <thead>\n <tr>\n ${this.ths.map((head) => `<th>${head}</th>`).join('')}\n </tr>\n </thead>\n <tbody>\n ${this.data\n .map(\n (row) =>\n `<tr>\n ${row.map((td) => `<td>${td.value}</td>`).join('')}\n </tr>`,\n )\n .join('')}\n </tbody>\n</table><br/>`;\n console.log(html);\n return html;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CrossTableComponent } from './cross-table.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport {NzTableModule} from 'ng-zorro-antd/table';\n\n\n\n\n@NgModule({\n declarations: [CrossTableComponent],\n imports: [CommonModule, WidgetBaseModule, NzTableModule],\n})\nexport class CrossTableModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(CrossTableComponent);\n }\n}\n","import { Component, OnInit, ElementRef, OnChanges, SimpleChanges, EventEmitter } from '@angular/core';\nimport { Widget, Property, Data, DataSchema, DataOutput, CustomExport, Sheet, Event } from 'bbj-widget-base';\nimport { SFArrayWidgetSchema, SFSchema } from '@delon/form';\nimport { isNum } from '@delon/util';\n\n@Component({\n selector: 'sc-table',\n templateUrl: './table.component.html',\n styleUrls: ['./table.component.less'],\n})\n@Widget('表格', { group: 'table', icon: 'icontubiao', image: '/assets/img/screen/custom-table.png' })\nexport class TableComponent implements OnInit, OnChanges, CustomExport {\n @Property('条数/页', { ui: { widget: 'myRange', min: 1, max: 100, step: 1 } })\n pageSize = 10;\n @Property('表头背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n theadBackground = '#fafafa';\n @Property('表头字体', { ui: { widget: 'myFont' } })\n headFont: any = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };\n @Property('内容对齐', {\n type: 'string',\n ui: {\n widget: 'select',\n },\n enum: [\n { label: '左对齐', value: 'left' },\n { label: '右对齐', value: 'right' },\n { label: '居中', value: 'center' },\n ],\n })\n contentAlign = 'center';\n @Property('表格背景', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n tbodyBackground = '#FFFFFF';\n\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = { family: '', color: '#222222', weight: 'normal', size: 12, space: 0, lineHeight: 2 };\n @Property('是否自定义', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n isCustom = false;\n @Property('显示边框', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n showBorder = false;\n @Property('显示分页', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n needPage = false;\n @Property('统计个数', {\n type: 'boolean',\n ui: {\n checkedChildren: '开',\n unCheckedChildren: '关',\n },\n })\n isCount = false;\n @Property('合计', { type: 'string', ui: { optionalHelp: '填写列名,逗号分隔' } })\n sumColumns: string;\n @Property('颜色分层', {\n type: 'array',\n maxItems: 99,\n items: {\n type: 'object',\n properties: {\n gte: {\n type: 'number',\n title: '大于',\n },\n lte: {\n type: 'number',\n title: '小于',\n minimum: 1,\n },\n color: {\n type: 'string',\n title: '颜色',\n ui: {\n widget: 'myColor',\n },\n },\n },\n required: ['gte', 'lte'],\n },\n ui: { grid: { arraySpan: 24 }, spanControl: 24 } as SFArrayWidgetSchema,\n })\n level = [];\n // @Property('字段交叉', {\n // type: 'array',\n // maxItems: 1,\n // items: {\n // type: 'object',\n // properties: {\n // key: {\n // type: 'string',\n // title: '绑定字段',\n // },\n // value: {\n // type: 'string',\n // title: '绑定值',\n // },\n // mergeField: {\n // type: 'string',\n // title: '合并字段',\n // }\n // },\n // required: [],\n // },\n // ui: {grid: {arraySpan: 24}, spanControl: 24} as SFArrayWidgetSchema,\n // })\n // cross = [];\n @Property('自定义列', {\n type: 'array',\n maxItems: 99,\n items: {\n type: 'object',\n properties: {\n group: {\n type: 'string',\n title: '分组名',\n },\n title: {\n type: 'string',\n title: '列名',\n },\n field: {\n type: 'string',\n title: 'bind',\n },\n width: {\n type: 'number',\n title: '宽度',\n },\n ismerge: {\n type: 'boolean',\n title: '是否合并',\n },\n needlevel: {\n type: 'boolean',\n title: '颜色分层',\n },\n showFilter: {\n type: 'boolean',\n title: '显示筛选',\n },\n },\n required: ['title', 'field'],\n },\n ui: { visibleIf: { isCustom: [true] }, grid: { arraySpan: 24 }, spanLabel: 24, spanControl: 24 },\n })\n customCol: any = [];\n // hasGroup = false;\n isCross = false;\n image: string;\n @Data({})\n _data: any[] = [\n { x: '一月', y: '10%', s: '收入' },\n { x: '二月', y: 20, s: '收入' },\n { x: '三月', y: 25, s: '收入' },\n { x: '四月', y: 35, s: '收入' },\n { x: '五月', y: 27, s: '收入' },\n { x: '六月', y: 28, s: '收入' },\n { x: '一月', y: 18, s: '支出' },\n { x: '二月', y: 28, s: '支出' },\n { x: '三月', y: 32, s: '支出' },\n { x: '四月', y: 48, s: '支出' },\n { x: '五月', y: 20, s: '支出' },\n { x: '六月', y: 17, s: '支出' },\n ];\n @DataSchema('_data')\n schema: SFSchema;\n\n @DataOutput('单元格内容')\n tdChange = new EventEmitter<any>();\n @DataOutput('行数据')\n trChange = new EventEmitter<any>();\n @DataOutput('列名')\n rowChange = new EventEmitter<any>();\n @Event('点击单元格', {\n params: {\n properties: {\n index: { type: 'string', title: '列名' },\n value: { type: 'string', title: '值' },\n data: { type: 'object', title: '行数据' },\n },\n },\n })\n tdClick = new EventEmitter<any>();\n // y: string;\n headStyle: any = {};\n bodyStyle: any = {};\n columns: any;\n groups: any;\n // rowSize = 1;\n widthConfig = [];\n rows = [];\n totalCount = [];\n needCount = false;\n\n dataSize: number;\n titleSize: number;\n searchValue = {};\n headers = [];\n filterValues: { [key: string]: any[] } = {};\n sumData = {};\n constructor(private ele: ElementRef) {}\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.schema || changes.customCol) {\n this.updateHeader();\n this.updateData();\n } else if (changes._data) {\n if (!this.schema) {\n this.updateHeader();\n }\n this.updateData();\n }\n }\n\n ngOnInit() {\n // if (this.ele) {\n // const height = this.ele.nativeElement.offsetHeight - 110;\n // this.y = height > 0 ? height + 'px' : '0px';\n // }\n // console.log(this.groupBy(this._data,'x'));\n // console.log(this.countGroupRow);\n this.headStyle = {\n family: this.headFont.family,\n color: this.headFont.color,\n weight: this.headFont.weight,\n fontSize: this.headFont.size + 'px',\n space: this.headFont.space,\n lineHeight: this.headFont.lineHeight,\n background: this.theadBackground,\n };\n this.bodyStyle = {\n family: this.font.family,\n color: this.font.color,\n weight: this.font.weight,\n fontSize: this.font.size + 'px',\n space: this.font.space,\n lineHeight: this.font.lineHeight,\n };\n }\n\n updateHeader() {\n this.columns = [];\n this.widthConfig = [];\n if (this.isCustom && this.customCol[0]) {\n const hasGroup = this.customCol.some((data) => data.group != null && data.group !== '');\n this.groups = [];\n const subHeader = [];\n const groupMap = {};\n this.customCol.forEach((data) => {\n const grouped = !!data.group;\n const groupName = data.group || data.title;\n this.widthConfig.push((data.width || 100) + 'px');\n const column: any = {\n title: data.title,\n index: data.field,\n ismerge: data.ismerge,\n iscount: data.iscount,\n needlevel: data.needlevel,\n showFilter: data.showFilter,\n };\n\n let group = groupMap[groupName];\n if (group == null) {\n group = { title: groupName, row: 1, col: 0, columns: [] };\n groupMap[groupName] = group;\n this.groups.push(group);\n }\n group.columns.push(column);\n group.col++;\n if (grouped) {\n subHeader.push(column);\n } else {\n group.index = data.field;\n if (hasGroup) {\n group.row = 2;\n }\n }\n });\n this.headers = [this.groups, subHeader];\n } else {\n if (this.schema) {\n Object.keys(this.schema.properties).forEach((key) => {\n const property = this.schema.properties[key];\n if (property) {\n const column = { title: property.title || key, index: key, schema: property };\n this.columns.push(column);\n }\n });\n } else if (this._data && this._data[0]) {\n const data = this._data[0];\n Object.keys(data).forEach((key) => {\n const column = { title: key, index: key };\n this.widthConfig.push(100 + 'px');\n this.columns.push(column);\n });\n }\n this.headers = [this.columns];\n console.log('header', this.headers);\n }\n }\n\n updateData() {\n this.dataSize = this._data.length;\n if (this._data[0]) {\n this.titleSize = Object.keys(this._data[0]).length;\n }\n if (this.isCustom && this.customCol[0]) {\n this.updateFilterOptions();\n this.groupBy(this._data);\n this.count();\n }\n if (this.sumColumns) {\n this.sumData = {};\n this.sumColumns.split(',').forEach((column) => {\n let sum: number = this._data.reduce((p, c) => {\n const value = c[column];\n if (value && isNum(value)) {\n p += +value;\n }\n return p;\n }, 0);\n this.sumData[column] = +sum.toFixed(2);\n });\n }\n }\n\n /**\n * 更新筛选下拉框里的数据\n */\n updateFilterOptions() {\n if (this.groups) {\n this.groups.forEach((group) => {\n group.columns.forEach((column) => {\n if (column.showFilter) {\n const valueSet = new Set<any>();\n const target = group.columns.length == 1 ? group : column;\n target.filter = [];\n if (this._data) {\n this._data.forEach((row) => {\n const key = column.index;\n const value = row[key];\n const filterValue = this.filterValues[key];\n const checked = filterValue && filterValue.includes(value);\n if (checked || this.filterMatch(row, key)) {\n if (value != null && value != '' && !valueSet.has(value)) {\n valueSet.add(value);\n const item = { value, checked };\n target.filter.push(item);\n }\n }\n });\n }\n }\n });\n });\n }\n }\n\n filterMatch(record: any, exclude?: string): boolean {\n const keys = Object.keys(this.filterValues);\n for (const key of keys) {\n if (key !== exclude) {\n const filterValue = this.filterValues[key];\n const value = record[key];\n if (filterValue?.length && !filterValue.includes(value)) {\n return false;\n }\n }\n }\n return true;\n }\n\n groupBy(array) {\n this.rows = [];\n array.forEach((record) => {\n if (this.filterMatch(record)) {\n const row = [];\n for (const group of this.groups) {\n for (const column of group.columns) {\n const value = record[column.index];\n // if (column.showFilter) {\n // const filterValue = column.filterValue || group.filterValue;\n // if (filterValue?.length && !filterValue.includes(value)) {\n // return;\n // }\n // }\n let myColor = '';\n if (column.needlevel) {\n myColor = this.getColor(record[column.index]);\n }\n if (myColor == '') {\n myColor = this.tbodyBackground;\n }\n row.push({ rowspan: 1, value, index: column.index, color: myColor, data: record });\n }\n }\n this.rows.push(row);\n }\n });\n this.customCol.forEach((column, i) => {\n if (column.ismerge) {\n this.needPage = false;\n let lastTd = null;\n this.rows.forEach((row) => {\n const td = row[i];\n if (lastTd != null && lastTd.value === td.value) {\n lastTd.rowspan++;\n td.rowspan = 0;\n } else {\n lastTd = td;\n }\n });\n }\n });\n }\n\n getColor(value): string {\n // value=value.toString().replace('%','');\n const regExp: RegExp = /-?\\d+\\.?\\d*/;\n const result = regExp.exec(value);\n if (this.level.length > 0) {\n for (const t of this.level) {\n if (t.gte <= Number(result[0]) && Number(result[0]) < t.lte) {\n return t.color;\n }\n }\n }\n return '';\n }\n\n count() {\n const name = 'value';\n this._data.forEach((data) => {\n this.groups.forEach((group, i) => {\n group.columns.forEach((column, j) => {\n let item = {};\n let check = false;\n this.totalCount.forEach((ite) => {\n if (ite.filed === column.index) {\n item = ite;\n check = true;\n return;\n }\n });\n if (i === 0 && j === 0 && !check) {\n item = { filed: column.index, value: '合计' };\n }\n if (i !== 0 || j !== 0) {\n if (!check) {\n item = { filed: column.index };\n }\n if (column.iscount) {\n this.needCount = true;\n if (!item[name]) {\n item[name] = 0;\n }\n item[name] = Number(item[name]) + this.getDataValue(data, column.index);\n } else {\n item[name] = '';\n }\n }\n if (!check) {\n this.totalCount.push(item);\n }\n });\n });\n });\n }\n\n getDataValue(array, index) {\n let result = 0;\n array.forEach((data) => {\n if (data.index === index) {\n result = Number(data.value);\n return;\n }\n });\n return result;\n }\n\n onTdClick(td: any, i: number) {\n const { index, value, data } = td;\n this.tdChange.emit(value);\n this.rowChange.emit(this.customCol[i].title);\n this.tdClick.emit({ index, value, data });\n }\n\n onTdClickByGroup(data: any, column: any) {\n const index = column.index;\n const value = data[index];\n this.tdChange.emit(value);\n this.rowChange.emit(column.title);\n this.tdClick.emit({ index, value, data });\n }\n\n onTrClick(data: any) {\n // if (this.isCustom) {\n // data.forEach((a) => {\n // console.log('tr:td' + a.value);\n // });\n // }\n this.trChange.emit(data);\n }\n\n onCheck(column: any, values: any[]) {\n column.filterChecked = values;\n }\n\n filter(column: any) {\n this.filterValues[column.index] = column.filterChecked;\n // column.filterValue = column.filterChecked;\n this.updateData();\n column.filterVisible = false;\n }\n\n reset(column: any) {\n column.filterChecked = [];\n column.filter = column.filter.map((item) => ({\n value: item.value,\n }));\n this.filter(column);\n }\n\n export(): Sheet {\n const data = [];\n const merges = [];\n if (this.groups) {\n const row1 = [];\n const row2 = [];\n this.groups.forEach((group) => {\n const colIndex = row1.length;\n group.columns.forEach((column) => {\n row1.push(group.title);\n row2.push(column.title);\n });\n if (group.row > 1 || group.col > 1) {\n merges.push({ s: { r: 0, c: colIndex }, e: { r: group.row - 1, c: colIndex + group.col - 1 } });\n }\n });\n data.push(row1, row2);\n this._data.forEach((rowData) => {\n const rowIndex = data.length;\n const row = [];\n rowData.forEach((td, i) => {\n row.push(td.value);\n if (td.rowspan > 1) {\n merges.push({ s: { r: rowIndex, c: i }, e: { r: rowIndex + td.rowspan - 1, c: i } });\n }\n });\n data.push(row);\n });\n } else {\n const row1 = this.columns.map((column) => column.title);\n data.push(row1);\n this._data.forEach((rowData) => {\n const row = this.columns.map((column) => rowData[column.index]);\n data.push(row);\n });\n }\n return { data, merges };\n }\n\n exportWord() {\n const element = this.ele.nativeElement as HTMLElement;\n let html = '';\n const tables = element.querySelectorAll('table');\n if (tables.length === 1) {\n html += tables.item(0).outerHTML;\n } else if (tables.length > 1) {\n html += '<table>';\n tables.forEach((table) => {\n table = table.cloneNode(true) as HTMLTableElement;\n const measureRow = table.querySelector('.ant-table-measure-now');\n if (measureRow) {\n measureRow.parentElement.removeChild(measureRow);\n }\n html += table.innerHTML;\n });\n html += '</table><br/>';\n }\n return html;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TableComponent } from './table.component';\nimport { NzTableModule } from 'ng-zorro-antd/table';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzDropDownModule } from 'ng-zorro-antd/dropdown';\nimport { FormsModule } from '@angular/forms';\nimport { NzCheckboxModule } from 'ng-zorro-antd/checkbox';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\n\n@NgModule({\n declarations: [TableComponent],\n imports: [\n CommonModule,\n FormsModule,\n WidgetBaseModule,\n NzTableModule,\n NzPipesModule,\n NzSelectModule,\n NzIconModule,\n NzDropDownModule,\n NzCheckboxModule,\n NzButtonModule\n ],\n})\nexport class TableModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(TableComponent);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { LazyService } from '@delon/util';\r\n\r\ndeclare const Highcharts;\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class HighChartsService {\r\n private loadHighChartsPromise: Promise<any>;\r\n private loadHighCharts3DPromise: Promise<any>;\r\n constructor(private lazy: LazyService) {}\r\n\r\n load() {\r\n if (typeof Highcharts !== 'undefined') {\r\n return Promise.resolve();\r\n }\r\n if (this.loadHighChartsPromise == null) {\r\n this.loadHighChartsPromise = this.lazy.loadScript('assets/js/highcharts/highcharts.js');\r\n }\r\n return this.loadHighChartsPromise;\r\n }\r\n\r\n async load3D() {\r\n await this.load();\r\n if (this.loadHighCharts3DPromise == null) {\r\n this.loadHighCharts3DPromise = this.lazy.loadScript('assets/js/highcharts/highcharts-3d.js');\r\n }\r\n return this.loadHighCharts3DPromise;\r\n }\r\n}\r\n","import { Component, ElementRef, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';\nimport { LazyService } from '@delon/util';\nimport { FindValueSubscriber } from 'rxjs/internal/operators/find';\nimport { Data, Property, Widget } from 'bbj-widget-base';\nimport { HighChartsService } from '../shared/service/highcharts.service';\nimport { getFontStyle } from '../shared/util/style.util';\ndeclare var Highcharts: any;\n@Component({\n selector: 'sc-pie3d-chart',\n templateUrl: './pie3d-chart.component.html',\n styleUrls: ['./pie3d-chart.component.less'],\n})\n@Widget('3D饼图', {\n group: 'pieChart',\n image: 'assets/img/screen/pie3d.png',\n icon: 'icontubiao',\n})\nexport class Pie3dChartComponent implements OnInit, OnChanges {\n static initPluginPromise = null;\n\n @ViewChild('container', { static: true })\n container: ElementRef;\n @Property('标题', { type: 'string' })\n title = '';\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: '',\n };\n @Property('浮标', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n buoy = false;\n @Property('填充', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n colors = ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'];\n @Property('饼图厚度', { type: 'number' })\n thickness = 45;\n @Property('倾斜角度', { type: 'number' })\n angle = 60;\n @Property('图例开关', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n showLegend = true;\n @Property('图例间距', { type: 'number' })\n itemDistance = 80;\n @Property('高度系数', { type: 'number' })\n coefficient = 1;\n @Property('开始角度', { type: 'number' })\n startAngle = 90;\n @Property('图例水平', {\n ui: { widget: 'select' },\n enum: [\n { label: '居中', value: 'center' },\n { label: '居左', value: 'left' },\n { label: '居右', value: 'right' },\n ],\n })\n alignType = 'center';\n @Property('图例垂直', {\n ui: { widget: 'select' },\n enum: [\n { label: '居上', value: 'top' },\n { label: '居下', value: 'bottom' },\n { label: '居中', value: 'middle' },\n ],\n })\n verticalAlign = 'bottom';\n @Property('提示框字体', { ui: { widget: 'myFont' } })\n tooltipFont: any;\n @Data({\n properties: {\n x: { type: 'string', title: '类目' },\n y: { type: 'number', title: '值' },\n },\n })\n _data = [\n { x: '一月', y: 33 },\n { x: '二月', y: 31 },\n { x: '三月', y: 11 },\n { x: '四月', y: 11 },\n { x: '五月', y: 7 },\n { x: '六月', y: 20 },\n ];\n data: any[] = [];\n\n constructor(private highChartsService: HighChartsService) {}\n\n ngOnInit(): void {}\n\n async ngOnChanges(changes: SimpleChanges) {\n await this.initPlugin();\n this.reloadData();\n let each = Highcharts.each,\n round = Math.round,\n cos = Math.cos,\n sin = Math.sin,\n deg2rad = Math.PI / 180;\n Highcharts.wrap(Highcharts.seriesTypes.pie.prototype, 'translate', function (proceed) {\n proceed.apply(this, [].slice.call(arguments, 1));\n // Do not do this if the chart is not 3D\n if (!this.chart.is3d()) {\n return;\n }\n var series = this,\n chart = series.chart,\n options = chart.options,\n seriesOptions = series.options,\n depth = seriesOptions.depth || 0,\n options3d = options.chart.options3d,\n alpha = options3d.alpha,\n beta = options3d.beta,\n z = seriesOptions.stacking ? (seriesOptions.stack || 0) * depth : series._i * depth;\n z += depth / 2;\n if (seriesOptions.grouping !== false) {\n z = 0;\n }\n each(series.data, function (point) {\n var shapeArgs = point.shapeArgs,\n angle;\n point.shapeType = 'arc3d';\n var ran = point.options.h;\n shapeArgs.z = z;\n shapeArgs.depth = depth * 0.75 + ran;\n shapeArgs.alpha = alpha;\n shapeArgs.beta = beta;\n shapeArgs.center = series.center;\n shapeArgs.ran = ran;\n angle = (shapeArgs.end + shapeArgs.start) / 2;\n point.slicedTranslation = {\n translateX: round(cos(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)),\n translateY: round(sin(angle) * seriesOptions.slicedOffset * cos(alpha * deg2rad)),\n };\n });\n });\n (function (H) {\n H.wrap(Highcharts.SVGRenderer.prototype, 'arc3dPath', function (proceed) {\n // Run original proceed method\n var ret = proceed.apply(this, [].slice.call(arguments, 1));\n ret.zTop = (ret.zOut + 0.5) / 100;\n return ret;\n });\n })(Highcharts);\n\n let sum = this._data.reduce((sum, data) => sum + Number(data.y), 0);\n this._data.sort((a, b) => {\n return b.y - a.y;\n });\n const data = [];\n this._data.forEach((record) => {\n // const x=record.x;\n // const s=record.s;\n // const y=record.y;\n const { x, y } = record;\n let obj: any;\n if (sum === 0) {\n obj = { name: x, y: 1, h: (100 / this._data.length) * (this.coefficient || 1) };\n } else {\n obj = { name: x, y: Number(y), h: (Number(y) / sum) * 100 * (this.coefficient || 1) };\n }\n\n data.push(obj);\n });\n let pointFormat = '{series.name}: <b>{point.percentage:.1f}%</b>';\n let labelFormat = '<span style=\"{color}\">{name} :{y}</span>';\n let format = '<span style=\"color:{point.color}\">{point.y}<br/>{point.name}';\n if (sum === 0) {\n pointFormat = '{series.name}: <b>0%</b>';\n labelFormat = '<span style=\"{color}\">{name} :0</span>';\n format = '<span style=\"color:{point.color}\">0<br/>{point.name}';\n }\n const options = {\n legend: {\n itemStyle: {\n color: this.font.color,\n fontSize: this.font.size + 'px',\n fontWeight: this.font.weight,\n fontFamily: this.font.family,\n },\n verticalAlign: this.verticalAlign,\n align: this.alignType,\n itemDistance: this.itemDistance,\n labelFormat,\n },\n chart: {\n type: 'pie',\n animation: false,\n events: {\n load: function () {\n var each = Highcharts.each,\n points = this.series[0].points;\n each(points, function (p, i) {\n p.graphic.attr({\n translateY: -p.shapeArgs.ran,\n });\n p.graphic.side1.attr({\n translateY: -p.shapeArgs.ran,\n });\n p.graphic.side2.attr({\n translateY: -p.shapeArgs.ran,\n });\n });\n },\n },\n options3d: {\n enabled: true,\n alpha: this.angle,\n beta: 0,\n },\n },\n title: {\n text: this.title,\n style: {\n color: this.font.color,\n fontSize: this.font.size + 'px',\n fontWeight: this.font.weight,\n fontFamily: this.font.family,\n },\n },\n tooltip: {\n pointFormat,\n style: getFontStyle(this.tooltipFont),\n },\n plotOptions: {\n pie: {\n showInLegend: this.showLegend,\n allowPointSelect: false,\n cursor: 'pointer',\n depth: this.thickness,\n point: {\n events: {\n legendItemClick: function () {\n return false;\n },\n },\n },\n dataLabels: {\n style: getFontStyle(this.font),\n enabled: this.buoy,\n format,\n // formatter,\n },\n },\n },\n colors: this.colors,\n series: [\n {\n type: 'pie',\n name: this.title,\n startAngle: this.startAngle,\n data,\n },\n ],\n };\n let chart = Highcharts.chart(this.container.nativeElement, options);\n }\n reloadData() {}\n\n initPlugin() {\n return this.highChartsService.load3D();\n }\n\n // async _initPlugin() {\n // await this.lazy.loadScript('assets/js/highcharts/highcharts.js');\n // await this.lazy.loadScript('assets/js/highcharts/highcharts-3d.js');\n // // await this.lazy.loadScript('https://code.highcharts.com.cn/highcharts/modules/exporting.js');\n // // await this.lazy.loadScript('https://img.hcharts.cn/highcharts-plugins/highcharts-zh_CN.js');\n // // await this.lazy.loadScript('https://code.highcharts.com.cn/highcharts/themes/dark-unica.js');\n // }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Pie3dChartComponent } from './pie3d-chart.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n\n\n@NgModule({\n declarations: [Pie3dChartComponent],\n imports: [CommonModule, WidgetBaseModule],\n})\nexport class Pie3dChartModule { \n constructor(widgetService: WidgetService) {\n widgetService.register(Pie3dChartComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-multi-title-gauge',\n templateUrl: './multi-title-gauge.component.html',\n styleUrls: ['./multi-title-gauge.component.less']\n})\n@Widget('多标题仪表盘', {\n group: 'otherChart',\n image: 'assets/img/screen/multiTitleGauge.png', \n icon: 'icontubiao',\n})\nexport class MultiTitleGaugeComponent implements OnInit, OnChanges {\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n\n @Property('字体', { ui: { widget: 'myFont' } })\n detailFont: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 14,\n space: 0,\n lineHeight: 12,\n };\n @Property('百分号', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n percent = false;\n @Property('类别颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n visibleIf: { colorSwitch: [true] }\n },\n })\n colors = ['#058DC7', '#50B432', '#ED561B', '#DDDF00',\n '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4'];\n @Property('起始角度', {\n ui: { widget: 'myRange', min: 90, max: 360, step: 1 },\n })\n startAngle = 225;\n @Property('结束角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 1 },\n })\n endAngle = -45;\n @Property('标签', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = false;\n @Property('最大值', {\n ui: { widget: 'number' },\n })\n max = 100;\n @Property('最小值', {\n ui: { widget: 'number' },\n })\n min = 0;\n @Property('指针长度', {\n ui: { widget: 'number' },\n })\n pointerLength = 80;\n @Property('环宽', {\n ui: { widget: 'number' },\n })\n width = 12;\n @Property('显示指针', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n showPointer = true;\n @Property('显示刻度', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n showScale = true;\n image: string;\n chartOption: any = {};\n @Data({\n properties: {\n name: { type: 'string', title: '文字' },\n value: { type: 'number', title: '值' },\n },\n })\n _data = [\n { name: '速度', value: 48 },\n { name: '温度', value: 20 }\n ];\n\n constructor() { }\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n const style = {\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n };\n\n // const color = [];\n // const color1 = [];\n // let seriesColor;\n // if (this.seriesColor && this.seriesColor.value) {\n // seriesColor = this.seriesColor.value;\n // } else {\n // seriesColor = this.seriesColor;\n // }\n // for (let i = 0; i < seriesColor.length; i++) {\n // color.push({\n // type: 'linear',\n // x: 0,\n // y: 0,\n // x2: 1,\n // y2: 0,\n // global: false,\n // colorStops: [\n // { offset: 0, color: seriesColor[i][0] },\n // { offset: 1, color: seriesColor[i][1] },\n // ],\n // });\n // }\n // let count = 1;\n // if (seriesColor.length > 1) {\n // count = 1 / seriesColor.length;\n // for (let i = 0; i < seriesColor.length; i++) {\n // color1.push([count * (i + 1), color[i]]);\n // }\n // }\n if(!this.showPointer){\n this.pointerLength=0;\n }\n this.chartOption = {\n series: [{\n type: 'gauge',\n anchor: {\n show: this.showPointer,\n showAbove: true,\n size: 18,\n itemStyle: {\n color: '#FAC858'\n }\n },\n pointer: {\n icon: 'path://M2.9,0.7L2.9,0.7c1.4,0,2.6,1.2,2.6,2.6v115c0,1.4-1.2,2.6-2.6,2.6l0,0c-1.4,0-2.6-1.2-2.6-2.6V3.3C0.3,1.9,1.4,0.7,2.9,0.7z',\n width: 8,\n length: this.pointerLength + '%',\n offsetCenter: [0, '8%']\n },\n progress: {\n show: true,\n overlap: true,\n roundCap: true,\n width:this.width,\n },\n axisLine: {\n roundCap: true,\n lineStyle: {\n width: this.width,\n }\n },\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n splitLine: {\n show: this.showScale,\n },\n axisTick: {\n show: this.showScale,\n },\n axisLabel: {\n show: this.showScale,\n color: '#fff'\n // distance: 50\n },\n data: [],\n color: this.colors,\n title: {\n show: this.label,\n fontSize: this.font.size,\n color: this.font.color,\n },\n detail: {\n formatter: this.percent ? '' + '{value}' + '%' : '{value}',\n width: 40,\n height: this.detailFont.size,\n fontSize: this.detailFont.size,\n color: this.detailFont.color,\n backgroundColor: 'auto',\n borderRadius: 3,\n show:this.label\n },\n max: this.max,\n min: this.min,\n }]\n };\n // console.log(JSON.stringify(this.chartOption));\n }\n this.reloadData();\n }\n\n ngOnInit(): void {\n }\n reloadData() {\n let datas = [];\n if (this._data) {\n let count = this._data.length + 1;\n let numa = 200 / count;\n let numb = numa - 100;\n this._data.forEach((a, index) => {\n let obj = {\n value: a.value,\n name: a.name,\n title: {\n offsetCenter: [(numb + (index * numa)) + '%', '30%']\n },\n detail: {\n offsetCenter: [(numb + (index * numa)) + '%', '50%']\n }\n }\n datas.push(obj);\n })\n }\n this.chartOption.series[0].data = datas;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MultiTitleGaugeComponent } from './multi-title-gauge.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NgxEchartsModule } from 'ngx-echarts';\n\n\n\n@NgModule({\n declarations: [MultiTitleGaugeComponent],\n imports: [\n CommonModule, WidgetBaseModule, NgxEchartsModule\n ]\n})\nexport class MultiTitleGaugeModule { \n constructor(widgetService: WidgetService) {\n widgetService.register(MultiTitleGaugeComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Property, Widget, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-gauge-progress',\n templateUrl: './gauge-progress.component.html',\n styleUrls: ['./gauge-progress.component.less'],\n})\n@Widget('进度条仪表盘', {\n group: 'otherChart',\n image: 'assets/img/screen/gauge-progress.png',\n icon: 'icontubiao',\n})\nexport class GaugeProgressComponent implements OnInit, OnChanges {\n @Property('数值字体', { ui: { widget: 'myFont' } })\n numfont: any = {\n family: 'Microsoft YaHei',\n color: '#ffffff',\n weight: 'normal',\n size: 21,\n space: 0,\n lineHeight: '20',\n };\n\n @Property('可视个数', { type: 'number' })\n slidesPerView = 1;\n\n @Property('间距', { type: 'number' })\n spaceBetween = 0;\n\n @Property('左右按钮', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n navigation = true;\n\n @Property('按钮偏移', { type: 'number' })\n navigationMoveVal = -60;\n\n @Property('左图标', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n navigationLeftIcon = null;\n\n @Property('右图标', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n navigationRightIcon = null;\n\n @Property('显示模式', {\n ui: { widget: 'select' },\n enum: [{ label: '图标卡片', value: 'card' }],\n })\n showType = 'card';\n\n @Property('卡片背景', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n cardBgImg = null;\n navigationBtnConfig = {\n prevEl: '.swiper-navigation-prev',\n nextEl: '.swiper-navigation-next',\n };\n //========================================\n @Property('表盘颜色', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n seriesColor: any = { gradient: false, value: [['#6D7597', '#6D7597']] };\n\n @Property('表盘宽度', {\n ui: { widget: 'myRange', min: 0, max: 100, step: 1 },\n })\n width = 10;\n @Property('起始角度', {\n ui: { widget: 'myRange', min: 90, max: 360, step: 1 },\n })\n startAngle = 210;\n @Property('结束角度', {\n ui: { widget: 'myRange', min: -90, max: 90, step: 1 },\n })\n endAngle = -30;\n\n @Property('显示标题', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n label = true;\n\n @Property('标题字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 18,\n space: 0,\n lineHeight: 18,\n };\n @Property('标题位移', {\n ui: { widget: 'number' },\n })\n labelOffset = 50;\n @Property('标题宽度', {\n ui: { widget: 'number' },\n })\n labelWidth = null;\n\n @Property('显示数值', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n labelVal = true;\n\n @Property('数值字体', { ui: { widget: 'myFont' } })\n numFont: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 38,\n space: 0,\n lineHeight: 38,\n };\n\n @Property('百分号', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n percent = false;\n\n @Property('数值位移', {\n ui: { widget: 'number' },\n })\n labelValOffset = -10;\n\n @Property('最大值', {\n ui: { widget: 'number' },\n })\n max = 100;\n @Property('最小值', {\n ui: { widget: 'number' },\n })\n min = 0;\n\n @Property('进度颜色', {\n ui: {\n widget: 'seriesColor',\n type: 'gradual',\n },\n })\n progressColor = { gradient: true, value: [['#2505F0', '#f00']] };\n\n @Property('进度阴影', {\n ui: {\n widget: 'myColor',\n example: ['#ffffff', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', null],\n },\n })\n progressShadow = null;\n\n image: string;\n constructor() {}\n chartOption: any = {};\n @Data({\n properties: {\n name: { type: 'string', title: '文字' },\n value: { type: 'number', title: '值' },\n },\n })\n _data = [{ name: '标题', value: 50 }];\n\n data = [];\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes._data) {\n this.data = [];\n if (this._data) {\n if (this._data.length <= this.slidesPerView) {\n this.navigation = false;\n }\n this._data.forEach((e: any) => {\n let sourceData = [];\n sourceData.push(e);\n let chartOption = {\n series: [\n {\n // name: this.title,\n type: 'gauge',\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n progress: {\n show: e.value && Number(e.value) > 0 ? true : false,\n overlap: false,\n roundCap: true,\n clip: false,\n itemStyle: {\n borderWidth: 1,\n color: this.getColor(this.progressColor, 'progress'),\n shadowColor: this.progressShadow,\n shadowBlur: 5,\n },\n },\n detail: {\n show: this.labelVal,\n formatter: this.percent ? '' + ((e.value / this.max) * 100).toFixed(2) + '%' : '{value}',\n color: this.numFont.color,\n fontFamily: this.numFont.family,\n fontWeight: this.numFont.weight,\n fontSize: this.numFont.size,\n lineHeight: this.numFont.lineHeight,\n offsetCenter: [0, `${this.labelValOffset}%`],\n },\n data: sourceData,\n title: {\n show: this.label,\n color: this.font.color,\n fontFamily: this.font.family,\n fontWeight: this.font.weight,\n fontSize: this.font.size,\n lineHeight: this.font.lineHeight,\n offsetCenter: [0, `${this.labelOffset}%`],\n overflow: 'breakAll',\n width: this.labelWidth,\n },\n axisLine: {\n roundCap: true,\n lineStyle: {\n width: this.width,\n color: this.getColor(this.seriesColor),\n },\n },\n max: this.max,\n min: this.min,\n axisLabel: {\n show: false,\n },\n splitLine: {\n show: false,\n },\n axisTick: {\n show: false,\n },\n pointer: {\n show: false,\n },\n },\n ],\n };\n this.data.push(chartOption);\n });\n }\n\n // console.log(this._data[0].value,this._data[0].value && Number(this._data[0].value) !== 0 ? true : false)\n\n // console.log(JSON.stringify(this.chartOption));\n }\n }\n ngOnInit() {}\n getColor(colorBox, type?: string) {\n const color = [];\n const color1 = [];\n const colorInfo = colorBox && colorBox.value ? colorBox.value : colorBox;\n colorInfo.forEach((item) => {\n color.push({\n type: 'linear',\n x: 0,\n y: 0,\n x2: 1,\n y2: 0,\n global: false,\n colorStops: [\n { offset: 0, color: item[0] },\n { offset: 1, color: item[1] },\n ],\n });\n });\n let count = 1;\n if (colorInfo.length > 1) {\n count = 1 / colorInfo.length;\n for (let i = 0; i < colorInfo.length; i++) {\n color1.push([count * (i + 1), color[i]]);\n }\n }\n return type === 'progress' ? color[0] : count < 1 ? color1 : [[1, color[0]]];\n }\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GaugeProgressComponent } from './gauge-progress.component';\r\nimport { NgxEchartsModule } from 'ngx-echarts';\r\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\r\nimport 'swiper/swiper-element-bundle.js';\r\n\r\n@NgModule({\r\n declarations: [GaugeProgressComponent],\r\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class GaugeProgressModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(GaugeProgressComponent);\r\n }\r\n}\r\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-bulletin-board',\n templateUrl: './bulletin-board.component.html',\n styleUrls: ['./bulletin-board.component.less']\n})\n@Widget('布告栏', {group: 'component', icon: 'icontubiao', image: '/assets/img/screen/bulletin-board.png'})\nexport class BulletinBoardComponent implements OnInit,OnChanges {\n @Property('标题', {type:'string'})\n title='';\n @Property('标题字体', { ui: { widget: 'myFont' } })\n titleFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 20, space: 0, lineHeight: 40 };\n @Property('小标题字', { ui: { widget: 'myFont' } })\n subtitleFont: any = { family: '', color: '#ffffff', weight: 'normal', size: 20, space: 0, lineHeight: 40 };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#FFFFFF',\n weight: 'normal',\n size: 12,\n space: 0,\n lineHeight: 12,\n };\n @Property('边框颜色', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n borderColor = '';\n @Property('渐变开始', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n startColor = '#D0021B';\n @Property('渐变结束', {\n ui: {\n widget: 'myColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#ffffff'],\n },\n })\n endColor = '#F5A623';\n @Property('边框粗细',{\n type:'number'\n })\n borderWidth=5;\n @Property('分隔符',{\n type:'string'\n })\n separate=';';\n @Property('内容边距',{\n type:'number'\n })\n marginSize=';';\n @Data({\n properties: {\n title: { type: 'string', title: '小标题' },\n content: { type: 'string', title: '内容' },\n },\n })\n _data = [\n { title: '单位单位单位', content: '【带班领导】 张三 1300000000;【值班联系】 李四 1300000000 ' },\n { title: '单位单位单位', content: '【带班领导】 张三 1300000000;【值班联系】 李四 1300000000 ' },\n { title: '单位单位单位', content: '【带班领导】 张三 1300000000;【值班联系】 李四 1300000000 ' },\n { title: '单位单位单位', content: '【带班领导】 张三 1300000000;【值班联系】 李四 1300000000 ' },\n ];\n contentArr: any = [];\n titleStyle: any;\n textStyle: any;\n subtitleStyle: any;\n boxStyle: any;\n constructor() { }\n\n ngOnChanges(changes: SimpleChanges): void {\n if(this._data&&this._data.length>0){\n this._data.forEach(a=>{\n let obj={title:'',content:[]};\n let sp=this.separate;\n if(!sp||sp===''){\n sp=';';\n }\n obj.title=a.title;\n obj.content=a.content.split(sp);\n this.contentArr.push(obj);\n })\n }\n }\n\n ngOnInit(): void {\n this.titleStyle = {\n fontSize: this.titleFont.size + 'px',\n fontFamily: this.titleFont.family,\n color: this.titleFont.color,\n fontWeight: this.titleFont.weight,\n letterSpacing: this.titleFont.space + 'px',\n lineHeight: this.titleFont.lineHeight + 'px',\n // backgroundColor: this.headBackground,\n };\n this.subtitleStyle = {\n fontSize: this.subtitleFont.size + 'px',\n fontFamily: this.subtitleFont.family,\n color: this.subtitleFont.color,\n fontWeight: this.subtitleFont.weight,\n letterSpacing: this.subtitleFont.space + 'px',\n lineHeight: this.subtitleFont.lineHeight + 'px',\n borderLeft: this.borderWidth+'px'+' solid '+this.borderColor,\n background:'-webkit-linear-gradient(left,'+this.startColor+','+this.endColor+')',\n };\n this.textStyle = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n };\n this.boxStyle={\n margin: this.marginSize+'px 0px',\n }\n \n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BulletinBoardComponent } from './bulletin-board.component';\nimport { WidgetService } from 'bbj-widget-base';\n\n\n\n@NgModule({\n declarations: [\n BulletinBoardComponent\n ],\n imports: [\n CommonModule\n ]\n})\nexport class BulletinBoardModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(BulletinBoardComponent);\n }\n }\n","import { Component, ElementRef, OnInit, EventEmitter, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\nimport { Property, Widget, DataOutput, Data } from 'bbj-widget-base';\n\n// install Swiper components\n// SwiperCore.use([\n// Navigation,\n// Pagination,\n// Scrollbar,\n// A11y,\n// Virtual,\n// Zoom,\n// Autoplay,\n// Thumbs,\n// Controller\n// ]);\n@Component({\n selector: 'sc-item-swiper',\n templateUrl: './item-swiper.component.html',\n styleUrls: ['./item-swiper.component.less'],\n})\n@Widget('轮播', { group: 'component', image: 'assets/img/screen/item-swiper.png', icon: 'iconmokuai' })\nexport class ItemSwiperComponent implements OnInit, OnChanges {\n @Property('标题字体', { ui: { widget: 'myFont' } })\n font: any = { family: 'Microsoft YaHei', color: '#ffffff', weight: 'normal', size: 20, space: 0, lineHeight: '66' };\n\n @Property('数值字体', { ui: { widget: 'myFont' } })\n numfont: any = {\n family: 'Microsoft YaHei',\n color: '#ffffff',\n weight: 'normal',\n size: 21,\n space: 0,\n lineHeight: '25',\n };\n @Property('分组字体', { ui: { widget: 'myFont' } })\n titlefont: any = {\n family: 'Microsoft YaHei',\n color: '#ffffff',\n weight: 'normal',\n size: 21,\n space: 0,\n lineHeight: '25',\n };\n @Property('可视个数', { type: 'number' })\n slidesPerView = 3;\n @Property('选项高度')\n selectHeight: number = 180;\n @Property('分组高度', { type: 'number' })\n gourpHeight = 0;\n @Property('值高度', { type: 'number' })\n valueBottom = 0;\n @Property('间距', { type: 'number' })\n spaceBetween = 10;\n\n @Property('左右按钮', {\n ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },\n })\n navigation = true;\n\n @Property('按钮偏移', { type: 'number' })\n navigationMoveVal = -60;\n\n @Property('左图标', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n navigationLeftIcon = null;\n\n @Property('右图标', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n navigationRightIcon = null;\n\n @Property('显示模式', {\n ui: { widget: 'select' },\n enum: [{ label: '图标卡片', value: 'card' }],\n })\n showType = 'card';\n\n @Property('卡片背景', {\n type: 'string',\n ui: {\n widget: 'myUpload',\n },\n })\n cardBgImg = null;\n @Property('图片高度')\n height: number = 180;\n @Property('图片宽度')\n width: number = 180;\n @Property('是否分组')\n isgroup: boolean = false;\n @Property('图片分类', {\n type: 'array',\n title: '图片分类',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n imageUrl: {\n type: 'string',\n title: '图片',\n ui: {\n widget: 'myPicture',\n },\n },\n },\n required: [],\n },\n ui: { visibleIf: { isgroup: [false] }, grid: { arraySpan: 24 }, spanControl: 24 },\n })\n images: any = [\n { imageUrl: 'assets/img/screen/picture9.png' },\n { imageUrl: 'assets/img/screen/picture9.png' },\n { imageUrl: 'assets/img/screen/picture9.png' },\n { imageUrl: 'assets/img/screen/picture9.png' },\n { imageUrl: 'assets/img/screen/picture9.png' },\n { imageUrl: 'assets/img/screen/picture9.png' },\n ];\n @Property('新增分组', {\n type: 'array',\n title: '新增分组',\n maxItems: 10,\n items: {\n type: 'object',\n properties: {\n groupName: {\n type: 'string',\n title: '组名',\n },\n imageUrl: {\n type: 'string',\n title: '图片',\n ui: {\n widget: 'myPicture',\n },\n },\n },\n required: [],\n },\n ui: { visibleIf: { isgroup: [true] }, grid: { arraySpan: 24 }, spanControl: 24 },\n })\n groups = [\n { groupName: '1', imageUrl: 'assets/img/screen/picture9.png' },\n { groupName: '2', imageUrl: 'assets/img/screen/picture9.png' },\n { groupName: '3', imageUrl: 'assets/img/screen/picture9.png' },\n { groupName: '4', imageUrl: 'assets/img/screen/picture9.png' },\n { groupName: '5', imageUrl: 'assets/img/screen/picture9.png' },\n { groupName: '6', imageUrl: 'assets/img/screen/picture9.png' },\n ];\n groupfont: any = {};\n @Data({\n properties: {\n label: { title: '标题', type: 'string' },\n value: { title: '值', type: 'string' },\n group: { title: '分组', type: 'string' },\n },\n })\n _data: any[] = [\n { label: '测试1', value: '1000', group: '1' },\n { label: '测试2', value: '1000', group: '2' },\n { label: '测试3', value: '1000', group: '3' },\n { label: '测试4', value: '1000', group: '4' },\n { label: '测试5', value: '1000', group: '5' },\n { label: '测试6', value: '1000', group: '6' },\n ];\n @DataOutput('值')\n valueChange = new EventEmitter<any>();\n\n navigationBtnConfig = {\n prevEl: '.swiper-navigation-prev',\n nextEl: '.swiper-navigation-next',\n };\n\n data: any = [];\n items: any = {};\n showNavigation = true;\n constructor(private ele: ElementRef) {}\n\n ngOnInit(): void {\n if (this.isgroup) {\n this.groupfont = {\n fontSize: this.titlefont.size + 'px',\n fontFamily: this.titlefont.family,\n color: this.titlefont.color,\n fontWeight: this.titlefont.weight,\n letterSpacing: this.titlefont.space + 'px',\n lineHeight: this.titlefont.lineHeight + 'px',\n top: this.gourpHeight + 'px',\n };\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.items = {};\n this.data = [];\n if (changes.numfont) {\n this.numfont = {\n fontSize: this.numfont.size + 'px',\n fontFamily: this.numfont.family,\n color: this.numfont.color,\n fontWeight: this.numfont.weight,\n letterSpacing: this.numfont.space + 'px',\n lineHeight: this.numfont.lineHeight + 'px',\n };\n }\n if (changes.font) {\n this.font = {\n fontSize: this.font.size + 'px',\n fontFamily: this.font.family,\n color: this.font.color,\n fontWeight: this.font.weight,\n letterSpacing: this.font.space + 'px',\n lineHeight: this.font.lineHeight + 'px',\n };\n }\n if (this._data && this._data[0] && !this.isgroup) {\n this._data.forEach((t, i) => {\n let img = '';\n if (this.images) {\n img = this.images[i]?.imageUrl || this.images[this.images.length - 1].imageUrl;\n t.imgstyle = {\n height: (this.height || 30) + 'px',\n width: (this.width || 30) + 'px',\n };\n }\n t.img = img;\n this.data.push(t);\n });\n }\n if (this._data && this._data[0] && this.isgroup) {\n this._data.forEach((t: any) => {\n let groupName = t.group || ' ';\n if (!this.items[groupName]) {\n this.items[groupName] = {};\n }\n let a = this.items[groupName];\n if (!a.field) {\n a.field = [];\n }\n let arr = a.field;\n arr.push({ label: t.label, value: t.value });\n });\n if (this.groups && this.groups.length > 0) {\n this.groups.forEach((e) => {\n let a = this.items[e.groupName];\n if (!a) {\n return;\n }\n a.img = e.imageUrl || '';\n a.imgstyle = {\n height: (this.height || 30) + 'px',\n width: (this.width || 30) + 'px',\n };\n });\n }\n Object.keys(this.items).forEach((key) => {\n let map = this.items[key];\n map['group'] = key;\n this.data.push(map);\n });\n }\n if (!this.data || !this.data[0]) {\n this.showNavigation = false;\n } else {\n this.showNavigation = this.navigation;\n }\n console.log(this.data);\n }\n onSwiper(swiper) {}\n onSlideChange() {}\n}\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ItemSwiperComponent } from './item-swiper.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzSpaceModule } from 'ng-zorro-antd/space';\nimport 'swiper/swiper-element-bundle.js';\n\n@NgModule({\n declarations: [ItemSwiperComponent],\n imports: [CommonModule, WidgetBaseModule, NzSpaceModule],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ItemSwiperModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(ItemSwiperComponent);\n }\n}\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n OnChanges,\r\n OnInit,\r\n Optional,\r\n Renderer2,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { CustomExport, Data, DataOutput, Widget, WIDGET_CONFIG } from 'bbj-widget-base';\r\n\r\n@Component({\r\n selector: 'sc-temporary-data',\r\n templateUrl: './temporary-data.component.html',\r\n styleUrls: ['./temporary-data.component.less'],\r\n})\r\n@Widget('临时数据', { group: 'component', image: 'assets/img/screen/temporary-data.png', icon: 'iconmokuai' })\r\nexport class TemporaryDataComponent implements OnInit, OnChanges, CustomExport {\r\n @Data({})\r\n data: any[] = [];\r\n\r\n @DataOutput('数据')\r\n dataChange = new EventEmitter<any>();\r\n\r\n edit: boolean;\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.edit) {\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'display', 'none');\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n this.dataChange.emit(this.data);\r\n }\r\n }\r\n\r\n exportWord() {\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TemporaryDataComponent } from './temporary-data.component';\nimport { WidgetService } from 'bbj-widget-base';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\n@NgModule({\n declarations: [TemporaryDataComponent],\n imports: [CommonModule, NzIconModule],\n})\nexport class TemporaryDataModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(TemporaryDataComponent);\n }\n}\n","import { AfterViewInit, Component, ElementRef, HostListener, OnInit, ViewChild } from '@angular/core';\nimport { Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-line-light-flow',\n templateUrl: './line-light-flow.component.html',\n styleUrls: ['./line-light-flow.component.css'],\n})\n@Widget('光线特效', {\n group: 'mipAnim',\n})\nexport class LineLightFlowComponent implements OnInit, AfterViewInit {\n @Property('线条颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n lineColor = '#004CB3';\n @Property('线条阴影', {\n ui: {\n widget: 'myColor',\n },\n })\n lineshadowColor = 'rgba(0, 193, 220, 1)';\n\n @Property('高亮颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n lineHightLightColor = '#8ED6FF';\n\n @Property('中间间距', {\n type: 'number'\n })\n distance = 10;\n @Property('上边距', {\n type: 'number'\n })\n topDistance = 0;\n\n @ViewChild('lineCanvas') lineCanvas: ElementRef;\n opt: any;\n\n @ViewChild('canvasBox') canvasBox: ElementRef;\n resizeTimeout: any;\n constructor() {\n\n }\n\n @HostListener('window:resize')\n resize() {\n if (this.resizeTimeout) {\n clearTimeout(this.resizeTimeout);\n }\n this.resizeTimeout = setTimeout(() => {\n this.reload();\n this.resizeTimeout = null;\n }, 100);\n }\n ngAfterViewInit(): void {\n this.reload();\n }\n\n reload() {\n this.opt = {};\n this.opt.currentIndex = 1;\n this.opt.canvas = this.lineCanvas.nativeElement;\n this.initOpt();\n this._initCanvas(this.opt.canvas, this.opt.width, this.opt.height);\n this._createPattern(this.opt.canvas);\n this.draw(0);\n\n }\n\n ngOnInit(): void {\n // this.opt = {};\n // this.opt.currentIndex = 1;\n // this.opt.canvas = this.lineCanvas.nativeElement;\n\n // this.initOpt();\n // this._initCanvas(this.opt.canvas, this.opt.width, this.opt.height);\n // this._createPattern(this.opt.canvas);\n // this.draw(0);\n }\n\n initOpt() {\n const d = this.distance || 100;\n const innerW = this.canvasBox.nativeElement.offsetWidth;\n // const d = Math.round(innerW * (Number(this.distance) || 10) / 100); // 间距\n console.log(innerW, innerW * (Number(this.distance)) / 100, '间距', d)\n this.opt = {\n ...this.opt,\n animating: true,\n distance: d,\n width: innerW,\n tabHeight: 40,\n height: 60,\n curDisX: 0,\n currentIndex: 0,\n avgSpeed: this.calcAVGSpeed(d * 2),\n tabWidthList: [\n Math.round(innerW / 2) - d / 2,\n Math.round(innerW / 2) + d / 2,\n ]\n };\n }\n // 计算速度\n calcAVGSpeed(a) {\n const [j, k, l] = [0.85, 10, 4];\n let b = (l * j * a + k * (1 - j) * a) / (k * l * 20);\n return (b = Math.max(Math.abs(b), 2.5) * Math.sign(b)), b;\n }\n // 获取当前速度\n getCurSpeed(a, b) {\n const [j, k, l] = [0.85, 10, 4];\n const c = Math.abs(a) > Math.abs(j * b) ? l * this.opt.avgSpeed : k * this.opt.avgSpeed;\n return c;\n }\n // 生成曲线\n _calCurve(a, b, c, d, e, f) {\n // console.log(a + f,b,c-f,d,c,d);\n e.bezierCurveTo(a + f, b, c - f, d, c, d);\n }\n\n // 初始化画布\n _initCanvas(canvas, width, height) {\n const devicePixelRatio = window.devicePixelRatio;\n const canvasObj = canvas.getContext('2d');\n canvas.width = width * devicePixelRatio;\n canvas.height = height * devicePixelRatio;\n canvas.style.width = width + 'px';\n canvas.style.height = height + 'px';\n canvasObj.scale(devicePixelRatio, devicePixelRatio);\n }\n\n // 创建遮盖蒙版\n _createPattern(a) {\n const [b, c, d] = [140, 23, 1];\n let e = document.createElement('canvas');\n (e.width = b), (e.height = c), (e.style.width = b / d + 'px'), (e.style.height = c / d + 'px');\n const f = e.getContext('2d');\n // 缩放 宽高 100%\n f.scale(d, d);\n f.lineWidth = 0.4;\n for (let g = 3, h = 0.8, j = 1; 2 > j; j++) {\n // 设置或返回用于笔触的颜色、渐变或模式\n f.strokeStyle = 'RGBA(0, 0, 0,0)';\n // 开始一条路径\n f.beginPath();\n // 把路径移动到画布中的指定点,不创建线条\n f.moveTo(0, j * g);\n // 添加一个新点,然后在画布中创建从该点到最后指定点的线条\n f.lineTo(b, j * g);\n // 绘制已定义的路径\n f.stroke();\n // 创建从当前点回到起始点的路径\n f.closePath();\n if (10 < j) { h -= 0.1; }\n }\n const i = a.getContext('2d').createPattern(e, 'repeat-x');\n (this.opt.pattern = i), (e = null);\n }\n\n\n // 高亮\n _drawHightlight(a) {\n // a = 0\n const opt = this.opt;\n const b = opt.canvas.getContext('2d');\n const d = 0.3;\n // clearRect 在给定的矩形内清除指定的像素,这里清完了\n b.clearRect(0, 0, 2 * opt.width, 2 * opt.height);\n b.shadowColor = this.lineshadowColor;\n b.shadowBlur = 5;\n b.strokeStyle = this.lineColor;\n b.lineWidth = 0.8;\n b.fillStyle = 'none';\n this._draw(b, false);\n // 这里绘制了外围边框线条\n // return false;\n const e = b.createLinearGradient(0, 0, opt.width, opt.height);\n const f = a - d;\n e.addColorStop(Math.min(1, Math.max(0, 0 + f)), 'rgba(0,0,0,0)');\n e.addColorStop(Math.min(1, Math.max(0, 0 + f + 0.1)), this.lineHightLightColor);\n e.addColorStop(Math.min(1, 0 + f + d), this.lineHightLightColor);\n e.addColorStop(Math.min(1, 0 + f + d + 0.1), 'rgba(0,0,0,0)');\n e.addColorStop(1, 'rgba(0,0,0,0)');\n b.lineWidth = 1.5;\n b.strokeStyle = e;\n b.fillStyle = opt.pattern;\n this._draw(b, true);\n }\n\n draw(a) {\n // console.log(a);\n this._drawHightlight(a);\n // return false;\n\n this.opt.timer = requestAnimationFrame(() => {\n // console.log(a);\n this.draw((a + 0.005) % 1.6);\n });\n }\n\n _draw(canvasObj, trueorfalse) {\n const opt = this.opt;\n const tableHeight = opt.tabHeight;\n const [f, g, i, j, k] = [0, 110, 40, 0.5, 2.5];\n let l = 0;\n if (\n (canvasObj.beginPath(),\n canvasObj.moveTo(-50, -15),\n canvasObj.lineTo(-50, j),\n opt.animating)\n ) {\n const m = this.getCurSpeed(opt.curDisX, opt.distance);\n l = Math.min(Math.abs(opt.distance), Math.abs(opt.curDisX + m)) * Math.sign(m);\n }\n if (\n (canvasObj.lineTo(\n f + opt.tabWidthList[0] + l - g / 2,\n k + j\n ),\n this._calCurve(\n f + opt.tabWidthList[0] + l - g / 2,\n k + j,\n f + opt.tabWidthList[0] + l + g / 2,\n tableHeight + j,\n canvasObj,\n i\n ),\n opt.animating)\n ) {\n const o =\n opt.tabWidthList[opt.nextIndex + 1] -\n opt.tabWidthList[opt.nextIndex];\n canvasObj.lineTo(\n f + opt.tabWidthList[0] + o + l - g / 2,\n tableHeight + j\n ),\n this._calCurve(\n f + opt.tabWidthList[0] + o + l - g / 2,\n tableHeight + j,\n f + opt.tabWidthList[0] + o + l + g / 2,\n k + j,\n canvasObj,\n i\n );\n } else {\n // lineTO添加一个新点 宽度长度\n canvasObj.lineTo(\n f + opt.tabWidthList[1] + l - g / 2,\n tableHeight + j\n );\n this._calCurve(\n f + opt.tabWidthList[1] + l - g / 2,\n tableHeight + j,\n f + opt.tabWidthList[1] + l + g / 2,\n k + j,\n canvasObj,\n i\n );\n }\n\n canvasObj.lineTo(opt.width + 10, j);\n canvasObj.lineTo(opt.width + 10, -15);\n canvasObj.closePath();\n canvasObj.stroke();\n if (trueorfalse) { canvasObj.fill(); }\n if (opt.animating && trueorfalse) { opt.curDisX = l; }\n if (Math.abs(l) >= Math.abs(opt.distance)) { opt.animating = false; }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { LineLightFlowComponent } from './line-light-flow.component';\n\n\n\n@NgModule({\n declarations: [\n LineLightFlowComponent\n ],\n imports: [\n CommonModule,\n WidgetBaseModule\n ]\n})\nexport class LineLightFlowModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(LineLightFlowComponent);\n }\n }\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Data, Method, Param, Property, Widget } from 'bbj-widget-base';\r\n\r\n@Component({\r\n selector: 'sc-iframe',\r\n templateUrl: './iframe.component.html',\r\n styleUrls: ['./iframe.component.less'],\r\n})\r\n@Widget('iframe', { group: 'component', image: 'assets/img/screen/iframe.png', icon: 'iconmokuai' })\r\nexport class IframeComponent implements OnInit, OnChanges {\r\n @Property('url')\r\n url: string;\r\n\r\n @Data({ properties: { url: { type: 'string', title: 'url' } } })\r\n data: any[];\r\n edit: boolean;\r\n\r\n constructor() {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n if (this.data.length && this.data[0].url) {\r\n this.url = this.data[0].url;\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n @Method('设置url')\r\n setUrl(@Param('url') url: string) {\r\n this.url = url;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IframeComponent } from './iframe.component';\nimport { NzPipesModule } from 'ng-zorro-antd/pipes';\nimport { WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [IframeComponent],\n imports: [CommonModule, NzPipesModule],\n})\nexport class IframeModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(IframeComponent);\n }\n}\n","import { Component, HostBinding, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { DataInput, Property, Widget, Data, Method, Param } from 'bbj-widget-base';\r\n\r\n@Component({\r\n selector: 'sc-video-grid',\r\n templateUrl: './video-grid.component.html',\r\n styleUrls: ['./video-grid.component.less'],\r\n})\r\n@Widget('视频宫格', { group: 'component', image: 'assets/img/screen/video-grid.png', icon: 'iconmokuai' })\r\nexport class VideoGridComponent implements OnInit, OnChanges {\r\n @Property('宫格数', {\r\n enum: [\r\n { label: '四宫格', value: 4 },\r\n { label: '九宫格', value: 9 },\r\n ],\r\n })\r\n size = 4;\r\n @Property('间隔', { type: 'number' })\r\n gutter = 4;\r\n @Property('切换按钮')\r\n showToggle: boolean;\r\n @Property('视频类型', { enum: ['flv', 'hls', 'iframe'] })\r\n type = 'flv';\r\n @Property('是否有声音')\r\n hasAudio: boolean;\r\n @DataInput('视频地址')\r\n src: string;\r\n @Data({\r\n properties: {\r\n src: { title: '视频地址', type: 'string' },\r\n },\r\n })\r\n data: any = [];\r\n height: string;\r\n cellSize: string;\r\n videos = [];\r\n margin: number;\r\n selectedIndex = 0;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n this.updateSize();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.size) {\r\n this.updateSize();\r\n }\r\n if (changes.gutter) {\r\n this.updateGutter();\r\n }\r\n if (changes.src) {\r\n this.addSrc(this.src);\r\n }\r\n if (changes.data) {\r\n if (this.data?.length) {\r\n this.data.forEach((r, i) => {\r\n const video = this.videos[i];\r\n if (video) {\r\n video.src = r.src;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n updateSize() {\r\n if (this.size !== this.videos.length) {\r\n if (this.size > this.videos.length) {\r\n for (let i = this.videos.length; i < this.size; i++) {\r\n this.videos.push({});\r\n }\r\n } else {\r\n this.videos = this.videos.slice(0, this.size);\r\n }\r\n if (this.size === 9) {\r\n this.cellSize = '33.33%';\r\n } else {\r\n this.cellSize = '50%';\r\n }\r\n this.validIndex();\r\n }\r\n }\r\n\r\n updateGutter() {\r\n if (this.gutter) {\r\n this.margin = -this.gutter;\r\n this.height = `calc(100% + ${this.gutter * 2}px)`;\r\n }\r\n }\r\n\r\n validIndex() {\r\n if (this.selectedIndex >= this.videos.length) {\r\n this.selectedIndex = 0;\r\n }\r\n }\r\n\r\n @Method('设置视频地址')\r\n addSrc(@Param('视频地址') src: string) {\r\n if (src) {\r\n const video = this.videos[this.selectedIndex];\r\n if (video) {\r\n video.src = src;\r\n }\r\n this.selectedIndex++;\r\n this.validIndex();\r\n }\r\n }\r\n\r\n toggle() {\r\n this.size = this.size === 4 ? 9 : 4;\r\n this.updateSize();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { VideoGridComponent } from './video-grid.component';\nimport { WidgetService } from 'bbj-widget-base';\nimport { NzGridModule } from 'ng-zorro-antd/grid';\nimport { VideoPlayerModule } from '../shared/component/video-player/video-player.module';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\n\n@NgModule({\n declarations: [VideoGridComponent],\n imports: [CommonModule, VideoPlayerModule, NzGridModule,NzIconModule],\n})\nexport class VideoGridModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(VideoGridComponent);\n }\n}\n","import { Component, OnChanges, OnInit, SimpleChanges } from '@angular/core';\nimport { Widget, Data, Property } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-scatter3d',\n templateUrl: './scatter3d.component.html',\n styleUrls: ['./scatter3d.component.less'],\n})\n@Widget('3D散点图', {\n group: 'otherChart',\n image: 'assets/img/screen/bubble.png',\n icon: 'icontubiao',\n})\nexport class Scatter3dComponent implements OnInit, OnChanges {\n @Property('最小值', { type: 'number' })\n min = 0;\n @Property('最大值', { type: 'number' })\n max = 10;\n @Property('最小尺寸', { type: 'number' })\n symbolSizeMin = 10;\n @Property('最大尺寸', { type: 'number' })\n symbolSizeMax = 20;\n @Property('颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n visualMapColor = [\n '#313695',\n '#4575b4',\n '#74add1',\n '#abd9e9',\n '#e0f3f8',\n '#ffffbf',\n '#fee090',\n '#fdae61',\n '#f46d43',\n '#d73027',\n '#a50026',\n ];\n @Property('最小不透明度', { type: 'number', minimum: 0, maximum: 1 })\n colorAlphaMin = 0.5;\n @Property('最大不透明度', { type: 'number', minimum: 0, maximum: 1 })\n colorAlphaMax = 1;\n @Property('高度', { type: 'number' })\n boxHeight = 100;\n @Property('宽度', { type: 'number' })\n boxWidth = 100;\n @Property('深度', { type: 'number' })\n boxDepth = 100;\n\n @Data({\n properties: {\n x: { type: 'number', title: 'x' },\n y: { type: 'number', title: 'y' },\n z: { type: 'number', title: 'z' },\n value: { type: 'number', title: '值' },\n },\n })\n data = [\n { x: 0, y: 0, z: 0, value: 1 },\n { x: 0, y: 0, z: 1, value: 2 },\n { x: 0, y: 1, z: 0, value: 3 },\n { x: 0, y: 1, z: 1, value: 4 },\n { x: 1, y: 0, z: 0, value: 5 },\n { x: 1, y: 0, z: 1, value: 6 },\n { x: 1, y: 1, z: 0, value: 7 },\n { x: 1, y: 1, z: 1, value: 8 },\n ];\n options: any;\n constructor() {}\n\n ngOnInit(): void {\n this.reset();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.reset();\n }\n\n reset() {\n const data = this.data ? this.data.map((item) => [item.x, item.y, item.z, item.value]) : [];\n this.options = {\n visualMap: {\n show: false,\n min: this.min,\n max: this.max,\n inRange: {\n symbolSize: [this.symbolSizeMin, this.symbolSizeMax],\n color: this.visualMapColor,\n colorAlpha: [this.colorAlphaMin, this.colorAlphaMax],\n },\n },\n xAxis3D: {\n type: 'value',\n },\n yAxis3D: {\n type: 'value',\n },\n zAxis3D: {\n type: 'value',\n },\n grid3D: {\n axisLine: {\n lineStyle: { color: '#fff' },\n },\n axisPointer: {\n lineStyle: { color: '#fff' },\n },\n viewControl: {\n // autoRotate: true\n },\n boxHeight: this.boxHeight ?? 100,\n boxWidth: this.boxWidth ?? 100,\n boxDepth: this.boxDepth ?? 100,\n },\n series: [\n {\n type: 'scatter3D',\n data,\n },\n ],\n };\n console.log(this.options);\n }\n\n onChartClick(event) {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Scatter3dComponent } from './scatter3d.component';\nimport { NgxEchartsModule } from 'ngx-echarts';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [Scatter3dComponent],\n imports: [CommonModule, WidgetBaseModule, NgxEchartsModule],\n})\nexport class Scatter3dModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(Scatter3dComponent);\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { ImageModule } from './image/image.module';\r\nimport { BasicLineChartModule } from './basic-line-chart/basic-line-chart.module';\r\nimport { ButtonModule } from './button/button.module';\r\nimport { TimerModule } from './timer/timer.module';\r\nimport { NumberFlopModule } from './number-flop/number-flop.module';\r\nimport { VoteModule } from './vote/vote.module';\r\nimport { SelectModule } from './select/select.module';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SearchModule } from './search/search.module';\r\nimport { WeatherModule } from './weather/weather.module';\r\nimport { RadioModule } from './radio/radio.module';\r\nimport { CheckboxModule } from './checkbox/checkbox.module';\r\nimport { RateModule } from './rate/rate.module';\r\nimport { GeneralTextModule } from './general-text/general-text.module';\r\nimport { MarqueeModule } from './marquee/marquee.module';\r\nimport { WordartModule } from './wordart/wordart.module';\r\nimport { IconfontModule } from './iconfont/iconfont.module';\r\nimport { AudioModule } from './audio/audio.module';\r\nimport { BasicBarChartModule } from './basic-bar-chart/basic-bar-chart.module';\r\nimport { BasicPieChartModule } from './basic-pie-chart/basic-pie-chart.module';\r\nimport { BarChartThreeDModule } from './bar-chart-three-d/bar-chart-three-d.module';\r\nimport { ShapeModule } from './shape/shape.module';\r\nimport { LineBarChartModule } from './line-bar-chart/line-bar-chart.module';\r\nimport { BubbleChartModule } from './bubble-chart/bubble-chart.module';\r\nimport { RadarChartModule } from './radar-chart/radar-chart.module';\r\nimport { FunnelChartModule } from './funnel-chart/funnel-chart.module';\r\nimport { BackgroundModule } from './background/background.module';\r\nimport { GaugeModule } from './gauge/gauge.module';\r\nimport { PercentPieChartModule } from './percent-pie-chart/percent-pie-chart.module';\r\nimport { TreeRingChartModule } from './tree-ring-chart/tree-ring-chart.module';\r\nimport { LiquidFillModule } from './liquid-fill/liquid-fill.module';\r\nimport { ShufflingListModule } from './shuffling-list/shuffling-list.module';\r\n// import {DropDownDetailListModule} from './drop-down-detail-list/drop-down-detail-list.module';\r\n// import {DynamicListModule} from './dynamic-list/dynamic-list.module';\r\nimport { BasicPlanimetricMapModule } from './basic-planimetric-map/basic-planimetric-map.module';\r\nimport { BreathingBubbleLayerModule } from './breathing-bubble-layer/breathing-bubble-layer.module';\r\nimport { PlanimetricMap2dModule } from './planimetric-map2d/planimetric-map2d.module';\r\nimport { ParentContainerModule } from './parent-container/parent-container.module';\r\nimport { PlanimetricMap3dModule } from './planimetric-map3d/planimetric-map3d.module';\r\nimport { MipAnimComponent } from './mip-anim/mip-anim.component';\r\nimport { MipAnimModule } from './mip-anim/mip-anim.module';\r\nimport { TreeControlModule } from './tree-control/tree-control.module';\r\nimport { VisualMapChartModule } from './visual-map-chart/visual-map-chart.module';\r\nimport { DatePickerModule } from './date-picker/date-picker.module';\r\nimport { TimePickerModule } from './time-picker/time-picker.module';\r\nimport { CustomBaiduMapModule } from './custom-baidu-map/custom-baidu-map.module';\r\nimport { WidgetService } from 'bbj-widget-base';\r\nimport { ImageComponent } from './image/image.component';\r\nimport { icons } from './iconfont/icon';\r\nimport { IconfontComponent } from './iconfont/iconfont.component';\r\nimport { GeneralTextComponent } from './general-text/general-text.component';\r\nimport { WordartComponent } from './wordart/wordart.component';\r\nimport { AudioComponent } from './audio/audio.component';\r\nimport { BasicLineChartComponent } from './basic-line-chart/basic-line-chart.component';\r\nimport { BarChartThreeDComponent } from './bar-chart-three-d/bar-chart-three-d.component';\r\nimport { ShapeComponent } from './shape/shape.component';\r\nimport { LineBarChartComponent } from './line-bar-chart/line-bar-chart.component';\r\nimport { BackgroundComponent } from './background/background.component';\r\nimport { BasicPieChartComponent } from './basic-pie-chart/basic-pie-chart.component';\r\nimport { BasicBarChartComponent } from './basic-bar-chart/basic-bar-chart.component';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { UploadModule } from './upload/upload.module';\r\nimport { TreeControlComponent } from './tree-control/tree-control.component';\r\nimport { CrossTableModule } from './cross-table/cross-table.module';\r\nimport { DatePickerComponent } from './date-picker/date-picker.component';\r\nimport { TableModule } from './table/table.module';\r\nimport { Pie3dChartModule } from './pie3d-chart/pie3d-chart.module';\r\nimport { MultiTitleGaugeModule } from './multi-title-gauge/multi-title-gauge.module';\r\nimport { GaugeProgressModule } from './gauge-progress/gauge.module';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { BulletinBoardModule } from './bulletin-board/bulletin-board.module';\r\n// import {MyBaiduMapModule} from './my-baidu-map/my-baidu-map.module';\r\n// import {DataMapModule} from './data-map/data-map.module';\r\nimport { ItemSwiperModule } from './item-swiper/item-swiper.module';\r\nimport { TemporaryDataModule } from './temporary-data/temporary-data.module';\r\nimport { LineLightFlowModule } from './line-light-flow/line-light-flow.module';\r\nimport { IframeModule } from './iframe/iframe.module';\r\nimport { VideoGridModule } from './video-grid/video-grid.module';\r\nimport { Scatter3dModule } from './scatter3d/scatter3d.module';\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ImageModule,\r\n BasicLineChartModule,\r\n BasicPieChartModule,\r\n BasicBarChartModule,\r\n LineBarChartModule,\r\n BarChartThreeDModule,\r\n BubbleChartModule,\r\n RadarChartModule,\r\n FunnelChartModule,\r\n PercentPieChartModule,\r\n TreeRingChartModule,\r\n GaugeModule,\r\n LiquidFillModule,\r\n ButtonModule,\r\n TimerModule,\r\n NumberFlopModule,\r\n VoteModule,\r\n SelectModule,\r\n SearchModule,\r\n WeatherModule,\r\n RadioModule,\r\n CheckboxModule,\r\n RateModule,\r\n GeneralTextModule,\r\n MarqueeModule,\r\n WordartModule,\r\n IconfontModule,\r\n TableModule,\r\n AudioModule,\r\n ShapeModule,\r\n BackgroundModule,\r\n ShufflingListModule,\r\n BasicPlanimetricMapModule,\r\n BreathingBubbleLayerModule,\r\n PlanimetricMap2dModule,\r\n ParentContainerModule,\r\n PlanimetricMap3dModule,\r\n MipAnimModule,\r\n TreeControlModule,\r\n VisualMapChartModule,\r\n DatePickerModule,\r\n TimePickerModule,\r\n CustomBaiduMapModule,\r\n UploadModule,\r\n CrossTableModule,\r\n Pie3dChartModule,\r\n MultiTitleGaugeModule,\r\n GaugeProgressModule,\r\n ItemSwiperModule,\r\n BulletinBoardModule,\r\n TemporaryDataModule,\r\n LineLightFlowModule,\r\n IframeModule,\r\n VideoGridModule,\r\n Scatter3dModule,\r\n // DropDownDetailListModule,\r\n // DynamicListModule,\r\n // MyBaiduMapModule,\r\n // DataMapModule\r\n ],\r\n exports: [],\r\n declarations: [],\r\n})\r\nexport class ScreenWidgetModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(ButtonComponent, { size: { width: 60, height: 30 } });\r\n widgetService.register(SelectComponent, {\r\n size: { width: 200, height: 36 },\r\n option: {\r\n borderColor: '#3285ff',\r\n background: 'rgba(50,133,255,0.2)',\r\n dropdownBackgroundColor: '#3285ff',\r\n selectDropDownColor: '#fff',\r\n selectHoverColor: '#fff',\r\n selectHoverBackgroundColor: '#3285ff',\r\n font: { color: '#ffffff' },\r\n dropdownBg: 'rgba(50,133,255,0.2)',\r\n dropdownBorderColor: '#3285ff',\r\n },\r\n });\r\n for (let i = 1; i <= 82; i++) {\r\n widgetService.register(ImageComponent, {\r\n option: { image: `assets/img/screen/picture${i}.png` },\r\n });\r\n }\r\n icons.forEach((icon) => {\r\n widgetService.register(IconfontComponent, {\r\n option: { icon },\r\n });\r\n });\r\n widgetService.register(\r\n GeneralTextComponent,\r\n {\r\n className: 'big-title title',\r\n title: '大标题',\r\n option: {\r\n title: '大标题',\r\n font: { family: '', color: '#ffffff', weight: 'normal', size: 36, space: 0, lineHeight: 50 },\r\n },\r\n },\r\n {\r\n className: 'normal-title title',\r\n title: '标题',\r\n option: {\r\n title: '标题',\r\n font: { family: '', color: '#ffffff', weight: 'normal', size: 32, space: 0, lineHeight: 45 },\r\n },\r\n },\r\n {\r\n className: 'subtitle title',\r\n title: '副标题',\r\n option: {\r\n title: '副标题',\r\n font: { family: '', color: '#ffffff', weight: 'normal', size: 24, space: 0, lineHeight: 33 },\r\n },\r\n },\r\n {\r\n className: 'small-title title',\r\n title: '小标题',\r\n option: {\r\n title: '小标题',\r\n font: { family: '', color: '#ffffff', weight: 'normal', size: 16, space: 0, lineHeight: 22 },\r\n },\r\n },\r\n {\r\n className: 'content title',\r\n title: '正文内容',\r\n option: {\r\n title: '正文内容',\r\n font: { family: '', color: '#ffffff', weight: 'normal', size: 13, space: 0, lineHeight: 18 },\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n WordartComponent,\r\n {\r\n className: 'wordart1 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n font: { family: 'cursive', color: '#3285FF', weight: 'normal', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n {\r\n className: 'wordart2 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n {\r\n className: 'wordart3 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #09FFDD 14%, #0055FF 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n {\r\n className: 'wordart4 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #F76B1C 14%, #FAD961 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n {\r\n className: 'wordart5 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #B4EC51 14%, #429321 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n {\r\n className: 'wordart6 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #3023AE 14%, #FE55FF 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n AudioComponent,\r\n {\r\n title: '视频demo',\r\n option: {\r\n type: 'video',\r\n src: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180417154421.mp4',\r\n },\r\n },\r\n {\r\n title: '音频demo',\r\n option: {\r\n type: 'audio',\r\n src: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180417154421.mp4',\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n BasicLineChartComponent,\r\n {\r\n option: {\r\n type: 'basic',\r\n font: { color: '#FFFFFF' },\r\n },\r\n image: 'assets/img/screen/basic-line-chart.png',\r\n },\r\n {\r\n title: '区域折线图',\r\n image: 'assets/img/screen/area-line-chart.png',\r\n option: {\r\n type: 'area',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '基本曲线图',\r\n image: 'assets/img/screen/smooth-line-chart.png',\r\n group: 'smoothLineChart',\r\n option: {\r\n type: 'smooth',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '区域曲线图',\r\n image: 'assets/img/screen/smooth-area-line-chart.png',\r\n group: 'smoothLineChart',\r\n option: {\r\n type: 'smooth-area',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '阶梯线图',\r\n group: 'stepLineChart',\r\n option: {\r\n type: 'step',\r\n step: 'end',\r\n font: { color: '#FFFFFF' },\r\n },\r\n image: 'assets/img/screen/basic-line-chart.png',\r\n },\r\n );\r\n widgetService.register(\r\n BasicPieChartComponent,\r\n {\r\n option: {\r\n type: 'basic',\r\n },\r\n },\r\n {\r\n title: '环形饼图',\r\n image: 'assets/img/screen/pie-o.png',\r\n option: {\r\n type: 'ring',\r\n },\r\n },\r\n {\r\n title: '玫瑰饼图',\r\n image: 'assets/img/screen/rosePie.png',\r\n option: {\r\n type: 'rose',\r\n },\r\n },\r\n {\r\n title: '玫瑰环形饼图',\r\n image: 'assets/img/screen/roseRingPie.png',\r\n option: {\r\n type: 'roseRing',\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n BasicBarChartComponent,\r\n {\r\n option: {\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '堆叠柱图',\r\n image: 'assets/img/screen/doubleBar.png',\r\n option: {\r\n type: 'double',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '横向柱图',\r\n image: 'assets/img/screen/horiBar.png',\r\n option: {\r\n type: 'hori',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '横向堆叠柱图',\r\n image: 'assets/img/screen/doubleHoriBar.png',\r\n option: {\r\n type: 'horiD',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n {\r\n title: '双向柱图',\r\n image: 'assets/img/screen/doubleColorBar.png',\r\n option: {\r\n type: 'dcolor',\r\n font: { color: '#FFFFFF' },\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n BarChartThreeDComponent,\r\n {\r\n title: '3D柱图',\r\n image: 'assets/img/screen/3Dbar.png',\r\n option: {\r\n type: '3D',\r\n },\r\n },\r\n {\r\n title: '3D堆叠柱图',\r\n image: 'assets/img/screen/3DdoubleBar.png',\r\n option: {\r\n type: '3Ddouble',\r\n },\r\n },\r\n {\r\n title: '3D横向柱图',\r\n image: 'assets/img/screen/3DhoriBar.png',\r\n option: {\r\n type: 'hori',\r\n },\r\n },\r\n {\r\n title: '3D堆叠横向柱图',\r\n image: 'assets/img/screen/3DdoubleHoriBar.png',\r\n option: {\r\n type: 'horiD',\r\n },\r\n },\r\n );\r\n widgetService.register(TreeControlComponent, {\r\n option: {\r\n font: {\r\n color: '#ffffff',\r\n },\r\n },\r\n });\r\n widgetService.register(\r\n ShapeComponent,\r\n {\r\n title: '线条',\r\n image: 'assets/img/screen/shape01.png',\r\n option: {\r\n type: 'line',\r\n },\r\n },\r\n {\r\n title: '三角形',\r\n image: 'assets/img/screen/shape06.png',\r\n option: {\r\n type: 'triangle',\r\n },\r\n },\r\n {\r\n title: '矩形',\r\n image: 'assets/img/screen/shape03.png',\r\n option: {\r\n type: 'rect',\r\n },\r\n },\r\n {\r\n title: '圆角矩形',\r\n image: 'assets/img/screen/shape04.png',\r\n option: {\r\n type: 'rect',\r\n fillet: 16,\r\n },\r\n },\r\n {\r\n title: '平行四边形',\r\n image: 'assets/img/screen/shape09.png',\r\n option: {\r\n type: 'parallelogram',\r\n deviation: 30,\r\n },\r\n },\r\n {\r\n title: '梯形',\r\n image: 'assets/img/screen/shape10.png',\r\n option: {\r\n type: 'trapezoid',\r\n upper: 50,\r\n bottom: 100,\r\n },\r\n },\r\n {\r\n title: '五边形',\r\n image: 'assets/img/screen/shape08.png',\r\n option: {\r\n type: 'polygonplus',\r\n side: 5,\r\n },\r\n },\r\n {\r\n title: '五角星',\r\n image: 'assets/img/screen/shape07.png',\r\n option: {\r\n type: 'polyhedrosis',\r\n side: 5,\r\n },\r\n },\r\n {\r\n title: '圆形',\r\n image: 'assets/img/screen/shape05.png',\r\n option: {\r\n type: 'circle',\r\n },\r\n },\r\n {\r\n title: '箭头',\r\n image: 'assets/img/screen/shape11.png',\r\n option: {\r\n type: 'polygon',\r\n data: [\r\n {\r\n x: 20,\r\n y: 80,\r\n },\r\n {\r\n x: 100,\r\n y: 80,\r\n },\r\n {\r\n x: 100,\r\n y: 40,\r\n },\r\n {\r\n x: 180,\r\n y: 100,\r\n },\r\n {\r\n x: 100,\r\n y: 160,\r\n },\r\n {\r\n x: 100,\r\n y: 120,\r\n },\r\n {\r\n x: 20,\r\n y: 120,\r\n },\r\n ],\r\n },\r\n },\r\n );\r\n for (let i = 1; i <= 75; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/moduleBg${i}.png`,\r\n type: 'background',\r\n },\r\n });\r\n }\r\n for (let i = 1; i <= 8; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/border${i}.png`,\r\n type: 'background',\r\n },\r\n });\r\n }\r\n for (let i = 1; i <= 8; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/bg${i}.png`,\r\n type: 'border',\r\n },\r\n });\r\n }\r\n ['assets/img/screen/mipAnim1.gif', 'assets/img/screen/mipAnim2.gif'].forEach((image) => {\r\n widgetService.register(MipAnimComponent, {\r\n option: { image },\r\n });\r\n });\r\n widgetService.register(DatePickerComponent, {\r\n option: {\r\n borderColor: '#3285ff',\r\n font: { color: '#3285ff' },\r\n background: 'rgba(50,133,255,0.2)',\r\n },\r\n });\r\n widgetService.register(CheckboxComponent, {\r\n option: { font: { color: '#ffffff' } },\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, ElementRef } from '@angular/core';\nimport { Widget, Property, Data } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-announcement',\n templateUrl: './announcement.component.html',\n styleUrls: ['./announcement.component.less'],\n})\n@Widget('公告', { group: 'component', image: 'assets/img/screen/announcement.png', icon: 'iconmokuai' })\nexport class AnnouncementComponent implements OnInit {\n @Property('显示图标', { type: 'boolean' })\n headIconDisplay = true;\n @Property('内边距', { ui: { widget: 'myGrid' } })\n padding: any = {\n top: 30,\n right: 24,\n bottom: 30,\n left: 24,\n };\n @Property('字体', { ui: { widget: 'myFont' } })\n font: any = {\n family: '',\n color: '#333333',\n weight: 'normal',\n size: 13,\n space: 0,\n lineHeight: '',\n };\n @Property('图标', { ui: { hidden: true } })\n icon = 'sound';\n @Data({\n properties: {\n content: { type: 'string', title: '公告内容' },\n },\n })\n data = [\n {\n content:\n '陆十三,男,共产党员,村小组长。多年来,他始终怀着对党、对人民无比热爱的赤诚之心,热衷于社会公益慈善事业,尽心竭力地为人民群众做好事实事,通过自身捐款、社会筹款等多种途径融资,为贫困山区、失学儿童送去…',\n },\n ];\n constructor(private element: ElementRef) {}\n\n ngOnInit() {\n if (this.padding) {\n this.element.nativeElement.style.padding = `${this.padding.top}px ${this.padding.right}px ${this.padding.bottom}px ${this.padding.left}px`;\n this.element.nativeElement.style.fontSize = this.font.size + 'px';\n this.element.nativeElement.style.fontFamily = this.font.family;\n this.element.nativeElement.style.color = this.font.color;\n this.element.nativeElement.style.fontWeight = this.font.weight;\n this.element.nativeElement.style.letterSpacing = this.font.space + 'px';\n this.element.nativeElement.style.lineHeight = this.font.lineHeight + 'px';\n }\n }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport { AnnouncementComponent } from './announcement.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\n\n@NgModule({\n declarations: [\n AnnouncementComponent\n ],\n imports: [\n CommonModule,\n WidgetBaseModule\n ]\n})\nexport class AnnouncementModule {\n constructor(private widgetService:WidgetService){\n widgetService.register(AnnouncementComponent);\n }\n}\n","import { EventInput } from '@fullcalendar/angular';\r\nimport { addDays, format, isMatch, parse } from 'date-fns';\r\n\r\nconst dayFormat = 'yyyy-MM-dd';\r\n\r\n/**\r\n * 如果结束时间是仅日期的格式,加上一天\r\n * @param event\r\n */\r\nexport function updateEndTime(event: EventInput) {\r\n if (typeof event.end === 'string' && isMatch(event.end, dayFormat)) {\r\n event.end = format(addDays(parse(event.end, dayFormat, new Date()), 1), dayFormat);\r\n }\r\n}\r\n","import { Component, OnInit, ViewChild, OnChanges, SimpleChanges, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { Widget, Property, Data, DataOutput } from 'bbj-widget-base';\nimport { CalendarOptions, FullCalendarComponent } from '@fullcalendar/angular';\nimport { deepCopy } from '@delon/util';\nimport { Router } from '@angular/router';\nimport { addDays, format, isMatch, parse } from 'date-fns';\nimport { updateEndTime } from './calendar.util';\nimport { properties } from 'ng-zorro-antd/core/util';\n\n@Component({\n selector: 'sc-calendar',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.less'],\n})\n@Widget('日历', {\n group: 'component',\n image: 'assets/img/screen/rili.png',\n icon: 'iconmokuai',\n childTypes: ['sc-calendar-events', 'sc-calendar-background-events'],\n})\nexport class CalendarComponent implements OnInit, OnChanges {\n @Property('是否自定义初始日期', { ui: { format: 'date', widget: 'checkbox', spanLabel: 0, spanControl: 24 } })\n isInitialDate = true;\n @Property('', { ui: { type: 'date', format: 'date', spanLabel: 0, spanControl: 24 } })\n initialDate = '2020-07-18';\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n start: { type: 'string', title: '开始日期' },\n end: { type: 'string', title: '结束日期' },\n title: { type: 'string', title: '内容' },\n },\n })\n data: any[] = [\n { end: '2020-07-21 00:00:00', start: '2020-07-19 00:00:00', title: 'event 3' },\n { end: '2020-07-19 00:00:00', start: '2020-07-18 00:00:00', title: 'event 4' },\n { end: '2020-07-22', start: '2020-07-20', title: 'event 5' },\n ];\n @DataOutput(['id', 'title'])\n dataClick = new EventEmitter<any>();\n @DataOutput(\n {\n properties: {\n type: { type: 'string', title: '视图类型' },\n start: { type: 'string', title: '开始时间' },\n end: { type: 'string', title: '结束时间' },\n },\n },\n { triggerLink: false },\n )\n datesSetChange = new EventEmitter<{ type: string; start: string; end: string }>();\n children: any[];\n id: string;\n eventMap = new Map<any, any[]>();\n constructor(private router: Router, private cd: ChangeDetectorRef) {}\n calendarOptions: CalendarOptions;\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.data) {\n if (this.data?.length) {\n const events = this.data.map((item) => {\n const event = {\n ...item,\n extendedProps: {\n eventClick: this.eventClick,\n },\n };\n updateEndTime(event);\n return event;\n });\n this.setEvents(this.id, events);\n } else {\n this.removeEvents(this.id);\n }\n if (!this.calendarOptions) {\n this.update();\n }\n // const events = this.data.map((item) => ({\n // id: item.id,\n // start: item.start.indexOf(' 00:00:00') > -1 ? item.start.split(' ')[0] : item.start,\n // end: item.end.indexOf(' 00:00:00') > -1 ? item.end.split(' ')[0] : item.end,\n // title: item.title,\n // }));\n }\n }\n ngOnInit(): void {}\n\n setEvents(key: any, events: any[]) {\n this.eventMap.set(key, events);\n this.update();\n }\n\n removeEvents(key: any) {\n if (this.eventMap.has(key)) {\n this.eventMap.delete(key);\n this.update();\n }\n }\n\n update() {\n const events = [];\n for (const event of this.eventMap.values()) {\n if (event) {\n events.push(...event);\n }\n }\n this.calendarOptions = {\n headerToolbar: {\n left: 'prev,next today',\n center: 'title',\n right: 'timeGridDay,timeGridWeek,dayGridMonth',\n },\n buttonText: {\n dayGridMonth: '月',\n timeGridWeek: '周',\n timeGridDay: '日',\n today: '今日',\n },\n timeZone: 'local',\n initialDate: this.isInitialDate ? this.initialDate : null,\n events: events,\n locale: 'zh',\n eventTimeFormat: {\n hour: 'numeric',\n minute: '2-digit',\n hour12: false,\n },\n slotLabelFormat: { hour: 'numeric', minute: '2-digit', hour12: false },\n eventClick: (info) => {\n info.jsEvent.preventDefault();\n if (info.event.extendedProps?.eventClick) {\n info.event.extendedProps.eventClick(info.event);\n }\n // this.dataClick.emit({ id: info.event.id, title: info.event.title });\n },\n datesSet: (arg) => {\n console.log(arg);\n let type = arg.view.type;\n type = type.substring(type.indexOf('Grid') + 4).toLowerCase();\n const start = format(arg.start, 'yyyy-MM-dd');\n const end = format(arg.end, 'yyyy-MM-dd');\n\n this.datesSetChange.emit({ type, start, end });\n },\n };\n this.cd.markForCheck();\n }\n eventClick = (event) => {\n this.dataClick.emit({ id: event.id, title: event.title });\n };\n}\n","import { Directive, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';\r\nimport { CalendarComponent } from './calendar.component';\r\nimport { EventApi, EventSourceInput } from '@fullcalendar/angular';\r\n\r\n@Directive()\r\nexport abstract class CalendarEventsChild implements OnChanges, OnDestroy {\r\n data: any[];\r\n id: string;\r\n constructor(public parent: CalendarComponent) {}\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data) {\r\n if (this.data) {\r\n let events = this.getEvents(this.data);\r\n this.parent.setEvents(this.id, events);\r\n } else {\r\n this.parent.removeEvents(this.id);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.parent.removeEvents(this.id);\r\n }\r\n\r\n abstract getEvents(data: any[]): EventSourceInput[];\r\n}\r\n","import { Component, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\nimport { CalendarComponent } from '../calendar.component';\nimport { CalendarEventsChild } from '../calendar-events-child';\nimport { EventSourceInput } from '@fullcalendar/common';\nimport { addDays, format, isMatch, parse } from 'date-fns';\nimport { updateEndTime } from '../calendar.util';\n\n@Component({\n selector: 'sc-calendar-background-events',\n templateUrl: './background-events.component.html',\n styleUrls: ['./background-events.component.less'],\n})\n@Widget('背景颜色', { hidden: true })\nexport class BackgroundEventsComponent extends CalendarEventsChild {\n @Property('颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n color: string;\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n start: { type: 'string', title: '开始日期' },\n end: { type: 'string', title: '结束日期' },\n title: { type: 'string', title: '标题' },\n color: { type: 'string', title: '背景颜色' },\n },\n })\n data: any[] = [\n { end: '2020-07-21 00:00:00', start: '2020-07-19 00:00:00', title: 'event 3' },\n { end: '2020-07-19 00:00:00', start: '2020-07-18 00:00:00', title: 'event 4' },\n { end: '2020-07-22', start: '2020-07-20', title: 'event 5' },\n ];\n\n constructor(public parent: CalendarComponent) {\n super(parent);\n }\n\n getEvents(data: any[]): EventSourceInput[] {\n return data.map((item) => {\n const event = { ...item, display: 'background' };\n if (!event.color && this.color) {\n event.color = this.color;\n }\n updateEndTime(event);\n return event;\n });\n }\n}\n","import { Component, EventEmitter, OnInit } from '@angular/core';\nimport { Data, DataOutput, Property, Widget } from 'bbj-widget-base';\nimport { CalendarEventsChild } from '../calendar-events-child';\nimport { CalendarComponent } from '../calendar.component';\nimport { EventApi, EventSourceInput } from '@fullcalendar/common';\nimport { addDays, format, isMatch, parse } from 'date-fns';\nimport { updateEndTime } from '../calendar.util';\n\n@Component({\n selector: 'sc-calendar-events',\n templateUrl: './events.component.html',\n styleUrls: ['./events.component.less'],\n})\n@Widget('事件', { hidden: true })\nexport class EventsComponent extends CalendarEventsChild {\n @Property('颜色', {\n ui: {\n widget: 'myColor',\n },\n })\n color: string;\n @Data({\n properties: {\n id: { type: 'string', title: 'id' },\n start: { type: 'string', title: '开始日期' },\n end: { type: 'string', title: '结束日期' },\n title: { type: 'string', title: '标题' },\n color: { type: 'string', title: '颜色' },\n },\n })\n data: any[] = [\n { end: '2020-07-21 00:00:00', start: '2020-07-19 00:00:00', title: 'event 3' },\n { end: '2020-07-19 00:00:00', start: '2020-07-18 00:00:00', title: 'event 4' },\n { end: '2020-07-22', start: '2020-07-20', title: 'event 5' },\n ];\n @DataOutput(['id', 'title'])\n dataClick = new EventEmitter<any>();\n constructor(public parent: CalendarComponent) {\n super(parent);\n }\n\n getEvents(data: any[]): EventSourceInput[] {\n return data.map((item) => {\n const event = {\n ...item,\n extendedProps: {\n eventClick: this.eventClick,\n },\n };\n if (!event.color && this.color) {\n event.color = this.color;\n }\n updateEndTime(event);\n return event;\n });\n }\n\n eventClick = (event: EventApi) => {\n this.dataClick.emit(event);\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { CalendarComponent } from './calendar.component';\nimport { FullCalendarModule } from '@fullcalendar/angular';\nimport dayGridPlugin from '@fullcalendar/daygrid'; // a plugin\nimport timeGridPlugin from '@fullcalendar/timegrid'; // a plugin\nimport interactionPlugin from '@fullcalendar/interaction';\nimport { BackgroundEventsComponent } from './background-events/background-events.component';\nimport { EventsComponent } from './events/events.component'; // a plugin\n\n@NgModule({\n declarations: [CalendarComponent, BackgroundEventsComponent, EventsComponent],\n imports: [CommonModule, WidgetBaseModule, FullCalendarModule],\n})\nexport class CalendarModule {\n constructor(widgetService: WidgetService) {\n FullCalendarModule.registerPlugins([\n dayGridPlugin,\n timeGridPlugin,\n interactionPlugin,\n ]);\n widgetService.register(CalendarComponent);\n widgetService.register(EventsComponent);\n widgetService.register(BackgroundEventsComponent);\n }\n}\n","import { Component, OnInit } from '@angular/core';\r\nimport { Property, Widget } from 'bbj-widget-base';\r\n\r\n@Component({\r\n selector: 'sc-tabs',\r\n templateUrl: './tabs.component.html',\r\n styleUrls: ['./tabs.component.less'],\r\n})\r\n@Widget('标签页', {\r\n group: 'component', image: 'assets/img/screen/tabs.png', icon: 'iconmokuai',\r\n children: [\r\n {\r\n title: '选项卡1',\r\n type: 'sc-tab',\r\n option: { title: 'Tab 1' },\r\n hidden: true,\r\n hideChild: true,\r\n },\r\n ],\r\n childTypes: ['sc-tab'],\r\n})\r\nexport class TabsComponent implements OnInit {\r\n @Property('页签样式', {\r\n enum: [\r\n { label: '线条', value: 'line' },\r\n { label: '卡片', value: 'card' },\r\n ],\r\n })\r\n type = 'line';\r\n @Property('尺寸', {\r\n enum: [\r\n { label: '大', value: 'large' },\r\n { label: '中', value: 'default' },\r\n { label: '小', value: 'small' },\r\n ],\r\n })\r\n size = 'default';\r\n @Property('页签位置', {\r\n enum: [\r\n { label: '上', value: 'top' },\r\n { label: '右', value: 'right' },\r\n { label: '下', value: 'bottom' },\r\n { label: '左', value: 'left' },\r\n ],\r\n })\r\n tabPosition = 'top';\r\n @Property('切换动画', { type: 'boolean', ui: { visibleIf: { tabPosition: ['top', 'bottom'] } } })\r\n animated = true;\r\n @Property('间隙')\r\n tabBarGutter: number;\r\n\r\n selectedIndex = 0;\r\n\r\n children: any[];\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n\r\n getContainer() {\r\n if (this.children) {\r\n const selectedChild = this.children[this.selectedIndex];\r\n if (selectedChild) {\r\n return selectedChild.id;\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Property, Widget } from 'bbj-widget-base';\n\n@Component({\n selector: 'sc-tab',\n templateUrl: './tab.component.html',\n styleUrls: ['./tab.component.less'],\n})\n@Widget('选项卡', { hidden: true })\nexport class TabComponent implements OnInit {\n @Property('标题')\n title = 'New Tab';\n children: any[];\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TabsComponent } from './tabs.component';\nimport { WidgetBaseModule, WidgetService } from 'bbj-widget-base';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { TabComponent } from './tab/tab.component';\n\n@NgModule({\n declarations: [TabsComponent, TabComponent],\n imports: [CommonModule, WidgetBaseModule, NzTabsModule],\n})\nexport class TabsModule {\n constructor(widgetService: WidgetService) {\n widgetService.register(TabsComponent);\n widgetService.register(TabComponent);\n }\n}\n","import {\n Component,\n ElementRef,\n EmbeddedViewRef,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n} from '@angular/core';\nimport { Data, Property, Widget } from 'bbj-widget-base';\n\nimport { isDate, format, min, parseISO } from 'date-fns';\nimport { getUUID } from '../shared/util/base.util';\n\n@Component({\n selector: 'sc-gantt',\n templateUrl: './gantt.component.html',\n styleUrls: ['./gantt.component.less'],\n})\n@Widget('甘特图', { group: 'component', image: 'assets/img/screen/gantt.png', icon: 'iconmokuai' })\nexport class GanttComponent implements OnInit, OnChanges {\n @ViewChild('fcEventContent', { static: true }) eventContent: TemplateRef<any>;\n private readonly contentRenderers = new Map<string, EmbeddedViewRef<any>>();\n @Property('头部名称', { type: 'string' })\n headerContent = '项目';\n @Property('项目字体', { ui: { widget: 'myFont' } })\n contentFont: any = { family: '', color: '', weight: 'normal', size: 12, space: 0, lineHeight: 40 };\n @Property('系列颜色', {\n ui: {\n widget: 'seriesColor',\n example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],\n },\n })\n lineColor = ['rgba(50,133,255,1)', 'rgba(123,113,192,1' + ')'];\n @Property('进度透明', { type: 'number', max: 1 })\n progressTransparency = 0.8;\n @Property('区域占比', { type: 'number' })\n areaRate = 20;\n @Property('进度条高度', { type: 'number' })\n progressHeight = 32;\n @Data({\n properties: {\n start: { type: 'string', title: '开始日期' },\n end: { type: 'string', title: '结束日期' },\n title: { type: 'string', title: '待办事项' },\n project: { type: 'string', title: '所属项目' },\n progress: { type: 'string', title: '进度' },\n },\n })\n data: any[] = [\n { start: '2020-11-10', end: '2020-11-15', title: '代办事件1', project: 'benbenjun', progress: '0.4' },\n { start: '2020-10-10', end: '2020-11-11', title: '代办事件2', project: 'benbenjun2', progress: '0.6' },\n { start: '2020-10-11', end: '2020-11-19', title: '代办事件3', project: 'benbenjun3', progress: '0.9' },\n ];\n calendarOptions: any;\n resources: any = [];\n events: any = [];\n\n initDate: any;\n\n constructor(private ele: ElementRef) {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {\n this.init();\n }\n\n init() {\n if (this.contentFont) {\n this.ele.nativeElement.style.setProperty('--fontSize', this.contentFont.size + 'px');\n this.ele.nativeElement.style.setProperty('--color', this.contentFont.color);\n this.ele.nativeElement.style.setProperty('--weight', this.contentFont.weight);\n this.ele.nativeElement.style.setProperty('--family', this.contentFont.weight);\n this.ele.nativeElement.style.setProperty('--lineHeight', this.contentFont.lineHeight + 'px');\n this.ele.nativeElement.style.setProperty('--height', this.progressHeight + 'px');\n }\n\n // if (changes.data) {\n if (this.data == null || this.data.length < 1) {\n return;\n }\n const dateArr = [];\n let arrIndex = 0;\n this.data.forEach((d) => {\n let color = '';\n if (this.lineColor !== null && this.lineColor.length > 0) {\n if (arrIndex >= this.lineColor.length) {\n arrIndex = 0;\n }\n color = this.lineColor[arrIndex];\n }\n dateArr.push(parseISO(d.start));\n this.resources.push({ id: d.project, title: d.project, eventColor: 'rgb(0,210,253,0)' });\n this.events.push({\n id: getUUID(),\n resourceId: d.project,\n start: d.start,\n end: d.end,\n title: d.title,\n backColor: color,\n progress: d.progress,\n });\n arrIndex++;\n });\n this.calendarOptions = {\n timeZone: 'UTC',\n headerToolbar: {\n left: 'today prev,next',\n center: 'title',\n right: 'resourceTimelineDay,resourceTimelineTenDay,resourceTimelineMonth,resourceTimelineYear',\n },\n initialView: 'resourceTimelineMonth',\n scrollTime: '08:00',\n aspectRatio: 1.5,\n initialDate: this.initDate ? format(this.initDate, 'yyyy-MM-dd') : format(min(dateArr), 'yyyy-MM-dd'),\n views: {\n resourceTimelineDay: {\n buttonText: '小时',\n slotDuration: '00:15',\n },\n resourceTimelineTenDay: {\n type: 'resourceTimeline',\n duration: { days: 10 },\n buttonText: '未来10天',\n },\n resourceTimelineMonth: {\n buttonText: '月',\n // dayHeaders:false,\n // // columnFormat: 'dddd',\n // dayNames: ['1', '2', '3', '4', '5', '6', '7'],\n // dayNamesShort: ['1', '2', '3', '4', '5', '6', '7'],\n // dayHeaderFormat:{weekday:'long'},\n // dayHeaderContent: (data) => {\n // console.log(data);\n // },\n slotLabelFormat: [{ day: 'numeric' }, { weekday: 'long' }],\n },\n resourceTimelineYear: {\n buttonText: '年',\n slotLabelFormat: [{ month: 'long' }],\n // slotDuration: '48:00:00',\n slotLabelInterval: { month: 1 },\n },\n },\n buttonText: {\n today: '今日',\n },\n editable: false,\n resourceAreaHeaderContent: this.headerContent,\n locale: 'zh-cn',\n // dayHeaderFormat: {weekday: 'long'},\n resourceAreaWidth: this.areaRate + '%',\n resources: [],\n // visibleRange: {\n // start: '2020-03-22',\n // end: '2020-03-25'\n // },\n events: [],\n columnFormat: 'dddd',\n eventContent: (arg) => this.renderEventContent(arg),\n eventWillUnmount: (arg) => this.unrenderEvent(arg),\n };\n this.calendarOptions.resources = this.resources;\n this.calendarOptions.events = this.events;\n // }\n }\n\n renderEventContent(args) {\n let renderer = this.contentRenderers.get(args.event.id);\n const proColor =\n args.event.extendedProps.backColor.substr(0, args.event.extendedProps.backColor.lastIndexOf(',') + 1) +\n this.progressTransparency +\n ')';\n const data = {\n barStyle: {\n width: args.event.extendedProps.progress * 100 + '%',\n backgroundColor: args.event.extendedProps.backColor,\n },\n progressStyle: {\n backgroundColor: proColor,\n },\n title: args.event.title,\n progress: Number(args.event.extendedProps.progress) * 100 + '%',\n start: format(args.event.start, 'yyyy-MM-dd'),\n end: format(args.event.end, 'yyyy-MM-dd'),\n };\n // if (!renderer) {\n // Make a new renderer and save it so that we can destroy when the event is unmounted.\n renderer = this.eventContent.createEmbeddedView({ data });\n this.contentRenderers.set(args.event.id, renderer);\n // } else {\n // // Just update the existing renderer.\n // renderer.context.data = data;\n // renderer.markForCheck();\n // }\n renderer.detectChanges();\n return { domNodes: renderer.rootNodes };\n }\n\n unrenderEvent(arg) {\n const renderer = this.contentRenderers.get(arg.event.id);\n if (renderer) {\n renderer.destroy();\n }\n }\n\n // onChange(events) {\n //\n // }\n}\n","import {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {GanttComponent} from './gantt.component';\nimport {WidgetBaseModule, WidgetService} from 'bbj-widget-base';\nimport {FullCalendarModule} from '@fullcalendar/angular';\nimport dayGridPlugin from '@fullcalendar/daygrid';\nimport timeGridPlugin from '@fullcalendar/timegrid';\nimport interactionPlugin from '@fullcalendar/interaction';\nimport resourceTimelinePlugin from '@fullcalendar/resource-timeline';\nimport {NzToolTipModule} from 'ng-zorro-antd/tooltip';\n// import {FormsModule} from '@angular/forms';\n// import {NzDatePickerModule} from 'ng-zorro-antd/date-picker';\n\n\n@NgModule({\n declarations: [GanttComponent],\n imports: [\n CommonModule,\n WidgetBaseModule,\n FullCalendarModule,\n NzToolTipModule,\n // FormsModule,\n // NzDatePickerModule,\n ],\n})\nexport class GanttModule {\n constructor(widgetService: WidgetService) {\n FullCalendarModule.registerPlugins([\n // register FullCalendar plugins\n dayGridPlugin,\n timeGridPlugin,\n interactionPlugin,\n resourceTimelinePlugin,\n ]);\n widgetService.register(GanttComponent);\n }\n}\n","import { NgModule } from '@angular/core';\r\nimport { ImageModule } from './image/image.module';\r\nimport { BasicLineChartModule } from './basic-line-chart/basic-line-chart.module';\r\nimport { ButtonModule } from './button/button.module';\r\nimport { TimerModule } from './timer/timer.module';\r\nimport { NumberFlopModule } from './number-flop/number-flop.module';\r\nimport { VoteModule } from './vote/vote.module';\r\nimport { SelectModule } from './select/select.module';\r\nimport { SearchModule } from './search/search.module';\r\nimport { WeatherModule } from './weather/weather.module';\r\nimport { RadioModule } from './radio/radio.module';\r\nimport { CheckboxModule } from './checkbox/checkbox.module';\r\nimport { RateModule } from './rate/rate.module';\r\nimport { GeneralTextModule } from './general-text/general-text.module';\r\nimport { MarqueeModule } from './marquee/marquee.module';\r\nimport { WordartModule } from './wordart/wordart.module';\r\nimport { IconfontModule } from './iconfont/iconfont.module';\r\nimport { AudioModule } from './audio/audio.module';\r\nimport { BasicBarChartModule } from './basic-bar-chart/basic-bar-chart.module';\r\nimport { BasicPieChartModule } from './basic-pie-chart/basic-pie-chart.module';\r\nimport { BarChartThreeDModule } from './bar-chart-three-d/bar-chart-three-d.module';\r\nimport { ShapeModule } from './shape/shape.module';\r\nimport { LineBarChartModule } from './line-bar-chart/line-bar-chart.module';\r\nimport { BubbleChartModule } from './bubble-chart/bubble-chart.module';\r\nimport { RadarChartModule } from './radar-chart/radar-chart.module';\r\nimport { FunnelChartModule } from './funnel-chart/funnel-chart.module';\r\nimport { BackgroundModule } from './background/background.module';\r\nimport { GaugeModule } from './gauge/gauge.module';\r\nimport { PercentPieChartModule } from './percent-pie-chart/percent-pie-chart.module';\r\nimport { TreeRingChartModule } from './tree-ring-chart/tree-ring-chart.module';\r\nimport { LiquidFillModule } from './liquid-fill/liquid-fill.module';\r\nimport { WidgetService } from 'bbj-widget-base';\r\nimport { BasicBarChartComponent } from './basic-bar-chart/basic-bar-chart.component';\r\nimport { ButtonComponent } from './button/button.component';\r\nimport { ImageComponent } from './image/image.component';\r\nimport { BasicLineChartComponent } from './basic-line-chart/basic-line-chart.component';\r\nimport { BasicPieChartComponent } from './basic-pie-chart/basic-pie-chart.component';\r\nimport { TreeRingChartComponent } from './tree-ring-chart/tree-ring-chart.component';\r\nimport { LineBarChartComponent } from './line-bar-chart/line-bar-chart.component';\r\nimport { BarChartThreeDComponent } from './bar-chart-three-d/bar-chart-three-d.component';\r\nimport { BubbleChartComponent } from './bubble-chart/bubble-chart.component';\r\nimport { RadarChartComponent } from './radar-chart/radar-chart.component';\r\nimport { FunnelChartComponent } from './funnel-chart/funnel-chart.component';\r\nimport { GaugeComponent } from './gauge/gauge.component';\r\nimport { TimerComponent } from './timer/timer.component';\r\nimport { NumberFlopComponent } from './number-flop/number-flop.component';\r\nimport { VoteComponent } from './vote/vote.component';\r\nimport { SelectComponent } from './select/select.component';\r\nimport { SearchComponent } from './search/search.component';\r\nimport { WeatherComponent } from './weather/weather.component';\r\nimport { RadioComponent } from './radio/radio.component';\r\nimport { CheckboxComponent } from './checkbox/checkbox.component';\r\nimport { RateComponent } from './rate/rate.component';\r\nimport { GeneralTextComponent } from './general-text/general-text.component';\r\nimport { IconfontComponent } from './iconfont/iconfont.component';\r\nimport { WordartComponent } from './wordart/wordart.component';\r\nimport { MarqueeComponent } from './marquee/marquee.component';\r\nimport { AudioComponent } from './audio/audio.component';\r\nimport { PercentPieChartComponent } from './percent-pie-chart/percent-pie-chart.component';\r\nimport { LiquidFillComponent } from './liquid-fill/liquid-fill.component';\r\nimport { ShapeComponent } from './shape/shape.component';\r\nimport { BackgroundComponent } from './background/background.component';\r\nimport { AnnouncementComponent } from './announcement/announcement.component';\r\nimport { AnnouncementModule } from './announcement/announcement.module';\r\nimport { TableModule } from './table/table.module';\r\nimport { TableComponent } from './table/table.component';\r\nimport { BasicPlanimetricMapModule } from './basic-planimetric-map/basic-planimetric-map.module';\r\nimport { BreathingBubbleLayerModule } from './breathing-bubble-layer/breathing-bubble-layer.module';\r\nimport { PlanimetricMap2dModule } from './planimetric-map2d/planimetric-map2d.module';\r\nimport { ParentContainerModule } from './parent-container/parent-container.module';\r\nimport { BasicPlanimetricMapComponent } from './basic-planimetric-map/basic-planimetric-map.component';\r\nimport { PlanimetricMap3dModule } from './planimetric-map3d/planimetric-map3d.module';\r\nimport { PlanimetricMap3dComponent } from './planimetric-map3d/planimetric-map3d.component';\r\nimport { CalendarModule } from './calendar/calendar.module';\r\nimport { CalendarComponent } from './calendar/calendar.component';\r\nimport { VisualMapChartModule } from './visual-map-chart/visual-map-chart.module';\r\nimport { TimePickerModule } from './time-picker/time-picker.module';\r\nimport { DatePickerModule } from './date-picker/date-picker.module';\r\nimport { TreeControlModule } from './tree-control/tree-control.module';\r\nimport { CustomBaiduMapModule } from './custom-baidu-map/custom-baidu-map.module';\r\nimport { icons } from './iconfont/icon';\r\nimport { TreeControlComponent } from './tree-control/tree-control.component';\r\nimport { TabsModule } from './tabs/tabs.module';\r\nimport { MipAnimComponent } from './mip-anim/mip-anim.component';\r\nimport { MipAnimModule } from './mip-anim/mip-anim.module';\r\nimport { UploadModule } from './upload/upload.module';\r\nimport { CrossTableModule } from './cross-table/cross-table.module';\r\nimport { GanttModule } from './gantt/gantt.module';\r\nimport { Pie3dChartModule } from './pie3d-chart/pie3d-chart.module';\r\n\r\nimport { LineLightFlowModule } from './line-light-flow/line-light-flow.module';\r\nimport { TemporaryDataModule } from './temporary-data/temporary-data.module';\r\n\r\n@NgModule({\r\n imports: [\r\n ImageModule,\r\n BasicLineChartModule,\r\n BasicPieChartModule,\r\n BasicBarChartModule,\r\n LineBarChartModule,\r\n BarChartThreeDModule,\r\n BubbleChartModule,\r\n RadarChartModule,\r\n FunnelChartModule,\r\n PercentPieChartModule,\r\n TreeRingChartModule,\r\n GaugeModule,\r\n LiquidFillModule,\r\n ButtonModule,\r\n TimerModule,\r\n NumberFlopModule,\r\n VoteModule,\r\n SelectModule,\r\n SearchModule,\r\n WeatherModule,\r\n RadioModule,\r\n CheckboxModule,\r\n RateModule,\r\n GeneralTextModule,\r\n MarqueeModule,\r\n WordartModule,\r\n IconfontModule,\r\n AudioModule,\r\n ShapeModule,\r\n BackgroundModule,\r\n // BasicSmoothLineChartModule,\r\n AnnouncementModule,\r\n TableModule,\r\n BasicPlanimetricMapModule,\r\n BreathingBubbleLayerModule,\r\n PlanimetricMap2dModule,\r\n ParentContainerModule,\r\n PlanimetricMap3dModule,\r\n TreeControlModule,\r\n VisualMapChartModule,\r\n TimePickerModule,\r\n DatePickerModule,\r\n CustomBaiduMapModule,\r\n TabsModule,\r\n MipAnimModule,\r\n CalendarModule,\r\n UploadModule,\r\n CrossTableModule,\r\n GanttModule,\r\n Pie3dChartModule,\r\n LineLightFlowModule,\r\n TemporaryDataModule,\r\n ],\r\n exports: [],\r\n declarations: [],\r\n})\r\nexport class WorkbenchWidgetModule {\r\n constructor(widgetService: WidgetService) {\r\n widgetService.register(ButtonComponent, { option: {}, size: { width: 3, height: 3 } });\r\n widgetService.register(CalendarComponent, { option: {}, size: { width: 16, height: 12 } });\r\n for (let i = 1; i <= 82; i++) {\r\n widgetService.register(ImageComponent, {\r\n option: { image: `assets/img/screen/picture${i}.png`, hideHead: true },\r\n size: { width: 6, height: 6 },\r\n });\r\n }\r\n icons.forEach((icon) => {\r\n widgetService.register(IconfontComponent, {\r\n option: { type: 'iconfont', icon, hideHead: true },\r\n size: { width: 4, height: 4 },\r\n });\r\n });\r\n widgetService.register(TimerComponent, {\r\n option: { font: { color: '#595F7A' } },\r\n size: { width: 10, height: 4 },\r\n });\r\n widgetService.register(NumberFlopComponent, { size: { width: 12, height: 6 } });\r\n widgetService.register(VoteComponent, { size: { width: 6, height: 6 } });\r\n widgetService.register(SelectComponent, { size: { width: 6, height: 4 } });\r\n widgetService.register(SearchComponent, { size: { width: 6, height: 3 } });\r\n widgetService.register(WeatherComponent, {\r\n option: { tempFont: { color: '#595F7A' } },\r\n size: { width: 10, height: 6 },\r\n });\r\n widgetService.register(RadioComponent, {\r\n option: { font: { color: '#595F7A' } },\r\n size: { width: 6, height: 4 },\r\n });\r\n widgetService.register(RateComponent, {\r\n option: { font: { color: '#595F7A' } },\r\n size: { width: 6, height: 6 },\r\n });\r\n widgetService.register(\r\n GeneralTextComponent,\r\n {\r\n className: 'big-title title',\r\n title: '大标题',\r\n option: {\r\n title: '大标题',\r\n font: { family: '', color: '#333333', weight: 'normal', size: 36, space: 0, lineHeight: 50 },\r\n },\r\n size: { width: 5, height: 3 },\r\n },\r\n {\r\n className: 'normal-title title',\r\n title: '标题',\r\n option: {\r\n title: '标题',\r\n font: { family: '', color: '#333333', weight: 'normal', size: 32, space: 0, lineHeight: 45 },\r\n },\r\n size: { width: 5, height: 3 },\r\n },\r\n {\r\n className: 'subtitle title',\r\n title: '副标题',\r\n option: {\r\n title: '副标题',\r\n font: { family: '', color: '#333333', weight: 'normal', size: 24, space: 0, lineHeight: 33 },\r\n },\r\n size: { width: 5, height: 3 },\r\n },\r\n {\r\n className: 'small-title title',\r\n title: '小标题',\r\n option: {\r\n title: '小标题',\r\n font: { family: '', color: '#333333', weight: 'normal', size: 16, space: 0, lineHeight: 22 },\r\n },\r\n size: { width: 5, height: 3 },\r\n },\r\n {\r\n className: 'content title',\r\n title: '正文内容',\r\n option: {\r\n title: '正文内容',\r\n font: { family: '', color: '#333333', weight: 'normal', size: 13, space: 0, lineHeight: 18 },\r\n },\r\n size: { width: 5, height: 3 },\r\n },\r\n );\r\n widgetService.register(\r\n WordartComponent,\r\n {\r\n className: 'wordart1 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n font: { family: 'cursive', color: '#3285FF', weight: 'normal', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n {\r\n className: 'wordart2 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n {\r\n className: 'wordart3 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #09FFDD 14%, #0055FF 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n {\r\n className: 'wordart4 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #F76B1C 14%, #FAD961 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n {\r\n className: 'wordart5 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #B4EC51 14%, #429321 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n {\r\n className: 'wordart6 wordart',\r\n title: '可视化数字大屏',\r\n option: {\r\n title: '可视化数字大屏',\r\n backgroundImage: '-webkit-linear-gradient(-90deg, #3023AE 14%, #FE55FF 100%)',\r\n font: { family: 'sans-serif', color: '#7ee5ce', weight: 'bold', size: 24, space: 0, lineHeight: '' },\r\n },\r\n size: { width: 7, height: 3 },\r\n },\r\n );\r\n widgetService.register(MarqueeComponent, {\r\n option: {\r\n font: { color: '#595F7A' },\r\n },\r\n size: { width: 7, height: 3 },\r\n });\r\n widgetService.register(\r\n AudioComponent,\r\n {\r\n title: '视频demo',\r\n option: {\r\n type: 'video',\r\n src: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180417154421.mp4',\r\n },\r\n },\r\n {\r\n title: '音频demo',\r\n option: {\r\n type: 'audio',\r\n src: 'https://xiche.oss-cn-beijing.aliyuncs.com/video/20180417154421.mp4',\r\n },\r\n },\r\n );\r\n widgetService.register(\r\n BasicLineChartComponent,\r\n {\r\n option: {\r\n type: 'basic',\r\n },\r\n image: 'assets/img/screen/basic-line-chart.png',\r\n },\r\n {\r\n title: '区域折线图',\r\n image: 'assets/img/screen/area-line-chart.png',\r\n option: {\r\n type: 'area',\r\n },\r\n },\r\n {\r\n title: '基本曲线图',\r\n image: 'assets/img/screen/smooth-line-chart.png',\r\n group: 'smoothLineChart',\r\n option: {\r\n type: 'smooth',\r\n },\r\n },\r\n {\r\n title: '区域曲线图',\r\n image: 'assets/img/screen/smooth-area-line-chart.png',\r\n group: 'smoothLineChart',\r\n option: {\r\n type: 'smooth-area',\r\n },\r\n },\r\n {\r\n title: '阶梯线图',\r\n group: 'stepLineChart',\r\n option: {\r\n type: 'step',\r\n step: 'end',\r\n },\r\n image: 'assets/img/screen/basic-line-chart.png',\r\n },\r\n );\r\n widgetService.register(\r\n BasicPieChartComponent,\r\n {\r\n option: {\r\n type: 'basic',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '环形饼图',\r\n image: 'assets/img/screen/pie-o.png',\r\n option: {\r\n type: 'ring',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '玫瑰饼图',\r\n image: 'assets/img/screen/rosePie.png',\r\n option: {\r\n type: 'rose',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '玫瑰环形饼图',\r\n image: 'assets/img/screen/roseRingPie.png',\r\n option: {\r\n type: 'roseRing',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n );\r\n widgetService.register(PercentPieChartComponent, {\r\n option: {\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(TreeRingChartComponent, {\r\n option: {\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(\r\n BasicBarChartComponent,\r\n {},\r\n {\r\n title: '堆叠柱图',\r\n image: 'assets/img/screen/doubleBar.png',\r\n option: {\r\n type: 'double',\r\n },\r\n },\r\n {\r\n title: '横向柱图',\r\n image: 'assets/img/screen/horiBar.png',\r\n option: {\r\n type: 'hori',\r\n },\r\n },\r\n {\r\n title: '横向堆叠柱图',\r\n image: 'assets/img/screen/doubleHoriBar.png',\r\n option: {\r\n type: 'horiD',\r\n },\r\n },\r\n {\r\n title: '双向柱图',\r\n image: 'assets/img/screen/doubleColorBar.png',\r\n option: {\r\n type: 'dcolor',\r\n },\r\n },\r\n );\r\n widgetService.register(LineBarChartComponent, {\r\n title: '折线柱图',\r\n image: 'assets/img/screen/lineBar.png',\r\n option: {\r\n type: 'line',\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(\r\n BarChartThreeDComponent,\r\n {\r\n title: '3D柱图',\r\n image: 'assets/img/screen/3Dbar.png',\r\n option: {\r\n type: '3D',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '3D堆叠柱图',\r\n image: 'assets/img/screen/3DdoubleBar.png',\r\n option: {\r\n type: '3Ddouble',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '3D横向柱图',\r\n image: 'assets/img/screen/3DhoriBar.png',\r\n option: {\r\n type: 'hori',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n {\r\n title: '3D堆叠横向柱图',\r\n image: 'assets/img/screen/3DdoubleHoriBar.png',\r\n option: {\r\n type: 'horiD',\r\n font: { color: '#595F7A' },\r\n },\r\n },\r\n );\r\n widgetService.register(BubbleChartComponent, {\r\n title: '散点图',\r\n image: 'assets/img/screen/bubble.png',\r\n option: {\r\n type: 'bubble',\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(RadarChartComponent, {\r\n title: '雷达图',\r\n image: 'assets/img/screen/radar.png',\r\n option: {\r\n type: 'radar',\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(FunnelChartComponent, {\r\n title: '三角图',\r\n image: 'assets/img/screen/funnel.png',\r\n option: {\r\n type: 'funnel',\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(GaugeComponent, {\r\n option: {\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(LiquidFillComponent, {\r\n option: {\r\n font: { color: '#595F7A' },\r\n },\r\n });\r\n widgetService.register(\r\n ShapeComponent,\r\n {\r\n title: '线条',\r\n image: 'assets/img/screen/shape01.png',\r\n option: {\r\n type: 'line',\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '三角形',\r\n image: 'assets/img/screen/shape06.png',\r\n option: {\r\n type: 'triangle',\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '矩形',\r\n image: 'assets/img/screen/shape03.png',\r\n option: {\r\n type: 'rect',\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '圆角矩形',\r\n image: 'assets/img/screen/shape04.png',\r\n option: {\r\n type: 'rect',\r\n fillet: 16,\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '平行四边形',\r\n image: 'assets/img/screen/shape09.png',\r\n option: {\r\n type: 'parallelogram',\r\n bottom: 110,\r\n deviation: 30,\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '梯形',\r\n image: 'assets/img/screen/shape10.png',\r\n option: {\r\n type: 'trapezoid',\r\n upper: 70,\r\n bottom: 100,\r\n deviation: 0,\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '五边形',\r\n image: 'assets/img/screen/shape08.png',\r\n option: {\r\n type: 'polygonplus',\r\n side: 5,\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '五角星',\r\n image: 'assets/img/screen/shape07.png',\r\n option: {\r\n type: 'polyhedrosis',\r\n side: 5,\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '圆形',\r\n image: 'assets/img/screen/shape05.png',\r\n option: {\r\n type: 'circle',\r\n },\r\n size: { width: 6, height: 7 },\r\n },\r\n {\r\n title: '箭头',\r\n image: 'assets/img/screen/shape11.png',\r\n option: {\r\n type: 'polygon',\r\n data: [\r\n {\r\n x: 20,\r\n y: 80,\r\n },\r\n {\r\n x: 100,\r\n y: 80,\r\n },\r\n {\r\n x: 100,\r\n y: 40,\r\n },\r\n {\r\n x: 180,\r\n y: 100,\r\n },\r\n {\r\n x: 100,\r\n y: 160,\r\n },\r\n {\r\n x: 100,\r\n y: 120,\r\n },\r\n {\r\n x: 20,\r\n y: 120,\r\n },\r\n ],\r\n },\r\n },\r\n );\r\n for (let i = 1; i <= 75; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/moduleBg${i}.png`,\r\n type: 'background',\r\n },\r\n size: { width: 10, height: 3 },\r\n });\r\n }\r\n for (let i = 1; i <= 8; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/border${i}.png`,\r\n type: 'background',\r\n },\r\n size: { width: 10, height: 10 },\r\n });\r\n }\r\n for (let i = 1; i <= 8; i++) {\r\n widgetService.register(BackgroundComponent, {\r\n option: {\r\n image: `assets/img/screen/bg${i}.png`,\r\n type: 'border',\r\n },\r\n size: { width: 10, height: 10 },\r\n });\r\n }\r\n widgetService.register(AnnouncementComponent, { size: { width: 14, height: 6 } });\r\n widgetService.register(TableComponent, {\r\n option: {\r\n image: 'assets/img/screen/table.png',\r\n },\r\n });\r\n widgetService.register(BasicPlanimetricMapComponent, { size: { width: 12, height: 12 } });\r\n widgetService.register(PlanimetricMap3dComponent, { size: { width: 12, height: 12 } });\r\n ['assets/img/screen/mipAnim1.gif', 'assets/img/screen/mipAnim2.gif'].forEach((image) => {\r\n widgetService.register(MipAnimComponent, {\r\n option: { image },\r\n size: { height: 6, width: 6 },\r\n });\r\n });\r\n }\r\n}\r\n"]}