bbj-screen-widget 2.4.62 → 2.4.63

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 (738) hide show
  1. package/bbj-screen-widget.d.ts +119 -0
  2. package/bbj-screen-widget.metadata.json +1 -0
  3. package/bundles/bbj-screen-widget-core.umd.js +614 -0
  4. package/bundles/bbj-screen-widget-core.umd.js.map +1 -0
  5. package/bundles/bbj-screen-widget-core.umd.min.js +2 -0
  6. package/bundles/bbj-screen-widget-core.umd.min.js.map +1 -0
  7. package/bundles/bbj-screen-widget.umd.js +21735 -0
  8. package/bundles/bbj-screen-widget.umd.js.map +1 -0
  9. package/bundles/bbj-screen-widget.umd.min.js +2 -0
  10. package/bundles/bbj-screen-widget.umd.min.js.map +1 -0
  11. package/core/bbj-screen-widget-core.d.ts +4 -0
  12. package/core/bbj-screen-widget-core.metadata.json +1 -0
  13. package/core/model/screen-widget.config.d.ts +7 -0
  14. package/core/package.json +10 -2
  15. package/core/public_api.d.ts +2 -0
  16. package/core/service/baidu-map.service.d.ts +18 -0
  17. package/esm2015/bbj-screen-widget.js +120 -0
  18. package/esm2015/core/bbj-screen-widget-core.js +5 -0
  19. package/esm2015/core/model/screen-widget.config.js +3 -0
  20. package/esm2015/core/public_api.js +3 -0
  21. package/esm2015/core/service/baidu-map.service.js +108 -0
  22. package/esm2015/lib/announcement/announcement.component.js +80 -0
  23. package/esm2015/lib/announcement/announcement.module.js +25 -0
  24. package/esm2015/lib/audio/audio.component.js +167 -0
  25. package/esm2015/lib/audio/audio.module.js +20 -0
  26. package/esm2015/lib/background/background.component.js +52 -0
  27. package/esm2015/lib/background/background.module.js +19 -0
  28. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.component.js +323 -0
  29. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.module.js +20 -0
  30. package/esm2015/lib/basic-bar-chart/basic-bar-chart.component.js +604 -0
  31. package/esm2015/lib/basic-bar-chart/basic-bar-chart.module.js +27 -0
  32. package/esm2015/lib/basic-line-chart/basic-line-chart.component.js +782 -0
  33. package/esm2015/lib/basic-line-chart/basic-line-chart.module.js +20 -0
  34. package/esm2015/lib/basic-pie-chart/basic-pie-chart.component.js +471 -0
  35. package/esm2015/lib/basic-pie-chart/basic-pie-chart.module.js +20 -0
  36. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.component.js +233 -0
  37. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.module.js +21 -0
  38. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.component.js +503 -0
  39. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.module.js +19 -0
  40. package/esm2015/lib/bubble-chart/bubble-chart.component.js +348 -0
  41. package/esm2015/lib/bubble-chart/bubble-chart.module.js +20 -0
  42. package/esm2015/lib/bulletin-board/bulletin-board.component.js +160 -0
  43. package/esm2015/lib/bulletin-board/bulletin-board.module.js +23 -0
  44. package/esm2015/lib/button/button.component.js +186 -0
  45. package/esm2015/lib/button/button.module.js +21 -0
  46. package/esm2015/lib/calendar/background-events/background-events.component.js +65 -0
  47. package/esm2015/lib/calendar/calendar-events-child.js +28 -0
  48. package/esm2015/lib/calendar/calendar.component.js +168 -0
  49. package/esm2015/lib/calendar/calendar.module.js +32 -0
  50. package/esm2015/lib/calendar/calendar.util.js +12 -0
  51. package/esm2015/lib/calendar/events/events.component.js +75 -0
  52. package/esm2015/lib/checkbox/checkbox.component.js +333 -0
  53. package/esm2015/lib/checkbox/checkbox.module.js +21 -0
  54. package/esm2015/lib/cross-table/cross-table.component.js +291 -0
  55. package/esm2015/lib/cross-table/cross-table.module.js +20 -0
  56. package/esm2015/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.js +747 -0
  57. package/esm2015/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.js +278 -0
  58. package/esm2015/lib/custom-baidu-map/base-layer.js +53 -0
  59. package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +675 -0
  60. package/esm2015/lib/custom-baidu-map/custom-baidu-map.module.js +46 -0
  61. package/esm2015/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.js +116 -0
  62. package/esm2015/lib/custom-baidu-map/wind-layer/wind-layer.component.js +331 -0
  63. package/esm2015/lib/date-picker/date-picker.component.js +447 -0
  64. package/esm2015/lib/date-picker/date-picker.module.js +22 -0
  65. package/esm2015/lib/funnel-chart/funnel-chart.component.js +241 -0
  66. package/esm2015/lib/funnel-chart/funnel-chart.module.js +20 -0
  67. package/esm2015/lib/gantt/gantt.component.js +222 -0
  68. package/esm2015/lib/gantt/gantt.module.js +39 -0
  69. package/esm2015/lib/gauge/gauge.component.js +324 -0
  70. package/esm2015/lib/gauge/gauge.module.js +20 -0
  71. package/esm2015/lib/gauge-progress/gauge-progress.component.js +356 -0
  72. package/esm2015/lib/gauge-progress/gauge.module.js +22 -0
  73. package/esm2015/lib/general-text/general-text.component.js +144 -0
  74. package/esm2015/lib/general-text/general-text.module.js +20 -0
  75. package/esm2015/lib/iconfont/icon.js +199 -0
  76. package/esm2015/lib/iconfont/iconfont.component.js +56 -0
  77. package/esm2015/lib/iconfont/iconfont.module.js +20 -0
  78. package/esm2015/lib/iframe/iframe.component.js +46 -0
  79. package/esm2015/lib/iframe/iframe.module.js +20 -0
  80. package/esm2015/lib/image/image.component.js +98 -0
  81. package/esm2015/lib/image/image.module.js +19 -0
  82. package/esm2015/lib/item-swiper/item-swiper.component.js +343 -0
  83. package/esm2015/lib/item-swiper/item-swiper.module.js +22 -0
  84. package/esm2015/lib/line-bar-chart/line-bar-chart.component.js +398 -0
  85. package/esm2015/lib/line-bar-chart/line-bar-chart.module.js +20 -0
  86. package/esm2015/lib/line-light-flow/line-light-flow.component.js +241 -0
  87. package/esm2015/lib/line-light-flow/line-light-flow.module.js +24 -0
  88. package/esm2015/lib/liquid-fill/liquid-fill.component.js +158 -0
  89. package/esm2015/lib/liquid-fill/liquid-fill.module.js +20 -0
  90. package/esm2015/lib/marquee/marquee.component.js +110 -0
  91. package/esm2015/lib/marquee/marquee.module.js +19 -0
  92. package/esm2015/lib/mip-anim/mip-anim.component.js +26 -0
  93. package/esm2015/lib/mip-anim/mip-anim.module.js +19 -0
  94. package/esm2015/lib/multi-title-gauge/multi-title-gauge.component.js +277 -0
  95. package/esm2015/lib/multi-title-gauge/multi-title-gauge.module.js +22 -0
  96. package/esm2015/lib/number-flop/number-flop.component.js +124 -0
  97. package/esm2015/lib/number-flop/number-flop.module.js +19 -0
  98. package/esm2015/lib/parent-container/parent-container.component.js +21 -0
  99. package/esm2015/lib/parent-container/parent-container.module.js +19 -0
  100. package/esm2015/lib/percent-pie-chart/percent-pie-chart.component.js +248 -0
  101. package/esm2015/lib/percent-pie-chart/percent-pie-chart.module.js +20 -0
  102. package/esm2015/lib/pie3d-chart/pie3d-chart.component.js +303 -0
  103. package/esm2015/lib/pie3d-chart/pie3d-chart.module.js +19 -0
  104. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.js +431 -0
  105. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.js +19 -0
  106. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.js +252 -0
  107. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.js +19 -0
  108. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.js +124 -0
  109. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.js +19 -0
  110. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.js +359 -0
  111. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.js +21 -0
  112. package/esm2015/lib/planimetric-map2d/planimetric-map2d.component.js +753 -0
  113. package/esm2015/lib/planimetric-map2d/planimetric-map2d.module.js +34 -0
  114. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.js +128 -0
  115. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.js +19 -0
  116. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.js +242 -0
  117. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.js +19 -0
  118. package/esm2015/lib/planimetric-map3d/planimetric-map3d.component.js +265 -0
  119. package/esm2015/lib/planimetric-map3d/planimetric-map3d.module.js +22 -0
  120. package/esm2015/lib/radar-chart/radar-chart.component.js +255 -0
  121. package/esm2015/lib/radar-chart/radar-chart.module.js +20 -0
  122. package/esm2015/lib/radio/radio.component.js +148 -0
  123. package/esm2015/lib/radio/radio.module.js +21 -0
  124. package/esm2015/lib/rate/rate.component.js +57 -0
  125. package/esm2015/lib/rate/rate.module.js +23 -0
  126. package/esm2015/lib/scatter3d/scatter3d.component.js +166 -0
  127. package/esm2015/lib/scatter3d/scatter3d.module.js +20 -0
  128. package/esm2015/lib/screen-widget.module.js +536 -0
  129. package/esm2015/lib/search/search.component.js +130 -0
  130. package/esm2015/lib/search/search.module.js +29 -0
  131. package/esm2015/lib/select/select.component.js +359 -0
  132. package/esm2015/lib/select/select.module.js +22 -0
  133. package/esm2015/lib/shape/shape.component.js +248 -0
  134. package/esm2015/lib/shape/shape.module.js +19 -0
  135. package/esm2015/lib/shared/component/video-player/video-player.component.js +114 -0
  136. package/esm2015/lib/shared/component/video-player/video-player.module.js +14 -0
  137. package/esm2015/lib/shared/service/common.service.js +39 -0
  138. package/esm2015/lib/shared/service/file-url.service.js +12 -0
  139. package/esm2015/lib/shared/service/gaode-map.service.js +36 -0
  140. package/esm2015/lib/shared/service/highcharts.service.js +36 -0
  141. package/esm2015/lib/shared/service/http.service.js +20 -0
  142. package/esm2015/lib/shared/util/base.util.js +5 -0
  143. package/esm2015/lib/shared/util/echarts.util.js +12 -0
  144. package/esm2015/lib/shared/util/style.util.js +19 -0
  145. package/esm2015/lib/shuffling-list/color.pipe.js +23 -0
  146. package/esm2015/lib/shuffling-list/shuffling-list.component.js +601 -0
  147. package/esm2015/lib/shuffling-list/shuffling-list.module.js +22 -0
  148. package/esm2015/lib/table/table.component.js +657 -0
  149. package/esm2015/lib/table/table.module.js +38 -0
  150. package/esm2015/lib/tabs/tab/tab.component.js +27 -0
  151. package/esm2015/lib/tabs/tabs.component.js +85 -0
  152. package/esm2015/lib/tabs/tabs.module.js +22 -0
  153. package/esm2015/lib/temporary-data/temporary-data.component.js +49 -0
  154. package/esm2015/lib/temporary-data/temporary-data.module.js +20 -0
  155. package/esm2015/lib/time-picker/time-picker.component.js +112 -0
  156. package/esm2015/lib/time-picker/time-picker.module.js +21 -0
  157. package/esm2015/lib/timer/timer.component.js +108 -0
  158. package/esm2015/lib/timer/timer.module.js +20 -0
  159. package/esm2015/lib/tree-control/tree-control.component.js +435 -0
  160. package/esm2015/lib/tree-control/tree-control.module.js +24 -0
  161. package/esm2015/lib/tree-ring-chart/tree-ring-chart.component.js +215 -0
  162. package/esm2015/lib/tree-ring-chart/tree-ring-chart.module.js +20 -0
  163. package/esm2015/lib/upload/upload.component.js +127 -0
  164. package/esm2015/lib/upload/upload.module.js +22 -0
  165. package/esm2015/lib/video-grid/video-grid.component.js +140 -0
  166. package/esm2015/lib/video-grid/video-grid.module.js +22 -0
  167. package/esm2015/lib/visual-map-chart/visual-map-chart.component.js +395 -0
  168. package/esm2015/lib/visual-map-chart/visual-map-chart.module.js +20 -0
  169. package/esm2015/lib/vote/vote.component.js +100 -0
  170. package/esm2015/lib/vote/vote.module.js +21 -0
  171. package/esm2015/lib/weather/weather.component.js +92 -0
  172. package/esm2015/lib/weather/weather.module.js +21 -0
  173. package/esm2015/lib/wordart/wordart.component.js +84 -0
  174. package/esm2015/lib/wordart/wordart.module.js +19 -0
  175. package/esm2015/lib/workbench-widget.module.js +620 -0
  176. package/esm2015/public-api.js +40 -0
  177. package/fesm2015/bbj-screen-widget-core.js +114 -0
  178. package/fesm2015/bbj-screen-widget-core.js.map +1 -0
  179. package/fesm2015/bbj-screen-widget.js +20633 -0
  180. package/fesm2015/bbj-screen-widget.js.map +1 -0
  181. package/lib/announcement/announcement.component.d.ts +13 -0
  182. package/lib/announcement/announcement.module.d.ts +5 -0
  183. package/lib/audio/audio.component.d.ts +22 -0
  184. package/lib/audio/audio.module.d.ts +4 -0
  185. package/lib/background/background.component.d.ts +12 -0
  186. package/lib/background/background.module.d.ts +4 -0
  187. package/lib/bar-chart-three-d/bar-chart-three-d.component.d.ts +30 -0
  188. package/lib/bar-chart-three-d/bar-chart-three-d.module.d.ts +4 -0
  189. package/lib/basic-bar-chart/basic-bar-chart.component.d.ts +105 -0
  190. package/lib/basic-bar-chart/basic-bar-chart.module.d.ts +5 -0
  191. package/lib/basic-line-chart/basic-line-chart.component.d.ts +102 -0
  192. package/lib/basic-line-chart/basic-line-chart.module.d.ts +4 -0
  193. package/lib/basic-pie-chart/basic-pie-chart.component.d.ts +56 -0
  194. package/lib/basic-pie-chart/basic-pie-chart.module.d.ts +4 -0
  195. package/lib/basic-planimetric-map/basic-planimetric-map.component.d.ts +18 -0
  196. package/lib/basic-planimetric-map/basic-planimetric-map.module.d.ts +4 -0
  197. package/lib/breathing-bubble-layer/breathing-bubble-layer.component.d.ts +210 -0
  198. package/lib/breathing-bubble-layer/breathing-bubble-layer.module.d.ts +4 -0
  199. package/lib/bubble-chart/bubble-chart.component.d.ts +75 -0
  200. package/lib/bubble-chart/bubble-chart.module.d.ts +4 -0
  201. package/lib/bulletin-board/bulletin-board.component.d.ts +25 -0
  202. package/lib/bulletin-board/bulletin-board.module.d.ts +4 -0
  203. package/lib/button/button.component.d.ts +25 -0
  204. package/lib/button/button.module.d.ts +4 -0
  205. package/lib/calendar/background-events/background-events.component.d.ts +10 -0
  206. package/lib/calendar/calendar-events-child.d.ts +12 -0
  207. package/lib/calendar/calendar.component.d.ts +27 -0
  208. package/lib/calendar/calendar.module.d.ts +4 -0
  209. package/lib/calendar/calendar.util.d.ts +6 -0
  210. package/lib/calendar/events/events.component.d.ts +13 -0
  211. package/lib/checkbox/checkbox.component.d.ts +45 -0
  212. package/lib/checkbox/checkbox.module.d.ts +4 -0
  213. package/lib/cross-table/cross-table.component.d.ts +30 -0
  214. package/lib/cross-table/cross-table.module.d.ts +4 -0
  215. package/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.d.ts +72 -0
  216. package/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.d.ts +23 -0
  217. package/lib/custom-baidu-map/base-layer.d.ts +16 -0
  218. package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +93 -0
  219. package/lib/custom-baidu-map/custom-baidu-map.module.d.ts +4 -0
  220. package/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.d.ts +16 -0
  221. package/lib/custom-baidu-map/wind-layer/wind-layer.component.d.ts +28 -0
  222. package/lib/date-picker/date-picker.component.d.ts +63 -0
  223. package/lib/date-picker/date-picker.module.d.ts +4 -0
  224. package/lib/funnel-chart/funnel-chart.component.d.ts +24 -0
  225. package/lib/funnel-chart/funnel-chart.module.d.ts +4 -0
  226. package/lib/gantt/gantt.component.d.ts +25 -0
  227. package/lib/gantt/gantt.module.d.ts +4 -0
  228. package/lib/gauge/gauge.component.d.ts +37 -0
  229. package/lib/gauge/gauge.module.d.ts +4 -0
  230. package/lib/gauge-progress/gauge-progress.component.d.ts +46 -0
  231. package/lib/gauge-progress/gauge.module.d.ts +5 -0
  232. package/lib/general-text/general-text.component.d.ts +21 -0
  233. package/lib/general-text/general-text.module.d.ts +4 -0
  234. package/lib/iconfont/icon.d.ts +1 -0
  235. package/lib/iconfont/iconfont.component.d.ts +11 -0
  236. package/lib/iconfont/iconfont.module.d.ts +4 -0
  237. package/lib/iframe/iframe.component.d.ts +10 -0
  238. package/lib/iframe/iframe.module.d.ts +4 -0
  239. package/lib/image/image.component.d.ts +21 -0
  240. package/lib/image/image.module.d.ts +4 -0
  241. package/lib/item-swiper/item-swiper.component.d.ts +41 -0
  242. package/lib/item-swiper/item-swiper.module.d.ts +5 -0
  243. package/lib/line-bar-chart/line-bar-chart.component.d.ts +63 -0
  244. package/lib/line-bar-chart/line-bar-chart.module.d.ts +4 -0
  245. package/lib/line-light-flow/line-light-flow.component.d.ts +26 -0
  246. package/lib/line-light-flow/line-light-flow.module.d.ts +4 -0
  247. package/lib/liquid-fill/liquid-fill.component.d.ts +18 -0
  248. package/lib/liquid-fill/liquid-fill.module.d.ts +4 -0
  249. package/lib/marquee/marquee.component.d.ts +20 -0
  250. package/lib/marquee/marquee.module.d.ts +4 -0
  251. package/lib/mip-anim/mip-anim.component.d.ts +6 -0
  252. package/lib/mip-anim/mip-anim.module.d.ts +4 -0
  253. package/lib/multi-title-gauge/multi-title-gauge.component.d.ts +26 -0
  254. package/lib/multi-title-gauge/multi-title-gauge.module.d.ts +4 -0
  255. package/lib/number-flop/number-flop.component.d.ts +22 -0
  256. package/lib/number-flop/number-flop.module.d.ts +4 -0
  257. package/lib/parent-container/parent-container.component.d.ts +9 -0
  258. package/lib/parent-container/parent-container.module.d.ts +4 -0
  259. package/lib/percent-pie-chart/percent-pie-chart.component.d.ts +24 -0
  260. package/lib/percent-pie-chart/percent-pie-chart.module.d.ts +4 -0
  261. package/lib/pie3d-chart/pie3d-chart.component.d.ts +30 -0
  262. package/lib/pie3d-chart/pie3d-chart.module.d.ts +4 -0
  263. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.d.ts +206 -0
  264. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.d.ts +4 -0
  265. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.d.ts +15 -0
  266. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.d.ts +4 -0
  267. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.d.ts +15 -0
  268. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.d.ts +4 -0
  269. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.d.ts +49 -0
  270. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.d.ts +4 -0
  271. package/lib/planimetric-map2d/planimetric-map2d.component.d.ts +49 -0
  272. package/lib/planimetric-map2d/planimetric-map2d.module.d.ts +4 -0
  273. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.d.ts +14 -0
  274. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.d.ts +4 -0
  275. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.d.ts +41 -0
  276. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.d.ts +4 -0
  277. package/lib/planimetric-map3d/planimetric-map3d.component.d.ts +29 -0
  278. package/lib/planimetric-map3d/planimetric-map3d.module.d.ts +4 -0
  279. package/lib/radar-chart/radar-chart.component.d.ts +24 -0
  280. package/lib/radar-chart/radar-chart.module.d.ts +4 -0
  281. package/lib/radio/radio.component.d.ts +21 -0
  282. package/lib/radio/radio.module.d.ts +4 -0
  283. package/lib/rate/rate.component.d.ts +13 -0
  284. package/lib/rate/rate.module.d.ts +4 -0
  285. package/lib/scatter3d/scatter3d.component.d.ts +25 -0
  286. package/lib/scatter3d/scatter3d.module.d.ts +4 -0
  287. package/lib/screen-widget.module.d.ts +4 -0
  288. package/lib/search/search.component.d.ts +21 -0
  289. package/lib/search/search.module.d.ts +6 -0
  290. package/lib/select/select.component.d.ts +37 -0
  291. package/lib/select/select.module.d.ts +4 -0
  292. package/lib/shape/shape.component.d.ts +50 -0
  293. package/lib/shape/shape.module.d.ts +4 -0
  294. package/lib/shared/component/video-player/video-player.component.d.ts +28 -0
  295. package/lib/shared/component/video-player/video-player.module.d.ts +2 -0
  296. package/lib/shared/service/common.service.d.ts +21 -0
  297. package/lib/shared/service/file-url.service.d.ts +3 -0
  298. package/lib/shared/service/gaode-map.service.d.ts +10 -0
  299. package/lib/shared/service/highcharts.service.d.ts +9 -0
  300. package/lib/shared/service/http.service.d.ts +7 -0
  301. package/lib/shared/util/base.util.d.ts +1 -0
  302. package/lib/shared/util/echarts.util.d.ts +1 -0
  303. package/lib/shared/util/style.util.d.ts +1 -0
  304. package/lib/shuffling-list/color.pipe.d.ts +4 -0
  305. package/lib/shuffling-list/shuffling-list.component.d.ts +76 -0
  306. package/lib/shuffling-list/shuffling-list.module.d.ts +4 -0
  307. package/lib/table/table.component.d.ts +65 -0
  308. package/lib/table/table.module.d.ts +4 -0
  309. package/lib/tabs/tab/tab.component.d.ts +7 -0
  310. package/lib/tabs/tabs.component.d.ts +13 -0
  311. package/lib/tabs/tabs.module.d.ts +4 -0
  312. package/lib/temporary-data/temporary-data.component.d.ts +13 -0
  313. package/lib/temporary-data/temporary-data.module.d.ts +4 -0
  314. package/lib/time-picker/time-picker.component.d.ts +17 -0
  315. package/lib/time-picker/time-picker.module.d.ts +4 -0
  316. package/lib/timer/timer.component.d.ts +21 -0
  317. package/lib/timer/timer.module.d.ts +4 -0
  318. package/lib/tree-control/tree-control.component.d.ts +62 -0
  319. package/lib/tree-control/tree-control.module.d.ts +4 -0
  320. package/lib/tree-ring-chart/tree-ring-chart.component.d.ts +24 -0
  321. package/lib/tree-ring-chart/tree-ring-chart.module.d.ts +4 -0
  322. package/lib/upload/upload.component.d.ts +21 -0
  323. package/lib/upload/upload.module.d.ts +4 -0
  324. package/lib/video-grid/video-grid.component.d.ts +23 -0
  325. package/lib/video-grid/video-grid.module.d.ts +4 -0
  326. package/lib/visual-map-chart/visual-map-chart.component.d.ts +49 -0
  327. package/lib/visual-map-chart/visual-map-chart.module.d.ts +4 -0
  328. package/lib/vote/vote.component.d.ts +15 -0
  329. package/lib/vote/vote.module.d.ts +4 -0
  330. package/lib/weather/weather.component.d.ts +26 -0
  331. package/lib/weather/weather.module.d.ts +4 -0
  332. package/lib/wordart/wordart.component.d.ts +14 -0
  333. package/lib/wordart/wordart.module.d.ts +4 -0
  334. package/lib/workbench-widget.module.d.ts +4 -0
  335. package/package.json +13 -4
  336. package/{src/public-api.ts → public-api.d.ts} +35 -46
  337. package/core/src/public_api.ts +0 -1
  338. package/core/src/service/baidu-map.service.ts +0 -107
  339. package/karma.conf.js +0 -32
  340. package/ng-package.json +0 -59
  341. package/src/lib/announcement/announcement.component.html +0 -3
  342. package/src/lib/announcement/announcement.component.less +0 -5
  343. package/src/lib/announcement/announcement.component.spec.ts +0 -25
  344. package/src/lib/announcement/announcement.component.ts +0 -55
  345. package/src/lib/announcement/announcement.module.ts +0 -19
  346. package/src/lib/audio/audio.component.html +0 -6
  347. package/src/lib/audio/audio.component.less +0 -12
  348. package/src/lib/audio/audio.component.spec.ts +0 -25
  349. package/src/lib/audio/audio.component.ts +0 -167
  350. package/src/lib/audio/audio.module.ts +0 -15
  351. package/src/lib/background/background.component.html +0 -1
  352. package/src/lib/background/background.component.less +0 -6
  353. package/src/lib/background/background.component.spec.ts +0 -25
  354. package/src/lib/background/background.component.ts +0 -33
  355. package/src/lib/background/background.module.ts +0 -14
  356. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.html +0 -1
  357. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.less +0 -8
  358. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.spec.ts +0 -25
  359. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.ts +0 -271
  360. package/src/lib/bar-chart-three-d/bar-chart-three-d.module.ts +0 -15
  361. package/src/lib/basic-bar-chart/basic-bar-chart.component.html +0 -7
  362. package/src/lib/basic-bar-chart/basic-bar-chart.component.less +0 -5
  363. package/src/lib/basic-bar-chart/basic-bar-chart.component.spec.ts +0 -25
  364. package/src/lib/basic-bar-chart/basic-bar-chart.component.ts +0 -493
  365. package/src/lib/basic-bar-chart/basic-bar-chart.module.ts +0 -21
  366. package/src/lib/basic-line-chart/basic-line-chart.component.html +0 -7
  367. package/src/lib/basic-line-chart/basic-line-chart.component.less +0 -8
  368. package/src/lib/basic-line-chart/basic-line-chart.component.spec.ts +0 -25
  369. package/src/lib/basic-line-chart/basic-line-chart.component.ts +0 -654
  370. package/src/lib/basic-line-chart/basic-line-chart.module.ts +0 -15
  371. package/src/lib/basic-pie-chart/basic-pie-chart.component.html +0 -7
  372. package/src/lib/basic-pie-chart/basic-pie-chart.component.less +0 -8
  373. package/src/lib/basic-pie-chart/basic-pie-chart.component.spec.ts +0 -25
  374. package/src/lib/basic-pie-chart/basic-pie-chart.component.ts +0 -439
  375. package/src/lib/basic-pie-chart/basic-pie-chart.module.ts +0 -15
  376. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.html +0 -2
  377. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.less +0 -9
  378. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.spec.ts +0 -25
  379. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.ts +0 -211
  380. package/src/lib/basic-planimetric-map/basic-planimetric-map.module.ts +0 -16
  381. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.css +0 -0
  382. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.html +0 -1
  383. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.spec.ts +0 -25
  384. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.ts +0 -487
  385. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.module.ts +0 -14
  386. package/src/lib/bubble-chart/bubble-chart.component.html +0 -7
  387. package/src/lib/bubble-chart/bubble-chart.component.less +0 -8
  388. package/src/lib/bubble-chart/bubble-chart.component.spec.ts +0 -25
  389. package/src/lib/bubble-chart/bubble-chart.component.ts +0 -307
  390. package/src/lib/bubble-chart/bubble-chart.module.ts +0 -15
  391. package/src/lib/bulletin-board/bulletin-board.component.html +0 -15
  392. package/src/lib/bulletin-board/bulletin-board.component.less +0 -27
  393. package/src/lib/bulletin-board/bulletin-board.component.spec.ts +0 -25
  394. package/src/lib/bulletin-board/bulletin-board.component.ts +0 -127
  395. package/src/lib/bulletin-board/bulletin-board.module.ts +0 -20
  396. package/src/lib/button/button.component.html +0 -1
  397. package/src/lib/button/button.component.less +0 -17
  398. package/src/lib/button/button.component.spec.ts +0 -25
  399. package/src/lib/button/button.component.ts +0 -137
  400. package/src/lib/button/button.module.ts +0 -16
  401. package/src/lib/calendar/background-events/background-events.component.html +0 -0
  402. package/src/lib/calendar/background-events/background-events.component.less +0 -0
  403. package/src/lib/calendar/background-events/background-events.component.spec.ts +0 -25
  404. package/src/lib/calendar/background-events/background-events.component.ts +0 -51
  405. package/src/lib/calendar/calendar-events-child.ts +0 -27
  406. package/src/lib/calendar/calendar.component.html +0 -2
  407. package/src/lib/calendar/calendar.component.less +0 -14
  408. package/src/lib/calendar/calendar.component.spec.ts +0 -25
  409. package/src/lib/calendar/calendar.component.ts +0 -151
  410. package/src/lib/calendar/calendar.module.ts +0 -27
  411. package/src/lib/calendar/calendar.util.ts +0 -14
  412. package/src/lib/calendar/events/events.component.html +0 -0
  413. package/src/lib/calendar/events/events.component.less +0 -0
  414. package/src/lib/calendar/events/events.component.spec.ts +0 -25
  415. package/src/lib/calendar/events/events.component.ts +0 -61
  416. package/src/lib/checkbox/checkbox.component.html +0 -61
  417. package/src/lib/checkbox/checkbox.component.less +0 -104
  418. package/src/lib/checkbox/checkbox.component.spec.ts +0 -25
  419. package/src/lib/checkbox/checkbox.component.ts +0 -292
  420. package/src/lib/checkbox/checkbox.module.ts +0 -16
  421. package/src/lib/cross-table/cross-table.component.html +0 -16
  422. package/src/lib/cross-table/cross-table.component.less +0 -75
  423. package/src/lib/cross-table/cross-table.component.spec.ts +0 -25
  424. package/src/lib/cross-table/cross-table.component.ts +0 -257
  425. package/src/lib/cross-table/cross-table.module.ts +0 -18
  426. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.html +0 -32
  427. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.less +0 -11
  428. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.spec.ts +0 -25
  429. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.ts +0 -689
  430. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.html +0 -0
  431. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.less +0 -0
  432. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.spec.ts +0 -25
  433. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.ts +0 -248
  434. package/src/lib/custom-baidu-map/base-layer.ts +0 -50
  435. package/src/lib/custom-baidu-map/custom-baidu-map.component.html +0 -15
  436. package/src/lib/custom-baidu-map/custom-baidu-map.component.less +0 -69
  437. package/src/lib/custom-baidu-map/custom-baidu-map.component.spec.ts +0 -25
  438. package/src/lib/custom-baidu-map/custom-baidu-map.component.ts +0 -652
  439. package/src/lib/custom-baidu-map/custom-baidu-map.module.ts +0 -41
  440. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.html +0 -0
  441. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.less +0 -0
  442. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.spec.ts +0 -25
  443. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.ts +0 -99
  444. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.html +0 -0
  445. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.less +0 -0
  446. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.spec.ts +0 -25
  447. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.ts +0 -404
  448. package/src/lib/data-map/data-map.component.html +0 -9
  449. package/src/lib/data-map/data-map.component.less +0 -0
  450. package/src/lib/data-map/data-map.component.spec.ts +0 -25
  451. package/src/lib/data-map/data-map.component.ts +0 -105
  452. package/src/lib/data-map/data-map.module.ts +0 -15
  453. package/src/lib/date-picker/date-picker.component.html +0 -32
  454. package/src/lib/date-picker/date-picker.component.less +0 -20
  455. package/src/lib/date-picker/date-picker.component.spec.ts +0 -25
  456. package/src/lib/date-picker/date-picker.component.ts +0 -389
  457. package/src/lib/date-picker/date-picker.module.ts +0 -18
  458. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.html +0 -25
  459. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.less +0 -35
  460. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.spec.ts +0 -25
  461. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.ts +0 -117
  462. package/src/lib/drop-down-detail-list/drop-down-detail-list.module.ts +0 -15
  463. package/src/lib/dynamic-list/dynamic-list.component.html +0 -15
  464. package/src/lib/dynamic-list/dynamic-list.component.less +0 -31
  465. package/src/lib/dynamic-list/dynamic-list.component.spec.ts +0 -25
  466. package/src/lib/dynamic-list/dynamic-list.component.ts +0 -57
  467. package/src/lib/dynamic-list/dynamic-list.module.ts +0 -15
  468. package/src/lib/funnel-chart/funnel-chart.component.html +0 -7
  469. package/src/lib/funnel-chart/funnel-chart.component.less +0 -8
  470. package/src/lib/funnel-chart/funnel-chart.component.spec.ts +0 -25
  471. package/src/lib/funnel-chart/funnel-chart.component.ts +0 -198
  472. package/src/lib/funnel-chart/funnel-chart.module.ts +0 -15
  473. package/src/lib/gantt/gantt.component.html +0 -10
  474. package/src/lib/gantt/gantt.component.less +0 -76
  475. package/src/lib/gantt/gantt.component.spec.ts +0 -25
  476. package/src/lib/gantt/gantt.component.ts +0 -213
  477. package/src/lib/gantt/gantt.module.ts +0 -37
  478. package/src/lib/gauge/gauge.component.html +0 -1
  479. package/src/lib/gauge/gauge.component.less +0 -8
  480. package/src/lib/gauge/gauge.component.spec.ts +0 -25
  481. package/src/lib/gauge/gauge.component.ts +0 -268
  482. package/src/lib/gauge/gauge.module.ts +0 -15
  483. package/src/lib/gauge-progress/gauge-progress.component.html +0 -29
  484. package/src/lib/gauge-progress/gauge-progress.component.less +0 -51
  485. package/src/lib/gauge-progress/gauge-progress.component.ts +0 -293
  486. package/src/lib/gauge-progress/gauge.module.ts +0 -17
  487. package/src/lib/general-text/general-text.component.html +0 -7
  488. package/src/lib/general-text/general-text.component.less +0 -8
  489. package/src/lib/general-text/general-text.component.spec.ts +0 -25
  490. package/src/lib/general-text/general-text.component.ts +0 -114
  491. package/src/lib/general-text/general-text.module.ts +0 -15
  492. package/src/lib/iconfont/icon.ts +0 -198
  493. package/src/lib/iconfont/iconfont.component.html +0 -4
  494. package/src/lib/iconfont/iconfont.component.less +0 -5
  495. package/src/lib/iconfont/iconfont.component.spec.ts +0 -25
  496. package/src/lib/iconfont/iconfont.component.ts +0 -42
  497. package/src/lib/iconfont/iconfont.module.ts +0 -15
  498. package/src/lib/iframe/iframe.component.html +0 -1
  499. package/src/lib/iframe/iframe.component.less +0 -13
  500. package/src/lib/iframe/iframe.component.spec.ts +0 -25
  501. package/src/lib/iframe/iframe.component.ts +0 -34
  502. package/src/lib/iframe/iframe.module.ts +0 -15
  503. package/src/lib/image/image.component.html +0 -2
  504. package/src/lib/image/image.component.less +0 -13
  505. package/src/lib/image/image.component.spec.ts +0 -25
  506. package/src/lib/image/image.component.ts +0 -79
  507. package/src/lib/image/image.module.ts +0 -14
  508. package/src/lib/item-swiper/item-swiper.component.html +0 -48
  509. package/src/lib/item-swiper/item-swiper.component.less +0 -75
  510. package/src/lib/item-swiper/item-swiper.component.spec.ts +0 -25
  511. package/src/lib/item-swiper/item-swiper.component.ts +0 -277
  512. package/src/lib/item-swiper/item-swiper.module.ts +0 -17
  513. package/src/lib/line-bar-chart/line-bar-chart.component.html +0 -7
  514. package/src/lib/line-bar-chart/line-bar-chart.component.less +0 -3
  515. package/src/lib/line-bar-chart/line-bar-chart.component.spec.ts +0 -25
  516. package/src/lib/line-bar-chart/line-bar-chart.component.ts +0 -346
  517. package/src/lib/line-bar-chart/line-bar-chart.module.ts +0 -15
  518. package/src/lib/line-light-flow/line-light-flow.component.css +0 -0
  519. package/src/lib/line-light-flow/line-light-flow.component.html +0 -3
  520. package/src/lib/line-light-flow/line-light-flow.component.spec.ts +0 -25
  521. package/src/lib/line-light-flow/line-light-flow.component.ts +0 -274
  522. package/src/lib/line-light-flow/line-light-flow.module.ts +0 -21
  523. package/src/lib/liquid-fill/liquid-fill.component.html +0 -1
  524. package/src/lib/liquid-fill/liquid-fill.component.less +0 -8
  525. package/src/lib/liquid-fill/liquid-fill.component.spec.ts +0 -25
  526. package/src/lib/liquid-fill/liquid-fill.component.ts +0 -127
  527. package/src/lib/liquid-fill/liquid-fill.module.ts +0 -15
  528. package/src/lib/marquee/marquee.component.html +0 -5
  529. package/src/lib/marquee/marquee.component.less +0 -9
  530. package/src/lib/marquee/marquee.component.spec.ts +0 -25
  531. package/src/lib/marquee/marquee.component.ts +0 -84
  532. package/src/lib/marquee/marquee.module.ts +0 -14
  533. package/src/lib/mip-anim/mip-anim.component.html +0 -1
  534. package/src/lib/mip-anim/mip-anim.component.less +0 -7
  535. package/src/lib/mip-anim/mip-anim.component.spec.ts +0 -25
  536. package/src/lib/mip-anim/mip-anim.component.ts +0 -18
  537. package/src/lib/mip-anim/mip-anim.module.ts +0 -14
  538. package/src/lib/multi-title-gauge/multi-title-gauge.component.html +0 -1
  539. package/src/lib/multi-title-gauge/multi-title-gauge.component.less +0 -9
  540. package/src/lib/multi-title-gauge/multi-title-gauge.component.spec.ts +0 -25
  541. package/src/lib/multi-title-gauge/multi-title-gauge.component.ts +0 -231
  542. package/src/lib/multi-title-gauge/multi-title-gauge.module.ts +0 -19
  543. package/src/lib/number-flop/number-flop.component.html +0 -31
  544. package/src/lib/number-flop/number-flop.component.less +0 -155
  545. package/src/lib/number-flop/number-flop.component.spec.ts +0 -25
  546. package/src/lib/number-flop/number-flop.component.ts +0 -96
  547. package/src/lib/number-flop/number-flop.module.ts +0 -14
  548. package/src/lib/parent-container/parent-container.component.html +0 -0
  549. package/src/lib/parent-container/parent-container.component.less +0 -0
  550. package/src/lib/parent-container/parent-container.component.spec.ts +0 -25
  551. package/src/lib/parent-container/parent-container.component.ts +0 -21
  552. package/src/lib/parent-container/parent-container.module.ts +0 -14
  553. package/src/lib/percent-pie-chart/percent-pie-chart.component.html +0 -8
  554. package/src/lib/percent-pie-chart/percent-pie-chart.component.less +0 -8
  555. package/src/lib/percent-pie-chart/percent-pie-chart.component.spec.ts +0 -25
  556. package/src/lib/percent-pie-chart/percent-pie-chart.component.ts +0 -213
  557. package/src/lib/percent-pie-chart/percent-pie-chart.module.ts +0 -15
  558. package/src/lib/pie3d-chart/pie3d-chart.component.html +0 -1
  559. package/src/lib/pie3d-chart/pie3d-chart.component.less +0 -9
  560. package/src/lib/pie3d-chart/pie3d-chart.component.spec.ts +0 -25
  561. package/src/lib/pie3d-chart/pie3d-chart.component.ts +0 -278
  562. package/src/lib/pie3d-chart/pie3d-chart.module.ts +0 -16
  563. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.html +0 -0
  564. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.less +0 -0
  565. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.spec.ts +0 -25
  566. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.ts +0 -411
  567. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.ts +0 -13
  568. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.html +0 -1
  569. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.less +0 -0
  570. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.spec.ts +0 -25
  571. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.ts +0 -235
  572. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.ts +0 -16
  573. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.html +0 -0
  574. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.less +0 -0
  575. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.spec.ts +0 -25
  576. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.ts +0 -107
  577. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.ts +0 -17
  578. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.html +0 -0
  579. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.less +0 -0
  580. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.spec.ts +0 -25
  581. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.ts +0 -337
  582. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.ts +0 -18
  583. package/src/lib/planimetric-map2d/planimetric-map2d.component.html +0 -11
  584. package/src/lib/planimetric-map2d/planimetric-map2d.component.less +0 -9
  585. package/src/lib/planimetric-map2d/planimetric-map2d.component.spec.ts +0 -25
  586. package/src/lib/planimetric-map2d/planimetric-map2d.component.ts +0 -690
  587. package/src/lib/planimetric-map2d/planimetric-map2d.module.ts +0 -29
  588. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.html +0 -0
  589. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.less +0 -0
  590. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.spec.ts +0 -25
  591. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.ts +0 -123
  592. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.ts +0 -14
  593. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.html +0 -0
  594. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.less +0 -0
  595. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.spec.ts +0 -25
  596. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.ts +0 -229
  597. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.ts +0 -14
  598. package/src/lib/planimetric-map3d/planimetric-map3d.component.html +0 -2
  599. package/src/lib/planimetric-map3d/planimetric-map3d.component.less +0 -10
  600. package/src/lib/planimetric-map3d/planimetric-map3d.component.spec.ts +0 -25
  601. package/src/lib/planimetric-map3d/planimetric-map3d.component.ts +0 -227
  602. package/src/lib/planimetric-map3d/planimetric-map3d.module.ts +0 -17
  603. package/src/lib/radar-chart/radar-chart.component.html +0 -7
  604. package/src/lib/radar-chart/radar-chart.component.less +0 -8
  605. package/src/lib/radar-chart/radar-chart.component.spec.ts +0 -25
  606. package/src/lib/radar-chart/radar-chart.component.ts +0 -219
  607. package/src/lib/radar-chart/radar-chart.module.ts +0 -15
  608. package/src/lib/radio/radio.component.html +0 -18
  609. package/src/lib/radio/radio.component.less +0 -61
  610. package/src/lib/radio/radio.component.spec.ts +0 -25
  611. package/src/lib/radio/radio.component.ts +0 -116
  612. package/src/lib/radio/radio.module.ts +0 -16
  613. package/src/lib/rate/rate.component.html +0 -16
  614. package/src/lib/rate/rate.component.less +0 -39
  615. package/src/lib/rate/rate.component.spec.ts +0 -25
  616. package/src/lib/rate/rate.component.ts +0 -40
  617. package/src/lib/rate/rate.module.ts +0 -18
  618. package/src/lib/scatter3d/scatter3d.component.html +0 -1
  619. package/src/lib/scatter3d/scatter3d.component.less +0 -8
  620. package/src/lib/scatter3d/scatter3d.component.spec.ts +0 -25
  621. package/src/lib/scatter3d/scatter3d.component.ts +0 -129
  622. package/src/lib/scatter3d/scatter3d.module.ts +0 -15
  623. package/src/lib/screen-widget.module.ts +0 -592
  624. package/src/lib/search/search.component.html +0 -30
  625. package/src/lib/search/search.component.less +0 -30
  626. package/src/lib/search/search.component.spec.ts +0 -25
  627. package/src/lib/search/search.component.ts +0 -103
  628. package/src/lib/search/search.module.ts +0 -22
  629. package/src/lib/select/select.component.html +0 -30
  630. package/src/lib/select/select.component.less +0 -117
  631. package/src/lib/select/select.component.spec.ts +0 -25
  632. package/src/lib/select/select.component.ts +0 -297
  633. package/src/lib/select/select.module.ts +0 -18
  634. package/src/lib/shape/shape.component.html +0 -39
  635. package/src/lib/shape/shape.component.less +0 -8
  636. package/src/lib/shape/shape.component.spec.ts +0 -25
  637. package/src/lib/shape/shape.component.ts +0 -207
  638. package/src/lib/shape/shape.module.ts +0 -14
  639. package/src/lib/shared/component/video-player/video-player.component.html +0 -2
  640. package/src/lib/shared/component/video-player/video-player.component.less +0 -15
  641. package/src/lib/shared/component/video-player/video-player.component.spec.ts +0 -25
  642. package/src/lib/shared/component/video-player/video-player.component.ts +0 -132
  643. package/src/lib/shared/component/video-player/video-player.module.ts +0 -11
  644. package/src/lib/shared/model/scale.token.ts +0 -8
  645. package/src/lib/shared/service/common.service.ts +0 -28
  646. package/src/lib/shared/service/file-url.service.ts +0 -8
  647. package/src/lib/shared/service/gaode-map.service.ts +0 -37
  648. package/src/lib/shared/service/highcharts.service.ts +0 -29
  649. package/src/lib/shared/service/http.service.ts +0 -15
  650. package/src/lib/shared/util/base.util.ts +0 -4
  651. package/src/lib/shared/util/echarts.util.ts +0 -11
  652. package/src/lib/shared/util/style.util.ts +0 -12
  653. package/src/lib/shuffling-list/color.pipe.ts +0 -21
  654. package/src/lib/shuffling-list/shuffling-list.component.html +0 -37
  655. package/src/lib/shuffling-list/shuffling-list.component.less +0 -55
  656. package/src/lib/shuffling-list/shuffling-list.component.spec.ts +0 -25
  657. package/src/lib/shuffling-list/shuffling-list.component.ts +0 -534
  658. package/src/lib/shuffling-list/shuffling-list.module.ts +0 -17
  659. package/src/lib/table/table.component.html +0 -123
  660. package/src/lib/table/table.component.less +0 -76
  661. package/src/lib/table/table.component.spec.ts +0 -25
  662. package/src/lib/table/table.component.ts +0 -608
  663. package/src/lib/table/table.module.ts +0 -33
  664. package/src/lib/tabs/tab/tab.component.html +0 -1
  665. package/src/lib/tabs/tab/tab.component.less +0 -5
  666. package/src/lib/tabs/tab/tab.component.spec.ts +0 -25
  667. package/src/lib/tabs/tab/tab.component.ts +0 -18
  668. package/src/lib/tabs/tabs.component.html +0 -13
  669. package/src/lib/tabs/tabs.component.less +0 -40
  670. package/src/lib/tabs/tabs.component.spec.ts +0 -25
  671. package/src/lib/tabs/tabs.component.ts +0 -68
  672. package/src/lib/tabs/tabs.module.ts +0 -17
  673. package/src/lib/temporary-data/temporary-data.component.html +0 -1
  674. package/src/lib/temporary-data/temporary-data.component.less +0 -4
  675. package/src/lib/temporary-data/temporary-data.component.spec.ts +0 -25
  676. package/src/lib/temporary-data/temporary-data.component.ts +0 -46
  677. package/src/lib/temporary-data/temporary-data.module.ts +0 -15
  678. package/src/lib/text/text.component.css +0 -0
  679. package/src/lib/text/text.component.html +0 -3
  680. package/src/lib/text/text.component.spec.ts +0 -25
  681. package/src/lib/text/text.component.ts +0 -22
  682. package/src/lib/text/text.module.ts +0 -14
  683. package/src/lib/time-picker/time-picker.component.html +0 -1
  684. package/src/lib/time-picker/time-picker.component.less +0 -14
  685. package/src/lib/time-picker/time-picker.component.spec.ts +0 -25
  686. package/src/lib/time-picker/time-picker.component.ts +0 -86
  687. package/src/lib/time-picker/time-picker.module.ts +0 -19
  688. package/src/lib/timer/timer.component.html +0 -7
  689. package/src/lib/timer/timer.component.less +0 -24
  690. package/src/lib/timer/timer.component.spec.ts +0 -25
  691. package/src/lib/timer/timer.component.ts +0 -74
  692. package/src/lib/timer/timer.module.ts +0 -15
  693. package/src/lib/tree-control/tree-control.component.html +0 -97
  694. package/src/lib/tree-control/tree-control.component.less +0 -111
  695. package/src/lib/tree-control/tree-control.component.spec.ts +0 -25
  696. package/src/lib/tree-control/tree-control.component.ts +0 -363
  697. package/src/lib/tree-control/tree-control.module.ts +0 -18
  698. package/src/lib/tree-ring-chart/tree-ring-chart.component.html +0 -7
  699. package/src/lib/tree-ring-chart/tree-ring-chart.component.less +0 -8
  700. package/src/lib/tree-ring-chart/tree-ring-chart.component.spec.ts +0 -25
  701. package/src/lib/tree-ring-chart/tree-ring-chart.component.ts +0 -192
  702. package/src/lib/tree-ring-chart/tree-ring-chart.module.ts +0 -15
  703. package/src/lib/upload/upload.component.html +0 -32
  704. package/src/lib/upload/upload.component.less +0 -14
  705. package/src/lib/upload/upload.component.spec.ts +0 -25
  706. package/src/lib/upload/upload.component.ts +0 -109
  707. package/src/lib/upload/upload.module.ts +0 -19
  708. package/src/lib/video-grid/video-grid.component.html +0 -33
  709. package/src/lib/video-grid/video-grid.component.less +0 -68
  710. package/src/lib/video-grid/video-grid.component.spec.ts +0 -25
  711. package/src/lib/video-grid/video-grid.component.ts +0 -115
  712. package/src/lib/video-grid/video-grid.module.ts +0 -17
  713. package/src/lib/visual-map-chart/visual-map-chart.component.html +0 -8
  714. package/src/lib/visual-map-chart/visual-map-chart.component.less +0 -21
  715. package/src/lib/visual-map-chart/visual-map-chart.component.spec.ts +0 -25
  716. package/src/lib/visual-map-chart/visual-map-chart.component.ts +0 -365
  717. package/src/lib/visual-map-chart/visual-map-chart.module.ts +0 -18
  718. package/src/lib/vote/vote.component.html +0 -6
  719. package/src/lib/vote/vote.component.less +0 -41
  720. package/src/lib/vote/vote.component.spec.ts +0 -25
  721. package/src/lib/vote/vote.component.ts +0 -71
  722. package/src/lib/vote/vote.module.ts +0 -16
  723. package/src/lib/weather/weather.component.html +0 -27
  724. package/src/lib/weather/weather.component.less +0 -67
  725. package/src/lib/weather/weather.component.spec.ts +0 -25
  726. package/src/lib/weather/weather.component.ts +0 -78
  727. package/src/lib/weather/weather.module.ts +0 -16
  728. package/src/lib/wordart/wordart.component.html +0 -2
  729. package/src/lib/wordart/wordart.component.less +0 -12
  730. package/src/lib/wordart/wordart.component.spec.ts +0 -25
  731. package/src/lib/wordart/wordart.component.ts +0 -56
  732. package/src/lib/wordart/wordart.module.ts +0 -14
  733. package/src/lib/workbench-widget.module.ts +0 -675
  734. package/src/test.ts +0 -22
  735. package/tsconfig.lib.json +0 -37
  736. package/tsconfig.lib.prod.json +0 -9
  737. package/tsconfig.spec.json +0 -17
  738. package/tslint.json +0 -17
