bbj-screen-widget 2.4.60 → 2.4.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (735) hide show
  1. package/core/package.json +2 -10
  2. package/core/src/service/baidu-map.service.ts +107 -0
  3. package/karma.conf.js +32 -0
  4. package/ng-package.json +59 -0
  5. package/package.json +4 -13
  6. package/src/lib/announcement/announcement.component.html +3 -0
  7. package/src/lib/announcement/announcement.component.less +5 -0
  8. package/src/lib/announcement/announcement.component.spec.ts +25 -0
  9. package/src/lib/announcement/announcement.component.ts +55 -0
  10. package/src/lib/announcement/announcement.module.ts +19 -0
  11. package/src/lib/audio/audio.component.html +6 -0
  12. package/src/lib/audio/audio.component.less +12 -0
  13. package/src/lib/audio/audio.component.spec.ts +25 -0
  14. package/src/lib/audio/audio.component.ts +167 -0
  15. package/src/lib/audio/audio.module.ts +15 -0
  16. package/src/lib/background/background.component.html +1 -0
  17. package/src/lib/background/background.component.less +6 -0
  18. package/src/lib/background/background.component.spec.ts +25 -0
  19. package/src/lib/background/background.component.ts +33 -0
  20. package/src/lib/background/background.module.ts +14 -0
  21. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.html +1 -0
  22. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.less +8 -0
  23. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.spec.ts +25 -0
  24. package/src/lib/bar-chart-three-d/bar-chart-three-d.component.ts +271 -0
  25. package/src/lib/bar-chart-three-d/bar-chart-three-d.module.ts +15 -0
  26. package/src/lib/basic-bar-chart/basic-bar-chart.component.html +7 -0
  27. package/src/lib/basic-bar-chart/basic-bar-chart.component.less +5 -0
  28. package/src/lib/basic-bar-chart/basic-bar-chart.component.spec.ts +25 -0
  29. package/src/lib/basic-bar-chart/basic-bar-chart.component.ts +493 -0
  30. package/src/lib/basic-bar-chart/basic-bar-chart.module.ts +21 -0
  31. package/src/lib/basic-line-chart/basic-line-chart.component.html +7 -0
  32. package/src/lib/basic-line-chart/basic-line-chart.component.less +8 -0
  33. package/src/lib/basic-line-chart/basic-line-chart.component.spec.ts +25 -0
  34. package/src/lib/basic-line-chart/basic-line-chart.component.ts +654 -0
  35. package/src/lib/basic-line-chart/basic-line-chart.module.ts +15 -0
  36. package/src/lib/basic-pie-chart/basic-pie-chart.component.html +7 -0
  37. package/src/lib/basic-pie-chart/basic-pie-chart.component.less +8 -0
  38. package/src/lib/basic-pie-chart/basic-pie-chart.component.spec.ts +25 -0
  39. package/src/lib/basic-pie-chart/basic-pie-chart.component.ts +439 -0
  40. package/src/lib/basic-pie-chart/basic-pie-chart.module.ts +15 -0
  41. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.html +2 -0
  42. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.less +9 -0
  43. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.spec.ts +25 -0
  44. package/src/lib/basic-planimetric-map/basic-planimetric-map.component.ts +211 -0
  45. package/src/lib/basic-planimetric-map/basic-planimetric-map.module.ts +16 -0
  46. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.css +0 -0
  47. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.html +1 -0
  48. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.spec.ts +25 -0
  49. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.component.ts +487 -0
  50. package/src/lib/breathing-bubble-layer/breathing-bubble-layer.module.ts +14 -0
  51. package/src/lib/bubble-chart/bubble-chart.component.html +7 -0
  52. package/src/lib/bubble-chart/bubble-chart.component.less +8 -0
  53. package/src/lib/bubble-chart/bubble-chart.component.spec.ts +25 -0
  54. package/src/lib/bubble-chart/bubble-chart.component.ts +307 -0
  55. package/src/lib/bubble-chart/bubble-chart.module.ts +15 -0
  56. package/src/lib/bulletin-board/bulletin-board.component.html +15 -0
  57. package/src/lib/bulletin-board/bulletin-board.component.less +27 -0
  58. package/src/lib/bulletin-board/bulletin-board.component.spec.ts +25 -0
  59. package/src/lib/bulletin-board/bulletin-board.component.ts +127 -0
  60. package/src/lib/bulletin-board/bulletin-board.module.ts +20 -0
  61. package/src/lib/button/button.component.html +1 -0
  62. package/src/lib/button/button.component.less +17 -0
  63. package/src/lib/button/button.component.spec.ts +25 -0
  64. package/src/lib/button/button.component.ts +137 -0
  65. package/src/lib/button/button.module.ts +16 -0
  66. package/src/lib/calendar/background-events/background-events.component.html +0 -0
  67. package/src/lib/calendar/background-events/background-events.component.less +0 -0
  68. package/src/lib/calendar/background-events/background-events.component.spec.ts +25 -0
  69. package/src/lib/calendar/background-events/background-events.component.ts +51 -0
  70. package/src/lib/calendar/calendar-events-child.ts +27 -0
  71. package/src/lib/calendar/calendar.component.html +2 -0
  72. package/src/lib/calendar/calendar.component.less +14 -0
  73. package/src/lib/calendar/calendar.component.spec.ts +25 -0
  74. package/src/lib/calendar/calendar.component.ts +151 -0
  75. package/src/lib/calendar/calendar.module.ts +27 -0
  76. package/src/lib/calendar/calendar.util.ts +14 -0
  77. package/src/lib/calendar/events/events.component.html +0 -0
  78. package/src/lib/calendar/events/events.component.less +0 -0
  79. package/src/lib/calendar/events/events.component.spec.ts +25 -0
  80. package/src/lib/calendar/events/events.component.ts +61 -0
  81. package/src/lib/checkbox/checkbox.component.html +61 -0
  82. package/src/lib/checkbox/checkbox.component.less +104 -0
  83. package/src/lib/checkbox/checkbox.component.spec.ts +25 -0
  84. package/src/lib/checkbox/checkbox.component.ts +292 -0
  85. package/src/lib/checkbox/checkbox.module.ts +16 -0
  86. package/src/lib/cross-table/cross-table.component.html +16 -0
  87. package/src/lib/cross-table/cross-table.component.less +75 -0
  88. package/src/lib/cross-table/cross-table.component.spec.ts +25 -0
  89. package/src/lib/cross-table/cross-table.component.ts +257 -0
  90. package/src/lib/cross-table/cross-table.module.ts +18 -0
  91. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.html +32 -0
  92. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.less +11 -0
  93. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.spec.ts +25 -0
  94. package/src/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.ts +689 -0
  95. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.html +0 -0
  96. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.less +0 -0
  97. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.spec.ts +25 -0
  98. package/src/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.ts +248 -0
  99. package/src/lib/custom-baidu-map/base-layer.ts +50 -0
  100. package/src/lib/custom-baidu-map/custom-baidu-map.component.html +15 -0
  101. package/src/lib/custom-baidu-map/custom-baidu-map.component.less +69 -0
  102. package/src/lib/custom-baidu-map/custom-baidu-map.component.spec.ts +25 -0
  103. package/src/lib/custom-baidu-map/custom-baidu-map.component.ts +652 -0
  104. package/src/lib/custom-baidu-map/custom-baidu-map.module.ts +41 -0
  105. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.html +0 -0
  106. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.less +0 -0
  107. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.spec.ts +25 -0
  108. package/src/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.ts +99 -0
  109. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.html +0 -0
  110. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.less +0 -0
  111. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.spec.ts +25 -0
  112. package/src/lib/custom-baidu-map/wind-layer/wind-layer.component.ts +404 -0
  113. package/src/lib/data-map/data-map.component.html +9 -0
  114. package/src/lib/data-map/data-map.component.less +0 -0
  115. package/src/lib/data-map/data-map.component.spec.ts +25 -0
  116. package/src/lib/data-map/data-map.component.ts +105 -0
  117. package/src/lib/data-map/data-map.module.ts +15 -0
  118. package/src/lib/date-picker/date-picker.component.html +32 -0
  119. package/src/lib/date-picker/date-picker.component.less +20 -0
  120. package/src/lib/date-picker/date-picker.component.spec.ts +25 -0
  121. package/src/lib/date-picker/date-picker.component.ts +389 -0
  122. package/src/lib/date-picker/date-picker.module.ts +18 -0
  123. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.html +25 -0
  124. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.less +35 -0
  125. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.spec.ts +25 -0
  126. package/src/lib/drop-down-detail-list/drop-down-detail-list.component.ts +117 -0
  127. package/src/lib/drop-down-detail-list/drop-down-detail-list.module.ts +15 -0
  128. package/src/lib/dynamic-list/dynamic-list.component.html +15 -0
  129. package/src/lib/dynamic-list/dynamic-list.component.less +31 -0
  130. package/src/lib/dynamic-list/dynamic-list.component.spec.ts +25 -0
  131. package/src/lib/dynamic-list/dynamic-list.component.ts +57 -0
  132. package/src/lib/dynamic-list/dynamic-list.module.ts +15 -0
  133. package/src/lib/funnel-chart/funnel-chart.component.html +7 -0
  134. package/src/lib/funnel-chart/funnel-chart.component.less +8 -0
  135. package/src/lib/funnel-chart/funnel-chart.component.spec.ts +25 -0
  136. package/src/lib/funnel-chart/funnel-chart.component.ts +198 -0
  137. package/src/lib/funnel-chart/funnel-chart.module.ts +15 -0
  138. package/src/lib/gantt/gantt.component.html +10 -0
  139. package/src/lib/gantt/gantt.component.less +76 -0
  140. package/src/lib/gantt/gantt.component.spec.ts +25 -0
  141. package/src/lib/gantt/gantt.component.ts +213 -0
  142. package/src/lib/gantt/gantt.module.ts +37 -0
  143. package/src/lib/gauge/gauge.component.html +1 -0
  144. package/src/lib/gauge/gauge.component.less +8 -0
  145. package/src/lib/gauge/gauge.component.spec.ts +25 -0
  146. package/src/lib/gauge/gauge.component.ts +268 -0
  147. package/src/lib/gauge/gauge.module.ts +15 -0
  148. package/src/lib/gauge-progress/gauge-progress.component.html +29 -0
  149. package/src/lib/gauge-progress/gauge-progress.component.less +51 -0
  150. package/src/lib/gauge-progress/gauge-progress.component.ts +293 -0
  151. package/src/lib/gauge-progress/gauge.module.ts +17 -0
  152. package/src/lib/general-text/general-text.component.html +7 -0
  153. package/src/lib/general-text/general-text.component.less +8 -0
  154. package/src/lib/general-text/general-text.component.spec.ts +25 -0
  155. package/src/lib/general-text/general-text.component.ts +114 -0
  156. package/src/lib/general-text/general-text.module.ts +15 -0
  157. package/src/lib/iconfont/icon.ts +198 -0
  158. package/src/lib/iconfont/iconfont.component.html +4 -0
  159. package/src/lib/iconfont/iconfont.component.less +5 -0
  160. package/src/lib/iconfont/iconfont.component.spec.ts +25 -0
  161. package/src/lib/iconfont/iconfont.component.ts +42 -0
  162. package/src/lib/iconfont/iconfont.module.ts +15 -0
  163. package/src/lib/iframe/iframe.component.html +1 -0
  164. package/src/lib/iframe/iframe.component.less +13 -0
  165. package/src/lib/iframe/iframe.component.spec.ts +25 -0
  166. package/src/lib/iframe/iframe.component.ts +34 -0
  167. package/src/lib/iframe/iframe.module.ts +15 -0
  168. package/src/lib/image/image.component.html +2 -0
  169. package/src/lib/image/image.component.less +13 -0
  170. package/src/lib/image/image.component.spec.ts +25 -0
  171. package/src/lib/image/image.component.ts +79 -0
  172. package/src/lib/image/image.module.ts +14 -0
  173. package/src/lib/item-swiper/item-swiper.component.html +48 -0
  174. package/src/lib/item-swiper/item-swiper.component.less +75 -0
  175. package/src/lib/item-swiper/item-swiper.component.spec.ts +25 -0
  176. package/src/lib/item-swiper/item-swiper.component.ts +277 -0
  177. package/src/lib/item-swiper/item-swiper.module.ts +17 -0
  178. package/src/lib/line-bar-chart/line-bar-chart.component.html +7 -0
  179. package/src/lib/line-bar-chart/line-bar-chart.component.less +3 -0
  180. package/src/lib/line-bar-chart/line-bar-chart.component.spec.ts +25 -0
  181. package/src/lib/line-bar-chart/line-bar-chart.component.ts +346 -0
  182. package/src/lib/line-bar-chart/line-bar-chart.module.ts +15 -0
  183. package/src/lib/line-light-flow/line-light-flow.component.css +0 -0
  184. package/src/lib/line-light-flow/line-light-flow.component.html +3 -0
  185. package/src/lib/line-light-flow/line-light-flow.component.spec.ts +25 -0
  186. package/src/lib/line-light-flow/line-light-flow.component.ts +274 -0
  187. package/src/lib/line-light-flow/line-light-flow.module.ts +21 -0
  188. package/src/lib/liquid-fill/liquid-fill.component.html +1 -0
  189. package/src/lib/liquid-fill/liquid-fill.component.less +8 -0
  190. package/src/lib/liquid-fill/liquid-fill.component.spec.ts +25 -0
  191. package/src/lib/liquid-fill/liquid-fill.component.ts +127 -0
  192. package/src/lib/liquid-fill/liquid-fill.module.ts +15 -0
  193. package/src/lib/marquee/marquee.component.html +5 -0
  194. package/src/lib/marquee/marquee.component.less +9 -0
  195. package/src/lib/marquee/marquee.component.spec.ts +25 -0
  196. package/src/lib/marquee/marquee.component.ts +84 -0
  197. package/src/lib/marquee/marquee.module.ts +14 -0
  198. package/src/lib/mip-anim/mip-anim.component.html +1 -0
  199. package/src/lib/mip-anim/mip-anim.component.less +7 -0
  200. package/src/lib/mip-anim/mip-anim.component.spec.ts +25 -0
  201. package/src/lib/mip-anim/mip-anim.component.ts +18 -0
  202. package/src/lib/mip-anim/mip-anim.module.ts +14 -0
  203. package/src/lib/multi-title-gauge/multi-title-gauge.component.html +1 -0
  204. package/src/lib/multi-title-gauge/multi-title-gauge.component.less +9 -0
  205. package/src/lib/multi-title-gauge/multi-title-gauge.component.spec.ts +25 -0
  206. package/src/lib/multi-title-gauge/multi-title-gauge.component.ts +231 -0
  207. package/src/lib/multi-title-gauge/multi-title-gauge.module.ts +19 -0
  208. package/src/lib/number-flop/number-flop.component.html +31 -0
  209. package/src/lib/number-flop/number-flop.component.less +155 -0
  210. package/src/lib/number-flop/number-flop.component.spec.ts +25 -0
  211. package/src/lib/number-flop/number-flop.component.ts +96 -0
  212. package/src/lib/number-flop/number-flop.module.ts +14 -0
  213. package/src/lib/parent-container/parent-container.component.html +0 -0
  214. package/src/lib/parent-container/parent-container.component.less +0 -0
  215. package/src/lib/parent-container/parent-container.component.spec.ts +25 -0
  216. package/src/lib/parent-container/parent-container.component.ts +21 -0
  217. package/src/lib/parent-container/parent-container.module.ts +14 -0
  218. package/src/lib/percent-pie-chart/percent-pie-chart.component.html +8 -0
  219. package/src/lib/percent-pie-chart/percent-pie-chart.component.less +8 -0
  220. package/src/lib/percent-pie-chart/percent-pie-chart.component.spec.ts +25 -0
  221. package/src/lib/percent-pie-chart/percent-pie-chart.component.ts +213 -0
  222. package/src/lib/percent-pie-chart/percent-pie-chart.module.ts +15 -0
  223. package/src/lib/pie3d-chart/pie3d-chart.component.html +1 -0
  224. package/src/lib/pie3d-chart/pie3d-chart.component.less +9 -0
  225. package/src/lib/pie3d-chart/pie3d-chart.component.spec.ts +25 -0
  226. package/src/lib/pie3d-chart/pie3d-chart.component.ts +278 -0
  227. package/src/lib/pie3d-chart/pie3d-chart.module.ts +16 -0
  228. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.html +0 -0
  229. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.less +0 -0
  230. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.spec.ts +25 -0
  231. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.ts +411 -0
  232. package/src/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.ts +13 -0
  233. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.html +1 -0
  234. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.less +0 -0
  235. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.spec.ts +25 -0
  236. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.ts +235 -0
  237. package/src/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.ts +16 -0
  238. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.html +0 -0
  239. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.less +0 -0
  240. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.spec.ts +25 -0
  241. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.ts +107 -0
  242. package/src/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.ts +17 -0
  243. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.html +0 -0
  244. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.less +0 -0
  245. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.spec.ts +25 -0
  246. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.ts +337 -0
  247. package/src/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.ts +18 -0
  248. package/src/lib/planimetric-map2d/planimetric-map2d.component.html +11 -0
  249. package/src/lib/planimetric-map2d/planimetric-map2d.component.less +9 -0
  250. package/src/lib/planimetric-map2d/planimetric-map2d.component.spec.ts +25 -0
  251. package/src/lib/planimetric-map2d/planimetric-map2d.component.ts +690 -0
  252. package/src/lib/planimetric-map2d/planimetric-map2d.module.ts +29 -0
  253. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.html +0 -0
  254. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.less +0 -0
  255. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.spec.ts +25 -0
  256. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.ts +123 -0
  257. package/src/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.ts +14 -0
  258. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.html +0 -0
  259. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.less +0 -0
  260. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.spec.ts +25 -0
  261. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.ts +229 -0
  262. package/src/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.ts +14 -0
  263. package/src/lib/planimetric-map3d/planimetric-map3d.component.html +2 -0
  264. package/src/lib/planimetric-map3d/planimetric-map3d.component.less +10 -0
  265. package/src/lib/planimetric-map3d/planimetric-map3d.component.spec.ts +25 -0
  266. package/src/lib/planimetric-map3d/planimetric-map3d.component.ts +227 -0
  267. package/src/lib/planimetric-map3d/planimetric-map3d.module.ts +17 -0
  268. package/src/lib/radar-chart/radar-chart.component.html +7 -0
  269. package/src/lib/radar-chart/radar-chart.component.less +8 -0
  270. package/src/lib/radar-chart/radar-chart.component.spec.ts +25 -0
  271. package/src/lib/radar-chart/radar-chart.component.ts +219 -0
  272. package/src/lib/radar-chart/radar-chart.module.ts +15 -0
  273. package/src/lib/radio/radio.component.html +18 -0
  274. package/src/lib/radio/radio.component.less +61 -0
  275. package/src/lib/radio/radio.component.spec.ts +25 -0
  276. package/src/lib/radio/radio.component.ts +116 -0
  277. package/src/lib/radio/radio.module.ts +16 -0
  278. package/src/lib/rate/rate.component.html +16 -0
  279. package/src/lib/rate/rate.component.less +39 -0
  280. package/src/lib/rate/rate.component.spec.ts +25 -0
  281. package/src/lib/rate/rate.component.ts +40 -0
  282. package/src/lib/rate/rate.module.ts +18 -0
  283. package/src/lib/scatter3d/scatter3d.component.html +1 -0
  284. package/src/lib/scatter3d/scatter3d.component.less +8 -0
  285. package/src/lib/scatter3d/scatter3d.component.spec.ts +25 -0
  286. package/src/lib/scatter3d/scatter3d.component.ts +129 -0
  287. package/src/lib/scatter3d/scatter3d.module.ts +15 -0
  288. package/src/lib/screen-widget.module.ts +592 -0
  289. package/src/lib/search/search.component.html +30 -0
  290. package/src/lib/search/search.component.less +30 -0
  291. package/src/lib/search/search.component.spec.ts +25 -0
  292. package/src/lib/search/search.component.ts +103 -0
  293. package/src/lib/search/search.module.ts +22 -0
  294. package/src/lib/select/select.component.html +30 -0
  295. package/src/lib/select/select.component.less +117 -0
  296. package/src/lib/select/select.component.spec.ts +25 -0
  297. package/src/lib/select/select.component.ts +297 -0
  298. package/src/lib/select/select.module.ts +18 -0
  299. package/src/lib/shape/shape.component.html +39 -0
  300. package/src/lib/shape/shape.component.less +8 -0
  301. package/src/lib/shape/shape.component.spec.ts +25 -0
  302. package/src/lib/shape/shape.component.ts +207 -0
  303. package/src/lib/shape/shape.module.ts +14 -0
  304. package/src/lib/shared/component/video-player/video-player.component.html +2 -0
  305. package/src/lib/shared/component/video-player/video-player.component.less +15 -0
  306. package/src/lib/shared/component/video-player/video-player.component.spec.ts +25 -0
  307. package/src/lib/shared/component/video-player/video-player.component.ts +132 -0
  308. package/src/lib/shared/component/video-player/video-player.module.ts +11 -0
  309. package/src/lib/shared/model/scale.token.ts +8 -0
  310. package/src/lib/shared/service/common.service.ts +28 -0
  311. package/src/lib/shared/service/file-url.service.ts +8 -0
  312. package/src/lib/shared/service/gaode-map.service.ts +37 -0
  313. package/src/lib/shared/service/highcharts.service.ts +29 -0
  314. package/src/lib/shared/service/http.service.ts +15 -0
  315. package/src/lib/shared/util/base.util.ts +4 -0
  316. package/src/lib/shared/util/echarts.util.ts +11 -0
  317. package/src/lib/shared/util/style.util.ts +12 -0
  318. package/src/lib/shuffling-list/color.pipe.ts +21 -0
  319. package/src/lib/shuffling-list/shuffling-list.component.html +37 -0
  320. package/src/lib/shuffling-list/shuffling-list.component.less +55 -0
  321. package/src/lib/shuffling-list/shuffling-list.component.spec.ts +25 -0
  322. package/src/lib/shuffling-list/shuffling-list.component.ts +534 -0
  323. package/src/lib/shuffling-list/shuffling-list.module.ts +17 -0
  324. package/src/lib/table/table.component.html +123 -0
  325. package/src/lib/table/table.component.less +76 -0
  326. package/src/lib/table/table.component.spec.ts +25 -0
  327. package/src/lib/table/table.component.ts +608 -0
  328. package/src/lib/table/table.module.ts +33 -0
  329. package/src/lib/tabs/tab/tab.component.html +1 -0
  330. package/src/lib/tabs/tab/tab.component.less +5 -0
  331. package/src/lib/tabs/tab/tab.component.spec.ts +25 -0
  332. package/src/lib/tabs/tab/tab.component.ts +18 -0
  333. package/src/lib/tabs/tabs.component.html +13 -0
  334. package/src/lib/tabs/tabs.component.less +40 -0
  335. package/src/lib/tabs/tabs.component.spec.ts +25 -0
  336. package/src/lib/tabs/tabs.component.ts +68 -0
  337. package/src/lib/tabs/tabs.module.ts +17 -0
  338. package/src/lib/temporary-data/temporary-data.component.html +1 -0
  339. package/src/lib/temporary-data/temporary-data.component.less +4 -0
  340. package/src/lib/temporary-data/temporary-data.component.spec.ts +25 -0
  341. package/src/lib/temporary-data/temporary-data.component.ts +46 -0
  342. package/src/lib/temporary-data/temporary-data.module.ts +15 -0
  343. package/src/lib/text/text.component.css +0 -0
  344. package/src/lib/text/text.component.html +3 -0
  345. package/src/lib/text/text.component.spec.ts +25 -0
  346. package/src/lib/text/text.component.ts +22 -0
  347. package/src/lib/text/text.module.ts +14 -0
  348. package/src/lib/time-picker/time-picker.component.html +1 -0
  349. package/src/lib/time-picker/time-picker.component.less +14 -0
  350. package/src/lib/time-picker/time-picker.component.spec.ts +25 -0
  351. package/src/lib/time-picker/time-picker.component.ts +86 -0
  352. package/src/lib/time-picker/time-picker.module.ts +19 -0
  353. package/src/lib/timer/timer.component.html +7 -0
  354. package/src/lib/timer/timer.component.less +24 -0
  355. package/src/lib/timer/timer.component.spec.ts +25 -0
  356. package/src/lib/timer/timer.component.ts +74 -0
  357. package/src/lib/timer/timer.module.ts +15 -0
  358. package/src/lib/tree-control/tree-control.component.html +97 -0
  359. package/src/lib/tree-control/tree-control.component.less +111 -0
  360. package/src/lib/tree-control/tree-control.component.spec.ts +25 -0
  361. package/src/lib/tree-control/tree-control.component.ts +363 -0
  362. package/src/lib/tree-control/tree-control.module.ts +18 -0
  363. package/src/lib/tree-ring-chart/tree-ring-chart.component.html +7 -0
  364. package/src/lib/tree-ring-chart/tree-ring-chart.component.less +8 -0
  365. package/src/lib/tree-ring-chart/tree-ring-chart.component.spec.ts +25 -0
  366. package/src/lib/tree-ring-chart/tree-ring-chart.component.ts +192 -0
  367. package/src/lib/tree-ring-chart/tree-ring-chart.module.ts +15 -0
  368. package/src/lib/upload/upload.component.html +32 -0
  369. package/src/lib/upload/upload.component.less +14 -0
  370. package/src/lib/upload/upload.component.spec.ts +25 -0
  371. package/src/lib/upload/upload.component.ts +109 -0
  372. package/src/lib/upload/upload.module.ts +19 -0
  373. package/src/lib/video-grid/video-grid.component.html +33 -0
  374. package/src/lib/video-grid/video-grid.component.less +68 -0
  375. package/src/lib/video-grid/video-grid.component.spec.ts +25 -0
  376. package/src/lib/video-grid/video-grid.component.ts +115 -0
  377. package/src/lib/video-grid/video-grid.module.ts +17 -0
  378. package/src/lib/visual-map-chart/visual-map-chart.component.html +8 -0
  379. package/src/lib/visual-map-chart/visual-map-chart.component.less +21 -0
  380. package/src/lib/visual-map-chart/visual-map-chart.component.spec.ts +25 -0
  381. package/src/lib/visual-map-chart/visual-map-chart.component.ts +365 -0
  382. package/src/lib/visual-map-chart/visual-map-chart.module.ts +18 -0
  383. package/src/lib/vote/vote.component.html +6 -0
  384. package/src/lib/vote/vote.component.less +41 -0
  385. package/src/lib/vote/vote.component.spec.ts +25 -0
  386. package/src/lib/vote/vote.component.ts +71 -0
  387. package/src/lib/vote/vote.module.ts +16 -0
  388. package/src/lib/weather/weather.component.html +27 -0
  389. package/src/lib/weather/weather.component.less +67 -0
  390. package/src/lib/weather/weather.component.spec.ts +25 -0
  391. package/src/lib/weather/weather.component.ts +78 -0
  392. package/src/lib/weather/weather.module.ts +16 -0
  393. package/src/lib/wordart/wordart.component.html +2 -0
  394. package/src/lib/wordart/wordart.component.less +12 -0
  395. package/src/lib/wordart/wordart.component.spec.ts +25 -0
  396. package/src/lib/wordart/wordart.component.ts +56 -0
  397. package/src/lib/wordart/wordart.module.ts +14 -0
  398. package/src/lib/workbench-widget.module.ts +675 -0
  399. package/{public-api.d.ts → src/public-api.ts} +46 -35
  400. package/src/test.ts +22 -0
  401. package/tsconfig.lib.json +37 -0
  402. package/tsconfig.lib.prod.json +9 -0
  403. package/tsconfig.spec.json +17 -0
  404. package/tslint.json +17 -0
  405. package/bbj-screen-widget.d.ts +0 -119
  406. package/bbj-screen-widget.metadata.json +0 -1
  407. package/bundles/bbj-screen-widget-core.umd.js +0 -606
  408. package/bundles/bbj-screen-widget-core.umd.js.map +0 -1
  409. package/bundles/bbj-screen-widget-core.umd.min.js +0 -2
  410. package/bundles/bbj-screen-widget-core.umd.min.js.map +0 -1
  411. package/bundles/bbj-screen-widget.umd.js +0 -21720
  412. package/bundles/bbj-screen-widget.umd.js.map +0 -1
  413. package/bundles/bbj-screen-widget.umd.min.js +0 -2
  414. package/bundles/bbj-screen-widget.umd.min.js.map +0 -1
  415. package/core/bbj-screen-widget-core.d.ts +0 -4
  416. package/core/bbj-screen-widget-core.metadata.json +0 -1
  417. package/core/service/baidu-map.service.d.ts +0 -16
  418. package/esm2015/bbj-screen-widget.js +0 -120
  419. package/esm2015/core/bbj-screen-widget-core.js +0 -5
  420. package/esm2015/core/public_api.js +0 -2
  421. package/esm2015/core/service/baidu-map.service.js +0 -101
  422. package/esm2015/lib/announcement/announcement.component.js +0 -80
  423. package/esm2015/lib/announcement/announcement.module.js +0 -25
  424. package/esm2015/lib/audio/audio.component.js +0 -167
  425. package/esm2015/lib/audio/audio.module.js +0 -20
  426. package/esm2015/lib/background/background.component.js +0 -52
  427. package/esm2015/lib/background/background.module.js +0 -19
  428. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.component.js +0 -323
  429. package/esm2015/lib/bar-chart-three-d/bar-chart-three-d.module.js +0 -20
  430. package/esm2015/lib/basic-bar-chart/basic-bar-chart.component.js +0 -604
  431. package/esm2015/lib/basic-bar-chart/basic-bar-chart.module.js +0 -27
  432. package/esm2015/lib/basic-line-chart/basic-line-chart.component.js +0 -782
  433. package/esm2015/lib/basic-line-chart/basic-line-chart.module.js +0 -20
  434. package/esm2015/lib/basic-pie-chart/basic-pie-chart.component.js +0 -471
  435. package/esm2015/lib/basic-pie-chart/basic-pie-chart.module.js +0 -20
  436. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.component.js +0 -233
  437. package/esm2015/lib/basic-planimetric-map/basic-planimetric-map.module.js +0 -21
  438. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.component.js +0 -503
  439. package/esm2015/lib/breathing-bubble-layer/breathing-bubble-layer.module.js +0 -19
  440. package/esm2015/lib/bubble-chart/bubble-chart.component.js +0 -348
  441. package/esm2015/lib/bubble-chart/bubble-chart.module.js +0 -20
  442. package/esm2015/lib/bulletin-board/bulletin-board.component.js +0 -160
  443. package/esm2015/lib/bulletin-board/bulletin-board.module.js +0 -23
  444. package/esm2015/lib/button/button.component.js +0 -186
  445. package/esm2015/lib/button/button.module.js +0 -21
  446. package/esm2015/lib/calendar/background-events/background-events.component.js +0 -65
  447. package/esm2015/lib/calendar/calendar-events-child.js +0 -28
  448. package/esm2015/lib/calendar/calendar.component.js +0 -168
  449. package/esm2015/lib/calendar/calendar.module.js +0 -32
  450. package/esm2015/lib/calendar/calendar.util.js +0 -12
  451. package/esm2015/lib/calendar/events/events.component.js +0 -75
  452. package/esm2015/lib/checkbox/checkbox.component.js +0 -333
  453. package/esm2015/lib/checkbox/checkbox.module.js +0 -21
  454. package/esm2015/lib/cross-table/cross-table.component.js +0 -291
  455. package/esm2015/lib/cross-table/cross-table.module.js +0 -20
  456. package/esm2015/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.js +0 -732
  457. package/esm2015/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.js +0 -278
  458. package/esm2015/lib/custom-baidu-map/base-layer.js +0 -53
  459. package/esm2015/lib/custom-baidu-map/custom-baidu-map.component.js +0 -675
  460. package/esm2015/lib/custom-baidu-map/custom-baidu-map.module.js +0 -46
  461. package/esm2015/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.js +0 -116
  462. package/esm2015/lib/custom-baidu-map/wind-layer/wind-layer.component.js +0 -331
  463. package/esm2015/lib/date-picker/date-picker.component.js +0 -447
  464. package/esm2015/lib/date-picker/date-picker.module.js +0 -22
  465. package/esm2015/lib/funnel-chart/funnel-chart.component.js +0 -241
  466. package/esm2015/lib/funnel-chart/funnel-chart.module.js +0 -20
  467. package/esm2015/lib/gantt/gantt.component.js +0 -222
  468. package/esm2015/lib/gantt/gantt.module.js +0 -39
  469. package/esm2015/lib/gauge/gauge.component.js +0 -324
  470. package/esm2015/lib/gauge/gauge.module.js +0 -20
  471. package/esm2015/lib/gauge-progress/gauge-progress.component.js +0 -356
  472. package/esm2015/lib/gauge-progress/gauge.module.js +0 -22
  473. package/esm2015/lib/general-text/general-text.component.js +0 -144
  474. package/esm2015/lib/general-text/general-text.module.js +0 -20
  475. package/esm2015/lib/iconfont/icon.js +0 -199
  476. package/esm2015/lib/iconfont/iconfont.component.js +0 -56
  477. package/esm2015/lib/iconfont/iconfont.module.js +0 -20
  478. package/esm2015/lib/iframe/iframe.component.js +0 -46
  479. package/esm2015/lib/iframe/iframe.module.js +0 -20
  480. package/esm2015/lib/image/image.component.js +0 -98
  481. package/esm2015/lib/image/image.module.js +0 -19
  482. package/esm2015/lib/item-swiper/item-swiper.component.js +0 -343
  483. package/esm2015/lib/item-swiper/item-swiper.module.js +0 -22
  484. package/esm2015/lib/line-bar-chart/line-bar-chart.component.js +0 -398
  485. package/esm2015/lib/line-bar-chart/line-bar-chart.module.js +0 -20
  486. package/esm2015/lib/line-light-flow/line-light-flow.component.js +0 -241
  487. package/esm2015/lib/line-light-flow/line-light-flow.module.js +0 -24
  488. package/esm2015/lib/liquid-fill/liquid-fill.component.js +0 -158
  489. package/esm2015/lib/liquid-fill/liquid-fill.module.js +0 -20
  490. package/esm2015/lib/marquee/marquee.component.js +0 -110
  491. package/esm2015/lib/marquee/marquee.module.js +0 -19
  492. package/esm2015/lib/mip-anim/mip-anim.component.js +0 -26
  493. package/esm2015/lib/mip-anim/mip-anim.module.js +0 -19
  494. package/esm2015/lib/multi-title-gauge/multi-title-gauge.component.js +0 -277
  495. package/esm2015/lib/multi-title-gauge/multi-title-gauge.module.js +0 -22
  496. package/esm2015/lib/number-flop/number-flop.component.js +0 -124
  497. package/esm2015/lib/number-flop/number-flop.module.js +0 -19
  498. package/esm2015/lib/parent-container/parent-container.component.js +0 -21
  499. package/esm2015/lib/parent-container/parent-container.module.js +0 -19
  500. package/esm2015/lib/percent-pie-chart/percent-pie-chart.component.js +0 -248
  501. package/esm2015/lib/percent-pie-chart/percent-pie-chart.module.js +0 -20
  502. package/esm2015/lib/pie3d-chart/pie3d-chart.component.js +0 -303
  503. package/esm2015/lib/pie3d-chart/pie3d-chart.module.js +0 -19
  504. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.js +0 -431
  505. package/esm2015/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.js +0 -19
  506. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.js +0 -252
  507. package/esm2015/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.js +0 -19
  508. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.js +0 -124
  509. package/esm2015/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.js +0 -19
  510. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.js +0 -359
  511. package/esm2015/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.js +0 -21
  512. package/esm2015/lib/planimetric-map2d/planimetric-map2d.component.js +0 -753
  513. package/esm2015/lib/planimetric-map2d/planimetric-map2d.module.js +0 -34
  514. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.js +0 -128
  515. package/esm2015/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.js +0 -19
  516. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.js +0 -242
  517. package/esm2015/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.js +0 -19
  518. package/esm2015/lib/planimetric-map3d/planimetric-map3d.component.js +0 -265
  519. package/esm2015/lib/planimetric-map3d/planimetric-map3d.module.js +0 -22
  520. package/esm2015/lib/radar-chart/radar-chart.component.js +0 -255
  521. package/esm2015/lib/radar-chart/radar-chart.module.js +0 -20
  522. package/esm2015/lib/radio/radio.component.js +0 -148
  523. package/esm2015/lib/radio/radio.module.js +0 -21
  524. package/esm2015/lib/rate/rate.component.js +0 -57
  525. package/esm2015/lib/rate/rate.module.js +0 -23
  526. package/esm2015/lib/scatter3d/scatter3d.component.js +0 -166
  527. package/esm2015/lib/scatter3d/scatter3d.module.js +0 -20
  528. package/esm2015/lib/screen-widget.module.js +0 -536
  529. package/esm2015/lib/search/search.component.js +0 -130
  530. package/esm2015/lib/search/search.module.js +0 -29
  531. package/esm2015/lib/select/select.component.js +0 -359
  532. package/esm2015/lib/select/select.module.js +0 -22
  533. package/esm2015/lib/shape/shape.component.js +0 -248
  534. package/esm2015/lib/shape/shape.module.js +0 -19
  535. package/esm2015/lib/shared/component/video-player/video-player.component.js +0 -114
  536. package/esm2015/lib/shared/component/video-player/video-player.module.js +0 -14
  537. package/esm2015/lib/shared/service/common.service.js +0 -39
  538. package/esm2015/lib/shared/service/file-url.service.js +0 -12
  539. package/esm2015/lib/shared/service/gaode-map.service.js +0 -36
  540. package/esm2015/lib/shared/service/highcharts.service.js +0 -36
  541. package/esm2015/lib/shared/service/http.service.js +0 -20
  542. package/esm2015/lib/shared/util/base.util.js +0 -5
  543. package/esm2015/lib/shared/util/echarts.util.js +0 -12
  544. package/esm2015/lib/shared/util/style.util.js +0 -19
  545. package/esm2015/lib/shuffling-list/color.pipe.js +0 -23
  546. package/esm2015/lib/shuffling-list/shuffling-list.component.js +0 -601
  547. package/esm2015/lib/shuffling-list/shuffling-list.module.js +0 -22
  548. package/esm2015/lib/table/table.component.js +0 -657
  549. package/esm2015/lib/table/table.module.js +0 -38
  550. package/esm2015/lib/tabs/tab/tab.component.js +0 -27
  551. package/esm2015/lib/tabs/tabs.component.js +0 -85
  552. package/esm2015/lib/tabs/tabs.module.js +0 -22
  553. package/esm2015/lib/temporary-data/temporary-data.component.js +0 -49
  554. package/esm2015/lib/temporary-data/temporary-data.module.js +0 -20
  555. package/esm2015/lib/time-picker/time-picker.component.js +0 -112
  556. package/esm2015/lib/time-picker/time-picker.module.js +0 -21
  557. package/esm2015/lib/timer/timer.component.js +0 -108
  558. package/esm2015/lib/timer/timer.module.js +0 -20
  559. package/esm2015/lib/tree-control/tree-control.component.js +0 -435
  560. package/esm2015/lib/tree-control/tree-control.module.js +0 -24
  561. package/esm2015/lib/tree-ring-chart/tree-ring-chart.component.js +0 -215
  562. package/esm2015/lib/tree-ring-chart/tree-ring-chart.module.js +0 -20
  563. package/esm2015/lib/upload/upload.component.js +0 -127
  564. package/esm2015/lib/upload/upload.module.js +0 -22
  565. package/esm2015/lib/video-grid/video-grid.component.js +0 -140
  566. package/esm2015/lib/video-grid/video-grid.module.js +0 -22
  567. package/esm2015/lib/visual-map-chart/visual-map-chart.component.js +0 -395
  568. package/esm2015/lib/visual-map-chart/visual-map-chart.module.js +0 -20
  569. package/esm2015/lib/vote/vote.component.js +0 -100
  570. package/esm2015/lib/vote/vote.module.js +0 -21
  571. package/esm2015/lib/weather/weather.component.js +0 -92
  572. package/esm2015/lib/weather/weather.module.js +0 -21
  573. package/esm2015/lib/wordart/wordart.component.js +0 -84
  574. package/esm2015/lib/wordart/wordart.module.js +0 -19
  575. package/esm2015/lib/workbench-widget.module.js +0 -620
  576. package/esm2015/public-api.js +0 -40
  577. package/fesm2015/bbj-screen-widget-core.js +0 -107
  578. package/fesm2015/bbj-screen-widget-core.js.map +0 -1
  579. package/fesm2015/bbj-screen-widget.js +0 -20618
  580. package/fesm2015/bbj-screen-widget.js.map +0 -1
  581. package/lib/announcement/announcement.component.d.ts +0 -13
  582. package/lib/announcement/announcement.module.d.ts +0 -5
  583. package/lib/audio/audio.component.d.ts +0 -22
  584. package/lib/audio/audio.module.d.ts +0 -4
  585. package/lib/background/background.component.d.ts +0 -12
  586. package/lib/background/background.module.d.ts +0 -4
  587. package/lib/bar-chart-three-d/bar-chart-three-d.component.d.ts +0 -30
  588. package/lib/bar-chart-three-d/bar-chart-three-d.module.d.ts +0 -4
  589. package/lib/basic-bar-chart/basic-bar-chart.component.d.ts +0 -105
  590. package/lib/basic-bar-chart/basic-bar-chart.module.d.ts +0 -5
  591. package/lib/basic-line-chart/basic-line-chart.component.d.ts +0 -102
  592. package/lib/basic-line-chart/basic-line-chart.module.d.ts +0 -4
  593. package/lib/basic-pie-chart/basic-pie-chart.component.d.ts +0 -56
  594. package/lib/basic-pie-chart/basic-pie-chart.module.d.ts +0 -4
  595. package/lib/basic-planimetric-map/basic-planimetric-map.component.d.ts +0 -18
  596. package/lib/basic-planimetric-map/basic-planimetric-map.module.d.ts +0 -4
  597. package/lib/breathing-bubble-layer/breathing-bubble-layer.component.d.ts +0 -210
  598. package/lib/breathing-bubble-layer/breathing-bubble-layer.module.d.ts +0 -4
  599. package/lib/bubble-chart/bubble-chart.component.d.ts +0 -75
  600. package/lib/bubble-chart/bubble-chart.module.d.ts +0 -4
  601. package/lib/bulletin-board/bulletin-board.component.d.ts +0 -25
  602. package/lib/bulletin-board/bulletin-board.module.d.ts +0 -4
  603. package/lib/button/button.component.d.ts +0 -25
  604. package/lib/button/button.module.d.ts +0 -4
  605. package/lib/calendar/background-events/background-events.component.d.ts +0 -10
  606. package/lib/calendar/calendar-events-child.d.ts +0 -12
  607. package/lib/calendar/calendar.component.d.ts +0 -27
  608. package/lib/calendar/calendar.module.d.ts +0 -4
  609. package/lib/calendar/calendar.util.d.ts +0 -6
  610. package/lib/calendar/events/events.component.d.ts +0 -13
  611. package/lib/checkbox/checkbox.component.d.ts +0 -45
  612. package/lib/checkbox/checkbox.module.d.ts +0 -4
  613. package/lib/cross-table/cross-table.component.d.ts +0 -30
  614. package/lib/cross-table/cross-table.module.d.ts +0 -4
  615. package/lib/custom-baidu-map/baidu-marker-layer/baidu-marker-layer.component.d.ts +0 -70
  616. package/lib/custom-baidu-map/baidu-polyline-layer/baidu-polyline-layer.component.d.ts +0 -23
  617. package/lib/custom-baidu-map/base-layer.d.ts +0 -16
  618. package/lib/custom-baidu-map/custom-baidu-map.component.d.ts +0 -93
  619. package/lib/custom-baidu-map/custom-baidu-map.module.d.ts +0 -4
  620. package/lib/custom-baidu-map/typhoon-area-layer/typhoon-area-layer.component.d.ts +0 -16
  621. package/lib/custom-baidu-map/wind-layer/wind-layer.component.d.ts +0 -28
  622. package/lib/date-picker/date-picker.component.d.ts +0 -63
  623. package/lib/date-picker/date-picker.module.d.ts +0 -4
  624. package/lib/funnel-chart/funnel-chart.component.d.ts +0 -24
  625. package/lib/funnel-chart/funnel-chart.module.d.ts +0 -4
  626. package/lib/gantt/gantt.component.d.ts +0 -25
  627. package/lib/gantt/gantt.module.d.ts +0 -4
  628. package/lib/gauge/gauge.component.d.ts +0 -37
  629. package/lib/gauge/gauge.module.d.ts +0 -4
  630. package/lib/gauge-progress/gauge-progress.component.d.ts +0 -46
  631. package/lib/gauge-progress/gauge.module.d.ts +0 -5
  632. package/lib/general-text/general-text.component.d.ts +0 -21
  633. package/lib/general-text/general-text.module.d.ts +0 -4
  634. package/lib/iconfont/icon.d.ts +0 -1
  635. package/lib/iconfont/iconfont.component.d.ts +0 -11
  636. package/lib/iconfont/iconfont.module.d.ts +0 -4
  637. package/lib/iframe/iframe.component.d.ts +0 -10
  638. package/lib/iframe/iframe.module.d.ts +0 -4
  639. package/lib/image/image.component.d.ts +0 -21
  640. package/lib/image/image.module.d.ts +0 -4
  641. package/lib/item-swiper/item-swiper.component.d.ts +0 -41
  642. package/lib/item-swiper/item-swiper.module.d.ts +0 -5
  643. package/lib/line-bar-chart/line-bar-chart.component.d.ts +0 -63
  644. package/lib/line-bar-chart/line-bar-chart.module.d.ts +0 -4
  645. package/lib/line-light-flow/line-light-flow.component.d.ts +0 -26
  646. package/lib/line-light-flow/line-light-flow.module.d.ts +0 -4
  647. package/lib/liquid-fill/liquid-fill.component.d.ts +0 -18
  648. package/lib/liquid-fill/liquid-fill.module.d.ts +0 -4
  649. package/lib/marquee/marquee.component.d.ts +0 -20
  650. package/lib/marquee/marquee.module.d.ts +0 -4
  651. package/lib/mip-anim/mip-anim.component.d.ts +0 -6
  652. package/lib/mip-anim/mip-anim.module.d.ts +0 -4
  653. package/lib/multi-title-gauge/multi-title-gauge.component.d.ts +0 -26
  654. package/lib/multi-title-gauge/multi-title-gauge.module.d.ts +0 -4
  655. package/lib/number-flop/number-flop.component.d.ts +0 -22
  656. package/lib/number-flop/number-flop.module.d.ts +0 -4
  657. package/lib/parent-container/parent-container.component.d.ts +0 -9
  658. package/lib/parent-container/parent-container.module.d.ts +0 -4
  659. package/lib/percent-pie-chart/percent-pie-chart.component.d.ts +0 -24
  660. package/lib/percent-pie-chart/percent-pie-chart.module.d.ts +0 -4
  661. package/lib/pie3d-chart/pie3d-chart.component.d.ts +0 -30
  662. package/lib/pie3d-chart/pie3d-chart.module.d.ts +0 -4
  663. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.component.d.ts +0 -206
  664. package/lib/planimetric-map2d/fly-line-layer/fly-line-layer.module.d.ts +0 -4
  665. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.component.d.ts +0 -15
  666. package/lib/planimetric-map2d/map2d-mark-layer/map2d-mark-layer.module.d.ts +0 -4
  667. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.component.d.ts +0 -15
  668. package/lib/planimetric-map2d/map2d-polyline-layer/map2d-polyline-layer.module.d.ts +0 -4
  669. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.component.d.ts +0 -49
  670. package/lib/planimetric-map2d/map2d-visual-layer/map2d-visual-layer.module.d.ts +0 -4
  671. package/lib/planimetric-map2d/planimetric-map2d.component.d.ts +0 -49
  672. package/lib/planimetric-map2d/planimetric-map2d.module.d.ts +0 -4
  673. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.component.d.ts +0 -14
  674. package/lib/planimetric-map3d/map3d-line-layer/map3d-line-layer.module.d.ts +0 -4
  675. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.component.d.ts +0 -41
  676. package/lib/planimetric-map3d/map3d-mark-layer/map3d-mark-layer.module.d.ts +0 -4
  677. package/lib/planimetric-map3d/planimetric-map3d.component.d.ts +0 -29
  678. package/lib/planimetric-map3d/planimetric-map3d.module.d.ts +0 -4
  679. package/lib/radar-chart/radar-chart.component.d.ts +0 -24
  680. package/lib/radar-chart/radar-chart.module.d.ts +0 -4
  681. package/lib/radio/radio.component.d.ts +0 -21
  682. package/lib/radio/radio.module.d.ts +0 -4
  683. package/lib/rate/rate.component.d.ts +0 -13
  684. package/lib/rate/rate.module.d.ts +0 -4
  685. package/lib/scatter3d/scatter3d.component.d.ts +0 -25
  686. package/lib/scatter3d/scatter3d.module.d.ts +0 -4
  687. package/lib/screen-widget.module.d.ts +0 -4
  688. package/lib/search/search.component.d.ts +0 -21
  689. package/lib/search/search.module.d.ts +0 -6
  690. package/lib/select/select.component.d.ts +0 -37
  691. package/lib/select/select.module.d.ts +0 -4
  692. package/lib/shape/shape.component.d.ts +0 -50
  693. package/lib/shape/shape.module.d.ts +0 -4
  694. package/lib/shared/component/video-player/video-player.component.d.ts +0 -28
  695. package/lib/shared/component/video-player/video-player.module.d.ts +0 -2
  696. package/lib/shared/service/common.service.d.ts +0 -21
  697. package/lib/shared/service/file-url.service.d.ts +0 -3
  698. package/lib/shared/service/gaode-map.service.d.ts +0 -10
  699. package/lib/shared/service/highcharts.service.d.ts +0 -9
  700. package/lib/shared/service/http.service.d.ts +0 -7
  701. package/lib/shared/util/base.util.d.ts +0 -1
  702. package/lib/shared/util/echarts.util.d.ts +0 -1
  703. package/lib/shared/util/style.util.d.ts +0 -1
  704. package/lib/shuffling-list/color.pipe.d.ts +0 -4
  705. package/lib/shuffling-list/shuffling-list.component.d.ts +0 -76
  706. package/lib/shuffling-list/shuffling-list.module.d.ts +0 -4
  707. package/lib/table/table.component.d.ts +0 -65
  708. package/lib/table/table.module.d.ts +0 -4
  709. package/lib/tabs/tab/tab.component.d.ts +0 -7
  710. package/lib/tabs/tabs.component.d.ts +0 -13
  711. package/lib/tabs/tabs.module.d.ts +0 -4
  712. package/lib/temporary-data/temporary-data.component.d.ts +0 -13
  713. package/lib/temporary-data/temporary-data.module.d.ts +0 -4
  714. package/lib/time-picker/time-picker.component.d.ts +0 -17
  715. package/lib/time-picker/time-picker.module.d.ts +0 -4
  716. package/lib/timer/timer.component.d.ts +0 -21
  717. package/lib/timer/timer.module.d.ts +0 -4
  718. package/lib/tree-control/tree-control.component.d.ts +0 -62
  719. package/lib/tree-control/tree-control.module.d.ts +0 -4
  720. package/lib/tree-ring-chart/tree-ring-chart.component.d.ts +0 -24
  721. package/lib/tree-ring-chart/tree-ring-chart.module.d.ts +0 -4
  722. package/lib/upload/upload.component.d.ts +0 -21
  723. package/lib/upload/upload.module.d.ts +0 -4
  724. package/lib/video-grid/video-grid.component.d.ts +0 -23
  725. package/lib/video-grid/video-grid.module.d.ts +0 -4
  726. package/lib/visual-map-chart/visual-map-chart.component.d.ts +0 -49
  727. package/lib/visual-map-chart/visual-map-chart.module.d.ts +0 -4
  728. package/lib/vote/vote.component.d.ts +0 -15
  729. package/lib/vote/vote.module.d.ts +0 -4
  730. package/lib/weather/weather.component.d.ts +0 -26
  731. package/lib/weather/weather.module.d.ts +0 -4
  732. package/lib/wordart/wordart.component.d.ts +0 -14
  733. package/lib/wordart/wordart.module.d.ts +0 -4
  734. package/lib/workbench-widget.module.d.ts +0 -4
  735. /package/core/{public_api.d.ts → src/public_api.ts} +0 -0
@@ -1,782 +0,0 @@
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==