@@ -0,0 +1,782 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, EventEmitter } from '@angular/core';
3
+ import { Data, Property, Widget, Drill, DataOutput } from 'bbj-widget-base';
4
+ import { getEchartsTextStyle } from '../shared/util/echarts.util';
5
+ const ɵ0 = { lineColor: ['#FF851D', '#FFEF66'] }, ɵ1 = { lineColor: ['#00D191', '#00FECB'] }, ɵ2 = { lineColor: ['#3285FF', '#00D2FD'] }, ɵ3 = { lineColor: ['#8934F8', '#FF3699'] }, ɵ4 = (value) => !value, ɵ5 = (value) => !value, ɵ6 = (value) => !value, ɵ7 = (value) => !value;
6
+ let BasicLineChartComponent = class BasicLineChartComponent {
7
+ constructor() {
8
+ this.type = 'basic';
9
+ this.lineColor = ['#3285FF', '#00D2FD'];
10
+ this.font = {
11
+ family: '',
12
+ color: '#595F7A',
13
+ weight: 'normal',
14
+ size: 12,
15
+ space: 0,
16
+ lineHeight: 12,
17
+ };
18
+ this.grid = {
19
+ top: 30,
20
+ right: 30,
21
+ bottom: 40,
22
+ left: 36,
23
+ };
24
+ this.align = 'center';
25
+ this.axisType = 'none';
26
+ this.lineType = 'dashed';
27
+ // @Property('轴单位', {ui: {widget: 'myUnit'}})
28
+ // unit = {x: '', y: ''};
29
+ this.axisColor = '#333333';
30
+ this.axisWidth = 10;
31
+ this.xType = 'category';
32
+ this.yUnit = '';
33
+ this.xUnit = '';
34
+ this.boundaryGap = true;
35
+ this.showY = true;
36
+ this.netLine = false;
37
+ this.netLineType = 'dashed';
38
+ this.netLineX = false;
39
+ this.netLineXType = 'dashed';
40
+ this.netLineColor = 'rgba(255,255,255,0.2)';
41
+ this.label = false;
42
+ this.markLine = false;
43
+ this.YmarkLineHeight = 10;
44
+ // @Property('显示X轴', {
45
+ // ui: { widget: 'boolean', checkedChildren: '开', unCheckedChildren: '关' },
46
+ // })
47
+ // showX = true;
48
+ this.YmarkLineName = '';
49
+ // @Property('标线数值', { type: 'number' })
50
+ // markLineVal = null;
51
+ this.YmarkLineType = 'dashed';
52
+ this.YmarkLineColor = '#f00';
53
+ this.YmarkWidth = 2;
54
+ this.XmarkLineLocation = '二月';
55
+ this.XmarkLineName = '';
56
+ this.XmarkLineType = 'dashed';
57
+ this.XmarkLineColor = '#f00';
58
+ this.XmarkWidth = 2;
59
+ this.xLabelRotate = 0;
60
+ this.xLabelOverflow = 'auto';
61
+ this.zoomOnMouseWheel = true;
62
+ this.chartOption = null;
63
+ this._data = [
64
+ { x: '一月', y: 10, s: '收入' },
65
+ { x: '二月', y: 20, s: '收入' },
66
+ { x: '三月', y: 25, s: '收入' },
67
+ { x: '四月', y: 35, s: '收入' },
68
+ { x: '五月', y: 27, s: '收入' },
69
+ { x: '六月', y: 28, s: '收入' },
70
+ { x: '一月', y: 18, s: '支出' },
71
+ { x: '二月', y: 28, s: '支出' },
72
+ { x: '三月', y: 32, s: '支出' },
73
+ { x: '四月', y: 48, s: '支出' },
74
+ { x: '五月', y: 20, s: '支出' },
75
+ { x: '六月', y: 17, s: '支出' },
76
+ ];
77
+ this.dataClick = new EventEmitter();
78
+ this.xData = [];
79
+ this.yData = [];
80
+ // series = [];
81
+ this.style = {
82
+ color: '',
83
+ fontFamily: '',
84
+ fontWeight: '',
85
+ fontSize: '',
86
+ lineHeight: '',
87
+ };
88
+ }
89
+ ngOnInit() { }
90
+ ngOnChanges(changes) {
91
+ if (changes._data) {
92
+ const textStyle = this.getTextStyle(this.font);
93
+ this.style = textStyle;
94
+ this.chartOption = {
95
+ dataZoom: this.getDataZoom(),
96
+ tooltip: this.getTooltip(),
97
+ legend: this.getLegend(),
98
+ grid: this.getGrid(),
99
+ xAxis: this.getXAxis(),
100
+ yAxis: this.getYAxis(),
101
+ color: this.lineColor,
102
+ series: [],
103
+ };
104
+ this.reloadData();
105
+ }
106
+ }
107
+ getXAxis() {
108
+ return {
109
+ name: this.xUnit,
110
+ nameTextStyle: this.style,
111
+ type: this.xType || 'category',
112
+ boundaryGap: this.boundaryGap,
113
+ axisLine: {
114
+ lineStyle: {
115
+ color: this.style.color,
116
+ },
117
+ },
118
+ axisLabel: Object.assign(Object.assign({}, this.style), { rotate: this.xLabelRotate, show: !this.hideXLabel, width: this.xLabelWidth, overflow: this.xLabelOverflow, interval: this.xLabelInterval }),
119
+ splitLine: {
120
+ show: this.netLineX,
121
+ lineStyle: {
122
+ type: this.netLineXType,
123
+ color: this.netLineColor,
124
+ },
125
+ },
126
+ };
127
+ }
128
+ getYAxis() {
129
+ return {
130
+ show: true,
131
+ name: this.yUnit,
132
+ nameTextStyle: this.style,
133
+ type: 'value',
134
+ min: this.yMin,
135
+ max: (value) => {
136
+ let yMax = value.max;
137
+ if (this.yMax) {
138
+ yMax = Number(this.yMax);
139
+ }
140
+ else if (this.markLine) {
141
+ yMax = Math.max(Number(this.YmarkLineHeight), yMax);
142
+ }
143
+ return Math.ceil(this.yMaxAddNum ? yMax + Number(this.yMaxAddNum) : yMax);
144
+ },
145
+ axisLine: {
146
+ show: this.showY,
147
+ lineStyle: {
148
+ color: this.style.color,
149
+ },
150
+ },
151
+ axisLabel: this.style,
152
+ splitLine: {
153
+ show: this.netLine,
154
+ lineStyle: {
155
+ type: this.netLineXType,
156
+ color: this.netLineColor,
157
+ },
158
+ },
159
+ axisTick: {
160
+ show: this.showY,
161
+ },
162
+ minInterval: this.yMinInterval,
163
+ };
164
+ }
165
+ getGrid() {
166
+ return {
167
+ top: this.grid.top,
168
+ right: this.grid.right,
169
+ left: this.grid.left,
170
+ bottom: this.grid.bottom,
171
+ };
172
+ }
173
+ getLegend() {
174
+ return {
175
+ align: 'left',
176
+ left: this.align,
177
+ show: this.align !== 'none',
178
+ icon: 'rect',
179
+ textStyle: this.style,
180
+ };
181
+ }
182
+ getTooltip() {
183
+ return {
184
+ trigger: 'axis',
185
+ textStyle: this.getTextStyle(this.tooltipFont),
186
+ axisPointer: {
187
+ type: this.axisType,
188
+ label: {
189
+ show: false,
190
+ },
191
+ lineStyle: {
192
+ type: this.lineType,
193
+ color: this.axisColor,
194
+ width: this.axisWidth,
195
+ },
196
+ },
197
+ };
198
+ }
199
+ getTextStyle(font) {
200
+ return getEchartsTextStyle(font);
201
+ }
202
+ getDataZoom() {
203
+ const dataZoom = [];
204
+ if (this.insideDataZoom) {
205
+ let enableDataZoom = true;
206
+ if (this.dataZoomMinData != null) {
207
+ const xSet = new Set();
208
+ this._data.forEach((data) => {
209
+ if (data.x) {
210
+ xSet.add(data.x);
211
+ }
212
+ });
213
+ if (xSet.size < this.dataZoomMinData) {
214
+ enableDataZoom = false;
215
+ }
216
+ }
217
+ if (enableDataZoom) {
218
+ let start = this.dataZoomStart || 0;
219
+ let end = this.dataZoomEnd || 100;
220
+ dataZoom.push({ type: 'inside', start, end, zoomOnMouseWheel: this.zoomOnMouseWheel });
221
+ if (this.sliderDataZoom) {
222
+ dataZoom.push({ type: 'slider', start, end, zoomLock: this.zoomLock, brushSelect: false });
223
+ }
224
+ }
225
+ }
226
+ return dataZoom;
227
+ }
228
+ reloadData() {
229
+ const seriesMap = {};
230
+ const dataset = [];
231
+ const source = [];
232
+ dataset.push({ source });
233
+ this._data.forEach((record) => {
234
+ // 针对markline标线关联数据库的操作, 若x的名字与markline的name一致,则获取对应的y轴数据作为markline的value; 目前仅支持一个markline
235
+ // data中过滤掉markline的数据
236
+ if (this.markLine && this.YmarkLineName && record.x === this.YmarkLineName) {
237
+ this.YmarkLineHeight = record.y;
238
+ }
239
+ else {
240
+ //为空filter会报错
241
+ if (record.s == null) {
242
+ record = Object.assign(Object.assign({}, record), { s: '' });
243
+ }
244
+ source.push(record);
245
+ const s = record.s;
246
+ let series = seriesMap[s];
247
+ if (!series) {
248
+ // seriesSet.add(s);
249
+ const transform = {
250
+ type: 'filter',
251
+ config: { dimension: 's', value: s },
252
+ };
253
+ dataset.push({ transform });
254
+ series = this.setSeriesStyle(s, dataset.length - 1);
255
+ seriesMap[s] = series;
256
+ if (this.showDataMarkLine) {
257
+ series.markLine = {
258
+ symbol: ['none', 'none'],
259
+ label: Object.assign(Object.assign({}, this.style), { position: 'start' }),
260
+ data: [],
261
+ };
262
+ if (this.dataMarkLineFormatter) {
263
+ series.markLine.label.formatter = eval('(' + this.dataMarkLineFormatter + ')');
264
+ }
265
+ }
266
+ }
267
+ if (this.showDataMarkLine) {
268
+ series.markLine.data.push({ xAxis: record.x });
269
+ }
270
+ }
271
+ });
272
+ this.chartOption.dataset = dataset;
273
+ if (this.markLine) {
274
+ const marklineStyle = {
275
+ symbol: 'none',
276
+ silent: true,
277
+ data: [],
278
+ };
279
+ if (this.YmarkLineName) {
280
+ marklineStyle.data.push({
281
+ name: this.YmarkLineName,
282
+ type: this.YmarkLineHeight ? null : 'average',
283
+ yAxis: this.YmarkLineHeight,
284
+ lineStyle: {
285
+ color: this.YmarkLineColor,
286
+ type: this.YmarkLineType,
287
+ width: this.YmarkWidth ? this.YmarkWidth : 2,
288
+ },
289
+ label: {
290
+ formatter: '{b}{c}',
291
+ position: 'insideEndTop',
292
+ color: this.YmarkLineColor,
293
+ fontSize: this.font.size,
294
+ },
295
+ });
296
+ }
297
+ if (this.XmarkLineName) {
298
+ marklineStyle.data.push({
299
+ name: this.XmarkLineName,
300
+ type: this.XmarkLineLocation ? null : 'average',
301
+ xAxis: this.XmarkLineLocation,
302
+ lineStyle: {
303
+ color: this.XmarkLineColor,
304
+ type: this.XmarkLineType,
305
+ width: this.XmarkWidth ? this.XmarkWidth : 2,
306
+ },
307
+ label: {
308
+ formatter: '{b}{c}',
309
+ position: 'insideEndTop',
310
+ color: this.XmarkLineColor,
311
+ fontSize: this.font.size,
312
+ },
313
+ });
314
+ }
315
+ this.chartOption.series.push({ type: 'line', markLine: marklineStyle, data: [] });
316
+ // this.chartOption.series[this.chartOption.series.length - 1].markLine = marklineStyle;
317
+ }
318
+ }
319
+ setSeriesStyle(name, datasetIndex) {
320
+ var _a, _b;
321
+ const series = {
322
+ name,
323
+ label: {
324
+ show: this.label,
325
+ textStyle: this.style,
326
+ },
327
+ connectNulls: true,
328
+ itemStyle: {},
329
+ type: 'line',
330
+ areaStyle: {},
331
+ smooth: false,
332
+ symbolSize: (_a = this.symbolSize) !== null && _a !== void 0 ? _a : 10,
333
+ encode: { x: 'x', y: 'y' },
334
+ datasetIndex,
335
+ };
336
+ this.chartOption.series.push(series);
337
+ series.areaStyle.opacity = 0;
338
+ if (this.type === 'smooth' || this.type === 'smooth-area') {
339
+ series.smooth = true;
340
+ }
341
+ if (this.type === 'area' || this.type === 'smooth-area') {
342
+ series.areaStyle.opacity = 0.5;
343
+ series.symbolSize = (_b = this.symbolSize) !== null && _b !== void 0 ? _b : (this.label ? 10 : 0);
344
+ }
345
+ if (this.type === 'step') {
346
+ series.step = this.step;
347
+ }
348
+ return series;
349
+ }
350
+ uniqueData(data) {
351
+ for (let i = 0; i < data.length - 1; i++) {
352
+ for (let j = i + 1; j < data.length; j++) {
353
+ if (data[i] === data[j]) {
354
+ data.splice(j, 1);
355
+ j--;
356
+ }
357
+ }
358
+ }
359
+ return data;
360
+ }
361
+ getMaxY() {
362
+ for (let i = 0; i < this._data.length; i++) {
363
+ this.yData[i] = this._data[i].y;
364
+ }
365
+ this.uniqueData(this.yData);
366
+ const a = Math.max(...this.yData).toFixed(0);
367
+ const b = a.toString().length;
368
+ const c = Math.pow(10, b - 1);
369
+ const max = Number(c) + Number(a);
370
+ return max;
371
+ }
372
+ onChartClick(event) {
373
+ this.dataClick.emit({ x: event.name, s: event.seriesName });
374
+ }
375
+ };
376
+ BasicLineChartComponent.decorators = [
377
+ { type: Component, args: [{
378
+ selector: 'sc-basicLine',
379
+ template: "<div\n echarts\n [options]=\"chartOption\"\n class=\"demo-chart\"\n (chartClick)=\"onChartClick($event)\"\n [initOpts]=\"{ renderer: 'svg' }\"\n></div>\n",
380
+ styles: [":host{display:block;width:100%}.demo-chart,:host{height:100%}"]
381
+ },] }
382
+ ];
383
+ BasicLineChartComponent.ctorParameters = () => [];
384
+ __decorate([
385
+ Property('类型', { ui: { hidden: true } }),
386
+ __metadata("design:type", Object)
387
+ ], BasicLineChartComponent.prototype, "type", void 0);
388
+ __decorate([
389
+ Property('图表样式', {
390
+ ui: {
391
+ widget: 'myImageExample',
392
+ spanLabel: 24,
393
+ spanControl: 24,
394
+ reset: ['lineColor'],
395
+ example: [
396
+ {
397
+ background: 'assets/img/screen/line2.png',
398
+ data: ɵ0,
399
+ },
400
+ {
401
+ background: 'assets/img/screen/line3.png',
402
+ data: ɵ1,
403
+ },
404
+ {
405
+ background: 'assets/img/screen/line1.png',
406
+ data: ɵ2,
407
+ },
408
+ {
409
+ background: 'assets/img/screen/line4.png',
410
+ data: ɵ3,
411
+ },
412
+ ],
413
+ },
414
+ }),
415
+ __metadata("design:type", Object)
416
+ ], BasicLineChartComponent.prototype, "example", void 0);
417
+ __decorate([
418
+ Property('系列颜色', {
419
+ ui: {
420
+ widget: 'seriesColor',
421
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
422
+ },
423
+ }),
424
+ __metadata("design:type", Object)
425
+ ], BasicLineChartComponent.prototype, "lineColor", void 0);
426
+ __decorate([
427
+ Property('字体', { ui: { widget: 'myFont' } }),
428
+ __metadata("design:type", Object)
429
+ ], BasicLineChartComponent.prototype, "font", void 0);
430
+ __decorate([
431
+ Property('边距', { ui: { widget: 'myGrid' } }),
432
+ __metadata("design:type", Object)
433
+ ], BasicLineChartComponent.prototype, "grid", void 0);
434
+ __decorate([
435
+ Property('图例', {
436
+ ui: { widget: 'select' },
437
+ enum: [
438
+ { label: '无', value: 'none' },
439
+ { label: '自动', value: 'auto' },
440
+ { label: '居中', value: 'center' },
441
+ { label: '左对齐', value: 'left' },
442
+ { label: '右对齐', value: 'right' },
443
+ ],
444
+ }),
445
+ __metadata("design:type", Object)
446
+ ], BasicLineChartComponent.prototype, "align", void 0);
447
+ __decorate([
448
+ Property('提示线样式', {
449
+ ui: { widget: 'select' },
450
+ enum: [
451
+ { label: '直线指示器', value: 'line' },
452
+ { label: '阴影指示器', value: 'shadow' },
453
+ { label: '十字准星指示器', value: 'cross' },
454
+ { label: '无', value: 'none' },
455
+ ],
456
+ }),
457
+ __metadata("design:type", Object)
458
+ ], BasicLineChartComponent.prototype, "axisType", void 0);
459
+ __decorate([
460
+ Property('提示线类型', {
461
+ ui: { widget: 'select' },
462
+ enum: [
463
+ { label: '实线', value: 'solid' },
464
+ { label: '虚线', value: 'dashed' },
465
+ { label: '点线', value: 'dotted' },
466
+ ],
467
+ }),
468
+ __metadata("design:type", Object)
469
+ ], BasicLineChartComponent.prototype, "lineType", void 0);
470
+ __decorate([
471
+ Property('提示线颜色', {
472
+ ui: {
473
+ widget: 'myColor',
474
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
475
+ },
476
+ }),
477
+ __metadata("design:type", Object)
478
+ ], BasicLineChartComponent.prototype, "axisColor", void 0);
479
+ __decorate([
480
+ Property('提示线宽度', { type: 'number' }),
481
+ __metadata("design:type", Object)
482
+ ], BasicLineChartComponent.prototype, "axisWidth", void 0);
483
+ __decorate([
484
+ Property('x轴类型', {
485
+ enum: [
486
+ { label: '类目', value: 'category' },
487
+ { label: '时间', value: 'time' },
488
+ ],
489
+ }),
490
+ __metadata("design:type", Object)
491
+ ], BasicLineChartComponent.prototype, "xType", void 0);
492
+ __decorate([
493
+ Property('y轴单位', { type: 'string' }),
494
+ __metadata("design:type", Object)
495
+ ], BasicLineChartComponent.prototype, "yUnit", void 0);
496
+ __decorate([
497
+ Property('x轴单位', { type: 'string' }),
498
+ __metadata("design:type", Object)
499
+ ], BasicLineChartComponent.prototype, "xUnit", void 0);
500
+ __decorate([
501
+ Property('y轴最小'),
502
+ __metadata("design:type", Number)
503
+ ], BasicLineChartComponent.prototype, "yMin", void 0);
504
+ __decorate([
505
+ Property('y轴最大'),
506
+ __metadata("design:type", Number)
507
+ ], BasicLineChartComponent.prototype, "yMax", void 0);
508
+ __decorate([
509
+ Property('y轴最小间隔'),
510
+ __metadata("design:type", Number)
511
+ ], BasicLineChartComponent.prototype, "yMinInterval", void 0);
512
+ __decorate([
513
+ Property('y轴最大增减'),
514
+ __metadata("design:type", Number)
515
+ ], BasicLineChartComponent.prototype, "yMaxAddNum", void 0);
516
+ __decorate([
517
+ Property('坐标留白', { type: 'boolean' }),
518
+ __metadata("design:type", Object)
519
+ ], BasicLineChartComponent.prototype, "boundaryGap", void 0);
520
+ __decorate([
521
+ Property('显示Y轴', { type: 'boolean' }),
522
+ __metadata("design:type", Object)
523
+ ], BasicLineChartComponent.prototype, "showY", void 0);
524
+ __decorate([
525
+ Property('y轴网络线', { type: 'boolean' }),
526
+ __metadata("design:type", Object)
527
+ ], BasicLineChartComponent.prototype, "netLine", void 0);
528
+ __decorate([
529
+ Property('y网络线类型', {
530
+ ui: { widget: 'select', visibleIf: { netLine: [true] } },
531
+ enum: [
532
+ { label: '实线', value: 'solid' },
533
+ { label: '虚线', value: 'dashed' },
534
+ { label: '点线', value: 'dotted' },
535
+ ],
536
+ }),
537
+ __metadata("design:type", Object)
538
+ ], BasicLineChartComponent.prototype, "netLineType", void 0);
539
+ __decorate([
540
+ Property('x轴网络线', { type: 'boolean' }),
541
+ __metadata("design:type", Object)
542
+ ], BasicLineChartComponent.prototype, "netLineX", void 0);
543
+ __decorate([
544
+ Property('x网络线类型', {
545
+ ui: { widget: 'select', visibleIf: { netLineX: [true] } },
546
+ enum: [
547
+ { label: '实线', value: 'solid' },
548
+ { label: '虚线', value: 'dashed' },
549
+ { label: '点线', value: 'dotted' },
550
+ ],
551
+ }),
552
+ __metadata("design:type", Object)
553
+ ], BasicLineChartComponent.prototype, "netLineXType", void 0);
554
+ __decorate([
555
+ Property('网络线颜色', {
556
+ ui: {
557
+ widget: 'myColor',
558
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
559
+ },
560
+ }),
561
+ __metadata("design:type", Object)
562
+ ], BasicLineChartComponent.prototype, "netLineColor", void 0);
563
+ __decorate([
564
+ Property('标签', { type: 'boolean' }),
565
+ __metadata("design:type", Object)
566
+ ], BasicLineChartComponent.prototype, "label", void 0);
567
+ __decorate([
568
+ Property('标线', { type: 'boolean' }),
569
+ __metadata("design:type", Object)
570
+ ], BasicLineChartComponent.prototype, "markLine", void 0);
571
+ __decorate([
572
+ Property('Y轴标线高度', { type: 'number', ui: { visibleIf: { markLine: [true] } } }),
573
+ __metadata("design:type", Object)
574
+ ], BasicLineChartComponent.prototype, "YmarkLineHeight", void 0);
575
+ __decorate([
576
+ Property('Y标线标题', {
577
+ type: 'string',
578
+ ui: { visibleIf: { markLine: [true] }, optionalHelp: '此标题需要跟x字段内名字一致' },
579
+ }),
580
+ __metadata("design:type", Object)
581
+ ], BasicLineChartComponent.prototype, "YmarkLineName", void 0);
582
+ __decorate([
583
+ Property('Y标线类型', {
584
+ ui: { widget: 'select', visibleIf: { markLine: [true] } },
585
+ enum: [
586
+ { label: '实线', value: 'solid' },
587
+ { label: '虚线', value: 'dashed' },
588
+ { label: '点线', value: 'dotted' },
589
+ ],
590
+ }),
591
+ __metadata("design:type", Object)
592
+ ], BasicLineChartComponent.prototype, "YmarkLineType", void 0);
593
+ __decorate([
594
+ Property('Y标线颜色', {
595
+ ui: {
596
+ widget: 'myColor',
597
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
598
+ visibleIf: { markLine: [true] },
599
+ },
600
+ }),
601
+ __metadata("design:type", Object)
602
+ ], BasicLineChartComponent.prototype, "YmarkLineColor", void 0);
603
+ __decorate([
604
+ Property('Y标线粗细', {
605
+ type: 'number',
606
+ ui: { visibleIf: { markLine: [true] } },
607
+ }),
608
+ __metadata("design:type", Object)
609
+ ], BasicLineChartComponent.prototype, "YmarkWidth", void 0);
610
+ __decorate([
611
+ Property('X轴标线位置', { type: 'string', ui: { visibleIf: { markLine: [true] } } }),
612
+ __metadata("design:type", Object)
613
+ ], BasicLineChartComponent.prototype, "XmarkLineLocation", void 0);
614
+ __decorate([
615
+ Property('X标线标题', {
616
+ type: 'string',
617
+ ui: { optionalHelp: '此标题需要跟x字段内名字一致', visibleIf: { markLine: [true] } },
618
+ }),
619
+ __metadata("design:type", Object)
620
+ ], BasicLineChartComponent.prototype, "XmarkLineName", void 0);
621
+ __decorate([
622
+ Property('X标线类型', {
623
+ ui: { widget: 'select', visibleIf: { markLine: [true] } },
624
+ enum: [
625
+ { label: '实线', value: 'solid' },
626
+ { label: '虚线', value: 'dashed' },
627
+ { label: '点线', value: 'dotted' },
628
+ ],
629
+ }),
630
+ __metadata("design:type", Object)
631
+ ], BasicLineChartComponent.prototype, "XmarkLineType", void 0);
632
+ __decorate([
633
+ Property('X标线颜色', {
634
+ ui: {
635
+ visibleIf: { markLine: [true] },
636
+ widget: 'myColor',
637
+ example: ['#D0021B', '#F5A623', '#F8E71C', '#50E3C2', '#3285FF', '#B45FFF', '#9B9B9B', '#333333'],
638
+ },
639
+ }),
640
+ __metadata("design:type", Object)
641
+ ], BasicLineChartComponent.prototype, "XmarkLineColor", void 0);
642
+ __decorate([
643
+ Property('X标线粗细', {
644
+ type: 'number',
645
+ ui: { visibleIf: { markLine: [true] } },
646
+ }),
647
+ __metadata("design:type", Object)
648
+ ], BasicLineChartComponent.prototype, "XmarkWidth", void 0);
649
+ __decorate([
650
+ Property('数据标线'),
651
+ __metadata("design:type", Boolean)
652
+ ], BasicLineChartComponent.prototype, "showDataMarkLine", void 0);
653
+ __decorate([
654
+ Property('数据标线格式化', {
655
+ ui: { visibleIf: { showDataMarkLine: [true] }, optionalHelp: 'function(params){return params.data.value}' },
656
+ }),
657
+ __metadata("design:type", String)
658
+ ], BasicLineChartComponent.prototype, "dataMarkLineFormatter", void 0);
659
+ __decorate([
660
+ Property('隐藏x轴标签'),
661
+ __metadata("design:type", Boolean)
662
+ ], BasicLineChartComponent.prototype, "hideXLabel", void 0);
663
+ __decorate([
664
+ Property('x轴标签角度', {
665
+ ui: { widget: 'myRange', min: -90, max: 90, step: 10, visibleIf: { hideXLabel: ɵ4 } },
666
+ }),
667
+ __metadata("design:type", Object)
668
+ ], BasicLineChartComponent.prototype, "xLabelRotate", void 0);
669
+ __decorate([
670
+ Property('x轴文本宽度', { ui: { visibleIf: { hideXLabel: ɵ5 } } }),
671
+ __metadata("design:type", Number)
672
+ ], BasicLineChartComponent.prototype, "xLabelWidth", void 0);
673
+ __decorate([
674
+ Property('x轴文字宽度超出', {
675
+ enum: [
676
+ { label: '自动', value: 'auto' },
677
+ { label: '截断', value: 'truncate' },
678
+ { label: '换行', value: 'break' },
679
+ { label: '强制换行', value: 'breakAll' },
680
+ ],
681
+ ui: { widget: 'select', visibleIf: { hideXLabel: ɵ6 } },
682
+ }),
683
+ __metadata("design:type", Object)
684
+ ], BasicLineChartComponent.prototype, "xLabelOverflow", void 0);
685
+ __decorate([
686
+ Property('标签显示间隔', {
687
+ ui: {
688
+ visibleIf: { hideXLabel: ɵ7 },
689
+ optionalHelp: {
690
+ text: `默认会采用标签不重叠的策略间隔显示标签。
691
+ 可以设置成 0 强制显示所有标签。
692
+ 如果设置为 1,表示『隔一个标签显示一个标签』,如果值为 2,表示隔两个标签显示一个标签,以此类推。`,
693
+ overlayStyle: {
694
+ whiteSpace: 'pre-line',
695
+ },
696
+ },
697
+ },
698
+ }),
699
+ __metadata("design:type", Number)
700
+ ], BasicLineChartComponent.prototype, "xLabelInterval", void 0);
701
+ __decorate([
702
+ Property('区域缩放'),
703
+ __metadata("design:type", Boolean)
704
+ ], BasicLineChartComponent.prototype, "insideDataZoom", void 0);
705
+ __decorate([
706
+ Property('缩放最少数量', { ui: { visibleIf: { insideDataZoom: [true] } } }),
707
+ __metadata("design:type", Number)
708
+ ], BasicLineChartComponent.prototype, "dataZoomMinData", void 0);
709
+ __decorate([
710
+ Property('缩放开始百分比', { ui: { visibleIf: { insideDataZoom: [true] } } }),
711
+ __metadata("design:type", Number)
712
+ ], BasicLineChartComponent.prototype, "dataZoomStart", void 0);
713
+ __decorate([
714
+ Property('缩放结束百分比', { ui: { visibleIf: { insideDataZoom: [true] } } }),
715
+ __metadata("design:type", Number)
716
+ ], BasicLineChartComponent.prototype, "dataZoomEnd", void 0);
717
+ __decorate([
718
+ Property('滚轮缩放', {
719
+ enum: [
720
+ { label: '启用', value: true },
721
+ { label: '禁用', value: false },
722
+ { label: '按住shift', value: 'shift' },
723
+ { label: '按住ctrl', value: 'ctrl' },
724
+ { label: '按住alt', value: 'alt' },
725
+ ],
726
+ ui: { widget: 'select', visibleIf: { insideDataZoom: [true] } },
727
+ }),
728
+ __metadata("design:type", Object)
729
+ ], BasicLineChartComponent.prototype, "zoomOnMouseWheel", void 0);
730
+ __decorate([
731
+ Property('滑动条', { ui: { visibleIf: { insideDataZoom: [true] } } }),
732
+ __metadata("design:type", Boolean)
733
+ ], BasicLineChartComponent.prototype, "sliderDataZoom", void 0);
734
+ __decorate([
735
+ Property('锁定区域大小', { ui: { visibleIf: { sliderDataZoom: [true] } } }),
736
+ __metadata("design:type", Boolean)
737
+ ], BasicLineChartComponent.prototype, "zoomLock", void 0);
738
+ __decorate([
739
+ Property('提示框字体', { ui: { widget: 'myFont' } }),
740
+ __metadata("design:type", Object)
741
+ ], BasicLineChartComponent.prototype, "tooltipFont", void 0);
742
+ __decorate([
743
+ Property('阶梯拐点', {
744
+ enum: [
745
+ { label: '当前点', value: 'start' },
746
+ { label: '中间点', value: 'middle' },
747
+ { label: '下个点', value: 'end' },
748
+ ],
749
+ ui: { widget: 'select', visibleIf: { type: ['step'] } },
750
+ }),
751
+ __metadata("design:type", String)
752
+ ], BasicLineChartComponent.prototype, "step", void 0);
753
+ __decorate([
754
+ Property('标记点大小', { type: 'number' }),
755
+ __metadata("design:type", Number)
756
+ ], BasicLineChartComponent.prototype, "symbolSize", void 0);
757
+ __decorate([
758
+ Data({
759
+ properties: {
760
+ x: { type: 'string', title: '类目' },
761
+ y: { type: 'number', title: '值' },
762
+ s: { type: 'string', title: '系列' },
763
+ },
764
+ }),
765
+ __metadata("design:type", Array)
766
+ ], BasicLineChartComponent.prototype, "_data", void 0);
767
+ __decorate([
768
+ Drill(),
769
+ DataOutput(['x', 's']),
770
+ __metadata("design:type", Object)
771
+ ], BasicLineChartComponent.prototype, "dataClick", void 0);
772
+ BasicLineChartComponent = __decorate([
773
+ Widget('基本折线图', {
774
+ group: 'lineChart',
775
+ image: 'assets/img/screen/basic-line-chart.png',
776
+ icon: 'icontubiao',
777
+ }),
778
+ __metadata("design:paramtypes", [])
779
+ ], BasicLineChartComponent);
780
+ export { BasicLineChartComponent };
781
+ export { ɵ0, ɵ1, ɵ2, ɵ3, ɵ4, ɵ5, ɵ6, ɵ7 };
782
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtbGluZS1jaGFydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zY3JlZW4td2lkZ2V0L3NyYy9saWIvYmFzaWMtbGluZS1jaGFydC9iYXNpYy1saW5lLWNoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBb0MsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7V0F3QmxELEVBQUUsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BSXJDLEVBQUUsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BSXJDLEVBQUUsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BSXJDLEVBQUUsU0FBUyxFQUFFLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxFQUFFLE9BZ044QixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BRzdDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssT0FTbkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxPQUt2QyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLO0lBelBuQyx1QkFBdUIsU0FBdkIsdUJBQXVCO0lBNlVsQztRQTNVQSxTQUFJLEdBQUcsT0FBTyxDQUFDO1FBa0NmLGNBQVMsR0FBRyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVuQyxTQUFJLEdBQVE7WUFDVixNQUFNLEVBQUUsRUFBRTtZQUNWLEtBQUss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OlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhLCBQcm9wZXJ0eSwgV2lkZ2V0LCBEcmlsbCwgRGF0YU91dHB1dCB9IGZyb20gJ2Jiai13aWRnZXQtYmFzZSc7XG5pbXBvcnQgeyBnZXRFY2hhcnRzVGV4dFN0eWxlIH0gZnJvbSAnLi4vc2hhcmVkL3V0aWwvZWNoYXJ0cy51dGlsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2MtYmFzaWNMaW5lJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2ljLWxpbmUtY2hhcnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9iYXNpYy1saW5lLWNoYXJ0LmNvbXBvbmVudC5sZXNzJ10sXG59KVxuQFdpZGdldCgn5Z+65pys5oqY57q/5Zu+Jywge1xuICBncm91cDogJ2xpbmVDaGFydCcsXG4gIGltYWdlOiAnYXNzZXRzL2ltZy9zY3JlZW4vYmFzaWMtbGluZS1jaGFydC5wbmcnLFxuICBpY29uOiAnaWNvbnR1YmlhbycsXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljTGluZUNoYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBAUHJvcGVydHkoJ+exu+WeiycsIHsgdWk6IHsgaGlkZGVuOiB0cnVlIH0gfSlcbiAgdHlwZSA9ICdiYXNpYyc7XG4gIEBQcm9wZXJ0eSgn5Zu+6KGo5qC35byPJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUltYWdlRXhhbXBsZScsXG4gICAgICBzcGFuTGFiZWw6IDI0LFxuICAgICAgc3BhbkNvbnRyb2w6IDI0LFxuICAgICAgcmVzZXQ6IFsnbGluZUNvbG9yJ10sXG4gICAgICBleGFtcGxlOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vbGluZTIucG5nJyxcbiAgICAgICAgICBkYXRhOiB7IGxpbmVDb2xvcjogWycjRkY4NTFEJywgJyNGRkVGNjYnXSB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgYmFja2dyb3VuZDogJ2Fzc2V0cy9pbWcvc2NyZWVuL2xpbmUzLnBuZycsXG4gICAgICAgICAgZGF0YTogeyBsaW5lQ29sb3I6IFsnIzAwRDE5MScsICcjMDBGRUNCJ10gfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGJhY2tncm91bmQ6ICdhc3NldHMvaW1nL3NjcmVlbi9saW5lMS5wbmcnLFxuICAgICAgICAgIGRhdGE6IHsgbGluZUNvbG9yOiBbJyMzMjg1RkYnLCAnIzAwRDJGRCddIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAnYXNzZXRzL2ltZy9zY3JlZW4vbGluZTQucG5nJyxcbiAgICAgICAgICBkYXRhOiB7IGxpbmVDb2xvcjogWycjODkzNEY4JywgJyNGRjM2OTknXSB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICB9KVxuICBleGFtcGxlOiBhbnk7XG4gIEBQcm9wZXJ0eSgn57O75YiX6aKc6ImyJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdzZXJpZXNDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnIzMzMzMzMyddLFxuICAgIH0sXG4gIH0pXG4gIGxpbmVDb2xvciA9IFsnIzMyODVGRicsICcjMDBEMkZEJ107XG4gIEBQcm9wZXJ0eSgn5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgZm9udDogYW55ID0ge1xuICAgIGZhbWlseTogJycsXG4gICAgY29sb3I6ICcjNTk1RjdBJyxcbiAgICB3ZWlnaHQ6ICdub3JtYWwnLFxuICAgIHNpemU6IDEyLFxuICAgIHNwYWNlOiAwLFxuICAgIGxpbmVIZWlnaHQ6IDEyLFxuICB9O1xuICBAUHJvcGVydHkoJ+i+uei3nScsIHsgdWk6IHsgd2lkZ2V0OiAnbXlHcmlkJyB9IH0pXG4gIGdyaWQ6IGFueSA9IHtcbiAgICB0b3A6IDMwLFxuICAgIHJpZ2h0OiAzMCxcbiAgICBib3R0b206IDQwLFxuICAgIGxlZnQ6IDM2LFxuICB9O1xuICBAUHJvcGVydHkoJ+WbvuS+iycsIHtcbiAgICB1aTogeyB3aWRnZXQ6ICdzZWxlY3QnIH0sXG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+aXoCcsIHZhbHVlOiAnbm9uZScgfSxcbiAgICAgIHsgbGFiZWw6ICfoh6rliqgnLCB2YWx1ZTogJ2F1dG8nIH0sXG4gICAgICB7IGxhYmVsOiAn5bGF5LitJywgdmFsdWU6ICdjZW50ZXInIH0sXG4gICAgICB7IGxhYmVsOiAn5bem5a+56b2QJywgdmFsdWU6ICdsZWZ0JyB9LFxuICAgICAgeyBsYWJlbDogJ+WPs+Wvuem9kCcsIHZhbHVlOiAncmlnaHQnIH0sXG4gICAgXSxcbiAgfSlcbiAgYWxpZ24gPSAnY2VudGVyJztcbiAgQFByb3BlcnR5KCfmj5DnpLrnur/moLflvI8nLCB7XG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JyB9LFxuICAgIGVudW06IFtcbiAgICAgIHsgbGFiZWw6ICfnm7Tnur/mjIfnpLrlmagnLCB2YWx1ZTogJ2xpbmUnIH0sXG4gICAgICB7IGxhYmVsOiAn6Zi05b2x5oyH56S65ZmoJywgdmFsdWU6ICdzaGFkb3cnIH0sXG4gICAgICB7IGxhYmVsOiAn5Y2B5a2X5YeG5pif5oyH56S65ZmoJywgdmFsdWU6ICdjcm9zcycgfSxcbiAgICAgIHsgbGFiZWw6ICfml6AnLCB2YWx1ZTogJ25vbmUnIH0sXG4gICAgXSxcbiAgfSlcbiAgYXhpc1R5cGUgPSAnbm9uZSc7XG4gIEBQcm9wZXJ0eSgn5o+Q56S657q/57G75Z6LJywge1xuICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcgfSxcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5a6e57q/JywgdmFsdWU6ICdzb2xpZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfomZrnur8nLCB2YWx1ZTogJ2Rhc2hlZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfngrnnur8nLCB2YWx1ZTogJ2RvdHRlZCcgfSxcbiAgICBdLFxuICB9KVxuICBsaW5lVHlwZSA9ICdkYXNoZWQnO1xuICAvLyBAUHJvcGVydHkoJ+i9tOWNleS9jScsIHt1aToge3dpZGdldDogJ215VW5pdCd9fSlcbiAgLy8gdW5pdCA9IHt4OiAnJywgeTogJyd9O1xuICBAUHJvcGVydHkoJ+aPkOekuue6v+minOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnIzMzMzMzMyddLFxuICAgIH0sXG4gIH0pXG4gIGF4aXNDb2xvciA9ICcjMzMzMzMzJztcbiAgQFByb3BlcnR5KCfmj5DnpLrnur/lrr3luqYnLCB7IHR5cGU6ICdudW1iZXInIH0pXG4gIGF4aXNXaWR0aCA9IDEwO1xuICBAUHJvcGVydHkoJ3jovbTnsbvlnosnLCB7XG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+exu+ebricsIHZhbHVlOiAnY2F0ZWdvcnknIH0sXG4gICAgICB7IGxhYmVsOiAn5pe26Ze0JywgdmFsdWU6ICd0aW1lJyB9LFxuICAgIF0sXG4gIH0pXG4gIHhUeXBlID0gJ2NhdGVnb3J5JztcbiAgQFByb3BlcnR5KCd56L205Y2V5L2NJywgeyB0eXBlOiAnc3RyaW5nJyB9KVxuICB5VW5pdCA9ICcnO1xuICBAUHJvcGVydHkoJ3jovbTljZXkvY0nLCB7IHR5cGU6ICdzdHJpbmcnIH0pXG4gIHhVbml0ID0gJyc7XG4gIEBQcm9wZXJ0eSgneei9tOacgOWwjycpXG4gIHlNaW46IG51bWJlcjtcbiAgQFByb3BlcnR5KCd56L205pyA5aSnJylcbiAgeU1heDogbnVtYmVyO1xuICBAUHJvcGVydHkoJ3novbTmnIDlsI/pl7TpmpQnKVxuICB5TWluSW50ZXJ2YWw6IG51bWJlcjtcbiAgQFByb3BlcnR5KCd56L205pyA5aSn5aKe5YePJylcbiAgeU1heEFkZE51bTogbnVtYmVyO1xuICBAUHJvcGVydHkoJ+WdkOagh+eVmeeZvScsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIGJvdW5kYXJ5R2FwID0gdHJ1ZTtcbiAgQFByb3BlcnR5KCfmmL7npLpZ6L20JywgeyB0eXBlOiAnYm9vbGVhbicgfSlcbiAgc2hvd1kgPSB0cnVlO1xuICBAUHJvcGVydHkoJ3novbTnvZHnu5znur8nLCB7IHR5cGU6ICdib29sZWFuJyB9KVxuICBuZXRMaW5lID0gZmFsc2U7XG5cbiAgQFByb3BlcnR5KCd5572R57uc57q/57G75Z6LJywge1xuICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcsIHZpc2libGVJZjogeyBuZXRMaW5lOiBbdHJ1ZV0gfSB9LFxuICAgIGVudW06IFtcbiAgICAgIHsgbGFiZWw6ICflrp7nur8nLCB2YWx1ZTogJ3NvbGlkJyB9LFxuICAgICAgeyBsYWJlbDogJ+iZmue6vycsIHZhbHVlOiAnZGFzaGVkJyB9LFxuICAgICAgeyBsYWJlbDogJ+eCuee6vycsIHZhbHVlOiAnZG90dGVkJyB9LFxuICAgIF0sXG4gIH0pXG4gIG5ldExpbmVUeXBlID0gJ2Rhc2hlZCc7XG4gIEBQcm9wZXJ0eSgneOi9tOe9kee7nOe6vycsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIG5ldExpbmVYID0gZmFsc2U7XG5cbiAgQFByb3BlcnR5KCd4572R57uc57q/57G75Z6LJywge1xuICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcsIHZpc2libGVJZjogeyBuZXRMaW5lWDogW3RydWVdIH0gfSxcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5a6e57q/JywgdmFsdWU6ICdzb2xpZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfomZrnur8nLCB2YWx1ZTogJ2Rhc2hlZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfngrnnur8nLCB2YWx1ZTogJ2RvdHRlZCcgfSxcbiAgICBdLFxuICB9KVxuICBuZXRMaW5lWFR5cGUgPSAnZGFzaGVkJztcblxuICBAUHJvcGVydHkoJ+e9kee7nOe6v+minOiJsicsIHtcbiAgICB1aToge1xuICAgICAgd2lkZ2V0OiAnbXlDb2xvcicsXG4gICAgICBleGFtcGxlOiBbJyNEMDAyMUInLCAnI0Y1QTYyMycsICcjRjhFNzFDJywgJyM1MEUzQzInLCAnIzMyODVGRicsICcjQjQ1RkZGJywgJyM5QjlCOUInLCAnIzMzMzMzMyddLFxuICAgIH0sXG4gIH0pXG4gIG5ldExpbmVDb2xvciA9ICdyZ2JhKDI1NSwyNTUsMjU1LDAuMiknO1xuXG4gIEBQcm9wZXJ0eSgn5qCH562+JywgeyB0eXBlOiAnYm9vbGVhbicgfSlcbiAgbGFiZWwgPSBmYWxzZTtcblxuICBAUHJvcGVydHkoJ+agh+e6vycsIHsgdHlwZTogJ2Jvb2xlYW4nIH0pXG4gIG1hcmtMaW5lID0gZmFsc2U7XG4gIEBQcm9wZXJ0eSgnWei9tOagh+e6v+mrmOW6picsIHsgdHlwZTogJ251bWJlcicsIHVpOiB7IHZpc2libGVJZjogeyBtYXJrTGluZTogW3RydWVdIH0gfSB9KVxuICBZbWFya0xpbmVIZWlnaHQgPSAxMDtcblxuICAvLyBAUHJvcGVydHkoJ+aYvuekuljovbQnLCB7XG4gIC8vICAgdWk6IHsgd2lkZ2V0OiAnYm9vbGVhbicsIGNoZWNrZWRDaGlsZHJlbjogJ+W8gCcsIHVuQ2hlY2tlZENoaWxkcmVuOiAn5YWzJyB9LFxuICAvLyB9KVxuICAvLyBzaG93WCA9IHRydWU7XG4gIEBQcm9wZXJ0eSgnWeagh+e6v+agh+mimCcsIHtcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB1aTogeyB2aXNpYmxlSWY6IHsgbWFya0xpbmU6IFt0cnVlXSB9LCBvcHRpb25hbEhlbHA6ICfmraTmoIfpopjpnIDopoHot5945a2X5q615YaF5ZCN5a2X5LiA6Ie0JyB9LFxuICB9KVxuICBZbWFya0xpbmVOYW1lID0gJyc7XG4gIC8vIEBQcm9wZXJ0eSgn5qCH57q/5pWw5YC8JywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICAvLyBtYXJrTGluZVZhbCA9IG51bGw7XG5cbiAgQFByb3BlcnR5KCdZ5qCH57q/57G75Z6LJywge1xuICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcsIHZpc2libGVJZjogeyBtYXJrTGluZTogW3RydWVdIH0gfSxcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5a6e57q/JywgdmFsdWU6ICdzb2xpZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfomZrnur8nLCB2YWx1ZTogJ2Rhc2hlZCcgfSxcbiAgICAgIHsgbGFiZWw6ICfngrnnur8nLCB2YWx1ZTogJ2RvdHRlZCcgfSxcbiAgICBdLFxuICB9KVxuICBZbWFya0xpbmVUeXBlID0gJ2Rhc2hlZCc7XG5cbiAgQFByb3BlcnR5KCdZ5qCH57q/6aKc6ImyJywge1xuICAgIHVpOiB7XG4gICAgICB3aWRnZXQ6ICdteUNvbG9yJyxcbiAgICAgIGV4YW1wbGU6IFsnI0QwMDIxQicsICcjRjVBNjIzJywgJyNGOEU3MUMnLCAnIzUwRTNDMicsICcjMzI4NUZGJywgJyNCNDVGRkYnLCAnIzlCOUI5QicsICcjMzMzMzMzJ10sXG4gICAgICB2aXNpYmxlSWY6IHsgbWFya0xpbmU6IFt0cnVlXSB9LFxuICAgIH0sXG4gIH0pXG4gIFltYXJrTGluZUNvbG9yID0gJyNmMDAnO1xuICBAUHJvcGVydHkoJ1nmoIfnur/nspfnu4YnLCB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgdWk6IHsgdmlzaWJsZUlmOiB7IG1hcmtMaW5lOiBbdHJ1ZV0gfSB9LFxuICB9KVxuICBZbWFya1dpZHRoID0gMjtcbiAgQFByb3BlcnR5KCdY6L205qCH57q/5L2N572uJywgeyB0eXBlOiAnc3RyaW5nJywgdWk6IHsgdmlzaWJsZUlmOiB7IG1hcmtMaW5lOiBbdHJ1ZV0gfSB9IH0pXG4gIFhtYXJrTGluZUxvY2F0aW9uID0gJ+S6jOaciCc7XG4gIEBQcm9wZXJ0eSgnWOagh+e6v+agh+mimCcsIHtcbiAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICB1aTogeyBvcHRpb25hbEhlbHA6ICfmraTmoIfpopjpnIDopoHot5945a2X5q615YaF5ZCN5a2X5LiA6Ie0JywgdmlzaWJsZUlmOiB7IG1hcmtMaW5lOiBbdHJ1ZV0gfSB9LFxuICB9KVxuICBYbWFya0xpbmVOYW1lID0gJyc7XG4gIEBQcm9wZXJ0eSgnWOagh+e6v+exu+WeiycsIHtcbiAgICB1aTogeyB3aWRnZXQ6ICdzZWxlY3QnLCB2aXNpYmxlSWY6IHsgbWFya0xpbmU6IFt0cnVlXSB9IH0sXG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+Wunue6vycsIHZhbHVlOiAnc29saWQnIH0sXG4gICAgICB7IGxhYmVsOiAn6Jma57q/JywgdmFsdWU6ICdkYXNoZWQnIH0sXG4gICAgICB7IGxhYmVsOiAn54K557q/JywgdmFsdWU6ICdkb3R0ZWQnIH0sXG4gICAgXSxcbiAgfSlcbiAgWG1hcmtMaW5lVHlwZSA9ICdkYXNoZWQnO1xuXG4gIEBQcm9wZXJ0eSgnWOagh+e6v+minOiJsicsIHtcbiAgICB1aToge1xuICAgICAgdmlzaWJsZUlmOiB7IG1hcmtMaW5lOiBbdHJ1ZV0gfSxcbiAgICAgIHdpZGdldDogJ215Q29sb3InLFxuICAgICAgZXhhbXBsZTogWycjRDAwMjFCJywgJyNGNUE2MjMnLCAnI0Y4RTcxQycsICcjNTBFM0MyJywgJyMzMjg1RkYnLCAnI0I0NUZGRicsICcjOUI5QjlCJywgJyMzMzMzMzMnXSxcbiAgICB9LFxuICB9KVxuICBYbWFya0xpbmVDb2xvciA9ICcjZjAwJztcbiAgQFByb3BlcnR5KCdY5qCH57q/57KX57uGJywge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIHVpOiB7IHZpc2libGVJZjogeyBtYXJrTGluZTogW3RydWVdIH0gfSxcbiAgfSlcbiAgWG1hcmtXaWR0aCA9IDI7XG4gIEBQcm9wZXJ0eSgn5pWw5o2u5qCH57q/JylcbiAgc2hvd0RhdGFNYXJrTGluZTogYm9vbGVhbjtcbiAgQFByb3BlcnR5KCfmlbDmja7moIfnur/moLzlvI/ljJYnLCB7XG4gICAgdWk6IHsgdmlzaWJsZUlmOiB7IHNob3dEYXRhTWFya0xpbmU6IFt0cnVlXSB9LCBvcHRpb25hbEhlbHA6ICdmdW5jdGlvbihwYXJhbXMpe3JldHVybiBwYXJhbXMuZGF0YS52YWx1ZX0nIH0sXG4gIH0pXG4gIGRhdGFNYXJrTGluZUZvcm1hdHRlcjogc3RyaW5nO1xuICBAUHJvcGVydHkoJ+makOiXj3jovbTmoIfnrb4nKVxuICBoaWRlWExhYmVsOiBib29sZWFuO1xuICBAUHJvcGVydHkoJ3jovbTmoIfnrb7op5LluqYnLCB7XG4gICAgdWk6IHsgd2lkZ2V0OiAnbXlSYW5nZScsIG1pbjogLTkwLCBtYXg6IDkwLCBzdGVwOiAxMCwgdmlzaWJsZUlmOiB7IGhpZGVYTGFiZWw6ICh2YWx1ZSkgPT4gIXZhbHVlIH0gfSxcbiAgfSlcbiAgeExhYmVsUm90YXRlID0gMDtcbiAgQFByb3BlcnR5KCd46L205paH5pys5a695bqmJywgeyB1aTogeyB2aXNpYmxlSWY6IHsgaGlkZVhMYWJlbDogKHZhbHVlKSA9PiAhdmFsdWUgfSB9IH0pXG4gIHhMYWJlbFdpZHRoOiBudW1iZXI7XG4gIEBQcm9wZXJ0eSgneOi9tOaWh+Wtl+WuveW6pui2heWHuicsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn6Ieq5YqoJywgdmFsdWU6ICdhdXRvJyB9LFxuICAgICAgeyBsYWJlbDogJ+aIquaWrScsIHZhbHVlOiAndHJ1bmNhdGUnIH0sXG4gICAgICB7IGxhYmVsOiAn5o2i6KGMJywgdmFsdWU6ICdicmVhaycgfSxcbiAgICAgIHsgbGFiZWw6ICflvLrliLbmjaLooYwnLCB2YWx1ZTogJ2JyZWFrQWxsJyB9LFxuICAgIF0sXG4gICAgdWk6IHsgd2lkZ2V0OiAnc2VsZWN0JywgdmlzaWJsZUlmOiB7IGhpZGVYTGFiZWw6ICh2YWx1ZSkgPT4gIXZhbHVlIH0gfSxcbiAgfSlcbiAgeExhYmVsT3ZlcmZsb3cgPSAnYXV0byc7XG4gIEBQcm9wZXJ0eSgn5qCH562+5pi+56S66Ze06ZqUJywge1xuICAgIHVpOiB7XG4gICAgICB2aXNpYmxlSWY6IHsgaGlkZVhMYWJlbDogKHZhbHVlKSA9PiAhdmFsdWUgfSxcbiAgICAgIG9wdGlvbmFsSGVscDoge1xuICAgICAgICB0ZXh0OiBg6buY6K6k5Lya6YeH55So5qCH562+5LiN6YeN5Y+g55qE562W55Wl6Ze06ZqU5pi+56S65qCH562+44CCXG7lj6/ku6Xorr7nva7miJAgMCDlvLrliLbmmL7npLrmiYDmnInmoIfnrb7jgIIgXG7lpoLmnpzorr7nva7kuLogMe+8jOihqOekuuOAjumalOS4gOS4quagh+etvuaYvuekuuS4gOS4quagh+etvuOAj++8jOWmguaenOWAvOS4uiAy77yM6KGo56S66ZqU5Lik5Liq5qCH562+5pi+56S65LiA5Liq5qCH562+77yM5Lul5q2k57G75o6o44CCYCxcbiAgICAgICAgb3ZlcmxheVN0eWxlOiB7XG4gICAgICAgICAgd2hpdGVTcGFjZTogJ3ByZS1saW5lJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbiAgeExhYmVsSW50ZXJ2YWw6IG51bWJlcjtcblxuICBAUHJvcGVydHkoJ+WMuuWfn+e8qeaUvicpXG4gIGluc2lkZURhdGFab29tOiBib29sZWFuO1xuICBAUHJvcGVydHkoJ+e8qeaUvuacgOWwkeaVsOmHjycsIHsgdWk6IHsgdmlzaWJsZUlmOiB7IGluc2lkZURhdGFab29tOiBbdHJ1ZV0gfSB9IH0pXG4gIGRhdGFab29tTWluRGF0YTogbnVtYmVyO1xuICBAUHJvcGVydHkoJ+e8qeaUvuW8gOWni+eZvuWIhuavlCcsIHsgdWk6IHsgdmlzaWJsZUlmOiB7IGluc2lkZURhdGFab29tOiBbdHJ1ZV0gfSB9IH0pXG4gIGRhdGFab29tU3RhcnQ6IG51bWJlcjtcbiAgQFByb3BlcnR5KCfnvKnmlL7nu5PmnZ/nmb7liIbmr5QnLCB7IHVpOiB7IHZpc2libGVJZjogeyBpbnNpZGVEYXRhWm9vbTogW3RydWVdIH0gfSB9KVxuICBkYXRhWm9vbUVuZDogbnVtYmVyO1xuICBAUHJvcGVydHkoJ+a7mui9rue8qeaUvicsIHtcbiAgICBlbnVtOiBbXG4gICAgICB7IGxhYmVsOiAn5ZCv55SoJywgdmFsdWU6IHRydWUgfSxcbiAgICAgIHsgbGFiZWw6ICfnpoHnlKgnLCB2YWx1ZTogZmFsc2UgfSxcbiAgICAgIHsgbGFiZWw6ICfmjInkvY9zaGlmdCcsIHZhbHVlOiAnc2hpZnQnIH0sXG4gICAgICB7IGxhYmVsOiAn5oyJ5L2PY3RybCcsIHZhbHVlOiAnY3RybCcgfSxcbiAgICAgIHsgbGFiZWw6ICfmjInkvY9hbHQnLCB2YWx1ZTogJ2FsdCcgfSxcbiAgICBdLFxuICAgIHVpOiB7IHdpZGdldDogJ3NlbGVjdCcsIHZpc2libGVJZjogeyBpbnNpZGVEYXRhWm9vbTogW3RydWVdIH0gfSxcbiAgfSlcbiAgem9vbU9uTW91c2VXaGVlbCA9IHRydWU7XG4gIEBQcm9wZXJ0eSgn5ruR5Yqo5p2hJywgeyB1aTogeyB2aXNpYmxlSWY6IHsgaW5zaWRlRGF0YVpvb206IFt0cnVlXSB9IH0gfSlcbiAgc2xpZGVyRGF0YVpvb206IGJvb2xlYW47XG4gIEBQcm9wZXJ0eSgn6ZSB5a6a5Yy65Z+f5aSn5bCPJywgeyB1aTogeyB2aXNpYmxlSWY6IHsgc2xpZGVyRGF0YVpvb206IFt0cnVlXSB9IH0gfSlcbiAgem9vbUxvY2s6IGJvb2xlYW47XG4gIEBQcm9wZXJ0eSgn5o+Q56S65qGG5a2X5L2TJywgeyB1aTogeyB3aWRnZXQ6ICdteUZvbnQnIH0gfSlcbiAgdG9vbHRpcEZvbnQ6IGFueTtcbiAgQFByb3BlcnR5KCfpmLbmoq/mi5DngrknLCB7XG4gICAgZW51bTogW1xuICAgICAgeyBsYWJlbDogJ+W9k+WJjeeCuScsIHZhbHVlOiAnc3RhcnQnIH0sXG4gICAgICB7IGxhYmVsOiAn5Lit6Ze054K5JywgdmFsdWU6ICdtaWRkbGUnIH0sXG4gICAgICB7IGxhYmVsOiAn5LiL5Liq54K5JywgdmFsdWU6ICdlbmQnIH0sXG4gICAgXSxcbiAgICB1aTogeyB3aWRnZXQ6ICdzZWxlY3QnLCB2aXNpYmxlSWY6IHsgdHlwZTogWydzdGVwJ10gfSB9LFxuICB9KVxuICBzdGVwOiBzdHJpbmc7XG4gIEBQcm9wZXJ0eSgn5qCH6K6w54K55aSn5bCPJywgeyB0eXBlOiAnbnVtYmVyJyB9KVxuICBzeW1ib2xTaXplOiBudW1iZXI7XG4gIGNoYXJ0T3B0aW9uOiBhbnkgPSBudWxsO1xuICBARGF0YSh7XG4gICAgcHJvcGVydGllczoge1xuICAgICAgeDogeyB0eXBlOiAnc3RyaW5nJywgdGl0bGU6ICfnsbvnm64nIH0sXG4gICAgICB5OiB7IHR5cGU6ICdudW1iZXInLCB0aXRsZTogJ+WAvCcgfSxcbiAgICAgIHM6IHsgdHlwZTogJ3N0cmluZycsIHRpdGxlOiAn57O75YiXJyB9LFxuICAgIH0sXG4gIH0pXG4gIF9kYXRhOiBhbnlbXSA9IFtcbiAgICB7IHg6ICfkuIDmnIgnLCB5OiAxMCwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuozmnIgnLCB5OiAyMCwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuInmnIgnLCB5OiAyNSwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICflm5vmnIgnLCB5OiAzNSwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkupTmnIgnLCB5OiAyNywgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICflha3mnIgnLCB5OiAyOCwgczogJ+aUtuWFpScgfSxcbiAgICB7IHg6ICfkuIDmnIgnLCB5OiAxOCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkuozmnIgnLCB5OiAyOCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkuInmnIgnLCB5OiAzMiwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICflm5vmnIgnLCB5OiA0OCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICfkupTmnIgnLCB5OiAyMCwgczogJ+aUr+WHuicgfSxcbiAgICB7IHg6ICflha3mnIgnLCB5OiAxNywgczogJ+aUr+WHuicgfSxcbiAgXTtcbiAgQERyaWxsKClcbiAgQERhdGFPdXRwdXQoWyd4JywgJ3MnXSlcbiAgZGF0YUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIHhEYXRhID0gW107XG4gIHlEYXRhID0gW107XG4gIC8vIHNlcmllcyA9IFtdO1xuICBzdHlsZSA9IHtcbiAgICBjb2xvcjogJycsXG4gICAgZm9udEZhbWlseTogJycsXG4gICAgZm9udFdlaWdodDogJycsXG4gICAgZm9udFNpemU6ICcnLFxuICAgIGxpbmVIZWlnaHQ6ICcnLFxuICB9O1xuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5fZGF0YSkge1xuICAgICAgY29uc3QgdGV4dFN0eWxlID0gdGhpcy5nZXRUZXh0U3R5bGUodGhpcy5mb250KTtcbiAgICAgIHRoaXMuc3R5bGUgPSB0ZXh0U3R5bGU7XG4gICAgICB0aGlzLmNoYXJ0T3B0aW9uID0ge1xuICAgICAgICBkYXRhWm9vbTogdGhpcy5nZXREYXRhWm9vbSgpLFxuICAgICAgICB0b29sdGlwOiB0aGlzLmdldFRvb2x0aXAoKSxcbiAgICAgICAgbGVnZW5kOiB0aGlzLmdldExlZ2VuZCgpLFxuICAgICAgICBncmlkOiB0aGlzLmdldEdyaWQoKSxcbiAgICAgICAgeEF4aXM6IHRoaXMuZ2V0WEF4aXMoKSxcbiAgICAgICAgeUF4aXM6IHRoaXMuZ2V0WUF4aXMoKSxcbiAgICAgICAgY29sb3I6IHRoaXMubGluZUNvbG9yLFxuICAgICAgICBzZXJpZXM6IFtdLFxuICAgICAgfTtcbiAgICAgIHRoaXMucmVsb2FkRGF0YSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFhBeGlzKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMueFVuaXQsXG4gICAgICBuYW1lVGV4dFN0eWxlOiB0aGlzLnN0eWxlLFxuICAgICAgdHlwZTogdGhpcy54VHlwZSB8fCAnY2F0ZWdvcnknLFxuICAgICAgYm91bmRhcnlHYXA6IHRoaXMuYm91bmRhcnlHYXAsXG4gICAgICBheGlzTGluZToge1xuICAgICAgICBsaW5lU3R5bGU6IHtcbiAgICAgICAgICBjb2xvcjogdGhpcy5zdHlsZS5jb2xvcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBheGlzTGFiZWw6IHtcbiAgICAgICAgLi4udGhpcy5zdHlsZSxcbiAgICAgICAgcm90YXRlOiB0aGlzLnhMYWJlbFJvdGF0ZSxcbiAgICAgICAgc2hvdzogIXRoaXMuaGlkZVhMYWJlbCxcbiAgICAgICAgd2lkdGg6IHRoaXMueExhYmVsV2lkdGgsXG4gICAgICAgIG92ZXJmbG93OiB0aGlzLnhMYWJlbE92ZXJmbG93LFxuICAgICAgICBpbnRlcnZhbDogdGhpcy54TGFiZWxJbnRlcnZhbCxcbiAgICAgIH0sXG4gICAgICBzcGxpdExpbmU6IHtcbiAgICAgICAgc2hvdzogdGhpcy5uZXRMaW5lWCxcbiAgICAgICAgbGluZVN0eWxlOiB7XG4gICAgICAgICAgdHlwZTogdGhpcy5uZXRMaW5lWFR5cGUsXG4gICAgICAgICAgY29sb3I6IHRoaXMubmV0TGluZUNvbG9yLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0WUF4aXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgc2hvdzogdHJ1ZSxcbiAgICAgIG5hbWU6IHRoaXMueVVuaXQsXG4gICAgICBuYW1lVGV4dFN0eWxlOiB0aGlzLnN0eWxlLFxuICAgICAgdHlwZTogJ3ZhbHVlJyxcbiAgICAgIG1pbjogdGhpcy55TWluLFxuICAgICAgbWF4OiAodmFsdWUpID0+IHtcbiAgICAgICAgbGV0IHlNYXggPSB2YWx1ZS5tYXg7XG4gICAgICAgIGlmICh0aGlzLnlNYXgpIHtcbiAgICAgICAgICB5TWF4ID0gTnVtYmVyKHRoaXMueU1heCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tYXJrTGluZSkge1xuICAgICAgICAgIHlNYXggPSBNYXRoLm1heChOdW1iZXIodGhpcy5ZbWFya0xpbmVIZWlnaHQpLCB5TWF4KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gTWF0aC5jZWlsKHRoaXMueU1heEFkZE51bSA/IHlNYXggKyBOdW1iZXIodGhpcy55TWF4QWRkTnVtKSA6IHlNYXgpO1xuICAgICAgfSxcbiAgICAgIGF4aXNMaW5lOiB7XG4gICAgICAgIHNob3c6IHRoaXMuc2hvd1ksXG4gICAgICAgIGxpbmVTdHlsZToge1xuICAgICAgICAgIGNvbG9yOiB0aGlzLnN0eWxlLmNvbG9yLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGF4aXNMYWJlbDogdGhpcy5zdHlsZSxcbiAgICAgIHNwbGl0TGluZToge1xuICAgICAgICBzaG93OiB0aGlzLm5ldExpbmUsXG4gICAgICAgIGxpbmVTdHlsZToge1xuICAgICAgICAgIHR5cGU6IHRoaXMubmV0TGluZVhUeXBlLFxuICAgICAgICAgIGNvbG9yOiB0aGlzLm5ldExpbmVDb2xvcixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBheGlzVGljazoge1xuICAgICAgICBzaG93OiB0aGlzLnNob3dZLFxuICAgICAgfSxcbiAgICAgIG1pbkludGVydmFsOiB0aGlzLnlNaW5JbnRlcnZhbCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0R3JpZCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdG9wOiB0aGlzLmdyaWQudG9wLFxuICAgICAgcmlnaHQ6IHRoaXMuZ3JpZC5yaWdodCxcbiAgICAgIGxlZnQ6IHRoaXMuZ3JpZC5sZWZ0LFxuICAgICAgYm90dG9tOiB0aGlzLmdyaWQuYm90dG9tLFxuICAgIH07XG4gIH1cbiAgZ2V0TGVnZW5kKCk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFsaWduOiAnbGVmdCcsXG4gICAgICBsZWZ0OiB0aGlzLmFsaWduLFxuICAgICAgc2hvdzogdGhpcy5hbGlnbiAhPT0gJ25vbmUnLFxuICAgICAgaWNvbjogJ3JlY3QnLFxuICAgICAgdGV4dFN0eWxlOiB0aGlzLnN0eWxlLFxuICAgIH07XG4gIH1cbiAgZ2V0VG9vbHRpcCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJpZ2dlcjogJ2F4aXMnLFxuICAgICAgdGV4dFN0eWxlOiB0aGlzLmdldFRleHRTdHlsZSh0aGlzLnRvb2x0aXBGb250KSxcbiAgICAgIGF4aXNQb2ludGVyOiB7XG4gICAgICAgIHR5cGU6IHRoaXMuYXhpc1R5cGUsXG4gICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgc2hvdzogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIGxpbmVTdHlsZToge1xuICAgICAgICAgIHR5cGU6IHRoaXMubGluZVR5cGUsXG4gICAgICAgICAgY29sb3I6IHRoaXMuYXhpc0NvbG9yLFxuICAgICAgICAgIHdpZHRoOiB0aGlzLmF4aXNXaWR0aCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFRleHRTdHlsZShmb250OiBhbnkpIHtcbiAgICByZXR1cm4gZ2V0RWNoYXJ0c1RleHRTdHlsZShmb250KTtcbiAgfVxuXG4gIGdldERhdGFab29tKCkge1xuICAgIGNvbnN0IGRhdGFab29tID0gW107XG4gICAgaWYgKHRoaXMuaW5zaWRlRGF0YVpvb20pIHtcbiAgICAgIGxldCBlbmFibGVEYXRhWm9vbSA9IHRydWU7XG4gICAgICBpZiAodGhpcy5kYXRhWm9vbU1pbkRhdGEgIT0gbnVsbCkge1xuICAgICAgICBjb25zdCB4U2V0ID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgIHRoaXMuX2RhdGEuZm9yRWFjaCgoZGF0YSkgPT4ge1xuICAgICAgICAgIGlmIChkYXRhLngpIHtcbiAgICAgICAgICAgIHhTZXQuYWRkKGRhdGEueCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHhTZXQuc2l6ZSA8IHRoaXMuZGF0YVpvb21NaW5EYXRhKSB7XG4gICAgICAgICAgZW5hYmxlRGF0YVpvb20gPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGVuYWJsZURhdGFab29tKSB7XG4gICAgICAgIGxldCBzdGFydCA9IHRoaXMuZGF0YVpvb21TdGFydCB8fCAwO1xuICAgICAgICBsZXQgZW5kID0gdGhpcy5kYXRhWm9vbUVuZCB8fCAxMDA7XG4gICAgICAgIGRhdGFab29tLnB1c2goeyB0eXBlOiAnaW5zaWRlJywgc3RhcnQsIGVuZCwgem9vbU9uTW91c2VXaGVlbDogdGhpcy56b29tT25Nb3VzZVdoZWVsIH0pO1xuICAgICAgICBpZiAodGhpcy5zbGlkZXJEYXRhWm9vbSkge1xuICAgICAgICAgIGRhdGFab29tLnB1c2goeyB0eXBlOiAnc2xpZGVyJywgc3RhcnQsIGVuZCwgem9vbUxvY2s6IHRoaXMuem9vbUxvY2ssIGJydXNoU2VsZWN0OiBmYWxzZSB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YVpvb207XG4gIH1cblxuICByZWxvYWREYXRhKCkge1xuICAgIGNvbnN0IHNlcmllc01hcCA9IHt9O1xuICAgIGNvbnN0IGRhdGFzZXQgPSBbXTtcbiAgICBjb25zdCBzb3VyY2UgPSBbXTtcbiAgICBkYXRhc2V0LnB1c2goeyBzb3VyY2UgfSk7XG4gICAgdGhpcy5fZGF0YS5mb3JFYWNoKChyZWNvcmQpID0+IHtcbiAgICAgIC8vIOmSiOWvuW1hcmtsaW5l5qCH57q/5YWz6IGU5pWw5o2u5bqT55qE5pON5L2c77yMIOiLpXjnmoTlkI3lrZfkuI5tYXJrbGluZeeahG5hbWXkuIDoh7TvvIzliJnojrflj5blr7nlupTnmoR56L205pWw5o2u5L2c5Li6bWFya2xpbmXnmoR2YWx1ZTsg55uu5YmN5LuF5pSv5oyB5LiA5LiqbWFya2xpbmVcbiAgICAgIC8vIGRhdGHkuK3ov4fmu6TmjoltYXJrbGluZeeahOaVsOaNrlxuICAgICAgaWYgKHRoaXMubWFya0xpbmUgJiYgdGhpcy5ZbWFya0xpbmVOYW1lICYmIHJlY29yZC54ID09PSB0aGlzLlltYXJrTGluZU5hbWUpIHtcbiAgICAgICAgdGhpcy5ZbWFya0xpbmVIZWlnaHQgPSByZWNvcmQueTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8v5Li656m6ZmlsdGVy5Lya5oql6ZSZXG4gICAgICAgIGlmIChyZWNvcmQucyA9PSBudWxsKSB7XG4gICAgICAgICAgcmVjb3JkID0geyAuLi5yZWNvcmQsIHM6ICcnIH07XG4gICAgICAgIH1cbiAgICAgICAgc291cmNlLnB1c2gocmVjb3JkKTtcbiAgICAgICAgY29uc3QgcyA9IHJlY29yZC5zO1xuICAgICAgICBsZXQgc2VyaWVzID0gc2VyaWVzTWFwW3NdO1xuICAgICAgICBpZiAoIXNlcmllcykge1xuICAgICAgICAgIC8vIHNlcmllc1NldC5hZGQocyk7XG4gICAgICAgICAgY29uc3QgdHJhbnNmb3JtID0ge1xuICAgICAgICAgICAgdHlwZTogJ2ZpbHRlcicsXG4gICAgICAgICAgICBjb25maWc6IHsgZGltZW5zaW9uOiAncycsIHZhbHVlOiBzIH0sXG4gICAgICAgICAgfTtcbiAgICAgICAgICBkYXRhc2V0LnB1c2goeyB0cmFuc2Zvcm0gfSk7XG4gICAgICAgICAgc2VyaWVzID0gdGhpcy5zZXRTZXJpZXNTdHlsZShzLCBkYXRhc2V0Lmxlbmd0aCAtIDEpO1xuICAgICAgICAgIHNlcmllc01hcFtzXSA9IHNlcmllcztcbiAgICAgICAgICBpZiAodGhpcy5zaG93RGF0YU1hcmtMaW5lKSB7XG4gICAgICAgICAgICBzZXJpZXMubWFya0xpbmUgPSB7XG4gICAgICAgICAgICAgIHN5bWJvbDogWydub25lJywgJ25vbmUnXSxcbiAgICAgICAgICAgICAgbGFiZWw6IHtcbiAgICAgICAgICAgICAgICAuLi50aGlzLnN0eWxlLFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnc3RhcnQnLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBkYXRhOiBbXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhTWFya0xpbmVGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgc2VyaWVzLm1hcmtMaW5lLmxhYmVsLmZvcm1hdHRlciA9IGV2YWwoJygnICsgdGhpcy5kYXRhTWFya0xpbmVGb3JtYXR0ZXIgKyAnKScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zaG93RGF0YU1hcmtMaW5lKSB7XG4gICAgICAgICAgc2VyaWVzLm1hcmtMaW5lLmRhdGEucHVzaCh7IHhBeGlzOiByZWNvcmQueCB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2hhcnRPcHRpb24uZGF0YXNldCA9IGRhdGFzZXQ7XG4gICAgaWYgKHRoaXMubWFya0xpbmUpIHtcbiAgICAgIGNvbnN0IG1hcmtsaW5lU3R5bGU6IGFueSA9IHtcbiAgICAgICAgc3ltYm9sOiAnbm9uZScsXG4gICAgICAgIHNpbGVudDogdHJ1ZSwgLy8g6byg5qCH5oKs5YGc5Lmm5YmR77yMdHJ1ZeayoeaciVxuICAgICAgICBkYXRhOiBbXSxcbiAgICAgIH07XG4gICAgICBpZiAodGhpcy5ZbWFya0xpbmVOYW1lKSB7XG4gICAgICAgIG1hcmtsaW5lU3R5bGUuZGF0YS5wdXNoKHtcbiAgICAgICAgICBuYW1lOiB0aGlzLlltYXJrTGluZU5hbWUsXG4gICAgICAgICAgdHlwZTogdGhpcy5ZbWFya0xpbmVIZWlnaHQgPyBudWxsIDogJ2F2ZXJhZ2UnLFxuICAgICAgICAgIHlBeGlzOiB0aGlzLlltYXJrTGluZUhlaWdodCxcbiAgICAgICAgICBsaW5lU3R5bGU6IHtcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLlltYXJrTGluZUNvbG9yLFxuICAgICAgICAgICAgdHlwZTogdGhpcy5ZbWFya0xpbmVUeXBlLFxuICAgICAgICAgICAgd2lkdGg6IHRoaXMuWW1hcmtXaWR0aCA/IHRoaXMuWW1hcmtXaWR0aCA6IDIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYWJlbDoge1xuICAgICAgICAgICAgZm9ybWF0dGVyOiAne2J9e2N9JyxcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnaW5zaWRlRW5kVG9wJyxcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLlltYXJrTGluZUNvbG9yLFxuICAgICAgICAgICAgZm9udFNpemU6IHRoaXMuZm9udC5zaXplLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuWG1hcmtMaW5lTmFtZSkge1xuICAgICAgICBtYXJrbGluZVN0eWxlLmRhdGEucHVzaCh7XG4gICAgICAgICAgbmFtZTogdGhpcy5YbWFya0xpbmVOYW1lLFxuICAgICAgICAgIHR5cGU6IHRoaXMuWG1hcmtMaW5lTG9jYXRpb24gPyBudWxsIDogJ2F2ZXJhZ2UnLFxuICAgICAgICAgIHhBeGlzOiB0aGlzLlhtYXJrTGluZUxvY2F0aW9uLFxuICAgICAgICAgIGxpbmVTdHlsZToge1xuICAgICAgICAgICAgY29sb3I6IHRoaXMuWG1hcmtMaW5lQ29sb3IsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLlhtYXJrTGluZVR5cGUsXG4gICAgICAgICAgICB3aWR0aDogdGhpcy5YbWFya1dpZHRoID8gdGhpcy5YbWFya1dpZHRoIDogMixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxhYmVsOiB7XG4gICAgICAgICAgICBmb3JtYXR0ZXI6ICd7Yn17Y30nLFxuICAgICAgICAgICAgcG9zaXRpb246ICdpbnNpZGVFbmRUb3AnLFxuICAgICAgICAgICAgY29sb3I6IHRoaXMuWG1hcmtMaW5lQ29sb3IsXG4gICAgICAgICAgICBmb250U2l6ZTogdGhpcy5mb250LnNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICB0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcy5wdXNoKHsgdHlwZTogJ2xpbmUnLCBtYXJrTGluZTogbWFya2xpbmVTdHlsZSwgZGF0YTogW10gfSk7XG4gICAgICAvLyB0aGlzLmNoYXJ0T3B0aW9uLnNlcmllc1t0aGlzLmNoYXJ0T3B0aW9uLnNlcmllcy5sZW5ndGggLSAxXS5tYXJrTGluZSA9IG1hcmtsaW5lU3R5bGU7XG4gICAgfVxuICB9XG5cbiAgc2V0U2VyaWVzU3R5bGUobmFtZTogc3RyaW5nLCBkYXRhc2V0SW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHNlcmllczogYW55ID0ge1xuICAgICAgbmFtZSxcbiAgICAgIGxhYmVsOiB7XG4gICAgICAgIHNob3c6IHRoaXMubGFiZWwsXG4gICAgICAgIHRleHRTdHlsZTogdGhpcy5zdHlsZSxcbiAgICAgIH0sXG4gICAgICBjb25uZWN0TnVsbHM6IHRydWUsXG4gICAgICBpdGVtU3R5bGU6IHt9LFxuICAgICAgdHlwZTogJ2xpbmUnLFxuICAgICAgYXJlYVN0eWxlOiB7fSxcbiAgICAgIHNtb290aDogZmFsc2UsXG4gICAgICBzeW1ib2xTaXplOiB0aGlzLnN5bWJvbFNpemUgPz8gMTAsXG4gICAgICBlbmNvZGU6IHsgeDogJ3gnLCB5OiAneScgfSxcbiAgICAgIGRhdGFzZXRJbmRleCxcbiAgICB9O1xuICAgIHRoaXMuY2hhcnRPcHRpb24uc2VyaWVzLnB1c2goc2VyaWVzKTtcbiAgICBzZXJpZXMuYXJlYVN0eWxlLm9wYWNpdHkgPSAwO1xuICAgIGlmICh0aGlzLnR5cGUgPT09ICdzbW9vdGgnIHx8IHRoaXMudHlwZSA9PT0gJ3Ntb290aC1hcmVhJykge1xuICAgICAgc2VyaWVzLnNtb290aCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdhcmVhJyB8fCB0aGlzLnR5cGUgPT09ICdzbW9vdGgtYXJlYScpIHtcbiAgICAgIHNlcmllcy5hcmVhU3R5bGUub3BhY2l0eSA9IDAuNTtcbiAgICAgIHNlcmllcy5zeW1ib2xTaXplID0gdGhpcy5zeW1ib2xTaXplID8/ICh0aGlzLmxhYmVsID8gMTAgOiAwKTtcbiAgICB9XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3N0ZXAnKSB7XG4gICAgICBzZXJpZXMuc3RlcCA9IHRoaXMuc3RlcDtcbiAgICB9XG4gICAgcmV0dXJuIHNlcmllcztcbiAgfVxuXG4gIHVuaXF1ZURhdGEoZGF0YSkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGF0YS5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGZvciAobGV0IGogPSBpICsgMTsgaiA8IGRhdGEubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgaWYgKGRhdGFbaV0gPT09IGRhdGFbal0pIHtcbiAgICAgICAgICBkYXRhLnNwbGljZShqLCAxKTtcbiAgICAgICAgICBqLS07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBnZXRNYXhZKCkge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5fZGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy55RGF0YVtpXSA9IHRoaXMuX2RhdGFbaV0ueTtcbiAgICB9XG4gICAgdGhpcy51bmlxdWVEYXRhKHRoaXMueURhdGEpO1xuICAgIGNvbnN0IGEgPSBNYXRoLm1heCguLi50aGlzLnlEYXRhKS50b0ZpeGVkKDApO1xuICAgIGNvbnN0IGIgPSBhLnRvU3RyaW5nKCkubGVuZ3RoO1xuICAgIGNvbnN0IGMgPSBNYXRoLnBvdygxMCwgYiAtIDEpO1xuICAgIGNvbnN0IG1heCA9IE51bWJlcihjKSArIE51bWJlcihhKTtcbiAgICByZXR1cm4gbWF4O1xuICB9XG5cbiAgb25DaGFydENsaWNrKGV2ZW50KSB7XG4gICAgdGhpcy5kYXRhQ2xpY2suZW1pdCh7IHg6IGV2ZW50Lm5hbWUsIHM6IGV2ZW50LnNlcmllc05hbWUgfSk7XG4gIH1cbn1cbiJdfQ==